diff mbox series

[2/2] dt-bindings: hwmon: max6650: convert to dtschema

Message ID 20240320-hwmon_yaml-v1-2-a349ca21ccab@gmail.com (mailing list archive)
State Superseded
Headers show
Series dt-bindings: hwmon: convert lm87 and max6650 to dtschema | expand

Commit Message

Javier Carrasco March 20, 2024, 5:04 p.m. UTC
Convert existing bindings to dtschema to support validation.

 This is a straightforward conversion with no new properties.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 .../devicetree/bindings/hwmon/max6650.txt          | 28 ---------
 .../devicetree/bindings/hwmon/maxim,max6650.yaml   | 68 ++++++++++++++++++++++
 2 files changed, 68 insertions(+), 28 deletions(-)

Comments

Rob Herring (Arm) March 21, 2024, 2:03 p.m. UTC | #1
On Wed, Mar 20, 2024 at 06:04:58PM +0100, Javier Carrasco wrote:
>  Convert existing bindings to dtschema to support validation.
> 
>  This is a straightforward conversion with no new properties.

Why the indentation?

> 
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
> ---
>  .../devicetree/bindings/hwmon/max6650.txt          | 28 ---------
>  .../devicetree/bindings/hwmon/maxim,max6650.yaml   | 68 ++++++++++++++++++++++
>  2 files changed, 68 insertions(+), 28 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/max6650.txt b/Documentation/devicetree/bindings/hwmon/max6650.txt
> deleted file mode 100644
> index f6bd87d8e284..000000000000
> --- a/Documentation/devicetree/bindings/hwmon/max6650.txt
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -Bindings for MAX6651 and MAX6650 I2C fan controllers
> -
> -Reference:
> -[1]	https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
> -
> -Required properties:
> -- compatible : One of "maxim,max6650" or "maxim,max6651"
> -- reg        : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
> -
> -Optional properties, default is to retain the chip's current setting:
> -- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
> -			12000000 uV.
> -- maxim,fan-prescale  : Pre-scaling value, as per datasheet [1]. Lower values
> -			allow more fine-grained control of slower fans.
> -			Valid: 1, 2, 4, 8, 16.
> -- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
> -			driver selects closed-loop mode and the requested speed.
> -			This ensures the fan is already running before userspace
> -			takes over.
> -
> -Example:
> -	fan-max6650: max6650@1b {
> -		reg = <0x1b>;
> -		compatible = "maxim,max6650";
> -		maxim,fan-microvolt = <12000000>;
> -		maxim,fan-prescale = <4>;
> -		maxim,fan-target-rpm = <1200>;
> -	};
> diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
> new file mode 100644
> index 000000000000..1b33b5fb606d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +
> +$id: http://devicetree.org/schemas/hwmon/maxim,max6650.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
> +
> +maintainers:
> +  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
> +
> +description: |
> +  The MAX6650 and MAX6651 regulate and monitor the speed
> +  of 5VDC/12VDC burshless fans with built-in tachometers.
> +
> +  Datasheets:
> +    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
> +
> +properties:
> +  compatible:
> +    enum:
> +      - maxim,max6650
> +      - maxim,max6651
> +
> +  reg:
> +    maxItems: 1
> +
> +  maxim,fan-microvolt:
> +    description:
> +      The supply voltage of the fan, either 5000000 uV or
> +      12000000 uV.

Looks like constraints. Please add them.

> +
> +  maxim,fan-prescale:
> +    description:
> +      Pre-scaling value, as per datasheet. Lower values
> +      allow more fine-grained control of slower fans.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [1, 2, 4, 8, 16]
> +
> +  maxim,fan-target-rpm:
> +    description:
> +      Initial requested fan rotation speed. If specified, the
> +      driver selects closed-loop mode and the requested speed.
> +      This ensures the fan is already running before userspace
> +      takes over.
> +    $ref: /schemas/types.yaml#/definitions/uint32

Constraints? I'm sure no fan RPM is higher than 10000 and probably much 
less than that.

