From: Naresh Solanki <naresh.solanki@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
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.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..be4ce3bd7f22
--- /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@9elements.com>
+ - Billy Tsai <billy_tsai@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
+
+ pulses-per-revolution:
+ description:
+ The number of pulse from fan sensor per revolution.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ maximum: 4
+
+ 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)
+ $ref: /schemas/types.yaml#/definitions/string
+
+ 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
+
+ label:
+ description:
+ Optional fan label
+
+ fan-supply:
+ description:
+ Power supply for fan.
+
+ reg:
+ maxItems: 1
+
+additionalProperties: true
+
+...
--
2.25.1
On Tue, Nov 07, 2023 at 06:50:23PM +0800, Billy Tsai wrote: > From: Naresh Solanki <naresh.solanki@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 > > Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > --- > .../devicetree/bindings/hwmon/fan-common.yaml | 78 +++++++++++++++++++ > 1 file changed, 78 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml Looking pretty good to me. It's disappointing that no one else interested in upstreaming their fan controller can be bothered to comment. > > diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml > new file mode 100644 > index 000000000000..be4ce3bd7f22 > --- /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@9elements.com> > + - Billy Tsai <billy_tsai@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 > + > + pulses-per-revolution: > + description: > + The number of pulse from fan sensor per revolution. > + $ref: /schemas/types.yaml#/definitions/uint32 > + maximum: 4 > + > + 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) > + $ref: /schemas/types.yaml#/definitions/string You need to define the possible values. I assume it's: enum: - dc - pwm - anything else??? With that, Reviewed-by: Rob Herring <robh@kernel.org>
On 11/8/23 10:16, Rob Herring wrote: > On Tue, Nov 07, 2023 at 06:50:23PM +0800, Billy Tsai wrote: >> From: Naresh Solanki <naresh.solanki@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 >> >> Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> >> Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> >> --- >> .../devicetree/bindings/hwmon/fan-common.yaml | 78 +++++++++++++++++++ >> 1 file changed, 78 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml > > Looking pretty good to me. It's disappointing that no one else > interested in upstreaming their fan controller can be bothered to > comment. > FWIW, I declined to comment since it basically looks ok to me and because at this point I'd rather have something (whatever it is) instead of nothing. >> >> diff --git a/Documentation/devicetree/bindings/hwmon/fan-common.yaml b/Documentation/devicetree/bindings/hwmon/fan-common.yaml >> new file mode 100644 >> index 000000000000..be4ce3bd7f22 >> --- /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@9elements.com> >> + - Billy Tsai <billy_tsai@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 >> + >> + pulses-per-revolution: >> + description: >> + The number of pulse from fan sensor per revolution. >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + maximum: 4 >> + >> + 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) >> + $ref: /schemas/types.yaml#/definitions/string > > You need to define the possible values. I assume it's: > > enum: > - dc > - pwm > - anything else??? > I am not aware of any other possible method. dc and pwm is all I have ever seen. Guenter > With that, > > Reviewed-by: Rob Herring <robh@kernel.org>
© 2016 - 2025 Red Hat, Inc.