Messages in this thread |  | | From | Jihong Min <> | | Subject | [PATCH v2 0/2] AMD PROM21 xHCI temperature hwmon support | | Date | Thu, 7 May 2026 05:40:32 +0900 |
| |
Hi,
This series adds hwmon support for the temperature sensor exposed by AMD PROM21 xHCI controllers. The temperature value is read through a vendor-specific index/data register pair in the xHCI PCI MMIO BAR.
v1 implemented this directly under drivers/usb/host. Based on review feedback, v2 splits the support into a generic xhci-pci auxiliary-device interface and a standalone hwmon driver under drivers/hwmon. xhci-pci creates the auxiliary child only for PCI IDs matched by its internal table, currently only AMD 1022:43fd, and the hwmon driver binds to that child through the auxiliary bus.
The PROM21 hwmon driver registers the hwmon device under the parent PCI function so userspace reports it as a PCI adapter. The auxiliary driver still owns the lifetime and unregisters the hwmon device before xhci-pci tears down the HCD.
I tested register access while the parent xHCI PCI function was suspended. The temperature register did not return a valid value without runtime-resuming the device. v2 therefore keeps the default behavior of allowing a temperature read to wake the xHCI PCI device, and adds allow_pm_switch=N for users who prefer reads not to wake the device. In that mode a read returns -EAGAIN while the device is suspended.
Changes in v2: - split the original single patch into a two-patch series - add a generic xhci-pci auxiliary-device interface - move PROM21 hwmon support to drivers/hwmon as an auxiliary driver - avoid linking hwmon-specific code into xhci-hcd - add Documentation/hwmon/prom21-hwmon.rst - document register offsets, conversion formula, sysfs attributes, and allow_pm_switch behavior
Sincerely, Jihong Min
Jihong Min (2): usb: xhci-pci: add generic auxiliary device interface hwmon: add initial support for AMD PROM21 xHCI temperature sensor
Documentation/hwmon/index.rst | 1 + Documentation/hwmon/prom21-hwmon.rst | 84 ++++++++ drivers/hwmon/Kconfig | 11 + drivers/hwmon/Makefile | 1 + drivers/hwmon/prom21-hwmon.c | 300 +++++++++++++++++++++++++++ drivers/usb/host/Kconfig | 10 + drivers/usb/host/xhci-pci.c | 114 ++++++++++ 7 files changed, 521 insertions(+) create mode 100644 Documentation/hwmon/prom21-hwmon.rst create mode 100644 drivers/hwmon/prom21-hwmon.c
-- 2.53.0
|  |