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
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Signed-off-by: Ban Feng <kcfeng0@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@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
+ 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
+
+ label:
+ description:
+ Optional fan label
+
+ fan-supply:
+ description:
+ Power supply for fan.
+
+ reg:
+ maxItems: 1
+
+additionalProperties: true
+
--
2.34.1
On 2/26/24 16:56, baneric926@gmail.com 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 > > Reviewed-by: Rob Herring <robh@kernel.org> > Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > Signed-off-by: Ban Feng <kcfeng0@nuvoton.com> This patch (through its submission with the aspeed-g6 fan driver) is now in hwmon-next. Please do not resend. Any updates should be submitted as follow-up patches. Guenter
Hi Guenter, ok. Thanks, Ban On Fri, Mar 8, 2024 at 2:53 AM Guenter Roeck <linux@roeck-us.net> wrote: > > On 2/26/24 16:56, baneric926@gmail.com 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 > > > > Reviewed-by: Rob Herring <robh@kernel.org> > > Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> > > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > > Signed-off-by: Ban Feng <kcfeng0@nuvoton.com> > > This patch (through its submission with the aspeed-g6 fan driver) is now in hwmon-next. > > Please do not resend. Any updates should be submitted as follow-up patches. > > Guenter >
On Mon, Feb 26, 2024 at 04:56:04PM PST, baneric926@gmail.com 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 > >Reviewed-by: Rob Herring <robh@kernel.org> >Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> >Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> >Signed-off-by: Ban Feng <kcfeng0@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@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 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 > >
Hi Zev, This patch was suggested by reviewer and I cherry-pick from below link: https://patchwork.kernel.org/project/linux-hwmon/patch/20240221104025.1306227-2-billy_tsai@aspeedtech.com/ Because I don't know the rule about the patch with cherry-pick, maybe we should discuss it there? Thanks, Ban On Tue, Mar 5, 2024 at 8:22 AM Zev Weiss <zev@bewilderbeest.net> wrote: > > On Mon, Feb 26, 2024 at 04:56:04PM PST, baneric926@gmail.com 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 > > > >Reviewed-by: Rob Herring <robh@kernel.org> > >Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> > >Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> > >Signed-off-by: Ban Feng <kcfeng0@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@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 > > 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 > > > >
On 3/4/24 16:22, Zev Weiss wrote: > On Mon, Feb 26, 2024 at 04:56:04PM PST, baneric926@gmail.com 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 >> >> Reviewed-by: Rob Herring <robh@kernel.org> >> Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com> >> Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com> >> Signed-off-by: Ban Feng <kcfeng0@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@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 > > 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... > I have seen fans which run stable at < 400rpm. One of my systems right now has: fan1: 732 RPM (min = 0 RPM) fan2: 0 RPM (min = 0 RPM) fan3: 586 RPM (min = 0 RPM) fan4: 472 RPM (min = 0 RPM) fan5: 480 RPM (min = 0 RPM) Those are 80mm fans. A quick check shows that various Noctua fans have a minimum speed of 300 rpm. So 1000 is indeed a bit high for the minimum speed. Guenter
On 3/4/24 16:41, Guenter Roeck wrote: >>> + >>> + 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... >> > > I have seen fans which run stable at < 400rpm. > One of my systems right now has: > > fan1: 732 RPM (min = 0 RPM) > fan2: 0 RPM (min = 0 RPM) > fan3: 586 RPM (min = 0 RPM) > fan4: 472 RPM (min = 0 RPM) > fan5: 480 RPM (min = 0 RPM) > > Those are 80mm fans. A quick check shows that various Noctua fans have a > minimum speed of 300 rpm. So 1000 is indeed a bit high for the minimum speed. > No, wait, that is the _maximum_ minimum speed. Got me there. So, there is Noctua's NF-A4x20 PWM with a minimum rotational speed of 1,200 RPM. If I interpret https://www.mouser.com/datasheet/2/471/SanyoDenki_San_Ace_40LG28_E-3198440.pdf correctly, it lists some fans with a minimum speed of 7,500 RPM. Guenter
© 2016 - 2026 Red Hat, Inc.