summaryrefslogtreecommitdiff
path: root/Documentation/hwmon
AgeCommit message (Collapse)Author
6 daysMerge tag 'hwmon-for-v7.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: "New drivers: - Axiado AX3000 and AX3005 PWM fan controller - AX3000/AX3005 TSADC - HONOR FMI-XX - Minisforum UM780 XTX EC monitoring and fan control - pmbus: MAX20826, MAX20855B, MAX20908, MAX20912, MAX20826, and MAX20916 - pmbus: Infineon TDA38740/TDA38725 Added support to existing drivers: - asus-ec-sensors: ROG STRIX X670E-A GAMING WIFI and ROG STRIX Z490-A GAMING - asus_rog_ryujin: ROG Ryujin III 360 - dell-smm: Dell 16 DC16250, Dell OptiPlex 7090, Dell Precision 3650 Tower, Add Latitude 5420 - it87: IT8613E - k10temp: 1ah/80h devices. Drop support for Hygon devices (support to be re-added with separate patches later) - lm63: Sensylink CTF2301 - nct6683: MSI MAG B550M MORTAR MAX WIFI, MSI MAG B650 TOMAHAWK WIFI, MSI MAG B650M MORTAR WIFI (MS-7D76), and MSI MAG B850M MORTAR WIFI - nct6775: NCT6122D and NCT6126D - pmbus/isl68137: Renesas RAA229639 and RAA229640 - pmbus/max34440: ADPM12300 - pmbus/tps25990: TPS1689 - pmbus/tps53679: TPS53622, TPS53659 and TPS536C7 - pmbus/xdpe1a2g7b: xdpe1a2g7c - sht4x: Sensirion STS4x - socfpga: Agilex 5 - yogafan: Lenovo Yoga Pro 9 16IMH9, Yoga 14cACN 2021, IdeaPad 3 15ALC6 Ub, Yoga 740-15IML Core updates: - Support for currX_emergency and inX_[l]emergency attributes Notable bug fixes and changes: - Add missing locks to corsair-cpro, ftsteutates, nct7904, and npcm750-pwm-fan drivers - Fix jiffies wraparound in tmp102 and tmp108 drivers - Documentation updates (document missing chip support, typo fixes, clarifications) - pmbus/ltc4286: Add writable shunt_resistor sysfs attribute - coretemp: Document sysfs numbering and label meaning, fix handling of isolated SMT siblings, read TjMax only when refreshing the temperature, refresh the temperature on the first read, and return -ENODATA for invalid temperature readings - spd5118: Avoid probing when 16-bit addressing is enabled, and select page 0 unconditionally during probe - arctic_fan_controller: Default PWM cache to MCU 40%, Dual-license GPL-2.0-or-later OR BSD-2-Clause, and update maintainer address Various other minor bug fixes and improvements" * tag 'hwmon-for-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (97 commits) hwmon: (npcm750-pwm-fan) serialize PWM register updates hwmon: (nct7904) serialise the watchdog and sensors hwmon: (ftsteutates) serialise the watchdog and sensors hwmon: (acpi_power_meter) Fix 18.45 TW bug hwmon: (sht3x) Return the consumed count for heater writes hwmon: (mcp9982) Update the interval cache only after successful writes hwmon: (gigabyte_waterforce) reject short input reports hwmon: (coretemp) Fix handling of isolated SMT siblings hwmon: (coretemp) Document sysfs numbering and label meaning hwmon: (asus_wmi_sensors) Reword BIOS upgrade advice hwmon: Replace __MODULE_STRING() with __stringify() hwmon:(pmbus/xdpe1a2g7b) Add support for xdpe1a2g7c controller dt-bindings: trivial-devices: Add support for XDPE1A2G7C hwmon: (pmbus/isl68137) Add Renesas RAA229639 and RAA229640 dt-bindings: hwmon: pmbus/isl68137: Add Renesas RAA229639 and RAA229640 hwmon: (coretemp) Read TjMax only when refreshing the temperature hwmon: (pmbus/ibm-cffps) Avoid format truncation warnings hwmon: (dell-smm) Add Dell 16 DC16250 to fan control whitelist hwmon: (nct6683) Add more MSI boards to list of tested boards hwmon: (nct6683) Add MSI B850M to list of tested boards ...
13 dayshwmon: (coretemp) Document sysfs numbering and label meaningAsaf Nuri Bertizlioğlu
The documentation says that all sysfs entries are named with their core_id, and that the "Core X" label contains the processor number. Neither is accurate. create_core_attrs() numbers the per-core attributes core_id + 2 and always uses temp1 for the package sensor, and show_label() prints topology_core_id(), not the logical CPU number. The difference is easy to see on hybrid CPUs. On an i7-14700F, the "Core 4" label is on temp6 and belongs to CPUs 2 and 3, and the E-cores report core IDs 32 to 43. Describe the actual numbering. The mismatch was found by an LLM comparing the documentation with the code, and verified on the i7-14700F above. Assisted-by: LLM Signed-off-by: Asaf Nuri Bertizlioğlu <ycistak@gmail.com> Tested-by: Ximing Zhang <xzhangjr@gmail.com> Reviewed-by: Ximing Zhang <xzhangjr@gmail.com> Link: https://patch.msgid.link/20261015171759.704526-1-ycistak@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (asus_wmi_sensors) Reword BIOS upgrade adviceQian Xiao
The Known Issues section suggests that upgrading to a BIOS with WMI method version two or greater should rectify the problem. However, the driver refuses to bind when the BIOS reports a version below two, so every system using the driver already meets that condition and the advice does not help. Instead, suggest that upgrading to a more recent BIOS version might help. While at it, fix a typo in the preceding sentence. Link: https://lore.kernel.org/linux-hwmon/CAFGXJCm6ZWK0NsFhZ1_ycgYtTTT3nhqj9mose60t+Rrry1aPvw@mail.gmail.com/ Suggested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Qian Xiao <heyheyco@gmail.com> Link: https://patch.msgid.link/20261016163509.249020-1-heyheyco@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (nct6683) Add more MSI boards to list of tested boardsGuenter Roeck
Tested with the following boards: - MSI MAG B550M MORTAR MAX WIFI (MS-7C94) - MSI MAG B650 TOMAHAWK WIFI (MS-7D75) - MSI MAG B650M MORTAR WIFI (MS-7D76) Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (nct6683) Add MSI B850M to list of tested boardsTomasz Bojanowski
Tested on MSI MAG B850M MORTAR WIFI with NCT6687D EC firmware version 0.0 build 03/10/25. The driver loads without force=1 and reports voltages, fan speeds and temperatures. Signed-off-by: Tomasz Bojanowski <tomasz@bojanowski.me> Link: https://patch.msgid.link/20260921211304.74729-1-tomasz@bojanowski.me [groeck: Reordered to retain alphabetical order of boards] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: add Axiado AX3000 and AX3005 PWM fan controller driverPetar Stepanovic
Add support for the PWM fan controller found on the Axiado AX3000 and AX3005 SoCs. The controller uses a hardware tachometer block and interrupt to measure fan speed. Fan speed is controlled through a PWM signal supplied by an external PWM controller. Register the controller with the hwmon subsystem and expose the standard fan1_input and pwm1 attributes. The physical fan is represented by a fan child node containing the PWM specifier and the optional pulses-per-revolution property. If pulses-per-revolution is not specified, the driver uses two pulses per revolution. The driver was tested on AX3000 and AX3005 boards. Signed-off-by: Petar Stepanovic <pstepanovic@axiado.com> Link: https://patch.msgid.link/20260921-axiado-ax3000-pwm-fan-v3-2-3def8b6ffec9@axiado.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725Colin Huang
Add a PMBus driver for Infineon TDA38740 and TDA38725 single-voltage synchronous buck regulators. Signed-off-by: Colin Huang <u8813345@gmail.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://patch.msgid.link/20260918-add-tda38740-and-tda38725-v6-2-a8b11018d850@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: documentation: vexpress: point the DT binding reference at the schemaQuchaosheng
Documentation/hwmon/vexpress.rst points at Documentation/devicetree/bindings/hwmon/vexpress.txt for the device tree binding of the arm,vexpress-volt, -amp, -temp, -power and -energy sensors. That file only restates the compatibles and the label property, which the arm/vexpress-config.yaml schema describes now. Point the reference there. Assisted-by: LLM Signed-off-by: Quchaosheng <quchaosheng000406@163.com> Link: https://patch.msgid.link/20260917115818.540344-1-quchaosheng000406@163.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus/tps53679) Add support for TPS536C7Sanman Pradhan
TPS536C7 is a dual-channel D-CAP+ step-down controller whose channels are distributed across a configurable number of phases (N+M, up to 12 total). Whether channel B (PMBus page 1) exists depends on the phase configuration register, so the page count is derived at probe time. Factor the TPS53676 phase-map parsing into a shared helper and reuse it for TPS536C7. Only aggregate per-channel telemetry is exposed: leave info->phases[] unset so the PMBus core never programs the PHASE selector on every read (and because TPS536C7 can place up to 12 phases on channel A, exceeding PMBUS_PHASES). Report VOUT in linear format like TPS53676. Since the core never programs PHASE, set it to 0xff on each populated page so READ_IOUT reports the aggregate channel current, and verify it (PHASE can be write-protected). Fail identification if aggregate selection cannot be established, since otherwise a single phase current could be reported as the channel total. A configuration with no channel-A phase is rejected with -EOPNOTSUPP: the PMBus core models pages as the contiguous range 0..pages-1 and cannot represent a channel-A-absent topology. On the tested TPS536C7 (device ID 54 49 53 6c 70 00, CAPABILITY 0xd0), block reads of IC_DEVICE_ID and USER_DATA_03 return -EBADMSG with PEC enabled, while retrying those two reads without PEC returns the expected 6- and 24-byte payloads. Standard byte/word telemetry keeps using PEC, so only those two identification reads fall back to no-PEC. Co-developed-by: Senthil Muniyappan <smuniyappan@juniper.net> Co-developed-by: Vaibhav Agarwal <avaibhav@juniper.net> Signed-off-by: Sanman Pradhan <psanman@juniper.net> Link: https://patch.msgid.link/20260915164823.160977-4-sanman.pradhan@hpe.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus/max34440) Add support for ADPM12300Alexis Czezar Torreno
ADPM12300 is a quarter brick DC/DC Power Module. It is a high power non-isolated converter capable of delivering regulated 12V with continuous power level of 3000W. Uses PMBus. Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Link: https://patch.msgid.link/20260914-dev_adpm12300-v1-1-15fc8143d457@analog.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (lm63) Add Sensylink CTF2301 supportTroy Mitchell
Add Sensylink CTF2301 support to the LM63 driver. CTF2301 follows the LM63-style temperature, tachometer, and PWM register layout, while using a 12-bit local temperature register and requiring the ALERT/TACH pin to be configured for tachometer input. Register an optional thermal cooling device when the device tree node provides #cooling-cells, allowing thermal zones to control the fan through the existing PWM path without changing behavior for existing LM63-family users. Signed-off-by: Troy Mitchell <troy.mitchell@linux.dev> Link: https://patch.msgid.link/20260914-ctl2301-v5-4-522def70acb4@linux.dev Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (socfpga) add Agilex 5 channel mappingTze Yee Ng
Add temperature channel mapping for Agilex 5 and bind it to the "intel,agilex5-svc" compatible string. Reuse the Agilex voltage channels. Agilex 5 omits temperature channel 2 (top-left corner) because that sensor is not present; remaining sensors keep Agilex channel numbers. The "intel,agilex5-svc" compatible is added to the stratix10-svc match table by a separate patch [1]. Without that change the service layer does not bind on Agilex 5, so the socfpga-hwmon device is never created; this patch depends on it. Update the socfpga-hwmon documentation to list Agilex 5, the matching compatible string, and the SDM temperature/voltage channel tables. Signed-off-by: Tze Yee Ng <tze.yee.ng@altera.com> Link: https://lore.kernel.org/all/20260907082203.2639395-4-adrian.ho.yin.ng@altera.com/ [1] Link: https://patch.msgid.link/41bb317cbfb6f4e2711581f2ccb22071db17b19e.1789373027.git.tze.yee.ng@altera.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus) add support for MAX20826 and similar devicesNuno Sá
The MAX20826 IC and similar provide a high-density, flexible and scalable dual-loop solution for high current cores for AI applications. These are dual loop solutions multiphase voltage regulators. Between Rails A and B, MAX20855B and MAX20908 supports up to 8 phases total configurable from 8+0 to 4+4 phases, MAX20912 supports up to 12 phases from 12+0 to 6+6, and MAX20826 and MAX20916 supports up to 16 phases from 16+0 to 8+8. Co-developed-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Signed-off-by: Nuno Sá <nuno.sa@analog.com> Link: https://patch.msgid.link/20260911-hwmon-max20826-support-v2-4-5e30cbd97d84@analog.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 daysDocumentation: hwmon: (nct6775) Document NCT6116D/NCT6122D/NCT6126D supportPaul Louvel
The NCT6112D/NCT6114D/NCT6116D family has been supported by the driver since commit 29c7cb485b32 ("hwmon: (nct6775) Integrate new model nct6116"), but was never added to the list of supported chips in the driver documentation. Also add the NCT6122D/NCT6126D. Assisted-by: opencode:z-ai/glm-5.3-flash Signed-off-by: Paul Louvel <paul.louvel@bootlin.com> Link: https://patch.msgid.link/20260910-bootlin-hwmon-nct6126-v2-1-ee629ab35e49@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (arctic_fan_controller) Dual-license GPL-2.0-or-later OR BSD-2-ClauseAureo Serrano de Souza
The in-tree driver is solely authored by ARCTIC. Keep the existing GPL-2.0-or-later grant and add BSD-2-Clause so the files may be used under either license. Signed-off-by: Aureo Serrano de Souza <aureo.serrano@arctic.de> Link: https://patch.msgid.link/20260910050401.279868-3-aureo.serrano@arctic.de Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (arctic_fan_controller) Default PWM cache to MCU 40%Aureo Serrano de Souza
The device has no GET_REPORT and every OUT report carries all 10 channels, so the cache has to start at some value. Starting at 0 means the first sysfs write to a single channel also sends 0% on the other nine. The MCU factory default is 40%. Initialize pwm_duty[] to 102 (40% on the 0-255 sysfs scale) at probe and on reset-resume. Any initial cache can be stale if the module is reloaded without a device reset. 40% matches the hardware after power-on or power-loss resume, and a first single-channel write leaves the fans running at a safe speed. PWM is still not taken from periodic IN reports: the device is manual-only and the host cache stays authoritative after the first successful write. Signed-off-by: Aureo Serrano de Souza <aureo.serrano@arctic.de> Link: https://patch.msgid.link/20260910050401.279868-2-aureo.serrano@arctic.de Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 daysDocumentation: hwmon: (yogafan) Update model reference table and contributorsSergio Melas
Add the new IdeaPad 3 15ALC6 Ub model and Yoga 740-15IML, update existing model entries, include corresponding contributors, and adjust the reStructuredText table layout and column separators to accommodate the longer strings and prevent Sphinx build warnings. Signed-off-by: Sergio Melas <sergiomelas@gmail.com> Link: https://patch.msgid.link/20260910184322.1816996-1-sergiomelas@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: Add driver for AX3000/AX3005 TSADCPetar Stepanovic
Add a hwmon driver for the temperature sensor ADC (TSADC) controller found on Axiado AX3000 and AX3005 SoCs. The controller measures temperature at locations within the SoC silicon die. Each TSADC controller is registered as a separate hwmon device and exposes one read-only temperature channel. The sensor is configured for continuous conversion during probe. The current TSADC hardware does not support threshold or alarm reporting. All TSADC interrupt sources are masked during initialization, and only the current temperature is exposed through temp1_input. The averaged 12-bit ADC code is converted to millidegrees Celsius using a lookup table with linear interpolation between adjacent entries. Raw values outside the characterized lookup-table range are clamped to the nearest supported temperature. Signed-off-by: Petar Stepanovic <pstepanovic@axiado.com> Link: https://patch.msgid.link/20260903-axiado-ax3000-tsadc-v1-2-a8a0f3b251f5@axiado.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 daysdocs: hwmon: sysfs-interface: Fix bracketManuel Ebner
Add missing ')'. Signed-off-by: Manuel Ebner <manuelebnerli@mailbox.org> Acked-by: Randy Dunlap <rdunlap@infradead.org> Link: https://patch.msgid.link/20260903161204.735276-2-manuelebnerli@mailbox.org Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (asus_rog_ryujin) Add ROG Ryujin III 360Zac Lanzon
Add the USB product ID of the base ASUS ROG RYUJIN III 360 (0b05:1aa2, USB product string "ROG RYUJIN III"). It uses the same status report layout and cooler duty channel as the RYUJIN III EXTREME, EVA and WHITE editions, so it can share rog_ryujin_iii_info. Tested on a ROG RYUJIN III 360: coolant temperature, pump speed and internal fan speed report plausible values that track load, and the internal fan follows pwm2 (30% -> 870 RPM, 40% -> 1590 RPM). Assisted-by: Claude:claude-fable-5-1 Signed-off-by: Zac Lanzon <lanzonza@gmail.com> Link: https://patch.msgid.link/20260903004054.502171-1-lanzonza@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 daysDocumentation: hwmon: nct6775: Document NCT6116D/NCT6122D/NCT6126D supportPaul Louvel
The NCT6112D/NCT6114D/NCT6116D family has been supported by the driver since commit 29c7cb485b32 ("hwmon: (nct6775) Integrate new model nct6116"), but was never added to the list of supported chips in the driver documentation. Also add the NCT6122D/NCT6126D. Assisted-by: opencode:z-ai/glm-5.3-flash Signed-off-by: Paul Louvel <paul.louvel@bootlin.com> Link: https://patch.msgid.link/20260909-bootlin-hwmon-nct6126-v1-1-4e85615fef10@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (asus-ec-sensors) add ROG STRIX Z490-A GAMINGMario Nuevo
The ROG STRIX Z490-A GAMING and Z490-F GAMING are essentially the same board apart from the F's onboard WiFi module, which isn't wired through the EC, so they share the same EC sensor layout. The Z490-A exposes the same EC sensor set as the Z490-F (chipset, CPU, motherboard, T_Sensor and VRM temperatures plus CPU_OPT and VRM HS fans) at the same EC registers, so reuse the Z490-F board_info for it. Signed-off-by: Mario Nuevo <marionuevo@gmail.com> Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com> Link: https://patch.msgid.link/20260905080346.1957380-1-eugene.shalygin@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus/tps53679) Add support for TPS53622 and TPS53659Sanman Pradhan
TPS53622 and TPS53659 are dual-channel D-CAP+ step-down controllers that use the VID VOUT format and VOUT_MODE identification like the existing TPS53679/TPS53688, so they reuse tps53679_identify(). Shorten the Kconfig prompt to the family name and list the supported chips in the help text instead; this also adds TPS53685, which is already supported by the driver but was missing from the list. Update the driver documentation, including the per-attribute lists, and fix an existing "TPS53588" typo (should be TPS53688) in those lists. Signed-off-by: Sanman Pradhan <psanman@juniper.net> Link: https://patch.msgid.link/20260901211129.360792-3-sanman.pradhan@hpe.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: Add Minisforum UM780 XTX EC monitoring and fan controlSebastián Peyrott
Add a DMI-gated hwmon driver for the embedded controller used by the Minisforum UM780 XTX with board revision 1.1 and BIOS 1.06. Expose the CPU and system fan control temperatures and tachometers. The tachometer protocol returns one byte per OEM command, so serialize transactions and use high-low-high sampling to reject torn values. Allow selecting either complete OEM CPU fan profile through pwm1_enable and changing the two validated system fan transition temperatures through standard automatic-curve attributes. Cache coherent settings and restore them after the firmware reloads defaults following resume. Signed-off-by: Sebastián Peyrott <speyrott@gmail.com> Link: https://patch.msgid.link/20260902000509.191115-1-speyrott@gmail.com [groeck: Folded fixes for gcc-11 build failure and overflow into this patch] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (asus-ec-sensors) add ROG STRIX X670E-A GAMING WIFIAsai Neko
The ROG STRIX X670E-A GAMING WIFI is missing from the driver's DMI table. Consequently, the board lookup fails with -ENODEV, asus_ec_sensors does not load, and no asusec hwmon device or EC temperature readings are available. The board uses the same EC sensors, access mutex, and AMD 600-series register layout as the ROG STRIX X670E-E GAMING WIFI. Add its DMI entry using the existing X670E-E board information and document the board as supported. Before the change, there was no asusec device under /sys/class/hwmon and there were no EC readings. After the change, the driver registered four sensors with representative readings of 57-61 C for CPU, 68-71 C for CPU package, 43-44 C for motherboard, and 49-52 C for VRM. The readings correlated with nct6775 and k10temp. Repeated polling with both hwmon drivers loaded produced no EC access, bank-switch, concurrent access, or locking errors. Tested on an ASUS ROG STRIX X670E-A GAMING WIFI with BIOS 2704. Signed-off-by: Asai Neko <sugar@sne.moe> Reviewed-by: Eugene Shalygin <eugene.shalygin@gmail.com> Link: https://patch.msgid.link/20260901-asus-x670e-a-hwmon-fix-v2-1-759406c2a61a@sne.moe Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (it87) add IT8613E supportbenoit.masson
Teach the Super I/O probe path to recognize IT8613E and add its hardware monitoring configuration. Add feature flags, 11 mV ADC scaling, the IT8665-style PWM register map, six PWM temperature mapping sources, and GPIO pin-mux checks. Only three temperature inputs are currently known, so retain the existing three temperature limit and offset resources. Document the chip in the hwmon guide. Signed-off-by: benoit.masson <yahoo@perenite.com> Signed-off-by: Jerome Tollet <jerome.tollet@gmail.com> Link: https://patch.msgid.link/5afd336442307450f77467b2a749d405970a2099.1788040385.git.jerome.tollet@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (sht4x) Add support for Sensirion STS4x temperature sensorsAlessandro Zini
The Sensirion STS4x series is the temperature-only variant of the SHT4x family. It shares the same I2C command set, conversion formulas, CRC checksum, and timing with the SHT4x, but only returns temperature data (3 bytes: 2 data bytes + 1 CRC byte). Add support for the STS4x series by dynamically adjusting the read response length, suppressing humidity channel attributes when probed as STS4x, and omitting heater sysfs attributes. Link: https://sensirion.com/resource/datasheet/sts4x Signed-off-by: Alessandro Zini <alessandro.zini@siemens.com> Link: https://patch.msgid.link/20260821091924.18975-3-alessandro.zini@siemens.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (pmbus/tps25990) Add TPS1689 supportStoyan Bogdanov
Extend the existing TPS25990 driver to support the TPS1689 eFuse, as both devices share the same command interface and functionality. Update the documentation to include TPS1689 support. Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com> Link: https://patch.msgid.link/20260817101455.3526260-4-sbogdanov@baylibre.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: Add fan monitoring support for HONOR FMI-XXNikita Dubrovskih
The HONOR FMI-XX firmware exposes a serialized \\GFNS ACPI method. It returns a status byte and a 16-bit fan speed in RPM for either of two firmware channels. Add a DMI-restricted, read-only hwmon driver using that firmware interface. The driver deliberately exposes no fan control or direct Embedded Controller access. The interface was validated on firmware 1.09 with fan channel 0 reporting approximately 2500-2800 RPM. Channel 1 is readable and remained at 0 RPM during idle and a short CPU load. Signed-off-by: Nikita Dubrovskih <testname142@gmail.com> Link: https://patch.msgid.link/20260815234041.2262291-1-testname142@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (yogafan) Add Lenovo Yoga Pro 9 16IMH9rahlquist
The Lenovo Yoga Pro 9 16IMH9 (83DN) exposes its fan tachometers at ACPI paths different from the generic Yoga configuration. Add a model-specific two-fan configuration for the PC00.LPCB.EC0 namespace and document the corrected mapping. Tested on a Lenovo Yoga Pro 9 16IMH9 (83DN) with BIOS NKCN35WW: the patched module registers fan1_input and fan2_input, both reporting 1800 RPM at idle. Signed-off-by: Richard Ahlquist <rahlquist@gmail.com> Link: https://patch.msgid.link/20260813164746.105154-1-rahlquist@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (core) Add support for currX_emergency and inX_[l]emergency attributesGuenter Roeck
Some hardware monitoring chips support three alarm levels for current and voltage high limits, and three alarm levels for voltage low limits. Add support for currX_emergency, inX_emergency, and inX_lemergency attributes together with the appropriate alarm attributes to support such chips. Cc: Manaf Meethalavalappu Pallikunhi <manaf.pallikunhi@oss.qualcomm.com> Tested-by: Manaf Meethalavalappu Pallikunhi <manaf.pallikunhi@oss.qualcomm.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Link: https://patch.msgid.link/20260813211433.879638-1-linux@roeck-us.net Signed-off-by: Guenter Roeck <linux@roeck-us.net>
14 dayshwmon: (coretemp) Return -ENODATA for invalid temperature readingsRicardo Neri
IA32_THERM_STATUS and IA32_PACKAGE_THERM_STATUS have a valid bit, bit 31. The Intel SDM documents it only for the former, but the package register implements it too: x86_pkg_temp_thermal has required it since commit f1a18a105660 ("Thermal: CPU Package temperature thermal"). This driver checked the bit for both registers as well, until commit bf6ea084ebb5 ("hwmon: (coretemp) Do not return -EAGAIN for low temperatures") made it ignore the bit because some CPUs clear it while the temperature is too low to be measured. Since then, temp%d_input reports such a reading as a real temperature. Userspace cannot tell it apart from a genuinely low one. Fail the read with -ENODATA while the CPU reports the reading as invalid. On a CPU that clears the bit, reading temp%d_input now fails where it used to return a low value. sensors(1) shows N/A in its place. Cc: stable@vger.kernel.org Suggested-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/all/46f9f319-de71-412f-a424-6cb801478456@roeck-us.net/ Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Link: https://patch.msgid.link/20261006-coretemp-enodata-v2-1-64e788acc7dc@linux.intel.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-10-11usb: xhci-pci: Add AMD 600 series to xhci-pci-prom21Stephen Horvath
It seems the xhci-pci-prom21 module only has IDs for the 800 series chipsets. However, the 600 series chipsets also have Promontory 21 chips, so we should add their IDs to the list as well. I have tested this on my X670 board featuring DID `0x43f7`. `1022:43f7` also appears on the PCI ID database (https://pci-ids.ucw.cz/read/PC/1022/43f7). Device IDs `0x43f9` (B665) & `0x43fa` (A620) were suggested by Shyam. Also list the new IDs in Documentation/hwmon/prom21-xhci.rst. Cc: stable@vger.kernel.org # 7.2.x Cc: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> Cc: Jihong Min <hurryman2212@gmail.com> Signed-off-by: Stephen Horvath <linux@stevetech.au> Tested-by: Mirko Jechow <mirko.jechow@gmx.de> [mirko.jechow@gmx.de: add new IDs to prom21-xhci.rst] Signed-off-by: Mirko Jechow <mirko.jechow@gmx.de> Link: https://patch.msgid.link/20261004002731.49927-1-mirko.jechow@gmx.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-09-24hwmon: (k10temp) Stop matching Hygon devicesLin Wang
k10temp matches the Hygon F3 device, but derives the node passed to amd_smn_read() from the F3 PCI slot using the AMD fixed-slot mapping (slot - 0x18). Hygon PCI slots do not encode DF node identity, and their SMN roots are grouped by socket. The derived node number therefore cannot identify a valid Hygon SMN target or provide usable temperature monitoring. Removing the match does not disable a working monitoring path. Remove the Hygon PCI match and Family 0x18 branch. Hygon temperature monitoring will use the Hygon node and SMN interfaces in a separate series. Fixes: d93217d84c6c ("hwmon: (k10temp) Add Hygon Dhyana support") Cc: stable@vger.kernel.org Signed-off-by: Lin Wang <wanglin@open-hieco.net> Link: https://patch.msgid.link/20260921055603.25112-6-wanglin@open-hieco.net Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-13hwmon: (cgbc-hwmon) Add missing sensorsThomas Richard (congatec GmbH)
Add the following sensors: - Alternate Board Temperature (temp11_input) - Top DIMM 1-7 Temperature (temp12_input to temp18_input) - Bottom DIMM 1 Temperature (temp19_input) - 12V Standby Voltage (in14_input) This fixes the following warning on conga-SA7: Board Controller returned an unknown sensor (bc_type=1, bc_id=11), ignore it Also update existing labels to match Congatec documentation. Cc: stable@kernel.org Fixes: 08ebc9def79f ("hwmon: Add Congatec Board Controller monitoring driver") Signed-off-by: Thomas Richard (congatec GmbH) <thomas.richard@bootlin.com> Link: https://patch.msgid.link/20260911-cgbc-hwmon-fix-and-new-sensors-v2-2-0c6bf078d173@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-07Documentation: hwmon: replace full-width colon by a standard ASCII colonAntonin Godard
It prevented the pdfdocs target to complete, prompting the following error: Latexmk: ====Problematic refs and citations with line #s in .tex file: Missing character: There is no : (U+FF1A) in font DejaVu Serif/OT:script=latn;l Fixes: 69001f21ded78 ("hwmon: document: add gpd-fan") Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Link: https://patch.msgid.link/20260818-doc-hwmon-remove-confusable-v2-1-c1dff1ec01cd@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-07Documentation/hwmon: Document hwmon_notify_event()Guenter Roeck
The hwmon core provides hwmon_notify_event() for drivers to report events such as alarm or fault conditions to userspace via sysfs notifications and uevents, as well as to the thermal subsystem for temperature sensors. However, this function is not documented in the hwmon kernel API guide. Add the function prototype and description of hwmon_notify_event() to Documentation/hwmon/hwmon-kernel-api.rst. Cc: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Fixes: 1597b374af222 ("hwmon: Add notification support") Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-25Merge tag 'char-misc-7.3-rc1' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc/IIO/etc driver updates from Greg KH: "Here is the big set of char, misc, iio, counter, fpga, and other small driver subsystems for 7.3-rc1. Overall, due to some driver removals we only added a bit more code than removed, which was a nice change. Highlights in this merge request are: - Loads of IIO driver updates and additions - binder driver updates (more on that below...) - Removal of the SGI XP and GRU drivers as they are not used anymore and turn out to be pretty insecure overall - Removal of the obsolete ibmasm driver as it's not being used anymore - Coresight driver updates and additions - Mei driver udpates - Counter driver updates - FPGA driver updates - ICC driver updates - lots and lots of other tiny driver updates to resolve reported issues All of these have been in linux-next for a while" * tag 'char-misc-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (513 commits) iio: chemical: atlas-sensor: use iio_trigger_poll_nested() to fix remove UAF iio: adc: pac1921: fix wrong channel used in trigger handler read iio: light: gp2ap002: re-enable irq if runtime suspend fails iio: light: gp2ap002: Fix unbalanced runtime PM on repeated event writes iio: light: apds9306: fix PM reference leak in apds9306_read_data() iio: gyro: mpu3050: fix sign of raw angular velocity readings iio: srf04: fix pm_runtime handling on probe error path iio: adc: ad4080: configure backend data size iio: adc: adi-axi-adc: add data size support for AD408X backend iio: chemical: atlas-sensor: fix PM reference leak in buffer postenable iio: dac: ad5446: fix OF module device table iio: light: opt4001: Fix reversed GENMASK() arguments in fault count mask iio: light: opt4001: Reject integration times with a non-zero seconds part iio: light: opt4001: Fix incompatible pointer type passed to div_u64_rem() iio: light: opt4001: Fix power down clearing bits of the wrong register iio: light: opt4060: Fix incorrect register name in threshold read error message iio: light: opt4060: Fix pointer type passed to div_u64_rem() iio: light: opt4060: Reject integration times with a non-zero seconds part iio: light: ltrf216a: fix runtime PM reference leak in error path iio: pressure: dps310: fix NULL pointer dereference on ACPI probe ...
2026-08-16hwmon: (emc1403) Drop hysteresis for low limit temperatureMarius Cristea
Remove the hysteresis for low temperature limit, in hardware the hysteresis is applied only to the maxim limit and the critical limit temperature. Fixes: 54392ce4446e3 ("hwmon: (emc1403) Add support for min_hyst attributes") Signed-off-by: Marius Cristea <marius.cristea@microchip.com> Link: https://lore.kernel.org/r/20260813-emc1403_remove_min_hyst-v1-1-43a0d05d9f49@microchip.com [groeck: Updated subject] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-14hwmon: (asus_rog_ryujin) Add ROG Ryujin III White EditionWill Smith
The ROG Ryujin III White Edition uses the same report layout as the other supported Ryujin III variants. Add its USB device ID and list it in the driver documentation. The device was tested with the driver on the author's hardware. Link: https://github.com/aleksamagicka/asus_rog_ryujin-hwmon/pull/10 Signed-off-by: Will Smith <github@notthatwillsmith.com> Assisted-by: Codex:gpt-5.6-sol sparse Signed-off-by: Arie Miller <renari@arimil.com> Reviewed-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20260812103532.395049-4-renari@arimil.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-14hwmon: (asus_rog_ryujin) Add ROG Ryujin III supportArie Miller
The ROG Ryujin III uses different report offsets and a different cooler-duty channel from the Ryujin II. It also lacks the separate external fan controller supplied with the older model. Add model data and USB IDs for the Extreme and EVA Edition variants. Skip controller commands and hide the unavailable controller hwmon channels for these devices. Update the driver documentation, Kconfig text, and module description accordingly. Link: https://github.com/aleksamagicka/asus_rog_ryujin-hwmon/pull/9 Assisted-by: Codex:gpt-5.6-sol sparse Signed-off-by: Arie Miller <renari@arimil.com> Reviewed-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20260812103532.395049-3-renari@arimil.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-11hwmon: (nct6775) Add NCT5585D to list of supported chipsJiazhi Huang
NCT5585D uses the same chip ID (0xd428) as NCT6798D and is fully compatible with it. Tested on an ASUS PRIME H610M-D motherboard. Signed-off-by: Jiazhi Huang <huangjia2hi@163.com> Link: https://lore.kernel.org/r/20260811093744.12199-3-huangjia2hi@163.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-11Documentation: hwmon: (nct6775) Add missing NCT6797D and NCT6798DJiazhi Huang
The NCT6797D and NCT6798D chips are already supported by the driver but were missing from the documentation. Signed-off-by: Jiazhi Huang <huangjia2hi@163.com> Link: https://lore.kernel.org/r/20260811093744.12199-2-huangjia2hi@163.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (asus-ec-sensors) add ROG STRIX Z390-E GAMINGRodrigo Araujo
The ROG STRIX Z390-E GAMING and Z390-F GAMING are essentially the same board apart from the E's onboard WiFi, so they share the same EC sensor layout. Signed-off-by: Rodrigo Araujo <araujo.rm@gmail.com> Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com> Link: https://lore.kernel.org/r/20260809212705.1501382-1-eugene.shalygin@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (corsair-psu) Update documentationWilken Gottwalt
Add information about the HX1500i 2025 series and fix the missing HX1500i in Kbuild. Signed-off-by: Wilken Gottwalt <wilken.gottwalt@posteo.net> Link: https://lore.kernel.org/r/anVuBd8Bb7T66OUO@monster.localdomain Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (yogafan) Add support for new Lenovo modelsSergio Melas
Add DMI quirk entries and map correct ACPI paths and configurations for additional Lenovo laptop models including the LOQ 15IAX9, XiaoXin Pro 13ARE 2020, IdeaPad 3 15ALC6, Legion Pro 7 16AFR10H, Yoga Pro 7 14IAH10, and Yoga 7 16ARP8. Reorder the DMI quirk table to evaluate specific model matches before generic family fallbacks, preventing DMI shadowing. Signed-off-by: Sergio Melas <sergiomelas@gmail.com> Link: https://lore.kernel.org/r/20260806131103.19104-1-sergiomelas@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/mpq8646) Gate the writesVincent Jardin
The write cases of debugfs entries are provisioning and bench helpers. By designs the MPQ8646 powers the CPU core rail, so a wrong write can brown out the board or persist a bad setpoint into finite-cycle NVM. Said differently: some wrong register writes can and likely will physically damage or destroy the chip and/or the board. To be safe, it is disabled by default behind a CONFIG_SENSORS_MPQ8646_DEBUG_UNSAFE and we print an explicit warning banner at probe time when they are built in. Signed-off-by: Vincent Jardin <vjardin@free.fr> Link: https://lore.kernel.org/r/20260730-mpq8646_v0-v7-4-e7c7ad768d5d@free.fr Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus) Add MPQ8646 driverVincent Jardin
Add a new driver for the MPS MPQ8646 that is a PMBus device. Beyond basic PMBus telemetry, the driver adds: - alarm acknowledge via inX_reset_history. - STATUS_WORD MPS-extended bit decode and the NVM-backed PROTECTION_LAST post-mortem, exposed as a read-only debugfs decoder. - In-driver alarm-poll fallback work item (thanks lm90) for boards without SMBALERT Signed-off-by: Vincent Jardin <vjardin@free.fr> Link: https://lore.kernel.org/r/20260730-mpq8646_v0-v7-3-e7c7ad768d5d@free.fr Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/max20830): add support for max20830c and max20840cAlexis Czezar Torreno
Add support for MAX20830C and MAX20840 step-down DC-DC switching regulator with PMBus interface. MAX20830C is a different packaging for MAX20830, and MAX20840C supports 40A regulation compared to MAX20830 that is only 30A. Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Link: https://lore.kernel.org/r/20260730-dev-max20830c-v5-4-a7553f84ee74@analog.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (nzxt-kraken3) Add support for NZXT Kraken 2024 EliteSean Lyon
The Kraken 2024 Elite (USB ID 1e71:3012) is protocol-compatible with the existing Kraken 2023 devices and works with the current Z53 code paths. Add its USB product ID and map it to the KRAKEN2023 kind. Tested on hardware: liquid temperature and pump/fan speeds read correctly (cross-checked against liquidctl), and PWM control of both the pump and fan channels works as expected. Signed-off-by: Sean Lyon <sean@seanlyon.dev> Link: https://lore.kernel.org/r/20260728031127.26553-1-sean@seanlyon.dev Signed-off-by: Guenter Roeck <linux@roeck-us.net>