2020-01-28 10:16:50

by Benjamin GAIGNARD

[permalink] [raw]
Subject: [PATCH] dt-bindings: touchscreen: Convert edt-ft5x06 to json-schema

Convert the EDT-FT5x06 to DT schema using json-schema.

Signed-off-by: Benjamin Gaignard <[email protected]>
---
.../bindings/input/touchscreen/edt-ft5x06.txt | 75 -------------
.../bindings/input/touchscreen/edt-ft5x06.yaml | 119 +++++++++++++++++++++
2 files changed, 119 insertions(+), 75 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
create mode 100644 Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml

diff --git a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
deleted file mode 100644
index 0f6950073d6f..000000000000
--- a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-FocalTech EDT-FT5x06 Polytouch driver
-=====================================
-
-There are 5 variants of the chip for various touch panel sizes
-FT5206GE1 2.8" .. 3.8"
-FT5306DE4 4.3" .. 7"
-FT5406EE8 7" .. 8.9"
-FT5506EEG 7" .. 8.9"
-FT5726NEI 5.7” .. 11.6"
-
-The software interface is identical for all those chips, so that
-currently there is no need for the driver to distinguish between the
-different chips. Nevertheless distinct compatible strings are used so
-that a distinction can be added if necessary without changing the DT
-bindings.
-
-
-Required properties:
- - compatible: "edt,edt-ft5206"
- or: "edt,edt-ft5306"
- or: "edt,edt-ft5406"
- or: "edt,edt-ft5506"
- or: "evervision,ev-ft5726"
- or: "focaltech,ft6236"
-
- - reg: I2C slave address of the chip (0x38)
- - interrupts: interrupt specification for the touchdetect
- interrupt
-
-Optional properties:
- - reset-gpios: GPIO specification for the RESET input
- - wake-gpios: GPIO specification for the WAKE input
- - vcc-supply: Regulator that supplies the touchscreen
-
- - pinctrl-names: should be "default"
- - pinctrl-0: a phandle pointing to the pin settings for the
- control gpios
-
- - threshold: allows setting the "click"-threshold in the range
- from 0 to 80.
-
- - gain: allows setting the sensitivity in the range from 0 to
- 31. Note that lower values indicate higher
- sensitivity.
-
- - offset: allows setting the edge compensation in the range from
- 0 to 31.
-
- - offset-x: Same as offset, but applies only to the horizontal position.
- Range from 0 to 80, only supported by evervision,ev-ft5726
- devices.
-
- - offset-y: Same as offset, but applies only to the vertical position.
- Range from 0 to 80, only supported by evervision,ev-ft5726
- devices.
-
- - touchscreen-size-x : See touchscreen.txt
- - touchscreen-size-y : See touchscreen.txt
- - touchscreen-fuzz-x : See touchscreen.txt
- - touchscreen-fuzz-y : See touchscreen.txt
- - touchscreen-inverted-x : See touchscreen.txt
- - touchscreen-inverted-y : See touchscreen.txt
- - touchscreen-swapped-x-y : See touchscreen.txt
-
-Example:
- polytouch: edt-ft5x06@38 {
- compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
- reg = <0x38>;
- pinctrl-names = "default";
- pinctrl-0 = <&edt_ft5x06_pins>;
- interrupt-parent = <&gpio2>;
- interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
- reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
- wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
- };
diff --git a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
new file mode 100644
index 000000000000..178b7aea0f83
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
@@ -0,0 +1,119 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/edt-ft5x06.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: FocalTech EDT-FT5x06 Polytouch Bindings
+
+description: There are 5 variants of the chip for various touch panel sizes
+ FT5206GE1 2.8" .. 3.8"
+ FT5306DE4 4.3" .. 7"
+ FT5406EE8 7" .. 8.9"
+ FT5506EEG 7" .. 8.9"
+ FT5726NEI 5.7” .. 11.6"
+
+maintainers:
+ - Dmitry Torokhov <[email protected]>
+
+allOf:
+ - $ref: touchscreen.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - evervision,ev-ft5726
+
+ then:
+ properties:
+ offset-x: true
+ offset-y: true
+
+properties:
+ compatible:
+ enum:
+ - edt,edt-ft5206
+ - edt,edt-ft5306
+ - edt,edt-ft5406
+ - edt,edt-ft5506
+ - evervision,ev-ft5726
+ - focaltech,ft6236
+
+ reg:
+ enum: [ 0x38 ]
+
+ interrupts:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ wake-gpios:
+ maxItems: 1
+
+ vcc-supply:
+ maxItems: 1
+
+ gain:
+ description: Allows setting the sensitivity in the range from 0 to 31.
+ Note that lower values indicate higher sensitivity.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 31
+
+ offset:
+ description: Allows setting the edge compensation in the range from 0 to 31.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 31
+
+ offset-x:
+ description: Same as offset, but applies only to the horizontal position.
+ Range from 0 to 80, only supported by evervision,ev-ft5726 devices.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 80
+
+ offset-y:
+ description: Same as offset, but applies only to the vertical position.
+ Range from 0 to 80, only supported by evervision,ev-ft5726 devices.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 80
+
+ touchscreen-size-x: true
+ touchscreen-size-y: true
+ touchscreen-fuzz-x: true
+ touchscreen-fuzz-y: true
+ touchscreen-inverted-x: true
+ touchscreen-inverted-y: true
+ touchscreen-swapped-x-y: true
+ interrupt-controller: true
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ i2c@00000000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ edt-ft5x06@38 {
+ compatible = "edt,edt-ft5406";
+ reg = <0x38>;
+ interrupt-parent = <&gpio2>;
+ interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+...
+
--
2.15.0


2020-02-05 18:08:35

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] dt-bindings: touchscreen: Convert edt-ft5x06 to json-schema

