Message ID | 20240227005606.1107203-2-kcfeng0@nuvoton.com |
---|---|
State | New |
Headers | show |
Series | hwmon: Driver for Nuvoton NCT7363Y | expand |
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
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 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 >
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 +