[PATCH v3 3/3] i3c: mipi-i3c-hci: Add support for AMD_PT I3C controller
Jian-Ming Liao
tim678910 at gmail.com
Mon Aug 17 01:26:47 PDT 2026
Add support for the AMD_PT I3C controller by introducing the following
changes:
- Add AMD_PT I3C controller platform device ID in core.c.
- Register AMD_PT I3C controller PCI ID in mipi-i3c-hci-pci.c.
Co-developed-by: Patrick Yen <Patrick_Yen at asmedia.com.tw>
Signed-off-by: Patrick Yen <Patrick_Yen at asmedia.com.tw>
Signed-off-by: Jian-Ming Liao <Jm_Liao at asmedia.com.tw>
Reviewed-by: Frank Li <Frank.Li at nxp.com>
---
v3:
- Restored Frank's Reviewed-by tag from v1 (Adrian).
- Formatted platform_device_id entry with '{' on a separate line (Adrian).
- Moved amd_pt_info definition to match device table order (Adrian).
- Added space before closing brace in mipi_i3c_hci_pci_devices[] (Adrian).
- Aligned From: and Signed-off-by: email addresses (Adrian).
v2:
- No changes (rebased on top of v2 patch series).
drivers/i3c/master/mipi-i3c-hci/core.c | 4 ++++
drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 9 +++++++++
2 files changed, 13 insertions(+)
diff --git a/drivers/i3c/master/mipi-i3c-hci/core.c b/drivers/i3c/master/mipi-i3c-hci/core.c
index dccc974ef15a..27dce02e7931 100644
--- a/drivers/i3c/master/mipi-i3c-hci/core.c
+++ b/drivers/i3c/master/mipi-i3c-hci/core.c
@@ -1198,6 +1198,10 @@ static const struct platform_device_id i3c_hci_driver_ids[] = {
HCI_QUIRK_DMA_ABORT_REQUIRES_PIO_RESET |
HCI_QUIRK_DMA_REQUIRES_HC_ABORT,
},
+ {
+ .name = "amd-pt-i3c-hci",
+ .driver_data = HCI_QUIRK_RPM_ALLOWED,
+ },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(platform, i3c_hci_driver_ids);
diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
index 5a9e2a43eff8..cf61e056bc2a 100644
--- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
+++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
@@ -223,6 +223,13 @@ static const struct mipi_i3c_hci_pci_info intel_si_2_info = {
.control_instance_pm = true,
};
+static const struct mipi_i3c_hci_pci_info amd_pt_info = {
+ .name = "amd-pt-i3c-hci",
+ .id = {0},
+ .instance_offset = {0},
+ .instance_count = 1,
+};
+
static int mipi_i3c_hci_pci_find_instance(struct mipi_i3c_hci_pci *hci, struct device *dev)
{
for (int i = 0; i < INST_MAX; i++) {
@@ -475,6 +482,8 @@ static const struct pci_device_id mipi_i3c_hci_pci_devices[] = {
/* Nova Lake-H */
{ PCI_VDEVICE(INTEL, 0xd37c), .driver_data = (kernel_ulong_t)&intel_mi_1_info },
{ PCI_VDEVICE(INTEL, 0xd36f), .driver_data = (kernel_ulong_t)&intel_mi_2_info },
+ /* AMD_PT */
+ { PCI_VDEVICE(AMD, 0x444c), .driver_data = (kernel_ulong_t)&amd_pt_info },
{ }
};
MODULE_DEVICE_TABLE(pci, mipi_i3c_hci_pci_devices);
--
2.43.0
More information about the linux-i3c
mailing list