[PATCH v7 0/3] Support configurable fan PWM at shutdown

florin.leotescu
2026-04-29T06:45:15Z

From: Florin Leotescu <florin.leotescu@nxp.com>

Hi,

This series adds support for configuring the fan shutdown PWM value
via Device Tree and improves the robustness of the emc2305 driver.

Some platforms require fans to transition to a predefined safe state
during shutdown or reboot handoff until firmware or the next boot stage
reconfigures the controller.

The new optional Device Tree property "fan-shutdown-percent" allows the
shutdown PWM duty cycle to be configured per fan output.

Thanks for the review and apologies for the delay.

Changes in v7:
- Use the DT "reg" property when registering thermal cooling devices
instead of a sequential child index
- Validate the "reg" value against the number of available PWM channels
in both DT parsing and probe paths
- Address feedback from Guenter Roeck regarding channel index handling

Changes in v6:
- Split fan channel index validation into a separate patch.
Validate fan channel index agains the number of available channels.
- Refine dt-binding commit message to refer to PWM duty cycle
instead of fan speed.
Changes in v5:
- Add fan channel index bound check after reg property read
to prevent out-of-bounds access.
- Refine fan-shutdown-percent description.
Changes in v4:
- Initialize pwm_shudown array to EMC2305_PWM_SHUTDOWN_UNSET in probe,
to avoid treating unconfigured channels as valid and written 0
during shutdown
Changes in v3:
- Rebased on current upstream
- Dropped already upstreamed of_node_put(child) fix
Changes in v2:
- Address feedback from Guenter Roeck
- Make shutdown behavior configurable via Device Tree
- Add optional fan-shutdown-percent property
- Apply shutdown PWM only for channels defining the property

Florin Leotescu (3):
hwmon: emc2305: Fix fan channel index handling
dt-bindings: hwmon: emc2305: Add fan-shutdown-percent property
hwmon: emc2305: Support configurable fan PWM at shutdown

.../bindings/hwmon/microchip,emc2305.yaml | 8 +++
drivers/hwmon/emc2305.c | 54 +++++++++++++++++--
2 files changed, 59 insertions(+), 3 deletions(-)

--
2.34.1