New AMD Linux Driver Patches Enable I3C HCI Support
One of the newest patch series out from AMD this week is on providing I3C HCI driver support for their MIPI I3C IP block found within their latest processors.
MIPI's I3C is the successor to I2C for a low-power, two-wire utility and control bus interface to connect the processor to different peripheral devices. The I3C and I3C HCI (Host Controller Interface) specifications retain backwards compatibility with legacy I2C. I3C has a range of uses from embedded/IoT up through server platforms and other devices. I3C support is found on AMD processors going back to Zen 4.
The Linux support for I3C is provided by the "mipi-i3c-hci" driver for the host controller interface and after all it's designed to be re-used across hardware platforms and adaptable. The MIPI I3C HCI driver was mainlined back in 2020 but now for supporting the AMD I3C IP block some alterations are needed.
The MIPI I3C HCI driver to this point has catered to platforms using DeviceTree bindings while with AMD's new patches it extends the support to work on ACPI-enabled x86 systems. Besides allowing the ACPI matching via the MIPI0100 ACPI device ID, some changes to the driver were also warranted to address defects in the AMD I3C IP:
So for those interested in I3C, this patch series gets the AMD I3C HCI support ironed out and is currently under review on the Linux kernel mailing list.
MIPI's I3C is the successor to I2C for a low-power, two-wire utility and control bus interface to connect the processor to different peripheral devices. The I3C and I3C HCI (Host Controller Interface) specifications retain backwards compatibility with legacy I2C. I3C has a range of uses from embedded/IoT up through server platforms and other devices. I3C support is found on AMD processors going back to Zen 4.
The Linux support for I3C is provided by the "mipi-i3c-hci" driver for the host controller interface and after all it's designed to be re-used across hardware platforms and adaptable. The MIPI I3C HCI driver was mainlined back in 2020 but now for supporting the AMD I3C IP block some alterations are needed.
The MIPI I3C HCI driver to this point has catered to platforms using DeviceTree bindings while with AMD's new patches it extends the support to work on ACPI-enabled x86 systems. Besides allowing the ACPI matching via the MIPI0100 ACPI device ID, some changes to the driver were also warranted to address defects in the AMD I3C IP:
"The AMD SoC includes an I3C IP block as part of the Fusion Controller Hub (FCH). This series introduces the initial driver support to enable the I3C IP block on AMD's latest processors.
Currently, the code is closely tied to dt-bindings. This initial set aims to decouple some of these bindings by adding the MIPI ID, allowing the current driver to support ACPI-enabled x86 systems.
It was discovered that the AMD I3C controller has several hardware issues, including:
- Non-functional DMA mode (defaulting to PIO mode)
- Issues with Open-Drain (OD) and Push-Pull (PP) timing parameters
- Command response buffer threshold values
All of these issues have been addressed in this series."
So for those interested in I3C, this patch series gets the AMD I3C HCI support ironed out and is currently under review on the Linux kernel mailing list.
1 Comment