From 65893f0d7de05ca86c6f236be1746eab35f35b17 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 10:59:08 +0000 Subject: [PATCH 01/10] Revert "drivres:misc:amd-apml: New APML device ID for SP8" This reverts commit f5e5fbcbfb58bcea5baaaa1c644b33768b25eb7c. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/apml_sbtsi.c | 11 ++--------- drivers/misc/amd-apml/sbrmi.c | 9 ++------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/misc/amd-apml/apml_sbtsi.c b/drivers/misc/amd-apml/apml_sbtsi.c index d4900ed4bd84fd..e970eac2bc99ec 100644 --- a/drivers/misc/amd-apml/apml_sbtsi.c +++ b/drivers/misc/amd-apml/apml_sbtsi.c @@ -427,8 +427,7 @@ static void map_sbtsi_pid_to_static_addr(struct i3c_device *i3cdev, { if ((i3cdev->bus->id == 4) && ((i3cdev->desc->info.pid == 0x118) || - (i3cdev->desc->info.pid == 0x22400000119) || - (i3cdev->desc->info.pid == 0x2240000011A))) + (i3cdev->desc->info.pid == 0x22400000119))) { tsi_dev->dev_static_addr = 0x4C; } @@ -436,9 +435,7 @@ static void map_sbtsi_pid_to_static_addr(struct i3c_device *i3cdev, ((i3cdev->desc->info.pid == 0x118) || (i3cdev->desc->info.pid == 0x01000118) || (i3cdev->desc->info.pid == 0x22400000119) || - (i3cdev->desc->info.pid == 0x22401000119) || - (i3cdev->desc->info.pid == 0x2240000011A) || - (i3cdev->desc->info.pid == 0x2240100011A))) + (i3cdev->desc->info.pid == 0x22401000119))) { tsi_dev->dev_static_addr = 0x48; } @@ -652,10 +649,6 @@ static const struct i3c_device_id sbtsi_i3c_id[] = { I3C_DEVICE_EXTRA_INFO(0x112, 0x1, 0x119, NULL), /* Socket:0, IOD:1 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x101, 0x119, NULL), /* Socket:1 IOD:1 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x11A, NULL), /* SP8 Socket:0, IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x1, 0x11A, NULL), /* SP8 Socket:0, IOD:1 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x11A, NULL), /* SP8 Socket:1 IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x101, 0x11A, NULL), /* SP8 Socket:1 IOD:1 */ {} }; MODULE_DEVICE_TABLE(i3c, sbtsi_i3c_id); diff --git a/drivers/misc/amd-apml/sbrmi.c b/drivers/misc/amd-apml/sbrmi.c index 4c972ef00873e3..ba50c95b1f7cbc 100644 --- a/drivers/misc/amd-apml/sbrmi.c +++ b/drivers/misc/amd-apml/sbrmi.c @@ -377,8 +377,7 @@ static void map_sbrmi_pid_to_static_addr(struct i3c_device *i3cdev, { if ((i3cdev->bus->id == 4) && ((i3cdev->desc->info.pid == 0x1118) || - (i3cdev->desc->info.pid == 0x22400001119) || - (i3cdev->desc->info.pid == 0x2240000111A))) + (i3cdev->desc->info.pid == 0x22400001119))) { rmi_dev->dev_static_addr = 0x3C; } @@ -386,9 +385,7 @@ static void map_sbrmi_pid_to_static_addr(struct i3c_device *i3cdev, ((i3cdev->desc->info.pid == 0x1118) || (i3cdev->desc->info.pid == 0x01001118) || (i3cdev->desc->info.pid == 0x22400001119) || - (i3cdev->desc->info.pid == 0x22401001119) || - (i3cdev->desc->info.pid == 0x2240000111A) || - (i3cdev->desc->info.pid == 0x2240100111A))) + (i3cdev->desc->info.pid == 0x22401001119))) { rmi_dev->dev_static_addr = 0x38; } @@ -847,8 +844,6 @@ static const struct i3c_device_id sbrmi_i3c_id[] = { I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x118, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x119, NULL), /* Socket:0, IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* Socket:1 IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x11A, NULL), /* SP8 Socket:0, IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x11A, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0, 0x0, 0x0, NULL), {} }; From 72df117748c9e6c6f417d76872ada9793c24570e Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 10:59:17 +0000 Subject: [PATCH 02/10] Revert "drivres:misc:amd-apml: New APML device ID for SP7 AB" This reverts commit 868c5c87fb9bdc82c889cc0dd76a7ea3b24ab4f7. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/apml_sbtsi.c | 14 +++----------- drivers/misc/amd-apml/sbrmi.c | 10 ++-------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/drivers/misc/amd-apml/apml_sbtsi.c b/drivers/misc/amd-apml/apml_sbtsi.c index e970eac2bc99ec..f3c95dcdd14319 100644 --- a/drivers/misc/amd-apml/apml_sbtsi.c +++ b/drivers/misc/amd-apml/apml_sbtsi.c @@ -425,17 +425,13 @@ static const char *sbtsi_addr_to_label(u8 addr) static void map_sbtsi_pid_to_static_addr(struct i3c_device *i3cdev, struct apml_sbtsi_device *tsi_dev) { - if ((i3cdev->bus->id == 4) && - ((i3cdev->desc->info.pid == 0x118) || - (i3cdev->desc->info.pid == 0x22400000119))) + if ((i3cdev->bus->id == 4) && (i3cdev->desc->info.pid == 0x118)) { tsi_dev->dev_static_addr = 0x4C; } else if ((i3cdev->bus->id == 5) && - ((i3cdev->desc->info.pid == 0x118) || - (i3cdev->desc->info.pid == 0x01000118) || - (i3cdev->desc->info.pid == 0x22400000119) || - (i3cdev->desc->info.pid == 0x22401000119))) + ((i3cdev->desc->info.pid == 0x118) || + (i3cdev->desc->info.pid == 0x01000118))) { tsi_dev->dev_static_addr = 0x48; } @@ -645,10 +641,6 @@ static const struct i3c_device_id sbtsi_i3c_id[] = { I3C_DEVICE_EXTRA_INFO(0x112, 0x1, 0x118, NULL), /* Socket:0, IOD:1 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x118, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x101, 0x118, NULL), /* Socket:1 IOD:1 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x119, NULL), /* Socket:0, IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x1, 0x119, NULL), /* Socket:0, IOD:1 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* Socket:1 IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x101, 0x119, NULL), /* Socket:1 IOD:1 */ {} }; MODULE_DEVICE_TABLE(i3c, sbtsi_i3c_id); diff --git a/drivers/misc/amd-apml/sbrmi.c b/drivers/misc/amd-apml/sbrmi.c index ba50c95b1f7cbc..98d28392c347ae 100644 --- a/drivers/misc/amd-apml/sbrmi.c +++ b/drivers/misc/amd-apml/sbrmi.c @@ -375,17 +375,13 @@ static const struct file_operations sbrmi_fops = { static void map_sbrmi_pid_to_static_addr(struct i3c_device *i3cdev, struct apml_sbrmi_device *rmi_dev) { - if ((i3cdev->bus->id == 4) && - ((i3cdev->desc->info.pid == 0x1118) || - (i3cdev->desc->info.pid == 0x22400001119))) + if ((i3cdev->bus->id == 4) && (i3cdev->desc->info.pid == 0x1118)) { rmi_dev->dev_static_addr = 0x3C; } else if ((i3cdev->bus->id == 5) && ((i3cdev->desc->info.pid == 0x1118) || - (i3cdev->desc->info.pid == 0x01001118) || - (i3cdev->desc->info.pid == 0x22400001119) || - (i3cdev->desc->info.pid == 0x22401001119))) + (i3cdev->desc->info.pid == 0x01001118))) { rmi_dev->dev_static_addr = 0x38; } @@ -842,8 +838,6 @@ static const struct i3c_device_id sbrmi_i3c_id[] = { I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x2, NULL), I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x118, NULL), /* Socket:0, IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x118, NULL), /* Socket:1 IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x119, NULL), /* Socket:0, IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0, 0x0, 0x0, NULL), {} }; From d725aa8b68456c6fe2813341642e71900f47f8f1 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 11:01:33 +0000 Subject: [PATCH 03/10] Revert "drivers: sbtsi: use static address mapped from PID" This reverts commit 29141263fe275a3864447439709f6abc8059fde1. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/apml_sbtsi.c | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/drivers/misc/amd-apml/apml_sbtsi.c b/drivers/misc/amd-apml/apml_sbtsi.c index f3c95dcdd14319..18758f0d6a45f0 100644 --- a/drivers/misc/amd-apml/apml_sbtsi.c +++ b/drivers/misc/amd-apml/apml_sbtsi.c @@ -422,26 +422,6 @@ static const char *sbtsi_addr_to_label(u8 addr) } } -static void map_sbtsi_pid_to_static_addr(struct i3c_device *i3cdev, - struct apml_sbtsi_device *tsi_dev) -{ - if ((i3cdev->bus->id == 4) && (i3cdev->desc->info.pid == 0x118)) - { - tsi_dev->dev_static_addr = 0x4C; - } - else if ((i3cdev->bus->id == 5) && - ((i3cdev->desc->info.pid == 0x118) || - (i3cdev->desc->info.pid == 0x01000118))) - { - tsi_dev->dev_static_addr = 0x48; - } - else - { - dev_err(&i3cdev->dev, "unknown pid. pid = 0x%llx\n", - i3cdev->desc->info.pid); - } -} - static int create_misc_tsi_device(struct apml_sbtsi_device *tsi_dev, struct device *dev) { @@ -504,13 +484,6 @@ static int sbtsi_i3c_probe(struct i3c_device *i3cdev) /* Need to verify for the static address for i3cdev */ tsi_dev->dev_static_addr = i3cdev->desc->info.static_addr; - map_sbtsi_pid_to_static_addr(i3cdev, tsi_dev); - if (tsi_dev->dev_static_addr == 0) - { - dev_info(dev, "SBTSI: PID = 0x%llx, static address zero, skip the device\n", - i3cdev->desc->info.pid); - return -ENXIO; - } hwmon_dev_name = devm_kasprintf(dev, GFP_KERNEL, "sbtsi_%s", sbtsi_addr_to_label(tsi_dev->dev_static_addr)); From 30398ca64eeeb84d878258038d30a7dea366b49a Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 11:02:57 +0000 Subject: [PATCH 04/10] Revert "drivers: sbrmi: use static address mapped from PID" This reverts commit 287ff5ed423f79d6a375d6dc0cbf8fed386385ab. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/sbrmi.c | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/drivers/misc/amd-apml/sbrmi.c b/drivers/misc/amd-apml/sbrmi.c index 98d28392c347ae..ebe82ebc3fd74f 100644 --- a/drivers/misc/amd-apml/sbrmi.c +++ b/drivers/misc/amd-apml/sbrmi.c @@ -372,26 +372,6 @@ static const struct file_operations sbrmi_fops = { .compat_ioctl = sbrmi_ioctl, }; -static void map_sbrmi_pid_to_static_addr(struct i3c_device *i3cdev, - struct apml_sbrmi_device *rmi_dev) -{ - if ((i3cdev->bus->id == 4) && (i3cdev->desc->info.pid == 0x1118)) - { - rmi_dev->dev_static_addr = 0x3C; - } - else if ((i3cdev->bus->id == 5) && - ((i3cdev->desc->info.pid == 0x1118) || - (i3cdev->desc->info.pid == 0x01001118))) - { - rmi_dev->dev_static_addr = 0x38; - } - else - { - dev_err(&i3cdev->dev, "unknown pid. pid = 0x%llx\n", - i3cdev->desc->info.pid); - } -} - static int create_misc_rmi_device(struct apml_sbrmi_device *rmi_dev, struct device *dev) { @@ -695,12 +675,6 @@ static int sbrmi_i3c_probe(struct i3c_device *i3cdev) /* Need to verify for the static address for i3cdev */ rmi_dev->dev_static_addr = i3cdev->desc->info.static_addr; - map_sbrmi_pid_to_static_addr(i3cdev, rmi_dev); - if (rmi_dev->dev_static_addr == 0) - { - dev_info(dev, "SBRMI: PID = 0x%llx, static address zero, skip the device\n", - i3cdev->desc->info.pid); - } hwmon_dev_name = devm_kasprintf(dev, GFP_KERNEL, "sbrmi_%s", sbrmi_addr_to_label(rmi_dev->dev_static_addr)); From cafab0216558c79c5e5897414eb6c26daaafc248 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Tue, 20 Jan 2026 09:38:43 +0000 Subject: [PATCH 05/10] drivers: misc: amd-apml: Set device address using dynamic address Since the static address may be zero, update the device address based on the dynamic address. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/apml_sbtsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/amd-apml/apml_sbtsi.c b/drivers/misc/amd-apml/apml_sbtsi.c index 18758f0d6a45f0..566e8670d71c9a 100644 --- a/drivers/misc/amd-apml/apml_sbtsi.c +++ b/drivers/misc/amd-apml/apml_sbtsi.c @@ -483,7 +483,7 @@ static int sbtsi_i3c_probe(struct i3c_device *i3cdev) mutex_init(&tsi_dev->lock); /* Need to verify for the static address for i3cdev */ - tsi_dev->dev_static_addr = i3cdev->desc->info.static_addr; + tsi_dev->dev_static_addr = i3cdev->desc->info.dyn_addr; hwmon_dev_name = devm_kasprintf(dev, GFP_KERNEL, "sbtsi_%s", sbtsi_addr_to_label(tsi_dev->dev_static_addr)); From fd825d68f99ca96f9891c654b056c5b263e8b964 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Tue, 20 Jan 2026 09:40:58 +0000 Subject: [PATCH 06/10] drivers: misc: amd-apml: Set device address using dynamic address Since the static address may be zero, update the device address based on the dynamic address. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/sbrmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/amd-apml/sbrmi.c b/drivers/misc/amd-apml/sbrmi.c index ebe82ebc3fd74f..e9b595456347ca 100644 --- a/drivers/misc/amd-apml/sbrmi.c +++ b/drivers/misc/amd-apml/sbrmi.c @@ -674,7 +674,7 @@ static int sbrmi_i3c_probe(struct i3c_device *i3cdev) dev_set_drvdata(dev, (void *)rmi_dev); /* Need to verify for the static address for i3cdev */ - rmi_dev->dev_static_addr = i3cdev->desc->info.static_addr; + rmi_dev->dev_static_addr = i3cdev->desc->info.dyn_addr; hwmon_dev_name = devm_kasprintf(dev, GFP_KERNEL, "sbrmi_%s", sbrmi_addr_to_label(rmi_dev->dev_static_addr)); From 316db973db45e07603f8e20e9a949085e9c508d2 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 11:17:19 +0000 Subject: [PATCH 07/10] arm64: dts: Add device tree for Venice A0 RMI/TSI dev - Add device tree entries for Venice A0 to support 2P and 2X1P for RMI and TSI devices - This will provide the dynamic address to be used by user space applicaitons Signed-off-by: Akshay Gupta --- .../boot/dts/aspeed/aspeed-bmc-amd-congo.dts | 10 ++++++ .../boot/dts/aspeed/aspeed-bmc-amd-kenya.dts | 10 ++++++ .../dts/aspeed/aspeed-bmc-amd-morocco.dts | 34 +++++++++++++++++++ .../dts/aspeed/aspeed-bmc-amd-nigeria.dts | 34 +++++++++++++++++++ 4 files changed, 88 insertions(+) diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts index 122479c9859cf8..01ff8a62b81bb4 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts @@ -875,6 +875,16 @@ i2c-scl-hz = <1000000>; mctp-controller; + sbtsi_p0_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts index 75c101fd635a86..dcc0e0659a7e3b 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts @@ -565,6 +565,16 @@ i2c-scl-hz = <1000000>; mctp-controller; + sbtsi_p0_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts index c1814ff77b9e71..db2e673f3b3dd6 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts @@ -943,6 +943,16 @@ i2c-scl-hz = <1000000>; mctp-controller; + sbtsi_p0_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -964,6 +974,30 @@ i2c-scl-hz = <1000000>; mctp-controller; + /* TSI Venice A0 2P */ + sbtsi_p1_iod0: sbtsi@0,22401000118 { + reg = <0x0 0x224 0x01000118>; + assigned-address = <0x48>; + }; + + /* RMI Venice A0 2P */ + sbrmi_p1_iod0: sbrmi@0,22401001118 { + reg = <0x0 0x224 0x01001118>; + assigned-address = <0x38>; + }; + + /* TSI Venice A0 2X1P */ + sbtsi_2x1p_p1_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x48>; + }; + + /* RMI Venice A0 2X1P */ + sbrmi_2x1p_p1_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts index b80c1334bc3e02..d0a60440ad804a 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts @@ -714,6 +714,16 @@ i2c-scl-hz = <1000000>; mctp-controller; + sbtsi_p0_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -735,6 +745,30 @@ i2c-scl-hz = <1000000>; mctp-controller; + /* TSI Venice A0 2P */ + sbtsi_p1_iod0: sbtsi@0,22401000118 { + reg = <0x0 0x224 0x01000118>; + assigned-address = <0x48>; + }; + + /* RMI Venice A0 2P */ + sbrmi_p1_iod0: sbrmi@0,22401001118 { + reg = <0x0 0x224 0x01001118>; + assigned-address = <0x38>; + }; + + /* TSI Venice A0 2X1P */ + sbtsi_2x1p_p1_iod0: sbtsi@0,22400000118 { + reg = <0x0 0x224 0x00000118>; + assigned-address = <0x48>; + }; + + /* RMI Venice A0 2X1P */ + sbrmi_2x1p_p1_iod0: sbrmi@0,22400001118 { + reg = <0x0 0x224 0x00001118>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; From 3535c88cdda027f1b35f34e1a8311cf44d0b1109 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 11:22:35 +0000 Subject: [PATCH 08/10] arm64: dts: Add device tree for APML devices for Venice - Add device tree entries for APML devices (RMI/TSI) for Venice AB/B0 platforms. Signed-off-by: Akshay Gupta --- .../boot/dts/aspeed/aspeed-bmc-amd-congo.dts | 10 ++++++ .../boot/dts/aspeed/aspeed-bmc-amd-kenya.dts | 10 ++++++ .../dts/aspeed/aspeed-bmc-amd-morocco.dts | 34 +++++++++++++++++++ .../dts/aspeed/aspeed-bmc-amd-nigeria.dts | 34 +++++++++++++++++++ 4 files changed, 88 insertions(+) diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts index 01ff8a62b81bb4..5ed8fcf414800e 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts @@ -885,6 +885,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_iod0_AB: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0_AB: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts index dcc0e0659a7e3b..782c0a6e6367ab 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts @@ -575,6 +575,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_iod0_AB: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0_AB: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts index db2e673f3b3dd6..e117ffcca9dcf3 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts @@ -953,6 +953,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_iod0_AB: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0_AB: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -998,6 +1008,30 @@ assigned-address = <0x38>; }; + /* TSI Venice AB/B0 2P */ + sbtsi_p1_iod0_AB: sbtsi@0,22401000119 { + reg = <0x0 0x224 0x01000119>; + assigned-address = <0x48>; + }; + + /* RMI Venice AB/B0 2P */ + sbrmi_p1_iod0_AB: sbrmi@0,22401001119 { + reg = <0x0 0x224 0x01001119>; + assigned-address = <0x38>; + }; + + /* TSI Venice AB/B0 2x1P */ + sbtsi_2x1p_p1_AB_iod0: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x48>; + }; + + /* RMI Venice AB/B0 2x1P */ + sbrmi_2x1p_p1_AB_iod0: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts index d0a60440ad804a..c6292f243ead4a 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts @@ -724,6 +724,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_iod0_AB: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_iod0_AB: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -769,6 +779,30 @@ assigned-address = <0x38>; }; + /* TSI Venice AB/B0 2P */ + sbtsi_p1_iod0_AB: sbtsi@0,22401000119 { + reg = <0x0 0x224 0x01000119>; + assigned-address = <0x48>; + }; + + /* RMI Venice AB/B0 2P */ + sbrmi_p1_iod0_AB: sbrmi@0,22401001119 { + reg = <0x0 0x224 0x01001119>; + assigned-address = <0x38>; + }; + + /* TSI Venice AB/B0 2x1P */ + sbtsi_2x1p_p1_AB_iod0: sbtsi@0,22400000119 { + reg = <0x0 0x224 0x00000119>; + assigned-address = <0x48>; + }; + + /* RMI Venice AB/B0 2x1P */ + sbrmi_2x1p_p1_AB_iod0: sbrmi@0,22400001119 { + reg = <0x0 0x224 0x00001119>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; From bbc76291cf44724d162c4d7de7a3ef0dba30fe83 Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Fri, 10 Apr 2026 11:32:21 +0000 Subject: [PATCH 09/10] arm64: dts: Add device tree for APML devices for SP8 - Add device tree entries for APML devices (RMI/TSI) for SP8 platforms. Signed-off-by: Akshay Gupta --- .../boot/dts/aspeed/aspeed-bmc-amd-congo.dts | 10 ++++++ .../boot/dts/aspeed/aspeed-bmc-amd-kenya.dts | 10 ++++++ .../dts/aspeed/aspeed-bmc-amd-morocco.dts | 34 +++++++++++++++++++ .../dts/aspeed/aspeed-bmc-amd-nigeria.dts | 34 +++++++++++++++++++ 4 files changed, 88 insertions(+) diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts index 5ed8fcf414800e..19e1646dce5ae8 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-congo.dts @@ -895,6 +895,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts index 782c0a6e6367ab..d57ea059a61218 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-kenya.dts @@ -585,6 +585,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts index e117ffcca9dcf3..a1a04a3d63e3d6 100644 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-morocco.dts @@ -963,6 +963,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -1032,6 +1042,30 @@ assigned-address = <0x38>; }; + /* TSI SP8 2P */ + sbtsi_p1_sp8: sbtsi@0,2240100011A { + reg = <0x0 0x224 0x0100011A>; + assigned-address = <0x48>; + }; + + /* RMI SP8 2P */ + sbrmi_p1_sp8: sbrmi@0,2240100111A { + reg = <0x0 0x224 0x0100111A>; + assigned-address = <0x38>; + }; + + /* TSI SP8 2x1P */ + sbtsi_2x1p_p1_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x48>; + }; + + /* RMI SP8 2x1P */ + sbrmi_2x1p_p1_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; diff --git a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts index c6292f243ead4a..9f15b8dd8861b5 100755 --- a/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts +++ b/arch/arm64/boot/dts/aspeed/aspeed-bmc-amd-nigeria.dts @@ -734,6 +734,16 @@ assigned-address = <0x3c>; }; + sbtsi_p0_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x4c>; + }; + + sbrmi_p0_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x3c>; + }; + scoob_p0: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; @@ -803,6 +813,30 @@ assigned-address = <0x38>; }; + /* TSI SP8 2P */ + sbtsi_p1_sp8: sbtsi@0,2240100011A { + reg = <0x0 0x224 0x0100011A>; + assigned-address = <0x48>; + }; + + /* RMI SP8 2P */ + sbrmi_p1_sp8: sbrmi@0,2240100111A { + reg = <0x0 0x224 0x0100111A>; + assigned-address = <0x38>; + }; + + /* TSI SP8 2x1P */ + sbtsi_2x1p_p1_sp8: sbtsi@0,2240000011A { + reg = <0x0 0x224 0x0000011A>; + assigned-address = <0x48>; + }; + + /* RMI SP8 2x1P */ + sbrmi_2x1p_p1_sp8: sbrmi@0,2240000111A { + reg = <0x0 0x224 0x0000111A>; + assigned-address = <0x38>; + }; + scoob_2x1p_p1: scoob@0,22400002118 { reg = <0x0 0x224 0x00002118>; mrl = <69>; From d91bd9fad4f0b91d2ca8b3dc0490365db998699c Mon Sep 17 00:00:00 2001 From: Akshay Gupta Date: Mon, 13 Apr 2026 07:25:33 +0000 Subject: [PATCH 10/10] misc: amd-apml: Add I3C device IDs - Add I3C device IDs for the Venice AB/B0 and SP8 platforms, for RMI and TSI APML devices. Signed-off-by: Akshay Gupta --- drivers/misc/amd-apml/apml_sbtsi.c | 8 ++++---- drivers/misc/amd-apml/sbrmi.c | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/misc/amd-apml/apml_sbtsi.c b/drivers/misc/amd-apml/apml_sbtsi.c index 566e8670d71c9a..0baa9514947a4a 100644 --- a/drivers/misc/amd-apml/apml_sbtsi.c +++ b/drivers/misc/amd-apml/apml_sbtsi.c @@ -605,15 +605,15 @@ static void sbtsi_i2c_remove(struct i2c_client *client) static const struct i3c_device_id sbtsi_i3c_id[] = { /* (MID, PARTID, EXTIN, DRVDATA) */ I3C_DEVICE_EXTRA_INFO(0, 0x0000, 0x118, NULL), /* P0 - IOD0 - SBTSI */ - I3C_DEVICE_EXTRA_INFO(0, 0x0001, 0x118, NULL), /* P0 - IOD1 - SBTST */ I3C_DEVICE_EXTRA_INFO(0, 0x0100, 0x118, NULL), /* P1 - IOD0 - SBTSI */ - I3C_DEVICE_EXTRA_INFO(0, 0x0101, 0x118, NULL), /* P1 - IOD1 - SBTSI */ I3C_DEVICE_EXTRA_INFO(0x112, 0, 0x1, NULL), I3C_DEVICE_EXTRA_INFO(0, 0x0, 0x0, NULL), I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x118, NULL), /* Socket:0, IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x1, 0x118, NULL), /* Socket:0, IOD:1 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x118, NULL), /* Socket:1 IOD:0 */ - I3C_DEVICE_EXTRA_INFO(0x112, 0x101, 0x118, NULL), /* Socket:1 IOD:1 */ + I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x119, NULL), /* Venice Socket:0, IOD:0 AB/B0 */ + I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* Venice Socket:1 IOD:0 AB/B0 */ + I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x11A, NULL), /* SP8 Socket:0, IOD:0 */ + I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x11A, NULL), /* SP8 Socket:1 IOD:0 */ {} }; MODULE_DEVICE_TABLE(i3c, sbtsi_i3c_id); diff --git a/drivers/misc/amd-apml/sbrmi.c b/drivers/misc/amd-apml/sbrmi.c index e9b595456347ca..8b462aae50a59a 100644 --- a/drivers/misc/amd-apml/sbrmi.c +++ b/drivers/misc/amd-apml/sbrmi.c @@ -813,6 +813,10 @@ static const struct i3c_device_id sbrmi_i3c_id[] = { I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x118, NULL), /* Socket:0, IOD:0 */ I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x118, NULL), /* Socket:1 IOD:0 */ I3C_DEVICE_EXTRA_INFO(0, 0x0, 0x0, NULL), + I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x119, NULL), /* SP7 Socket:0, IOD:0 AB/B0*/ + I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x119, NULL), /* SP7 Socket:1 IOD:0 AB/B0*/ + I3C_DEVICE_EXTRA_INFO(0x112, 0x0, 0x11A, NULL), /* SP8 Socket:0, IOD:0 */ + I3C_DEVICE_EXTRA_INFO(0x112, 0x100, 0x11A, NULL), /* SP8 Socket:1 IOD:0 */ {} }; MODULE_DEVICE_TABLE(i3c, sbrmi_i3c_id);