On Tue, Oct 11, 2022 at 5:47 AM Naresh Solanki <naresh.solanki@xxxxxxxxxxxxx> wrote: > > Add common fan properties bindings to a schema. > > Bindings for fan controllers can reference the common schema for the > fan > > child nodes: > > patternProperties: > "^fan@[0-2]": > type: object > allOf: Don't allOf here. > - $ref: fan-common.yaml# > > Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx> > --- > .../devicetree/bindings/hwmon/fan-common.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml > new file mode 100644 > index 000000000000..abc8375da646 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: GPL-2.0-only Dual license with BSD-2-Clause. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/hwmon/fan-common.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Common fan properties > + > +maintainers: > + - Naresh Solanki <naresh.solanki@xxxxxxxxxxxxx> > + > +properties: > + max-rpm: > + description: > + Max RPM supported by fan > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + pulse-per-revolution: The already in use property is 'pulses-per-revolution'. > + description: > + The number of pulse from fan sensor per revolution. > + $ref: /schemas/types.yaml#/definitions/uint32 I assume there's a known set of values various fans have? > + > + target-rpm: > + description: > + Target RPM the fan should be configured during driver probe. Which driver? I think 'default-rpm' would be a better name. > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + pwm-frequency: > + description: > + PWM frequency for fan. > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + pwm-polarity-inverse: > + description: > + PWM polarity for fan. > + type: boolean Both of these properties are handled by the PWM binding already. I think this should use it even though the PWMs are just connected to the child nodes. There's always the possibility that someone hooks up a fan controller PWM to something else besides a fan. > + > + label: > + description: > + Optional fan label > + $ref: /schemas/types.yaml#/definitions/string Doesn't a fan need power? 'fan-supply' is already in use, so that could be used. > + > +additionalProperties: true > + > +examples: > + - | Drop the example here as you have it in the max6639 schema. > + > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + fan-controller@30 { > + compatible = "maxim,max6639"; > + reg = <0x30>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + fan@0 { > + reg = <0>; > + label = "CPU0_Fan"; > + max-rpm = <32000>; > + pulse-per-revolution = <2>; > + target-rpm = <2000>; > + pwm-frequency = <25000>; > + }; > + > + fan@1 { > + reg = <1>; > + label = "PCIe0_Fan"; > + max-rpm = <32000>; > + pulse-per-revolution = <2>; > + target-rpm = <2000>; > + pwm-frequency = <25000>; > + }; > + > + }; > + }; > + > +... > > base-commit: 0cf46a653bdae56683fece68dc50340f7520e6c4 > -- > 2.37.3 >