Commit 4e12e550 authored by Frank Li's avatar Frank Li Committed by Dmitry Torokhov
Browse files

dt-bindings: input: touchscreen: convert ad7879 to yaml format



Convert binding doc ad7879.txt to yaml format.
Additional change:
- Add ref to /schemas/spi/spi-peripheral-props.yaml
- Add #gpio-cell
- Remove  spi-cpol and spi-cpha in example, the place hold 'spi' can't
correct detect spi-controler.yaml. So these two properties can't
be recongnized.

Fix warning:
arch/arm64/boot/dts/freescale/imx8dx-colibri-aster.dtb:
/bus@5a000000/i2c@5a800000/touchscreen@2c: failed to match any schema with compatible: ['adi,ad7879-1']

Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240810143840.3615450-1-Frank.Li@nxp.com


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 25162a4f
Loading
Loading
Loading
Loading
+0 −71
Original line number Diff line number Diff line
* Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)

Required properties:
- compatible			: for SPI slave, use "adi,ad7879"
				  for I2C slave, use "adi,ad7879-1"
- reg				: SPI chipselect/I2C slave address
				  See spi-bus.txt for more SPI slave properties
- interrupts			: touch controller interrupt
- touchscreen-max-pressure	: maximum reported pressure
- adi,resistance-plate-x	: total resistance of X-plate (for pressure
				  calculation)
Optional properties:
- touchscreen-swapped-x-y	: X and Y axis are swapped (boolean)
- adi,first-conversion-delay	: 0-12: In 128us steps (starting with 128us)
				  13  : 2.560ms
				  14  : 3.584ms
				  15  : 4.096ms
				  This property has to be a '/bits/ 8' value
- adi,acquisition-time		: 0: 2us
				  1: 4us
				  2: 8us
				  3: 16us
				  This property has to be a '/bits/ 8' value
- adi,median-filter-size	: 0: disabled
				  1: 4 measurements
				  2: 8 measurements
				  3: 16 measurements
				  This property has to be a '/bits/ 8' value
- adi,averaging			: 0: 2 middle values (1 if median disabled)
				  1: 4 middle values
				  2: 8 middle values
				  3: 16 values
				  This property has to be a '/bits/ 8' value
- adi,conversion-interval:	: 0    : convert one time only
				  1-255: 515us + val * 35us (up to 9.440ms)
				  This property has to be a '/bits/ 8' value
- gpio-controller		: Switch AUX/VBAT/GPIO pin to GPIO mode

Example:

	touchscreen0@2c {
		compatible = "adi,ad7879-1";
		reg = <0x2c>;
		interrupt-parent = <&gpio1>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
		touchscreen-max-pressure = <4096>;
		adi,resistance-plate-x = <120>;
		adi,first-conversion-delay = /bits/ 8 <3>;
		adi,acquisition-time = /bits/ 8 <1>;
		adi,median-filter-size = /bits/ 8 <2>;
		adi,averaging = /bits/ 8 <1>;
		adi,conversion-interval = /bits/ 8 <255>;
	};

	touchscreen1@1 {
		compatible = "adi,ad7879";
		spi-max-frequency = <5000000>;
		reg = <1>;
		spi-cpol;
		spi-cpha;
		gpio-controller;
		interrupt-parent = <&gpio1>;
		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
		touchscreen-max-pressure = <4096>;
		adi,resistance-plate-x = <120>;
		adi,first-conversion-delay = /bits/ 8 <3>;
		adi,acquisition-time = /bits/ 8 <1>;
		adi,median-filter-size = /bits/ 8 <2>;
		adi,averaging = /bits/ 8 <1>;
		adi,conversion-interval = /bits/ 8 <255>;
	};
+150 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/touchscreen/adi,ad7879.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices AD7879(-1)/AD7889(-1) touchscreen interface (SPI/I2C)

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    description: |
      for SPI slave, use "adi,ad7879"
      for I2C slave, use "adi,ad7879-1"
    enum:
      - adi,ad7879
      - adi,ad7879-1

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  touchscreen-max-pressure:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: maximum reported pressure

  adi,resistance-plate-x:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: total resistance of X-plate (for pressure calculation)

  touchscreen-swapped-x-y:
    $ref: /schemas/types.yaml#/definitions/flag
    description: X and Y axis are swapped (boolean)

  adi,first-conversion-delay:
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 0
    minimum: 0
    maximum: 15
    description: |
      0-12: In 128us steps (starting with 128us)
      13  : 2.560ms
      14  : 3.584ms
      15  : 4.096ms
      This property has to be a '/bits/ 8' value

  adi,acquisition-time:
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 0
    enum: [0, 1, 2, 3]
    description: |
      0: 2us
      1: 4us
      2: 8us
      3: 16us
      This property has to be a '/bits/ 8' value

  adi,median-filter-size:
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 0
    enum: [0, 1, 2, 3]
    description: |
      0: disabled
      1: 4 measurements
      2: 8 measurements
      3: 16 measurements
      This property has to be a '/bits/ 8' value

  adi,averaging:
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 0
    enum: [0, 1, 2, 3]
    description: |
      0: 2 middle values (1 if median disabled)
      1: 4 middle values
      2: 8 middle values
      3: 16 values
      This property has to be a '/bits/ 8' value

  adi,conversion-interval:
    $ref: /schemas/types.yaml#/definitions/uint8
    default: 0
    description: |
      0    : convert one time only
      1-255: 515us + val * 35us (up to 9.440ms)
      This property has to be a '/bits/ 8' value

  gpio-controller: true

  "#gpio-cells":
    const: 1

required:
  - compatible
  - reg

allOf:
  - $ref: /schemas/spi/spi-peripheral-props.yaml

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        touchscreen0@2c {
            compatible = "adi,ad7879-1";
            reg = <0x2c>;
            interrupt-parent = <&gpio1>;
            interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
            touchscreen-max-pressure = <4096>;
            adi,resistance-plate-x = <120>;
            adi,first-conversion-delay = /bits/ 8 <3>;
            adi,acquisition-time = /bits/ 8 <1>;
            adi,median-filter-size = /bits/ 8 <2>;
            adi,averaging = /bits/ 8 <1>;
            adi,conversion-interval = /bits/ 8 <255>;
        };
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        touchscreen1@1 {
            compatible = "adi,ad7879";
            reg = <1>;
            spi-max-frequency = <5000000>;
            gpio-controller;
            #gpio-cells = <1>;
            interrupt-parent = <&gpio1>;
            interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
            touchscreen-max-pressure = <4096>;
            adi,resistance-plate-x = <120>;
            adi,first-conversion-delay = /bits/ 8 <3>;
            adi,acquisition-time = /bits/ 8 <1>;
            adi,median-filter-size = /bits/ 8 <2>;
            adi,averaging = /bits/ 8 <1>;
            adi,conversion-interval = /bits/ 8 <255>;
        };
    };