[v2] dt-bindings: input: Convert ti,drv260x to DT schema

Message ID 20221031164141.919134-1-luca@z3ntu.xyz
State New
Headers
Series [v2] dt-bindings: input: Convert ti,drv260x to DT schema |

Commit Message

Luca Weiss Oct. 31, 2022, 4:41 p.m. UTC
  Convert the drv260x haptics binding to DT schema format.

The only notable change from .txt format is that vbat-supply is not
actually required, so don't make it a required property.

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
@Andrew Davis: You maintain some other TI bindings, would you be willing
to also maintain this one? It was originally written by Dan Murphy but
apparently Dan no longer works for TI.

Changes since v1:
* add $ref to types as suggested by Rob
* change maintainer

 .../devicetree/bindings/input/ti,drv260x.txt  |  50 ---------
 .../devicetree/bindings/input/ti,drv260x.yaml | 102 ++++++++++++++++++
 2 files changed, 102 insertions(+), 50 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.txt
 create mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.yaml
  

Comments

Andrew Davis Oct. 31, 2022, 7:43 p.m. UTC | #1
On 10/31/22 11:41 AM, Luca Weiss wrote:
> Convert the drv260x haptics binding to DT schema format.
> 
> The only notable change from .txt format is that vbat-supply is not
> actually required, so don't make it a required property.
> 
> Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
> ---
> @Andrew Davis: You maintain some other TI bindings, would you be willing
> to also maintain this one? It was originally written by Dan Murphy but
> apparently Dan no longer works for TI.
> 

Sure, I can take them,

Acked-by: Andrew Davis <afd@ti.com>

