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

Zev Weiss zev at bewilderbeest.net
Tue Mar 5 11:22:49 AEDT 2024


On Mon, Feb 26, 2024 at 04:56:04PM PST, baneric926 at gmail.com wrote:
>From: Naresh Solanki <naresh.solanki at 9elements.com>
>
>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#
>      unevaluatedProperties: false
>
>Reviewed-by: Rob Herring <robh at kernel.org>
>Signed-off-by: Naresh Solanki <naresh.solanki at 9elements.com>
>Signed-off-by: Billy Tsai <billy_tsai at aspeedtech.com>
>Signed-off-by: Ban Feng <kcfeng0 at nuvoton.com>
>---
> .../devicetree/bindings/hwmon/fan-common.yaml | 78 +++++++++++++++++++
> 1 file changed, 78 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..15c591c74545
>--- /dev/null
>+++ b/Documentation/devicetree/bindings/hwmon/fan-common.yaml
>@@ -0,0 +1,78 @@
>+# SPDX-License-Identifier: GPL-2.0-only 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 at 9elements.com>
>+  - Billy Tsai <billy_tsai at aspeedtech.com>
>+
>+properties:
>+  max-rpm:
>+    description:
>+      Max RPM supported by fan.
>+    $ref: /schemas/types.yaml#/definitions/uint32
>+    maximum: 100000
>+
>+  min-rpm:
>+    description:
>+      Min RPM supported by fan.
>+    $ref: /schemas/types.yaml#/definitions/uint32
>+    maximum: 1000

I can't say with certainty that it's not, but are we sure 1000 is low 
enough?  Looking at just what I've got on hand, an 80mm fan I have will 
run steadily at about 1500RPM, and I'd assume larger ones (e.g. 120mm) 
could potentially go significantly lower...

>+
>+  pulses-per-revolution:
>+    description:
>+      The number of pulse from fan sensor per revolution.
>+    $ref: /schemas/types.yaml#/definitions/uint32
>+    maximum: 4

Might we want 'default: 2' here?

>+
>+  tach-div:
>+    description:
>+      Divisor for the tach sampling clock, which determines the sensitivity of the tach pin.
>+    $ref: /schemas/types.yaml#/definitions/uint32
>+
>+  target-rpm:
>+    description:
>+      The default desired fan speed in RPM.
>+    $ref: /schemas/types.yaml#/definitions/uint32
>+
>+  fan-driving-mode:
>+    description:
>+      Select the driving mode of the fan.(DC, PWM and so on)

Nit: could use a space before the parenthetical.

>+    $ref: /schemas/types.yaml#/definitions/string
>+    enum: [ dc, pwm ]
>+
>+  pwms:
>+    description:
>+      PWM provider.
>+    maxItems: 1
>+
>+  "#cooling-cells":
>+    const: 2
>+
>+  cooling-levels:
>+    description:
>+      The control value which correspond to thermal cooling states.
>+    $ref: /schemas/types.yaml#/definitions/uint32-array
>+
>+  tach-ch:
>+    description:
>+      The tach channel used for the fan.
>+    $ref: /schemas/types.yaml#/definitions/uint8-array

Nit: s/channel/channels/ given that it's an array?

>+
>+  label:
>+    description:
>+      Optional fan label
>+
>+  fan-supply:
>+    description:
>+      Power supply for fan.
>+
>+  reg:
>+    maxItems: 1
>+
>+additionalProperties: true
>+
>-- 
>2.34.1
>
>


More information about the openbmc mailing list