summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-08-10watchdog: booke_wdt: Document unused parameter of __booke_wdt_disable()Babanpreet Singh
scripts/kernel-doc -none reports: Warning: drivers/watchdog/booke_wdt.c:158 function parameter 'data' not described in '__booke_wdt_disable' __booke_wdt_disable() is invoked through on_each_cpu(), so it takes a void * argument that it does not use. Its kernel-doc comment does not describe the parameter at all. Document it as unused. Assisted-by: Claude:claude-opus-5 Signed-off-by: Babanpreet Singh <bbnpreetsingh@gmail.com> Link: https://lore.kernel.org/r/20260730060617.7-3-bbnpreetsingh@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: wdat_wdt: map registers that fall inside ACPI NVSRenê de Souza Pinto
Some firmwares describe WDAT registers inside memory ranges marked as ACPI NVS in the E820 map, failing with -EBUSY during probe, leaving the hardware watchdog unserviced and triggering periodic system resets. This issue was observed on a OnLogic Karbon 524 device (when watchdog is enabled in BIOS): wdat_wdt wdat_wdt: error -EBUSY: can't request region for resource [mem 0x63df7a98] wdat_wdt wdat_wdt: probe with driver wdat_wdt failed with error -16 Check whether the region falls inside ACPI NVS before requesting it and, if so, map it without reservation. Signed-off-by: Renê de Souza Pinto <rene@renesp.com.br> Link: https://lore.kernel.org/r/20260804103958.3684195-1-rene@renesp.com.br Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: Add Nuvoton MA35D1 watchdog driver supportZi-Yu Chen
Add driver support for the Watchdog Timer (WDT) integrated in Nuvoton MA35D1 SoC. This driver provides standard watchdog functionality, including timeout configuration, ping, and system reset support via the watchdog framework. Signed-off-by: Zi-Yu Chen <zychennvt@gmail.com> Link: https://lore.kernel.org/r/20260804070351.1846165-3-zychennvt@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: Add MA35D1 WatchdogZi-Yu Chen
Add device tree binding documentation for the watchdog timer (WDT) controller found on Nuvoton MA35D1 SoC. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Zi-Yu Chen <zychennvt@gmail.com> Link: https://lore.kernel.org/r/20260804070351.1846165-2-zychennvt@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: qcom: report bootstatus on IPQ9574 and IPQ5332Kathiravan Thirumoorthy
Report bootstatus on IPQ5332 and IPQ9574. These SoCs use different restart-reason values from IPQ5424 for watchdog reset and powerunder reset events, so add separate match data for them and use it when decoding the restart reason. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260728-qcom_wdt_powerunder-v1-2-de8d9e964e7d@oss.qualcomm.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: qcom: report WDIOF_POWERUNDER in bootstatusKathiravan Thirumoorthy
On IPQ platforms, identify the restart reason as POWERUNDER, similar to CARDRESET, and expose it via the bootstatus sysfs interface. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260728-qcom_wdt_powerunder-v1-1-de8d9e964e7d@oss.qualcomm.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: sprd: Remove redundant dev_err()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-10-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: sama5d4: Remove redundant dev_err()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20260722084218.79073-9-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: realtek_otto: Remove redundant dev_err_probe()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err_probe() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-8-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: orion: Remove redundant dev_err()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err() calls. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-7-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: marvell_gti: Remove redundant dev_err_probe()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err_probe() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-6-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: keembay: Remove redundant dev_err_probe()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err_probe() calls. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-5-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: intel-mid_wdt: Remove redundant dev_err()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-4-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: cadence_wdt: Remove redundant dev_err()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-3-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: bd96801_wdt: Remove redundant dev_err_probe()Pan Chuang
Since commit 55b48e23f5c4 ("genirq/devres: Add error handling in devm_request_*_irq()"), devm_request_threaded_irq() automatically logs detailed error messages on failure. Remove the now-redundant driver-specific dev_err_probe() call. Signed-off-by: Pan Chuang <panchuang@vivo.com> Link: https://lore.kernel.org/r/20260722084218.79073-2-panchuang@vivo.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: take all OF aliases into account when assigning idRasmus Villemoes
If some, but not all, watchdog devices have device tree aliases, those without aliases might (depending on probe order) be assigned an id which would otherwise be assigned to one of those with an alias. This is problematic when for example watchdog0 is an alias for an always-running gpio watchdog that userspace must handle, but the SOC's watchdog device(s) get probed first and thus one of those become /dev/watchdog0, and then at some point later, the gpio watchdog device gets probed and becomes /dev/watchdog5. Ensure that ids for devices without a device tree alias are allocated from among those where no watchdogX alias exists. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Link: https://lore.kernel.org/r/20260714105356.2931450-1-linux@rasmusvillemoes.dk [groeck: Use scnprintf() instead of snprintf() to make gcc happy] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: via_wdt: add missing MODULE_DEVICE_TABLE()Pengpeng Hou
The driver has a match table for the pci bus wired into its driver structure, but the table is not exported with MODULE_DEVICE_TABLE(). Add the missing MODULE_DEVICE_TABLE() entry so module alias information is generated for automatic module loading. This is a source-level fix. It does not claim dynamic hardware reproduction; the evidence is the driver-owned match table, its use by the driver registration structure, and the missing module alias publication. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://lore.kernel.org/r/20260705001613.68871-1-pengpeng@iscas.ac.cn Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: snps,dw-wdt: Add RV1106 compatibleSimon Glass
Add the compatible for the watchdog of the Rockchip RV1106, which is compatible with the Synopsys DesignWare watchdog. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Link: https://lore.kernel.org/r/20260714131856.v2.1.b5339e64b3fe4338b3924ebd9dc0096904699744@changeid Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: realtek-otto: Change to use regmap APIRustam Adilov
To make the realtek watchdog driver functional when SWAP_IO_SPACE config is enabled, change all of the register access to be done by regmap API which helps us to tweak endianness with big-endian or little-endian property from within the device tree node. Add the REGMAP_MMIO as a select to REALTEK_OTTO_WDT now that the regmap is used. Signed-off-by: Rustam Adilov <adilov@disroot.org> Link: https://lore.kernel.org/r/20260710074316.46643-2-adilov@disroot.org Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: npcm: add bootstatus supportTomer Maimon
The NPCM750 uses RESSR and the NPCM845 uses INTCR2 to latch reset indications. Read those bits during probe and map them into watchdog bootstatus flags. For NPCM845, cache the sampled INTCR2 state in SCRPAD10 after the reset status bits are cleared so later probes can report the same boot-time state. Also report WDIOF_CARDRESET for the watchdog instance whose reset bit is latched, while leaving WPCM450 behavior unchanged. Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> Link: https://lore.kernel.org/r/20260706144828.3517631-4-tmaimon77@gmail.com [groeck: Declare npcm750_data and npcm845_data with __maybe_unused] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10docs: watchdog: npcm: Add reset status descriptionTomer Maimon
Add documentation describing how the NPCM watchdog driver reports reset causes through bootstatus on NPCM750 and NPCM845 systems. Document the reset flag mapping, the watchdog instance mapping for WDIOF_CARDRESET, and the NPCM750/NPCM845 latch handling. Also mention sysfs bootstatus reporting when watchdog sysfs support is enabled. Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> Link: https://lore.kernel.org/r/20260706144828.3517631-3-tmaimon77@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: npcm: add GCR syscon propertyTomer Maimon
NPCM750 and NPCM845 latch watchdog reset indications in the SoC GCR block rather than in the watchdog block itself. Add the optional nuvoton,sysgcr phandle so watchdog nodes can reference the shared GCR reset-status registers that hold those latched watchdog reset indications. This is needed by the following reset-status support, which reads those latches and reports watchdog-caused resets through bootstatus. Signed-off-by: Tomer Maimon <tmaimon77@gmail.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20260706144828.3517631-2-tmaimon77@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: apple,wdt: Add t6030 and t6031 compatiblesJanne Grunau
The watchdog on Apple silicon M3 Pro, Max and Ultra SoCs is compatible with the t8103 (M1) one. Add "apple,t6030-wdt" for M3 Pro and "apple,t6031-wdt" for M3 Max and Ultra as per-SoC compatibles. Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Janne Grunau <j@jannau.net> Link: https://lore.kernel.org/r/20260715-apple-t603x-initial-devices-v2-6-df65b2485710@jannau.net Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: lenovo_se30g2_se60_wdt: Watchdog for Lenovo SE30G2 and SE60Mark Pearson
Watchdog driver implementation for Lenovo SE30G2 and SE60 platforms. Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca> Link: https://lore.kernel.org/r/20260706145412.3833185-1-mpearson-lenovo@squebb.ca Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: w83627hf_wdt: Use WDOG_HW_RUNNING for running chip on bootPaul Louvel
If the watchdog is already running when the driver is initialized, the driver currently refreshes it once using the default timeout of 60 seconds. Since commit ee142889e32f ("watchdog: Introduce WDOG_HW_RUNNING flag"), the watchdog core can kick an already running watchdog alive until userspace open the device. Add the WDOG_HW_RUNNING flag to the watchdog status if the watchdog is already running. Signed-off-by: Paul Louvel <paul.louvel@bootlin.com> Link: https://lore.kernel.org/r/20260707-w83627hf_wdt-nct6126d-v4-3-829e5f63d548@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: w83627hf_wdt: Report the probed chip name via WDIOC_GETSUPPORTPaul Louvel
The watchdog identity string reported via WDIOC_GETSUPPORT has always been hardcoded to "W83627HF Watchdog", even though this driver supports a wide range of Nuvoton/Winbond Super I/O chips. This is misleading, since the driver itself correctly log the chip name in wdt_init(), but could report later a different chip name with WDIOC_GETSUPPORT. Instead format the identity at probe time using the actual chip name that was detected. Signed-off-by: Paul Louvel <paul.louvel@bootlin.com> Link: https://lore.kernel.org/r/20260707-w83627hf_wdt-nct6126d-v4-2-829e5f63d548@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: w83627hf_wdt: Correctly identify Nuvoton NCT6126 chipPaul Louvel
Currently, the NCT6126 is probed as a NCT6116 because the NCT6126 shares the same high-byte chip ID as the NCT6116. Read the low byte of the chip ID as well to distinguish between the two devices and identify the NCT6126 correctly. Signed-off-by: Paul Louvel <paul.louvel@bootlin.com> Link: https://lore.kernel.org/r/20260707-w83627hf_wdt-nct6126d-v4-1-829e5f63d548@bootlin.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: pretimeout: Add "dump" pretimeout governorTzung-Bi Shih
Add a new "dump" pretimeout governor that triggers a backtrace of all CPUs (via trigger_all_cpu_backtrace()) to the kernel log buffer. This provides diagnostic information right before the hardware watchdog fires. In addition, update the WATCHDOG_PRETIMEOUT_GOV_SEL Kconfig logic to fall back to the "panic" governor only when both "noop" and "dump" governors are disabled. Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org> Link: https://lore.kernel.org/r/20260707102105.3600275-1-tzungbi@kernel.org Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: apple,wdt: Add t8132 compatibleYureka Lilian
The watchdog on the Apple silicon t8132 (M4) SoC is compatible with the existing driver. Add "apple,t8132-wdt" as SoC specific compatible under "apple,t8103-wdt" used by the driver. The M4 wdt block additionally has a secondary watchdog, which is disabled by m1n1 and can safely be ignored by Linux. Signed-off-by: Yureka Lilian <yureka@cyberchaos.dev> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260705-apple-m4-initial-devicetrees-v1-3-e5655ee56523@cyberchaos.dev Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: watchdog: Document Qualcomm Maili watchdogJingyi Wang
Add devicetree binding for watchdog present on Qualcomm Maili SoC. Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com> Acked-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20260629-maili-watchdog-v2-1-5cb9c83a581c@oss.qualcomm.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10watchdog: Use named initializers for platform_device_id arraysUwe Kleine-König (The Capable Hub)
Named initializers are better readable and more robust to changes of the struct definition. This robustness is relevant for a planned change to struct platform_device_id replacing .driver_data by an anonymous union. For one driver drop the unused assignment to .driver_data instead. While touching these arrays unify spacing and usage of commas. There is no effect on the compiled arrays. Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com> Link: https://lore.kernel.org/r/22bc09d0c9c8dfe75a205b0a9ccc98ccfba1de10.1781622532.git.u.kleine-koenig@baylibre.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10Merge tag 'samsung-dt-7.3' of ↵Arnd Bergmann
https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt Samsung DTS ARM changes for v7.3 Add Bluetooth to Exynos5250-based Google Manta (Nexus 10) board. * tag 'samsung-dt-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: Add bluetooth support to manta Signed-off-by: Arnd Bergmann <arnd@arndb.de>
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: (sysfs) Allow drivers to register const attributesThomas Weißschuh
Switch to the __DEVICE_ATTR() macro which can handle callbacks taking both const and non-const attribute structure arguments. Allow the step-wise migration of the drivers. Also use container_of_const() over container_of() to avoid casting away the constness accidentally. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20260806-sysfs-const-attr-hwmon-v2-3-22fee8b85509@weissschuh.net [groeck: Squashed 'hwmon: (core) Constify PEC device attribute'] 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: (core) Use const APIs for the dynamically allocated sysfs attributesThomas Weißschuh
The non-const sysfs attribute APIs are going to go away at some point. Switch to the const variants to prepare for that. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20260806-sysfs-const-attr-hwmon-v2-2-22fee8b85509@weissschuh.net Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (core) Constify device attributesThomas Weißschuh
Mark the attribute structures as const, as they are never modified. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://lore.kernel.org/r/20260806-sysfs-const-attr-hwmon-v2-1-22fee8b85509@weissschuh.net 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: (adt7470) Add thermal zone sensor supportLuiz Angelo Daros de Luca
Register the ADT7470 temperature channels as thermal zone sensors. Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> Link: https://lore.kernel.org/r/20260805-adt7470_thermalzone-v6-4-5605a5f95467@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (adt7470) Expose fan control via PWM frameworkLuiz Angelo Daros de Luca
The ADT7470 features four PWM outputs designed to control fans. Previously, these were only accessible through the legacy hwmon sysfs interface. Expose the ADT7470 fan control lines through the generic PWM framework. This allows generic PWM consumers described in Device Tree, such as "pwm-fan", to use the device through the "#pwm-cells" property. This is particularly necessary for boards where the ADT7470 external temperature sensors are not populated and the chip is used strictly as a fan controller (e.g., Edgecore ECS-2100-52T switches). In such setups, delegating control to the generic PWM subsystem allows the kernel's thermal framework to manage the fans based on unrelated temperature zones, such as internal SoC sensors. When a PWM consumer applies a new PWM state, the driver automatically switches the corresponding PWM channel to manual mode so that the requested duty cycle takes effect. The duty cycle specified by the PWM framework is internally converted to the 0-255 scale expected by the hardware registers. To prevent conflicting access, the hwmon PWM sysfs attributes are hidden when the device is registered with PWM framework support (i.e. when "#pwm-cells" is present in DT and CONFIG_PWM is reachable). Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> Link: https://lore.kernel.org/r/20260805-adt7470_thermalzone-v6-3-5605a5f95467@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (adt7470) Add ADT7470_PWM_MAX macroLuiz Angelo Daros de Luca
Instead of a magic 255, use a macro to refer to it. Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> Link: https://lore.kernel.org/r/20260805-adt7470_thermalzone-v6-2-5605a5f95467@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10dt-bindings: hwmon: add adi,adt7470Luiz Angelo Daros de Luca
The Analog Devices ADT7470 is a multichannel temperature sensor and PWM fan controller. It supports monitoring up to 10 external temperature sensors and controlling up to 4 fans. Add the device tree binding documentation for it. This includes support for the thermal framework by defining the "#thermal-sensor-cells" property, and models the fan control lines as PWM channels by defining the "#pwm-cells" property. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> Link: https://lore.kernel.org/r/20260805-adt7470_thermalzone-v6-1-5605a5f95467@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/ir36021) Use pmbus_read_smbus_i2c_block_data for block commandsGuenter Roeck
The driver uses i2c_smbus_read_i2c_block_data() for PMBus block commands. Use pmbus_read_smbus_i2c_block_data() instead to enable the driver to work with I2C controllers which do not support i2c_smbus_read_i2c_block_data(). Drop the functionality check to get an explicit error message if the required SMBus commands are not supported. Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/max20830) Use pmbus_read_smbus_i2c_block_data for block commandsGuenter Roeck
The driver tries to use both pmbus_read_smbus_i2c_block_data() and i2c_smbus_read_i2c_block_data() for PMBus block commands. Use pmbus_read_smbus_i2c_block_data() instead to simplify the code. Drop the functionality check to simplify the code and to trigger a return with -EOPNOTSUPP if SMBus block commands are not supported. Cc: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Cc: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/ltc2978) Use pmbus_read_smbus_i2c_block_data for block commandsGuenter Roeck
The driver uses a mix of pmbus_read_smbus_i2c_block_data() and i2c_smbus_read_i2c_block_data() for PMBus block commands. Use pmbus_read_smbus_i2c_block_data() instead to enable the driver to work I2C controllers which do not support both block commands. Drop the functionality check to simplify the code and to trigger a return with -EOPNOTSUPP if SMBus block commands are not supported. As part of this patch, rework detection of LT7170 and LT7171. The return length of pmbus_read_smbus_i2c_block_data() may be less than the requested number of bytes, meaning the return length needs to be checked. Also, checking for "LT7170-1" after checking for "LT7170" and checking for "LT7171-1" after checking for "LT7171" is pointless since the first check will already produce a match, so drop the second part of the check. Cc: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Cc: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/adm1275) Use pmbus_read_smbus_i2c_block_data for block commandsGuenter Roeck
The driver uses i2c_smbus_read_block_data() for PMBus block commands. Use pmbus_read_smbus_i2c_block_data() instead to enable the driver to work with I2C controllers which do not support i2c_smbus_read_block_data(). Drop the functionality check to get an explicit error message if the required SMBus commands are not supported. Reviewed-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-08-10hwmon: (pmbus/core) Introduce pmbus_read_smbus_i2c_block_data()Guenter Roeck
PMBus drivers need support for reading SMBus block data. Unfortunately, not all i2C controllers support this command. Implement pmbus_read_smbus_i2c_block_data() which first tries to use i2c_smbus_read_block_data(). If not supported, try to emulate it by calling i2c_smbus_read_i2c_block_data(). Export the new function for use in PMBus drivers. Cc: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> Cc: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Nuno Sá <nuno.sa@analog.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-10dt-bindings: hwmon: pmbus: add MPS MPQ8646Vincent Jardin
The MPS MPQ8646 PMBus step-down converter uses the same mps,vout-fb-divider-ratio-permille property with the same constraints (maximum 2047, default 706) as the mps,mpq8785, so add its compatible to the existing schema. Signed-off-by: Vincent Jardin <vjardin@free.fr> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260730-mpq8646_v0-v7-2-e7c7ad768d5d@free.fr Signed-off-by: Guenter Roeck <linux@roeck-us.net>