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

From: Rob Herring
Date: Wed Feb 05 2020 - 13:05:50 EST


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 <benjamin.gaignard@xxxxxx>
> ---
> .../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 <dmitry.torokhov@xxxxxxxxx>
> +
> +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
>