Rob
Guenter Roeck March 21, 2024, 2:17 p.m. UTC | #2
On 3/21/24 07:03, Rob Herring wrote:
> On Wed, Mar 20, 2024 at 06:04:58PM +0100, Javier Carrasco wrote:
>>   Convert existing bindings to dtschema to support validation.
>>
>>   This is a straightforward conversion with no new properties.
> 
> Why the indentation?
> 
>>
>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> ---
>>   .../devicetree/bindings/hwmon/max6650.txt          | 28 ---------
>>   .../devicetree/bindings/hwmon/maxim,max6650.yaml   | 68 ++++++++++++++++++++++
>>   2 files changed, 68 insertions(+), 28 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/hwmon/max6650.txt b/Documentation/devicetree/bindings/hwmon/max6650.txt
>> deleted file mode 100644
>> index f6bd87d8e284..000000000000
>> --- a/Documentation/devicetree/bindings/hwmon/max6650.txt
>> +++ /dev/null
>> @@ -1,28 +0,0 @@
>> -Bindings for MAX6651 and MAX6650 I2C fan controllers
>> -
>> -Reference:
>> -[1]	https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
>> -
>> -Required properties:
>> -- compatible : One of "maxim,max6650" or "maxim,max6651"
>> -- reg        : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
>> -
>> -Optional properties, default is to retain the chip's current setting:
>> -- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
>> -			12000000 uV.
>> -- maxim,fan-prescale  : Pre-scaling value, as per datasheet [1]. Lower values
>> -			allow more fine-grained control of slower fans.
>> -			Valid: 1, 2, 4, 8, 16.
>> -- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
>> -			driver selects closed-loop mode and the requested speed.
>> -			This ensures the fan is already running before userspace
>> -			takes over.
>> -
>> -Example:
>> -	fan-max6650: max6650@1b {
>> -		reg = <0x1b>;
>> -		compatible = "maxim,max6650";
>> -		maxim,fan-microvolt = <12000000>;
>> -		maxim,fan-prescale = <4>;
>> -		maxim,fan-target-rpm = <1200>;
>> -	};
>> diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
>> new file mode 100644
>> index 000000000000..1b33b5fb606d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
>> @@ -0,0 +1,68 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +
>> +$id: http://devicetree.org/schemas/hwmon/maxim,max6650.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
>> +
>> +maintainers:
>> +  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> +
>> +description: |
>> +  The MAX6650 and MAX6651 regulate and monitor the speed
>> +  of 5VDC/12VDC burshless fans with built-in tachometers.
>> +
>> +  Datasheets:
>> +    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - maxim,max6650
>> +      - maxim,max6651
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  maxim,fan-microvolt:
>> +    description:
>> +      The supply voltage of the fan, either 5000000 uV or
>> +      12000000 uV.
> 
> Looks like constraints. Please add them.
> 
>> +
>> +  maxim,fan-prescale:
>> +    description:
>> +      Pre-scaling value, as per datasheet. Lower values
>> +      allow more fine-grained control of slower fans.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    enum: [1, 2, 4, 8, 16]
>> +
>> +  maxim,fan-target-rpm:
>> +    description:
>> +      Initial requested fan rotation speed. If specified, the
>> +      driver selects closed-loop mode and the requested speed.
>> +      This ensures the fan is already running before userspace
>> +      takes over.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
> 
> Constraints? I'm sure no fan RPM is higher than 10000 and probably much
> less than that.
> 

There are industrial fans with much higher rpm. mouser.com lists one
with more than 60,000 rpm, but I am sure I have seen some with more than
100k rpm.

Guenter
Javier Carrasco March 21, 2024, 2:18 p.m. UTC | #3
On 3/21/24 15:03, Rob Herring wrote:
> On Wed, Mar 20, 2024 at 06:04:58PM +0100, Javier Carrasco wrote:
>>  Convert existing bindings to dtschema to support validation.
>>
>>  This is a straightforward conversion with no new properties.
> 
> Why the indentation?
> 

Will be fixed for v2

>>
>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> ---
>>  .../devicetree/bindings/hwmon/max6650.txt          | 28 ---------
>>  .../devicetree/bindings/hwmon/maxim,max6650.yaml   | 68 ++++++++++++++++++++++
>>  2 files changed, 68 insertions(+), 28 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/hwmon/max6650.txt b/Documentation/devicetree/bindings/hwmon/max6650.txt
>> deleted file mode 100644
>> index f6bd87d8e284..000000000000
>> --- a/Documentation/devicetree/bindings/hwmon/max6650.txt
>> +++ /dev/null
>> @@ -1,28 +0,0 @@
>> -Bindings for MAX6651 and MAX6650 I2C fan controllers
>> -
>> -Reference:
>> -[1]	https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
>> -
>> -Required properties:
>> -- compatible : One of "maxim,max6650" or "maxim,max6651"
>> -- reg        : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
>> -
>> -Optional properties, default is to retain the chip's current setting:
>> -- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
>> -			12000000 uV.
>> -- maxim,fan-prescale  : Pre-scaling value, as per datasheet [1]. Lower values
>> -			allow more fine-grained control of slower fans.
>> -			Valid: 1, 2, 4, 8, 16.
>> -- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
>> -			driver selects closed-loop mode and the requested speed.
>> -			This ensures the fan is already running before userspace
>> -			takes over.
>> -
>> -Example:
>> -	fan-max6650: max6650@1b {
>> -		reg = <0x1b>;
>> -		compatible = "maxim,max6650";
>> -		maxim,fan-microvolt = <12000000>;
>> -		maxim,fan-prescale = <4>;
>> -		maxim,fan-target-rpm = <1200>;
>> -	};
>> diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
>> new file mode 100644
>> index 000000000000..1b33b5fb606d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
>> @@ -0,0 +1,68 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +
>> +$id: http://devicetree.org/schemas/hwmon/maxim,max6650.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
>> +
>> +maintainers:
>> +  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> +
>> +description: |
>> +  The MAX6650 and MAX6651 regulate and monitor the speed
>> +  of 5VDC/12VDC burshless fans with built-in tachometers.
>> +
>> +  Datasheets:
>> +    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - maxim,max6650
>> +      - maxim,max6651
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  maxim,fan-microvolt:
>> +    description:
>> +      The supply voltage of the fan, either 5000000 uV or
>> +      12000000 uV.
> 
> Looks like constraints. Please add them.
> 

