Re: [PATCH 1/3] dt-bindings: hwmon: fan: Add fan binding to schema

From: Guenter Roeck
Date: Tue Oct 11 2022 - 03:02:01 EST


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>;
+ };
+
+ };
+ };
+
+...