On 10/10/22 13:30, Naresh Solanki 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: - $ref: fan-common.yaml# Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx> --- .../devicetree/bindings/hwmon/fan-common.yaml | 77 +++++++++++++++++++ 1 file changed, 77 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..6bb990f00e94 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml @@ -0,0 +1,77 @@ +# SPDX-License-Identifier: GPL-2.0-only +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/fan-common.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Common fan properties + +properties: + max-rpm: + description: + Max RPM supported by fan + $ref: /schemas/types.yaml#/definitions/uint32 + + pulse-per-revolution: + description: + The number of pulse from fan sensor per revolution. + $ref: /schemas/types.yaml#/definitions/uint32 + + target-rpm: + description: + Target RPM the fan should be configured during driver probe. + $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 + + label: + description: + Optional fan label + $ref: /schemas/types.yaml#/definitions/string +
Question for Rob: If a fan controller has other properties, such as fan-divider or min-rpm, would it be ok to add those in the fan controller devicetree bindings, or should those be added here if/when needed ? Thanks, Guenter
+additionalProperties: true + +examples: + - | + + + 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>; + }; + + }; + }; + +...