All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
@ 2021-10-09 10:43 David Heidelberg
  2021-10-10 19:31 ` Rob Herring
  2021-10-19 21:35 ` Rob Herring
  0 siblings, 2 replies; 6+ messages in thread
From: David Heidelberg @ 2021-10-09 10:43 UTC (permalink / raw)
  To: Rob Herring, Guenter Roeck, Jean Delvare
  Cc: linux-hwmon, devicetree, linux-kernel, ~okias/devicetree,
	David Heidelberg

Convert fan devices connected to GPIOs to the YAML syntax.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
 .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69 +++++++++++++++++++
 2 files changed, 69 insertions(+), 41 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.txt
 create mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.yaml

diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt b/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
deleted file mode 100644
index f4cfa350f6a1..000000000000
--- a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-Bindings for fan connected to GPIO lines
-
-Required properties:
-- compatible : "gpio-fan"
-
-Optional properties:
-- gpios: Specifies the pins that map to bits in the control value,
-  ordered MSB-->LSB.
-- gpio-fan,speed-map: A mapping of possible fan RPM speeds and the
-  control value that should be set to achieve them. This array
-  must have the RPM values in ascending order.
-- alarm-gpios: This pin going active indicates something is wrong with
-  the fan, and a udev event will be fired.
-- #cooling-cells: If used as a cooling device, must be <2>
-  Also see:
-  Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
-  min and max states are derived from the speed-map of the fan.
-
-Note: At least one the "gpios" or "alarm-gpios" properties must be set.
-
-Examples:
-
-	gpio_fan {
-		compatible = "gpio-fan";
-		gpios = <&gpio1 14 1
-			 &gpio1 13 1>;
-		gpio-fan,speed-map = <0    0
-				      3000 1
-				      6000 2>;
-		alarm-gpios = <&gpio1 15 1>;
-	};
-	gpio_fan_cool: gpio_fan {
-		compatible = "gpio-fan";
-		gpios = <&gpio2 14 1
-			 &gpio2 13 1>;
-		gpio-fan,speed-map =	<0    0>,
-					<3000 1>,
-					<6000 2>;
-		alarm-gpios = <&gpio2 15 1>;
-		#cooling-cells = <2>; /* min followed by max */
-	};
diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
new file mode 100644
index 000000000000..e2db65d58a92
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/hwmon/gpio-fan.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Bindings for fan connected to GPIO lines
+
+maintainers:
+  - Rob Herring <robh+dt@kernel.org>
+
+properties:
+  compatible:
+    const: gpio-fan
+
+  gpios:
+    description: |
+      Specifies the pins that map to bits in the control value,
+      ordered MSB-->LSB.
+
+  gpio-fan,speed-map:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 4
+    maxItems: 254
+    description: |
+      A mapping of possible fan RPM speeds and the
+      control value that should be set to achieve them. This array
+      must have the RPM values in ascending order.
+
+  alarm-gpios:
+    description: |
+      This pin going active indicates something is wrong with
+      the fan, and a udev event will be fired.
+
+  '#cooling-cells':
+    const: 2
+
+required:
+  - compatible
+  - gpio-fan,speed-map
+
+anyOf:
+  - required: [gpios]
+  - required: [alarm-gpios]
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio_fan {
+      compatible = "gpio-fan";
+      gpios = <&gpio1 14 1
+               &gpio1 13 1>;
+      gpio-fan,speed-map = <0    0
+                            3000 1
+                            6000 2>;
+      alarm-gpios = <&gpio1 15 1>;
+    };
+  - |
+    gpio_fan_cool: gpio_fan {
+      compatible = "gpio-fan";
+      gpios = <&gpio2 14 1
+               &gpio2 13 1>;
+      gpio-fan,speed-map = <0    0
+                            3000 1
+                            6000 2>;
+      alarm-gpios = <&gpio2 15 1>;
+      #cooling-cells = <2>; /* min followed by max */
+    };
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
  2021-10-09 10:43 [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml David Heidelberg
@ 2021-10-10 19:31 ` Rob Herring
  2021-10-10 21:49   ` David Heidelberg
  2021-10-19 21:35 ` Rob Herring
  1 sibling, 1 reply; 6+ messages in thread
From: Rob Herring @ 2021-10-10 19:31 UTC (permalink / raw)
  To: David Heidelberg
  Cc: Guenter Roeck, Jean Delvare, ~okias/devicetree, devicetree,
	Rob Herring, linux-kernel, linux-hwmon

On Sat, 09 Oct 2021 12:43:09 +0200, David Heidelberg wrote:
> Convert fan devices connected to GPIOs to the YAML syntax.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
>  .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69 +++++++++++++++++++
>  2 files changed, 69 insertions(+), 41 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>  create mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/1538743


fan: 'gpio-fan,speed-map' is a required property
	arch/arm/boot/dts/kirkwood-nas2big.dt.yaml
	arch/arm/boot/dts/kirkwood-net2big.dt.yaml

gpio-fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
	arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml

gpio_fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
	arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
	arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml

gpio-fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
	arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml

gpio_fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be fixed:
	arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
	arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
	arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
  2021-10-10 19:31 ` Rob Herring
@ 2021-10-10 21:49   ` David Heidelberg
  2021-10-11 18:45     ` Rob Herring
  0 siblings, 1 reply; 6+ messages in thread
From: David Heidelberg @ 2021-10-10 21:49 UTC (permalink / raw)
  To: Rob Herring
  Cc: Guenter Roeck, Jean Delvare, ~okias/devicetree, devicetree,
	Rob Herring, linux-kernel, linux-hwmon




On Sun, Oct 10 2021 at 14:31:56 -0500, Rob Herring <robh@kernel.org> 
wrote:
> On Sat, 09 Oct 2021 12:43:09 +0200, David Heidelberg wrote:
>>  Convert fan devices connected to GPIOs to the YAML syntax.
>> 
>>  Signed-off-by: David Heidelberg <david@ixit.cz>
>>  ---
>>   .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
>>   .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69 
>> +++++++++++++++++++
>>   2 files changed, 69 insertions(+), 41 deletions(-)
>>   delete mode 100644 
>> Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>>   create mode 100644 
>> Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
>> 
> 
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
> 
> Note that it is not yet a requirement to have 0 warnings for 
> dtbs_check.
> This will change in the future.
> 
> Full log is available here: https://patchwork.ozlabs.org/patch/1538743
> 
> 
> fan: 'gpio-fan,speed-map' is a required property
> 	arch/arm/boot/dts/kirkwood-nas2big.dt.yaml
> 	arch/arm/boot/dts/kirkwood-net2big.dt.yaml
This sounds correct.

> 
> gpio-fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be 
> fixed:
> 	arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
> 	arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml
> 
Look like two arrays instead one expected.

> gpio_fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be 
> fixed:
> 	arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
> 	arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
> 	arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml
Look like two arrays instead one expected.

> 
> gpio-fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be 
> fixed:
> 	arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
> 	arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml
> 
Look like three arrays instead one expected.

> gpio_fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be 
> fixed:
> 	arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
> 	arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
> 	arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml
> 
Look like two arrays instead one expected.

I can send patches to solve these warnings.

David
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
  2021-10-10 21:49   ` David Heidelberg
@ 2021-10-11 18:45     ` Rob Herring
  0 siblings, 0 replies; 6+ messages in thread
From: Rob Herring @ 2021-10-11 18:45 UTC (permalink / raw)
  To: David Heidelberg
  Cc: Guenter Roeck, Jean Delvare, ~okias/devicetree, devicetree,
	linux-kernel, Linux HWMON List

On Sun, Oct 10, 2021 at 4:50 PM David Heidelberg <david@ixit.cz> wrote:
>
>
>
>
> On Sun, Oct 10 2021 at 14:31:56 -0500, Rob Herring <robh@kernel.org>
> wrote:
> > On Sat, 09 Oct 2021 12:43:09 +0200, David Heidelberg wrote:
> >>  Convert fan devices connected to GPIOs to the YAML syntax.
> >>
> >>  Signed-off-by: David Heidelberg <david@ixit.cz>
> >>  ---
> >>   .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
> >>   .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69
> >> +++++++++++++++++++
> >>   2 files changed, 69 insertions(+), 41 deletions(-)
> >>   delete mode 100644
> >> Documentation/devicetree/bindings/hwmon/gpio-fan.txt
> >>   create mode 100644
> >> Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
> >>
> >
> > Running 'make dtbs_check' with the schema in this patch gives the
> > following warnings. Consider if they are expected or the schema is
> > incorrect. These may not be new warnings.
> >
> > Note that it is not yet a requirement to have 0 warnings for
> > dtbs_check.
> > This will change in the future.
> >
> > Full log is available here: https://patchwork.ozlabs.org/patch/1538743
> >
> >
> > fan: 'gpio-fan,speed-map' is a required property
> >       arch/arm/boot/dts/kirkwood-nas2big.dt.yaml
> >       arch/arm/boot/dts/kirkwood-net2big.dt.yaml
> This sounds correct.
>
> >
> > gpio-fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be
> > fixed:
> >       arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
> >       arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml
> >
> Look like two arrays instead one expected.
>
> > gpio_fan: gpio-fan,speed-map: 'anyOf' conditional failed, one must be
> > fixed:
> >       arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
> >       arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
> >       arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml
> Look like two arrays instead one expected.
>
> >
> > gpio-fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be
> > fixed:
> >       arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml
> >       arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml
> >
> Look like three arrays instead one expected.
>
> > gpio_fan: gpio-fan,speed-map: 'oneOf' conditional failed, one must be
> > fixed:
> >       arch/arm/boot/dts/am57xx-beagle-x15.dt.yaml
> >       arch/arm/boot/dts/am57xx-beagle-x15-revb1.dt.yaml
> >       arch/arm/boot/dts/am57xx-beagle-x15-revc.dt.yaml
> >
> Look like two arrays instead one expected.
>
> I can send patches to solve these warnings.

Certainly not required, but would be nice. I sent it more for whether
anything in the schema should change.

Rob

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
  2021-10-09 10:43 [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml David Heidelberg
  2021-10-10 19:31 ` Rob Herring
@ 2021-10-19 21:35 ` Rob Herring
  2021-10-28 13:52   ` David Heidelberg
  1 sibling, 1 reply; 6+ messages in thread
From: Rob Herring @ 2021-10-19 21:35 UTC (permalink / raw)
  To: David Heidelberg
  Cc: Guenter Roeck, Jean Delvare, linux-hwmon, devicetree,
	linux-kernel, ~okias/devicetree

On Sat, Oct 09, 2021 at 12:43:09PM +0200, David Heidelberg wrote:
> Convert fan devices connected to GPIOs to the YAML syntax.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
>  .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69 +++++++++++++++++++
>  2 files changed, 69 insertions(+), 41 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>  create mode 100644 Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt b/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
> deleted file mode 100644
> index f4cfa350f6a1..000000000000
> --- a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -Bindings for fan connected to GPIO lines
> -
> -Required properties:
> -- compatible : "gpio-fan"
> -
> -Optional properties:
> -- gpios: Specifies the pins that map to bits in the control value,
> -  ordered MSB-->LSB.
> -- gpio-fan,speed-map: A mapping of possible fan RPM speeds and the
> -  control value that should be set to achieve them. This array
> -  must have the RPM values in ascending order.
> -- alarm-gpios: This pin going active indicates something is wrong with
> -  the fan, and a udev event will be fired.
> -- #cooling-cells: If used as a cooling device, must be <2>
> -  Also see:
> -  Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
> -  min and max states are derived from the speed-map of the fan.
> -
> -Note: At least one the "gpios" or "alarm-gpios" properties must be set.
> -
> -Examples:
> -
> -	gpio_fan {
> -		compatible = "gpio-fan";
> -		gpios = <&gpio1 14 1
> -			 &gpio1 13 1>;
> -		gpio-fan,speed-map = <0    0
> -				      3000 1
> -				      6000 2>;
> -		alarm-gpios = <&gpio1 15 1>;
> -	};
> -	gpio_fan_cool: gpio_fan {
> -		compatible = "gpio-fan";
> -		gpios = <&gpio2 14 1
> -			 &gpio2 13 1>;
> -		gpio-fan,speed-map =	<0    0>,
> -					<3000 1>,
> -					<6000 2>;
> -		alarm-gpios = <&gpio2 15 1>;
> -		#cooling-cells = <2>; /* min followed by max */
> -	};
> diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
> new file mode 100644
> index 000000000000..e2db65d58a92
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
> @@ -0,0 +1,69 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/hwmon/gpio-fan.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Bindings for fan connected to GPIO lines
> +
> +maintainers:
> +  - Rob Herring <robh+dt@kernel.org>

Just robh@kernel.org

> +
> +properties:
> +  compatible:
> +    const: gpio-fan
> +
> +  gpios:
> +    description: |
> +      Specifies the pins that map to bits in the control value,
> +      ordered MSB-->LSB.

minItems: 1
maxItems: 7 ?

> +
> +  gpio-fan,speed-map:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    minItems: 4
> +    maxItems: 254
> +    description: |
> +      A mapping of possible fan RPM speeds and the
> +      control value that should be set to achieve them. This array
> +      must have the RPM values in ascending order.

Really this should be a uint32-matrix with this schema:

items:
  minItems: 2
  maxItems: 127
  items:
    - description: fan speed in RPMs
    - description: control value

> +
> +  alarm-gpios:
> +    description: |
> +      This pin going active indicates something is wrong with
> +      the fan, and a udev event will be fired.

maxItems: 1

udev is a linuxism and shouldn't be in the binding.

> +
> +  '#cooling-cells':
> +    const: 2
> +
> +required:
> +  - compatible
> +  - gpio-fan,speed-map
> +
> +anyOf:
> +  - required: [gpios]

How is 'gpios' not always required?

> +  - required: [alarm-gpios]
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    gpio_fan {
> +      compatible = "gpio-fan";
> +      gpios = <&gpio1 14 1
> +               &gpio1 13 1>;
> +      gpio-fan,speed-map = <0    0
> +                            3000 1
> +                            6000 2>;

Brackets needed around each pair.

> +      alarm-gpios = <&gpio1 15 1>;
> +    };
> +  - |
> +    gpio_fan_cool: gpio_fan {
> +      compatible = "gpio-fan";
> +      gpios = <&gpio2 14 1
> +               &gpio2 13 1>;
> +      gpio-fan,speed-map = <0    0
> +                            3000 1
> +                            6000 2>;
> +      alarm-gpios = <&gpio2 15 1>;
> +      #cooling-cells = <2>; /* min followed by max */
> +    };
> -- 
> 2.33.0
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml
  2021-10-19 21:35 ` Rob Herring
@ 2021-10-28 13:52   ` David Heidelberg
  0 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg @ 2021-10-28 13:52 UTC (permalink / raw)
  To: Rob Herring
  Cc: Guenter Roeck, Jean Delvare, linux-hwmon, devicetree,
	linux-kernel, ~okias/devicetree




On Tue, Oct 19 2021 at 16:35:17 -0500, Rob Herring <robh@kernel.org> 
wrote:
> On Sat, Oct 09, 2021 at 12:43:09PM +0200, David Heidelberg wrote:
>>  Convert fan devices connected to GPIOs to the YAML syntax.
>> 
>>  Signed-off-by: David Heidelberg <david@ixit.cz>
>>  ---
>>   .../devicetree/bindings/hwmon/gpio-fan.txt    | 41 -----------
>>   .../devicetree/bindings/hwmon/gpio-fan.yaml   | 69 
>> +++++++++++++++++++
>>   2 files changed, 69 insertions(+), 41 deletions(-)
>>   delete mode 100644 
>> Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>>   create mode 100644 
>> Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
>> 
>>  diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt 
>> b/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>>  deleted file mode 100644
>>  index f4cfa350f6a1..000000000000
>>  --- a/Documentation/devicetree/bindings/hwmon/gpio-fan.txt
>>  +++ /dev/null
>>  @@ -1,41 +0,0 @@
>>  -Bindings for fan connected to GPIO lines
>>  -
>>  -Required properties:
>>  -- compatible : "gpio-fan"
>>  -
>>  -Optional properties:
>>  -- gpios: Specifies the pins that map to bits in the control value,
>>  -  ordered MSB-->LSB.
>>  -- gpio-fan,speed-map: A mapping of possible fan RPM speeds and the
>>  -  control value that should be set to achieve them. This array
>>  -  must have the RPM values in ascending order.
>>  -- alarm-gpios: This pin going active indicates something is wrong 
>> with
>>  -  the fan, and a udev event will be fired.
>>  -- #cooling-cells: If used as a cooling device, must be <2>
>>  -  Also see:
>>  -  
>> Documentation/devicetree/bindings/thermal/thermal-cooling-devices.yaml
>>  -  min and max states are derived from the speed-map of the fan.
>>  -
>>  -Note: At least one the "gpios" or "alarm-gpios" properties must be 
>> set.
>>  -
>>  -Examples:
>>  -
>>  -	gpio_fan {
>>  -		compatible = "gpio-fan";
>>  -		gpios = <&gpio1 14 1
>>  -			 &gpio1 13 1>;
>>  -		gpio-fan,speed-map = <0    0
>>  -				      3000 1
>>  -				      6000 2>;
>>  -		alarm-gpios = <&gpio1 15 1>;
>>  -	};
>>  -	gpio_fan_cool: gpio_fan {
>>  -		compatible = "gpio-fan";
>>  -		gpios = <&gpio2 14 1
>>  -			 &gpio2 13 1>;
>>  -		gpio-fan,speed-map =	<0    0>,
>>  -					<3000 1>,
>>  -					<6000 2>;
>>  -		alarm-gpios = <&gpio2 15 1>;
>>  -		#cooling-cells = <2>; /* min followed by max */
>>  -	};
>>  diff --git a/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml 
>> b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
>>  new file mode 100644
>>  index 000000000000..e2db65d58a92
>>  --- /dev/null
>>  +++ b/Documentation/devicetree/bindings/hwmon/gpio-fan.yaml
>>  @@ -0,0 +1,69 @@
>>  +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>  +%YAML 1.2
>>  +---
>>  +$id: "http://devicetree.org/schemas/hwmon/gpio-fan.yaml#"
>>  +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
>>  +
>>  +title: Bindings for fan connected to GPIO lines
>>  +
>>  +maintainers:
>>  +  - Rob Herring <robh+dt@kernel.org>
> 
> Just robh@kernel.org
> 
>>  +
>>  +properties:
>>  +  compatible:
>>  +    const: gpio-fan
>>  +
>>  +  gpios:
>>  +    description: |
>>  +      Specifies the pins that map to bits in the control value,
>>  +      ordered MSB-->LSB.
> 
> minItems: 1
> maxItems: 7 ?
> 
>>  +
>>  +  gpio-fan,speed-map:
>>  +    $ref: /schemas/types.yaml#/definitions/uint32-array
>>  +    minItems: 4
>>  +    maxItems: 254
>>  +    description: |
>>  +      A mapping of possible fan RPM speeds and the
>>  +      control value that should be set to achieve them. This array
>>  +      must have the RPM values in ascending order.
> 
> Really this should be a uint32-matrix with this schema:
> 
> items:
>   minItems: 2
>   maxItems: 127
>   items:
>     - description: fan speed in RPMs
>     - description: control value
> 
>>  +
>>  +  alarm-gpios:
>>  +    description: |
>>  +      This pin going active indicates something is wrong with
>>  +      the fan, and a udev event will be fired.
> 
> maxItems: 1
> 
> udev is a linuxism and shouldn't be in the binding.
> 
>>  +
>>  +  '#cooling-cells':
>>  +    const: 2
>>  +
>>  +required:
>>  +  - compatible
>>  +  - gpio-fan,speed-map
>>  +
>>  +anyOf:
>>  +  - required: [gpios]
> 
> How is 'gpios' not always required?
> 
>>  +  - required: [alarm-gpios]
>>  +
>>  +additionalProperties: false
>>  +
>>  +examples:
>>  +  - |
>>  +    gpio_fan {
>>  +      compatible = "gpio-fan";
>>  +      gpios = <&gpio1 14 1
>>  +               &gpio1 13 1>;
>>  +      gpio-fan,speed-map = <0    0
>>  +                            3000 1
>>  +                            6000 2>;
> 
> Brackets needed around each pair.

Well, that's the issue. I would love to use u32-matrix, but all the 
drivers use < x1 x2 y1 x2 ... z1 z2 > syntax and driver suggests it's 
the right solution.
         * Speed map is in the form <RPM ctrl_val RPM ctrl_val ...>

Someone had to rewrite the driver and the DTS files to fix it. We could 
mark old format as deprecated and use u32-matrix, but for now with 
current drivers it's not a solution.

What you think? Should I document it as it is (so u32-array)?

David

> 
>>  +      alarm-gpios = <&gpio1 15 1>;
>>  +    };
>>  +  - |
>>  +    gpio_fan_cool: gpio_fan {
>>  +      compatible = "gpio-fan";
>>  +      gpios = <&gpio2 14 1
>>  +               &gpio2 13 1>;
>>  +      gpio-fan,speed-map = <0    0
>>  +                            3000 1
>>  +                            6000 2>;
>>  +      alarm-gpios = <&gpio2 15 1>;
>>  +      #cooling-cells = <2>; /* min followed by max */
>>  +    };
>>  --
>>  2.33.0
>> 
>> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-10-28 13:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-09 10:43 [PATCH] WIP: dt-bindings: arm: hwmon: gpio-fan: Convert txt bindings to yaml David Heidelberg
2021-10-10 19:31 ` Rob Herring
2021-10-10 21:49   ` David Heidelberg
2021-10-11 18:45     ` Rob Herring
2021-10-19 21:35 ` Rob Herring
2021-10-28 13:52   ` David Heidelberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.