On Tue, Jan 28, 2020 at 11:14:55AM +0100, Benjamin Gaignard wrote:
> Convert the EDT-FT5x06 to DT schema using json-schema.
>
> Signed-off-by: Benjamin Gaignard <[email protected]>
> ---
> .../bindings/input/touchscreen/edt-ft5x06.txt | 75 -------------
> .../bindings/input/touchscreen/edt-ft5x06.yaml | 119 +++++++++++++++++++++
> 2 files changed, 119 insertions(+), 75 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
> create mode 100644 Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
>
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
> deleted file mode 100644
> index 0f6950073d6f..000000000000
> --- a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -FocalTech EDT-FT5x06 Polytouch driver
> -=====================================
> -
> -There are 5 variants of the chip for various touch panel sizes
> -FT5206GE1 2.8" .. 3.8"
> -FT5306DE4 4.3" .. 7"
> -FT5406EE8 7" .. 8.9"
> -FT5506EEG 7" .. 8.9"
> -FT5726NEI 5.7” .. 11.6"
> -
> -The software interface is identical for all those chips, so that
> -currently there is no need for the driver to distinguish between the
> -different chips. Nevertheless distinct compatible strings are used so
> -that a distinction can be added if necessary without changing the DT
> -bindings.
> -
> -
> -Required properties:
> - - compatible: "edt,edt-ft5206"
> - or: "edt,edt-ft5306"
> - or: "edt,edt-ft5406"
> - or: "edt,edt-ft5506"
> - or: "evervision,ev-ft5726"
> - or: "focaltech,ft6236"
> -
> - - reg: I2C slave address of the chip (0x38)
> - - interrupts: interrupt specification for the touchdetect
> - interrupt
> -
> -Optional properties:
> - - reset-gpios: GPIO specification for the RESET input
> - - wake-gpios: GPIO specification for the WAKE input
> - - vcc-supply: Regulator that supplies the touchscreen
> -
> - - pinctrl-names: should be "default"
> - - pinctrl-0: a phandle pointing to the pin settings for the
> - control gpios
> -
> - - threshold: allows setting the "click"-threshold in the range
> - from 0 to 80.
> -
> - - gain: allows setting the sensitivity in the range from 0 to
> - 31. Note that lower values indicate higher
> - sensitivity.
> -
> - - offset: allows setting the edge compensation in the range from
> - 0 to 31.
> -
> - - offset-x: Same as offset, but applies only to the horizontal position.
> - Range from 0 to 80, only supported by evervision,ev-ft5726
> - devices.
> -
> - - offset-y: Same as offset, but applies only to the vertical position.
> - Range from 0 to 80, only supported by evervision,ev-ft5726
> - devices.
> -
> - - touchscreen-size-x : See touchscreen.txt
> - - touchscreen-size-y : See touchscreen.txt
> - - touchscreen-fuzz-x : See touchscreen.txt
> - - touchscreen-fuzz-y : See touchscreen.txt
> - - touchscreen-inverted-x : See touchscreen.txt
> - - touchscreen-inverted-y : See touchscreen.txt
> - - touchscreen-swapped-x-y : See touchscreen.txt
> -
> -Example:
> - polytouch: edt-ft5x06@38 {
> - compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
> - reg = <0x38>;
> - pinctrl-names = "default";
> - pinctrl-0 = <&edt_ft5x06_pins>;
> - interrupt-parent = <&gpio2>;
> - interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
> - reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
> - wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
> - };
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
> new file mode 100644
> index 000000000000..178b7aea0f83
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.yaml
> @@ -0,0 +1,119 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/input/touchscreen/edt-ft5x06.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: FocalTech EDT-FT5x06 Polytouch Bindings
> +
> +description: There are 5 variants of the chip for various touch panel sizes
> + FT5206GE1 2.8" .. 3.8"
> + FT5306DE4 4.3" .. 7"
> + FT5406EE8 7" .. 8.9"
> + FT5506EEG 7" .. 8.9"
> + FT5726NEI 5.7” .. 11.6"