Will add enum: [5000000, 12000000]

>> +
>> +  maxim,fan-prescale:
>> +    description:
>> +      Pre-scaling value, as per datasheet. Lower values
>> +      allow more fine-grained control of slower fans.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    enum: [1, 2, 4, 8, 16]
>> +
>> +  maxim,fan-target-rpm:
>> +    description:
>> +      Initial requested fan rotation speed. If specified, the
>> +      driver selects closed-loop mode and the requested speed.
>> +      This ensures the fan is already running before userspace
>> +      takes over.
>> +    $ref: /schemas/types.yaml#/definitions/uint32
> 
> Constraints? I'm sure no fan RPM is higher than 10000 and probably much 
> less than that.
> 
> Rob

According to the datasheet (page 9, table 3. Fan Speed), the highest fan
speed that can be achieved is 30000 RPM (which does not mean that fans
actually reach that speed). I could use that as the maximum value, though.

Thanks for the review and best regards,
Javier Carrasco
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/hwmon/max6650.txt b/Documentation/devicetree/bindings/hwmon/max6650.txt
deleted file mode 100644
index f6bd87d8e284..000000000000
--- a/Documentation/devicetree/bindings/hwmon/max6650.txt
+++ /dev/null
@@ -1,28 +0,0 @@ 
-Bindings for MAX6651 and MAX6650 I2C fan controllers
-
-Reference:
-[1]	https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
-
-Required properties:
-- compatible : One of "maxim,max6650" or "maxim,max6651"
-- reg        : I2C address, one of 0x1b, 0x1f, 0x4b, 0x48.
-
-Optional properties, default is to retain the chip's current setting:
-- maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or
-			12000000 uV.
-- maxim,fan-prescale  : Pre-scaling value, as per datasheet [1]. Lower values
-			allow more fine-grained control of slower fans.
-			Valid: 1, 2, 4, 8, 16.
-- maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the
-			driver selects closed-loop mode and the requested speed.
-			This ensures the fan is already running before userspace
-			takes over.
-
-Example:
-	fan-max6650: max6650@1b {
-		reg = <0x1b>;
-		compatible = "maxim,max6650";
-		maxim,fan-microvolt = <12000000>;
-		maxim,fan-prescale = <4>;
-		maxim,fan-target-rpm = <1200>;
-	};
diff --git a/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
new file mode 100644
index 000000000000..1b33b5fb606d
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/maxim,max6650.yaml
@@ -0,0 +1,68 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/maxim,max6650.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX6650 and MAX6651 I2C Fan Controllers
+
+maintainers:
+  - Javier Carrasco <javier.carrasco.cruz@gmail.com>
+
+description: |
+  The MAX6650 and MAX6651 regulate and monitor the speed
+  of 5VDC/12VDC burshless fans with built-in tachometers.
+
+  Datasheets:
+    https://datasheets.maximintegrated.com/en/ds/MAX6650-MAX6651.pdf
+
+properties:
+  compatible:
+    enum:
+      - maxim,max6650
+      - maxim,max6651
+
+  reg:
+    maxItems: 1
+
+  maxim,fan-microvolt:
+    description:
+      The supply voltage of the fan, either 5000000 uV or
+      12000000 uV.
+
+  maxim,fan-prescale:
+    description:
+      Pre-scaling value, as per datasheet. Lower values
+      allow more fine-grained control of slower fans.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4, 8, 16]
+
+  maxim,fan-target-rpm:
+    description:
+      Initial requested fan rotation speed. If specified, the
+      driver selects closed-loop mode and the requested speed.
+      This ensures the fan is already running before userspace
+      takes over.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fan-controller@1b {
+            compatible = "maxim,max6650";
+            reg = <0x1b>;
+            maxim,fan-microvolt = <12000000>;
+            maxim,fan-prescale = <4>;
+            maxim,fan-target-rpm = <1200>;
+        };
+    };