> Changes since v1:
> * add $ref to types as suggested by Rob
> * change maintainer
> 
>   .../devicetree/bindings/input/ti,drv260x.txt  |  50 ---------
>   .../devicetree/bindings/input/ti,drv260x.yaml | 102 ++++++++++++++++++
>   2 files changed, 102 insertions(+), 50 deletions(-)
>   delete mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.txt
>   create mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.txt b/Documentation/devicetree/bindings/input/ti,drv260x.txt
> deleted file mode 100644
> index 4c5312eaaa85..000000000000
> --- a/Documentation/devicetree/bindings/input/ti,drv260x.txt
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -* Texas Instruments - drv260x Haptics driver family
> -
> -Required properties:
> -	- compatible - One of:
> -		"ti,drv2604" - DRV2604
> -		"ti,drv2605" - DRV2605
> -		"ti,drv2605l" - DRV2605L
> -	- reg -  I2C slave address
> -	- vbat-supply - Required supply regulator
> -	- mode - Power up mode of the chip (defined in include/dt-bindings/input/ti-drv260x.h)
> -		DRV260X_LRA_MODE - Linear Resonance Actuator mode (Piezoelectric)
> -		DRV260X_LRA_NO_CAL_MODE - This is a LRA Mode but there is no calibration
> -				sequence during init.  And the device is configured for real
> -				time playback mode (RTP mode).
> -		DRV260X_ERM_MODE - Eccentric Rotating Mass mode (Rotary vibrator)
> -	- library-sel - These are ROM based waveforms pre-programmed into the IC.
> -				This should be set to set the library to use at power up.
> -				(defined in include/dt-bindings/input/ti-drv260x.h)
> -		DRV260X_LIB_EMPTY - Do not use a pre-programmed library
> -		DRV260X_ERM_LIB_A - Pre-programmed Library
> -		DRV260X_ERM_LIB_B - Pre-programmed Library
> -		DRV260X_ERM_LIB_C - Pre-programmed Library
> -		DRV260X_ERM_LIB_D - Pre-programmed Library
> -		DRV260X_ERM_LIB_E - Pre-programmed Library
> -		DRV260X_ERM_LIB_F - Pre-programmed Library
> -		DRV260X_LIB_LRA - Pre-programmed LRA Library
> -
> -Optional properties:
> -	- enable-gpio - gpio pin to enable/disable the device.
> -	- vib-rated-mv - The rated voltage of the actuator in millivolts.
> -			  If this is not set then the value will be defaulted to
> -			  3.2 v.
> -	- vib-overdrive-mv - The overdrive voltage of the actuator in millivolts.
> -			  If this is not set then the value will be defaulted to
> -			  3.2 v.
> -Example:
> -
> -haptics: haptics@5a {
> -	compatible = "ti,drv2605l";
> -	reg = <0x5a>;
> -	vbat-supply = <&vbat>;
> -	enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> -	mode = <DRV260X_LRA_MODE>;
> -	library-sel = <DRV260X_LIB_LRA>;
> -	vib-rated-mv = <3200>;
> -	vib-overdrive-mv = <3200>;
> -}
> -
> -For more product information please see the link below:
> -http://www.ti.com/product/drv2605
> diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.yaml b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
> new file mode 100644
> index 000000000000..d8b9b9d5d9d9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
> @@ -0,0 +1,102 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/ti,drv260x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments - drv260x Haptics driver family
> +
> +maintainers:
> +  - Andrew Davis <afd@ti.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,drv2604
> +      - ti,drv2605
> +      - ti,drv2605l
> +
> +  reg:
> +    maxItems: 1
> +
> +  vbat-supply:
> +    description: Power supply to the haptic motor
> +
> +  mode:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      Power up mode of the chip
> +      (defined in include/dt-bindings/input/ti-drv260x.h)
> +
> +      DRV260X_LRA_MODE
> +        Linear Resonance Actuator mode (Piezoelectric)
> +
> +      DRV260X_LRA_NO_CAL_MODE
> +        This is a LRA Mode but there is no calibration sequence during init.
> +        And the device is configured for real time playback mode (RTP mode).
> +
> +      DRV260X_ERM_MODE
> +        Eccentric Rotating Mass mode (Rotary vibrator)
> +    enum: [ 0, 1, 2 ]
> +
> +  library-sel:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      These are ROM based waveforms pre-programmed into the IC.
> +      This should be set to set the library to use at power up.
> +      (defined in include/dt-bindings/input/ti-drv260x.h)
> +
> +      DRV260X_LIB_EMPTY - Do not use a pre-programmed library
> +      DRV260X_ERM_LIB_A - Pre-programmed Library
> +      DRV260X_ERM_LIB_B - Pre-programmed Library
> +      DRV260X_ERM_LIB_C - Pre-programmed Library
> +      DRV260X_ERM_LIB_D - Pre-programmed Library
> +      DRV260X_ERM_LIB_E - Pre-programmed Library
> +      DRV260X_ERM_LIB_F - Pre-programmed Library
> +      DRV260X_LIB_LRA - Pre-programmed LRA Library
> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
> +
> +  enable-gpio:
> +    maxItems: 1
> +
> +  vib-rated-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      The rated voltage of the actuator in millivolts.
> +      If this is not set then the value will be defaulted to 3200 mV.
> +
> +  vib-overdrive-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      The overdrive voltage of the actuator in millivolts.
> +      If this is not set then the value will be defaulted to 3200 mV.
> +
> +required:
> +  - compatible
> +  - reg
> +  - enable-gpio
> +  - mode
> +  - library-sel
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/input/ti-drv260x.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        haptics@5a {
> +            compatible = "ti,drv2605l";
> +            reg = <0x5a>;
> +            vbat-supply = <&vbat>;
> +            enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> +            mode = <DRV260X_LRA_MODE>;
> +            library-sel = <DRV260X_LIB_LRA>;
> +            vib-rated-mv = <3200>;
> +            vib-overdrive-mv = <3200>;
> +        };
> +    };
  
