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

From: Guenter Roeck
Date: Tue Nov 22 2022 - 14:25:44 EST


On 11/21/22 04:29, 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
$ref: fan-common.yaml#

Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx>
---
.../devicetree/bindings/hwmon/fan-common.yaml | 47 +++++++++++++++++++
1 file changed, 47 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..0535d37624cc
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: GPL-2.0-or-later OR 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
+
+ min-rpm:
+ description:
+ Min RPM supported by fan.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ pulses-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
+
+ pwms:
+ description:
+ PWM provider.
+
+ label:
+ description:
+ Optional fan label
+
+ fan-supply:
+ description:
+ Power supply for fan.
+
+additionalProperties: true
+
+...

Still, from my second reply to v6:

> Another property which is definitely missing and needed
> will be DC vs. PWM control. That is currently pwm[1-*]_mode
> in sysfs attributes, but it is really a fan attribute.
>
> Many fans are DC controlled, so this property is absolutely
> necessary.

Plus, with DC control there is no pwm. It would be absolutely wrong
to declare that a fan controller MUST be pwm based.

Ultimately, there are three types of fan controllers:

- PWM control, such as MAX6639
- DC control, such as MAX6620 or MAX6650/6651
- Configurable, such as MAX1669 or pretty much all fan controllers
included in SuperIO chips

Generic fan control bindings simply _have_ to take this into account.

Guenter