Re: [RFC PATCH v2 1/2] dt-bindings: hwmon: emc2305: Add fan-shutdown-percent property
From: Guenter Roeck
Date: Fri Mar 13 2026 - 14:16:42 EST
On 3/13/26 10:38, Conor Dooley wrote:
On Fri, Mar 13, 2026 at 07:14:33PM +0200, Florin Leotescu wrote:
On Thu, Mar 12, 2026 at 05:37:51PM +0000, Conor Dooley wrote:
On Thu, Mar 12, 2026 at 02:22:47PM +0200, florin.leotescu@xxxxxxxxxxx wrote:Thanks for the feedback.
From: Florin Leotescu <florin.leotescu@xxxxxxx>
The EMC2305 fan controller supports multiple independent PWM fan
outputs. Some systems require fans to enter a defined safe state
during system shutdown or reboot handoff, until firmware or the next
boot stage reconfigures the controller.
Add an optional "fan-shutdown-percent" property to fan child nodes
allowing the shutdown fan speed to be configured per fan output.
Signed-off-by: Florin Leotescu <florin.leotescu@xxxxxxx>
---
.../devicetree/bindings/hwmon/microchip,emc2305.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/microchip,emc2305.yaml b/Documentation/devicetree/bindings/hwmon/microchip,emc2305.yaml
index d3f06ebc19fa..7bcadfab9fc4 100644
--- a/Documentation/devicetree/bindings/hwmon/microchip,emc2305.yaml
+++ b/Documentation/devicetree/bindings/hwmon/microchip,emc2305.yaml
@@ -54,6 +54,12 @@ patternProperties:
The fan number used to determine the associated PWM channel.
maxItems: 1
+ fan-shutdown-percent:
+ description:
+ Fan RPM in percent set during shutdown.
This sounds like something generic, that other devices might need and
should be in fan-common.yaml?
The property name was reused from pwm-fan.yaml where it already exists
with the same meaning. I kept it local to minimize the scope of the change.
However, if you prefer it to be modelled as a common property, I can adjust it in the next revision.
I see. Makes me wonder why half the properties in pwm-fan aren't also in
fan-common.
I suppose there's a reason for it, carry on I guess.. Can be lifted if
there are more users other than you and pwm-fan.
+ minimum: 0
+ maximum: 100
+
required:
- reg
@@ -80,12 +86,14 @@ examples:
fan@0 {
reg = <0x0>;
pwms = <&fan_controller 26000 PWM_POLARITY_INVERTED 1>;
+ fan-shutdown-percent = <100>;
Also leads to the question of why these devices aren't pwm-fans. Too
late now to change anything, I just wanna understand why.
They are dedicated fan controllers, with an internal tach -> pwm feedback
loop. I don't mind modeling them as pwm controllers if there is a use case
(such as someone using a PWM output to control a LED), but I don't even know
how modeling them as pwm fans using the pwm-fan compatible would even be
possible since that would exclude the tach -> pwm feedback loop.
Also, if that were to be done, we might end up with two hwmon drivers
for one chip: one to report the fan speed, and one to report pwm values.
On top of that, even if it is not currently supported by the driver,
controlling the tach -> pwm feedback loop would become awkward.
Yes, I understand, there is a strong push to model everything with
a pwm output as pwm controller, but si far no one was able to describe
to me how to model a fan controller, and especially its feedback loop,
in such a scenario. That becomes even more complicated if temperatures
are used to control the feedback loop.
Guenter
#cooling-cells = <2>;
};
fan@1 {
reg = <0x1>;
pwms = <&fan_controller 26000 0 1>;
+ fan-shutdown-percent = <50>;
#cooling-cells = <2>;
};
--
2.34.1