Rob Herring Nov. 2, 2022, 4:20 p.m. UTC | #2
On Mon, Oct 31, 2022 at 05:41:41PM +0100, Luca Weiss wrote:
> Convert the drv260x haptics binding to DT schema format.
> 
> The only notable change from .txt format is that vbat-supply is not
> actually required, so don't make it a required property.
> 
> Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
> ---
> @Andrew Davis: You maintain some other TI bindings, would you be willing
> to also maintain this one? It was originally written by Dan Murphy but
> apparently Dan no longer works for TI.
> 
> Changes since v1:
> * add $ref to types as suggested by Rob
> * change maintainer
> 
>  .../devicetree/bindings/input/ti,drv260x.txt  |  50 ---------
>  .../devicetree/bindings/input/ti,drv260x.yaml | 102 ++++++++++++++++++
>  2 files changed, 102 insertions(+), 50 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.txt
>  create mode 100644 Documentation/devicetree/bindings/input/ti,drv260x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.txt b/Documentation/devicetree/bindings/input/ti,drv260x.txt
> deleted file mode 100644
> index 4c5312eaaa85..000000000000
> --- a/Documentation/devicetree/bindings/input/ti,drv260x.txt
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -* Texas Instruments - drv260x Haptics driver family
> -
> -Required properties:
> -	- compatible - One of:
> -		"ti,drv2604" - DRV2604
> -		"ti,drv2605" - DRV2605
> -		"ti,drv2605l" - DRV2605L
> -	- reg -  I2C slave address
> -	- vbat-supply - Required supply regulator
> -	- mode - Power up mode of the chip (defined in include/dt-bindings/input/ti-drv260x.h)
> -		DRV260X_LRA_MODE - Linear Resonance Actuator mode (Piezoelectric)
> -		DRV260X_LRA_NO_CAL_MODE - This is a LRA Mode but there is no calibration
> -				sequence during init.  And the device is configured for real
> -				time playback mode (RTP mode).
> -		DRV260X_ERM_MODE - Eccentric Rotating Mass mode (Rotary vibrator)
> -	- library-sel - These are ROM based waveforms pre-programmed into the IC.
> -				This should be set to set the library to use at power up.
> -				(defined in include/dt-bindings/input/ti-drv260x.h)
> -		DRV260X_LIB_EMPTY - Do not use a pre-programmed library
> -		DRV260X_ERM_LIB_A - Pre-programmed Library
> -		DRV260X_ERM_LIB_B - Pre-programmed Library
> -		DRV260X_ERM_LIB_C - Pre-programmed Library
> -		DRV260X_ERM_LIB_D - Pre-programmed Library
> -		DRV260X_ERM_LIB_E - Pre-programmed Library
> -		DRV260X_ERM_LIB_F - Pre-programmed Library
> -		DRV260X_LIB_LRA - Pre-programmed LRA Library
> -
> -Optional properties:
> -	- enable-gpio - gpio pin to enable/disable the device.
> -	- vib-rated-mv - The rated voltage of the actuator in millivolts.
> -			  If this is not set then the value will be defaulted to
> -			  3.2 v.
> -	- vib-overdrive-mv - The overdrive voltage of the actuator in millivolts.
> -			  If this is not set then the value will be defaulted to
> -			  3.2 v.
> -Example:
> -
> -haptics: haptics@5a {
> -	compatible = "ti,drv2605l";
> -	reg = <0x5a>;
> -	vbat-supply = <&vbat>;
> -	enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> -	mode = <DRV260X_LRA_MODE>;
> -	library-sel = <DRV260X_LIB_LRA>;
> -	vib-rated-mv = <3200>;
> -	vib-overdrive-mv = <3200>;
> -}
> -
> -For more product information please see the link below:
> -http://www.ti.com/product/drv2605
> diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.yaml b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
> new file mode 100644
> index 000000000000..d8b9b9d5d9d9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
> @@ -0,0 +1,102 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/ti,drv260x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments - drv260x Haptics driver family
> +
> +maintainers:
> +  - Andrew Davis <afd@ti.com>
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,drv2604
> +      - ti,drv2605
> +      - ti,drv2605l
> +
> +  reg:
> +    maxItems: 1
> +
> +  vbat-supply:
> +    description: Power supply to the haptic motor
> +
> +  mode:

This is somewhat problematic because we have multiple 'mode' properties 
with different meanings. We already have to handle that, but Would be 
nice to deprecate at some point given there is only 1 upstream dts using 
it.

> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      Power up mode of the chip
> +      (defined in include/dt-bindings/input/ti-drv260x.h)
> +
> +      DRV260X_LRA_MODE
> +        Linear Resonance Actuator mode (Piezoelectric)
> +
> +      DRV260X_LRA_NO_CAL_MODE
> +        This is a LRA Mode but there is no calibration sequence during init.
> +        And the device is configured for real time playback mode (RTP mode).
> +
> +      DRV260X_ERM_MODE
> +        Eccentric Rotating Mass mode (Rotary vibrator)
> +    enum: [ 0, 1, 2 ]
> +
> +  library-sel:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      These are ROM based waveforms pre-programmed into the IC.
> +      This should be set to set the library to use at power up.
> +      (defined in include/dt-bindings/input/ti-drv260x.h)
> +
> +      DRV260X_LIB_EMPTY - Do not use a pre-programmed library
> +      DRV260X_ERM_LIB_A - Pre-programmed Library
> +      DRV260X_ERM_LIB_B - Pre-programmed Library
> +      DRV260X_ERM_LIB_C - Pre-programmed Library
> +      DRV260X_ERM_LIB_D - Pre-programmed Library
> +      DRV260X_ERM_LIB_E - Pre-programmed Library
> +      DRV260X_ERM_LIB_F - Pre-programmed Library
> +      DRV260X_LIB_LRA - Pre-programmed LRA Library
> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
> +
> +  enable-gpio:

Would be need to deprecate this and allow enable-gpios.

> +    maxItems: 1
> +
> +  vib-rated-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      The rated voltage of the actuator in millivolts.
> +      If this is not set then the value will be defaulted to 3200 mV.

default: 3200

> +
> +  vib-overdrive-mv:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      The overdrive voltage of the actuator in millivolts.
> +      If this is not set then the value will be defaulted to 3200 mV.

default: 3200

> +
> +required:
> +  - compatible
> +  - reg
> +  - enable-gpio
> +  - mode
> +  - library-sel
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +    #include <dt-bindings/input/ti-drv260x.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        haptics@5a {
> +            compatible = "ti,drv2605l";
> +            reg = <0x5a>;
> +            vbat-supply = <&vbat>;
> +            enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
> +            mode = <DRV260X_LRA_MODE>;
> +            library-sel = <DRV260X_LIB_LRA>;
> +            vib-rated-mv = <3200>;
> +            vib-overdrive-mv = <3200>;
> +        };
> +    };
> -- 
> 2.38.1
> 
>
  

Patch

diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.txt b/Documentation/devicetree/bindings/input/ti,drv260x.txt
deleted file mode 100644
index 4c5312eaaa85..000000000000
--- a/Documentation/devicetree/bindings/input/ti,drv260x.txt
+++ /dev/null
@@ -1,50 +0,0 @@ 
-* Texas Instruments - drv260x Haptics driver family
-
-Required properties:
-	- compatible - One of:
-		"ti,drv2604" - DRV2604
-		"ti,drv2605" - DRV2605
-		"ti,drv2605l" - DRV2605L
-	- reg -  I2C slave address
-	- vbat-supply - Required supply regulator
-	- mode - Power up mode of the chip (defined in include/dt-bindings/input/ti-drv260x.h)
-		DRV260X_LRA_MODE - Linear Resonance Actuator mode (Piezoelectric)
-		DRV260X_LRA_NO_CAL_MODE - This is a LRA Mode but there is no calibration
-				sequence during init.  And the device is configured for real
-				time playback mode (RTP mode).
-		DRV260X_ERM_MODE - Eccentric Rotating Mass mode (Rotary vibrator)
-	- library-sel - These are ROM based waveforms pre-programmed into the IC.
-				This should be set to set the library to use at power up.
-				(defined in include/dt-bindings/input/ti-drv260x.h)
-		DRV260X_LIB_EMPTY - Do not use a pre-programmed library
-		DRV260X_ERM_LIB_A - Pre-programmed Library
-		DRV260X_ERM_LIB_B - Pre-programmed Library
-		DRV260X_ERM_LIB_C - Pre-programmed Library
-		DRV260X_ERM_LIB_D - Pre-programmed Library
-		DRV260X_ERM_LIB_E - Pre-programmed Library
-		DRV260X_ERM_LIB_F - Pre-programmed Library
-		DRV260X_LIB_LRA - Pre-programmed LRA Library
-
-Optional properties:
-	- enable-gpio - gpio pin to enable/disable the device.
-	- vib-rated-mv - The rated voltage of the actuator in millivolts.
-			  If this is not set then the value will be defaulted to
-			  3.2 v.
-	- vib-overdrive-mv - The overdrive voltage of the actuator in millivolts.
-			  If this is not set then the value will be defaulted to
-			  3.2 v.
-Example:
-
-haptics: haptics@5a {
-	compatible = "ti,drv2605l";
-	reg = <0x5a>;
-	vbat-supply = <&vbat>;
-	enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
-	mode = <DRV260X_LRA_MODE>;
-	library-sel = <DRV260X_LIB_LRA>;
-	vib-rated-mv = <3200>;
-	vib-overdrive-mv = <3200>;
-}
-
-For more product information please see the link below:
-http://www.ti.com/product/drv2605
diff --git a/Documentation/devicetree/bindings/input/ti,drv260x.yaml b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
new file mode 100644
index 000000000000..d8b9b9d5d9d9
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,drv260x.yaml
@@ -0,0 +1,102 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ti,drv260x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments - drv260x Haptics driver family
+
+maintainers:
+  - Andrew Davis <afd@ti.com>
+
+properties:
+  compatible:
+    enum:
+      - ti,drv2604
+      - ti,drv2605
+      - ti,drv2605l
+
+  reg:
+    maxItems: 1
+
+  vbat-supply:
+    description: Power supply to the haptic motor
+
+  mode:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Power up mode of the chip
+      (defined in include/dt-bindings/input/ti-drv260x.h)
+
+      DRV260X_LRA_MODE
+        Linear Resonance Actuator mode (Piezoelectric)
+
+      DRV260X_LRA_NO_CAL_MODE
+        This is a LRA Mode but there is no calibration sequence during init.
+        And the device is configured for real time playback mode (RTP mode).
+
+      DRV260X_ERM_MODE
+        Eccentric Rotating Mass mode (Rotary vibrator)
+    enum: [ 0, 1, 2 ]
+
+  library-sel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      These are ROM based waveforms pre-programmed into the IC.
+      This should be set to set the library to use at power up.
+      (defined in include/dt-bindings/input/ti-drv260x.h)
+
+      DRV260X_LIB_EMPTY - Do not use a pre-programmed library
+      DRV260X_ERM_LIB_A - Pre-programmed Library
+      DRV260X_ERM_LIB_B - Pre-programmed Library
+      DRV260X_ERM_LIB_C - Pre-programmed Library
+      DRV260X_ERM_LIB_D - Pre-programmed Library
+      DRV260X_ERM_LIB_E - Pre-programmed Library
+      DRV260X_ERM_LIB_F - Pre-programmed Library
+      DRV260X_LIB_LRA - Pre-programmed LRA Library
+    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
+
+  enable-gpio:
+    maxItems: 1
+
+  vib-rated-mv:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      The rated voltage of the actuator in millivolts.
+      If this is not set then the value will be defaulted to 3200 mV.
+
+  vib-overdrive-mv:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      The overdrive voltage of the actuator in millivolts.
+      If this is not set then the value will be defaulted to 3200 mV.
+
+required:
+  - compatible
+  - reg
+  - enable-gpio
+  - mode
+  - library-sel
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/input/ti-drv260x.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        haptics@5a {
+            compatible = "ti,drv2605l";
+            reg = <0x5a>;
+            vbat-supply = <&vbat>;
+            enable-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+            mode = <DRV260X_LRA_MODE>;
+            library-sel = <DRV260X_LIB_LRA>;
+            vib-rated-mv = <3200>;
+            vib-overdrive-mv = <3200>;
+        };
+    };