This needs a '|' to preserve formatting. (Running this into python and
back out to yaml would clobber it.)

> +
> +maintainers:
> + - Dmitry Torokhov <[email protected]>
> +
> +allOf:
> + - $ref: touchscreen.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - evervision,ev-ft5726
> +
> + then:
> + properties:
> + offset-x: true
> + offset-y: true
> +
> +properties:
> + compatible:
> + enum:
> + - edt,edt-ft5206
> + - edt,edt-ft5306
> + - edt,edt-ft5406
> + - edt,edt-ft5506
> + - evervision,ev-ft5726
> + - focaltech,ft6236
> +
> + reg:
> + enum: [ 0x38 ]

const: 0x38

> +
> + interrupts:
> + maxItems: 1
> +
> + reset-gpios:
> + maxItems: 1
> +
> + wake-gpios:
> + maxItems: 1
> +
> + vcc-supply:
> + maxItems: 1
> +
> + gain:
> + description: Allows setting the sensitivity in the range from 0 to 31.
> + Note that lower values indicate higher sensitivity.
> + $ref: /schemas/types.yaml#/definitions/uint32

Needs to be under an 'allOf' or minimum/maximum will be ignored.

And the others here...

> + minimum: 0
> + maximum: 31
> +
> + offset:
> + description: Allows setting the edge compensation in the range from 0 to 31.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 31
> +
> + offset-x:
> + description: Same as offset, but applies only to the horizontal position.
> + Range from 0 to 80, only supported by evervision,ev-ft5726 devices.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 80
> +
> + offset-y:
> + description: Same as offset, but applies only to the vertical position.
> + Range from 0 to 80, only supported by evervision,ev-ft5726 devices.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 80
> +
> + touchscreen-size-x: true
> + touchscreen-size-y: true
> + touchscreen-fuzz-x: true
> + touchscreen-fuzz-y: true
> + touchscreen-inverted-x: true
> + touchscreen-inverted-y: true
> + touchscreen-swapped-x-y: true
> + interrupt-controller: true
> +
> +additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + i2c@00000000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + edt-ft5x06@38 {
> + compatible = "edt,edt-ft5406";
> + reg = <0x38>;
> + interrupt-parent = <&gpio2>;
> + interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
> + reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
> + };
> + };
> +
> +...
> +
> --
> 2.15.0
>