On Wed, May 29, 2024 at 10:56:36AM +1200, Chris Packham wrote: > Add fan child nodes that allow describing the connections for the > ADT7475 to the fans it controls. This also allows setting some > initial values for the pwm duty cycle and frequency. > > Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> > --- > > Notes: > I realise there is still some discussion about how to express the > frequency and duty cycle. I have a personal preference for using hertz > for the frequency and 0-255 for the duty cycle but if the consensus is > to express these things some other way I'm fine with doing some math. Probably worth carrying a link to it here: https://lore.kernel.org/all/4de798f3-069e-4028-a5b5-5e6a639277e3@xxxxxxxxxxxxxxxxxxx/ I asked Uwe to take a look & it's on his todo list. Thanks, Conor. > > Changes in v4: > - 0 is not a valid frequency value > Changes in v3: > - Use the pwm provider/consumer bindings > Changes in v2: > - Document 0 as a valid value (leaves hardware as-is) > > .../devicetree/bindings/hwmon/adt7475.yaml | 25 ++++++++++++++++++- > 1 file changed, 24 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > index 051c976ab711..bfef4c803bf7 100644 > --- a/Documentation/devicetree/bindings/hwmon/adt7475.yaml > +++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml > @@ -51,6 +51,15 @@ properties: > enum: [0, 1] > default: 1 > > + "#pwm-cells": > + const: 4 > + description: | > + Number of cells in a PWM specifier. > + - 0: The pwm channel > + - 1: The pwm frequency in hertz - 11, 14, 22, 29, 35, 44, 58, 88, 22500 > + - 2: PWM flags 0 or PWM_POLARITY_INVERTED > + - 3: The default pwm duty cycle - 0-255 > + > patternProperties: > "^adi,bypass-attenuator-in[0-4]$": > description: | > @@ -81,6 +90,10 @@ patternProperties: > - smbalert# > - gpio > > + "^fan-[0-9]+$": > + $ref: fan-common.yaml# > + unevaluatedProperties: false > + > required: > - compatible > - reg > @@ -89,11 +102,12 @@ additionalProperties: false > > examples: > - | > + #include <dt-bindings/pwm/pwm.h> > i2c { > #address-cells = <1>; > #size-cells = <0>; > > - hwmon@2e { > + pwm: hwmon@2e { > compatible = "adi,adt7476"; > reg = <0x2e>; > adi,bypass-attenuator-in0 = <1>; > @@ -101,5 +115,14 @@ examples: > adi,pwm-active-state = <1 0 1>; > adi,pin10-function = "smbalert#"; > adi,pin14-function = "tach4"; > + #pwm-cells = <4>; > + > + fan-0 { > + pwms = <&pwm 0 22500 PWM_POLARITY_INVERTED 255>; > + }; > + > + fan-1 { > + pwms = <&pwm 2 22500 PWM_POLARITY_INVERTED 255>; > + }; > }; > }; > -- > 2.45.1 >
Attachment:
signature.asc
Description: PGP signature