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

Message ID 20221121122932.2493174-2-Naresh.Solanki@9elements.com
State New
Headers
Series Add devicetree support for max6639 |

Commit Message

Naresh Solanki Nov. 21, 2022, 12:29 p.m. UTC
  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@9elements.com>
---
 .../devicetree/bindings/hwmon/fan-common.yaml | 47 +++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/fan-common.yaml
  

Comments

Guenter Roeck Nov. 22, 2022, 7:25 p.m. UTC | #1
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@9elements.com>
> ---
>   .../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@9elements.com>
> +
> +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
  
Krzysztof Kozlowski Nov. 29, 2022, 8:09 a.m. UTC | #2
On 21/11/2022 13: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@9elements.com>
> ---
>  .../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

I responded to v6, so let me paste here as well:
Common Fan Properties

> +
> +maintainers:
> +  - Naresh Solanki <naresh.solanki@9elements.com>
> +
> +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.

Maybe:
type: object

> +


Best regards,
Krzysztof
  
Krzysztof Kozlowski Nov. 29, 2022, 8:12 a.m. UTC | #3
On 21/11/2022 13:29, Naresh Solanki wrote:

> +  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.

Ah, so it is not a PWM provider by this FAN controller? A bit confusing
description. Instead maybe:
	PWM signal for the fan

and do you expect more than one PWM for one fan?

Best regards,
Krzysztof
  
Naresh Solanki Nov. 29, 2022, 3:46 p.m. UTC | #4
Hi Krzysztof,

On 29-11-2022 01:42 pm, Krzysztof Kozlowski wrote:
> On 21/11/2022 13:29, Naresh Solanki wrote:
> 
>> +  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.
> 
> Ah, so it is not a PWM provider by this FAN controller? A bit confusing
> description. Instead maybe:
> 	PWM signal for the fan
Sure.
> 
> and do you expect more than one PWM for one fan?
One pwm per fan
> 
> Best regards,
> Krzysztof
> 

Regards,
Naresh
  
Krzysztof Kozlowski Nov. 29, 2022, 3:57 p.m. UTC | #5
On 29/11/2022 16:46, Naresh Solanki wrote:
> Hi Krzysztof,
> 
> On 29-11-2022 01:42 pm, Krzysztof Kozlowski wrote:
>> On 21/11/2022 13:29, Naresh Solanki wrote:
>>
>>> +  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.
>>
>> Ah, so it is not a PWM provider by this FAN controller? A bit confusing
>> description. Instead maybe:
>> 	PWM signal for the fan
> Sure.
>>
>> and do you expect more than one PWM for one fan?
> One pwm per fan

then:
  maxItems: 1

Best regards,
Krzysztof
  
Naresh Solanki Nov. 29, 2022, 4:03 p.m. UTC | #6
On 29-11-2022 09:27 pm, Krzysztof Kozlowski wrote:
> On 29/11/2022 16:46, Naresh Solanki wrote:
>> Hi Krzysztof,
>>
>> On 29-11-2022 01:42 pm, Krzysztof Kozlowski wrote:
>>> On 21/11/2022 13:29, Naresh Solanki wrote:
>>>
>>>> +  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.
>>>
>>> Ah, so it is not a PWM provider by this FAN controller? A bit confusing
>>> description. Instead maybe:
>>> 	PWM signal for the fan
>> Sure.
>>>
>>> and do you expect more than one PWM for one fan?
>> One pwm per fan
> 
> then:
>    maxItems: 1
> 
Sure
> Best regards,
> Krzysztof
> 
Regards,
Naresh
  

Patch

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@9elements.com>
+
+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
+
+...