--- /dev/null
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/touchscreen/cypress,cy8ctma340.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cypress CY8CTMA340 series touchscreen controller bindings
+
+description: The Cypress CY8CTMA340 series (also known as "CYTTSP" after
+  the marketing name Cypress TrueTouch Standard Product) touchscreens can
+  be connected to either I2C or SPI buses.
+
+maintainers:
+  - Javier Martinez Canillas <javier@dowhile0.org>
+  - Linus Walleij <linus.walleij@linaro.org>
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  $nodename:
+    pattern: "^touchscreen(@.*)?$"
+
+  compatible:
+    oneOf:
+      - const: cypress,cy8ctma340
+      - const: cypress,cy8ctst341
+      - const: cypress,cyttsp-spi
+        description: Legacy compatible for SPI connected CY8CTMA340
+        deprecated: true
+      - const: cypress,cyttsp-i2c
+        description: Legacy compatible for I2C connected CY8CTMA340
+        deprecated: true
+
+  reg:
+    description: I2C address when used on the I2C bus, or the SPI chip
+      select index when used on the SPI bus
+
+  clock-frequency:
+    description: I2C client clock frequency, defined for host when using
+      the device on the I2C bus
+    minimum: 0
+    maximum: 400000
+
+  spi-max-frequency:
+    description: SPI clock frequency, defined for host, defined when using
+      the device on the SPI bus. The throughput is maximum 2 Mbps so the
+      typical value is 2000000, if higher rates are used the total throughput
+      needs to be restricted to 2 Mbps.
+    minimum: 0
+    maximum: 6000000
+
+  interrupts:
+    description: Interrupt to host
+    maxItems: 1
+
+  vcpin-supply:
+    description: Analog power supply regulator on VCPIN pin
+
+  vdd-supply:
+    description: Digital power supply regulator on VDD pin
+
+  reset-gpios:
+    description: Reset line for the touchscreen, should be tagged
+      as GPIO_ACTIVE_LOW
+
+  bootloader-key:
+    description: the 8-byte bootloader key that is required to switch
+      the chip from bootloader mode (default mode) to application mode
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    minItems: 8
+    maxItems: 8
+
+  touchscreen-size-x: true
+  touchscreen-size-y: true
+  touchscreen-fuzz-x: true
+  touchscreen-fuzz-y: true
+
+  active-distance:
+    description: the distance in pixels beyond which a touch must move
+      before movement is detected and reported by the device
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 15
+
+  active-interval-ms:
+    description: the minimum period in ms between consecutive
+      scanning/processing cycles when the chip is in active mode
+    minimum: 0
+    maximum: 255
+
+  lowpower-interval-ms:
+    description: the minimum period in ms between consecutive
+      scanning/processing cycles when the chip is in low-power mode
+    minimum: 0
+    maximum: 2550
+
+  touch-timeout-ms:
+    description: minimum time in ms spent in the active power state while no
+      touches are detected before entering low-power mode
+    minimum: 0
+    maximum: 2550
+
+  use-handshake:
+    description: enable register-based handshake (boolean). This should only
+      be used if the chip is configured to use 'blocking communication with
+      timeout' (in this case the device generates an interrupt at the end of
+      every scanning/processing cycle)
+    $ref: /schemas/types.yaml#/definitions/flag
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - bootloader-key
+  - touchscreen-size-x
+  - touchscreen-size-y
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      num-cs = <1>;
+      cs-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+
+      touchscreen@0 {
+        compatible = "cypress,cy8ctma340";
+        reg = <0>;
+        interrupt-parent = <&gpio>;
+        interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
+        reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+        vdd-supply = <&ldo_aux1_reg>;
+        vcpin-supply = <&ldo_aux2_reg>;
+        bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
+        touchscreen-size-x = <480>;
+        touchscreen-size-y = <800>;
+        active-interval-ms = <0>;
+        touch-timeout-ms = <255>;
+        lowpower-interval-ms = <10>;
+      };
+    };
+
+...
 
+++ /dev/null
-* Cypress cyttsp touchscreen controller
-
-Required properties:
- - compatible          : must be "cypress,cyttsp-i2c" or "cypress,cyttsp-spi"
- - reg                 : Device I2C address or SPI chip select number
- - spi-max-frequency   : Maximum SPI clocking speed of the device (for cyttsp-spi)
- - interrupts          : (gpio) interrupt to which the chip is connected
-                         (see interrupt binding[0]).
- - bootloader-key      : the 8-byte bootloader key that is required to switch
-                         the chip from bootloader mode (default mode) to
-                         application mode.
-                         This property has to be specified as an array of 8
-                         '/bits/ 8' values.
-
-Optional properties:
- - reset-gpios         : the reset gpio the chip is connected to
-                         (see GPIO binding[1] for more details).
- - touchscreen-size-x  : horizontal resolution of touchscreen (in pixels)
- - touchscreen-size-y  : vertical resolution of touchscreen (in pixels)
- - touchscreen-fuzz-x  : horizontal noise value of the absolute input device
-                         (in pixels)
- - touchscreen-fuzz-y  : vertical noise value of the absolute input device
-                         (in pixels)
- - active-distance     : the distance in pixels beyond which a touch must move
-                         before movement is detected and reported by the device.
-                         Valid values: 0-15.
- - active-interval-ms  : the minimum period in ms between consecutive
-                         scanning/processing cycles when the chip is in active mode.
-                         Valid values: 0-255.
- - lowpower-interval-ms        : the minimum period in ms between consecutive
-                         scanning/processing cycles when the chip is in low-power mode.
-                         Valid values: 0-2550
- - touch-timeout-ms    : minimum time in ms spent in the active power state while no
-                         touches are detected before entering low-power mode.
-                         Valid values: 0-2550
- - use-handshake       : enable register-based handshake (boolean). This should
-                         only be used if the chip is configured to use 'blocking
-                         communication with timeout' (in this case the device
-                         generates an interrupt at the end of every
-                         scanning/processing cycle).
-
-[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-[1]: Documentation/devicetree/bindings/gpio/gpio.txt
-
-Example:
-       &i2c1 {
-               /* ... */
-               cyttsp@a {
-                       compatible = "cypress,cyttsp-i2c";
-                       reg = <0xa>;
-                       interrupt-parent = <&gpio0>;
-                       interrupts = <28 0>;
-                       reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
-
-                       touchscreen-size-x = <800>;
-                       touchscreen-size-y = <480>;
-                       touchscreen-fuzz-x = <4>;
-                       touchscreen-fuzz-y = <7>;
-
-                       bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
-                       active-distance = <8>;
-                       active-interval-ms = <0>;
-                       lowpower-interval-ms = <200>;
-                       touch-timeout-ms = <100>;
-               };
-
-               /* ... */
-       };
-
-       &mcspi1 {
-               /* ... */
-               cyttsp@0 {
-                       compatible = "cypress,cyttsp-spi";
-                       spi-max-frequency = <6000000>;
-                       reg = <0>;
-                       interrupt-parent = <&gpio0>;
-                       interrupts = <28 0>;
-                       reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
-
-                       touchscreen-size-x = <800>;
-                       touchscreen-size-y = <480>;
-                       touchscreen-fuzz-x = <4>;
-                       touchscreen-fuzz-y = <7>;
-
-                       bootloader-key = /bits/ 8 <0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08>;
-                       active-distance = <8>;
-                       active-interval-ms = <0>;
-                       lowpower-interval-ms = <200>;
-                       touch-timeout-ms = <100>;
-               };
-
-               /* ... */
-       };