xref: /linux/Documentation/devicetree/bindings/input/touchscreen/cypress,cy8ctma340.yaml (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
14b48d935SLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24b48d935SLinus Walleij%YAML 1.2
34b48d935SLinus Walleij---
44b48d935SLinus Walleij$id: http://devicetree.org/schemas/input/touchscreen/cypress,cy8ctma340.yaml#
54b48d935SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
64b48d935SLinus Walleij
7*84e85359SKrzysztof Kozlowskititle: Cypress CY8CTMA340 series touchscreen controller
84b48d935SLinus Walleij
94b48d935SLinus Walleijdescription: The Cypress CY8CTMA340 series (also known as "CYTTSP" after
104b48d935SLinus Walleij  the marketing name Cypress TrueTouch Standard Product) touchscreens can
114b48d935SLinus Walleij  be connected to either I2C or SPI buses.
124b48d935SLinus Walleij
134b48d935SLinus Walleijmaintainers:
144b48d935SLinus Walleij  - Javier Martinez Canillas <javier@dowhile0.org>
154b48d935SLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
164b48d935SLinus Walleij
174b48d935SLinus WalleijallOf:
184b48d935SLinus Walleij  - $ref: touchscreen.yaml#
194b48d935SLinus Walleij
204b48d935SLinus Walleijproperties:
214b48d935SLinus Walleij  $nodename:
224b48d935SLinus Walleij    pattern: "^touchscreen(@.*)?$"
234b48d935SLinus Walleij
244b48d935SLinus Walleij  compatible:
254b48d935SLinus Walleij    oneOf:
264b48d935SLinus Walleij      - const: cypress,cy8ctma340
274b48d935SLinus Walleij      - const: cypress,cy8ctst341
284b48d935SLinus Walleij      - const: cypress,cyttsp-spi
294b48d935SLinus Walleij        description: Legacy compatible for SPI connected CY8CTMA340
304b48d935SLinus Walleij        deprecated: true
314b48d935SLinus Walleij      - const: cypress,cyttsp-i2c
324b48d935SLinus Walleij        description: Legacy compatible for I2C connected CY8CTMA340
334b48d935SLinus Walleij        deprecated: true
344b48d935SLinus Walleij
354b48d935SLinus Walleij  reg:
364b48d935SLinus Walleij    description: I2C address when used on the I2C bus, or the SPI chip
374b48d935SLinus Walleij      select index when used on the SPI bus
384b48d935SLinus Walleij
394b48d935SLinus Walleij  clock-frequency:
404b48d935SLinus Walleij    description: I2C client clock frequency, defined for host when using
414b48d935SLinus Walleij      the device on the I2C bus
424b48d935SLinus Walleij    minimum: 0
434b48d935SLinus Walleij    maximum: 400000
444b48d935SLinus Walleij
454b48d935SLinus Walleij  spi-max-frequency:
464b48d935SLinus Walleij    description: SPI clock frequency, defined for host, defined when using
474b48d935SLinus Walleij      the device on the SPI bus. The throughput is maximum 2 Mbps so the
484b48d935SLinus Walleij      typical value is 2000000, if higher rates are used the total throughput
494b48d935SLinus Walleij      needs to be restricted to 2 Mbps.
504b48d935SLinus Walleij    minimum: 0
514b48d935SLinus Walleij    maximum: 6000000
524b48d935SLinus Walleij
534b48d935SLinus Walleij  interrupts:
544b48d935SLinus Walleij    description: Interrupt to host
554b48d935SLinus Walleij    maxItems: 1
564b48d935SLinus Walleij
574b48d935SLinus Walleij  vcpin-supply:
584b48d935SLinus Walleij    description: Analog power supply regulator on VCPIN pin
594b48d935SLinus Walleij
604b48d935SLinus Walleij  vdd-supply:
614b48d935SLinus Walleij    description: Digital power supply regulator on VDD pin
624b48d935SLinus Walleij
634b48d935SLinus Walleij  reset-gpios:
644b48d935SLinus Walleij    description: Reset line for the touchscreen, should be tagged
654b48d935SLinus Walleij      as GPIO_ACTIVE_LOW
664b48d935SLinus Walleij
674b48d935SLinus Walleij  bootloader-key:
684b48d935SLinus Walleij    description: the 8-byte bootloader key that is required to switch
694b48d935SLinus Walleij      the chip from bootloader mode (default mode) to application mode
704b48d935SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8-array
714b48d935SLinus Walleij    minItems: 8
724b48d935SLinus Walleij    maxItems: 8
734b48d935SLinus Walleij
744b48d935SLinus Walleij  touchscreen-size-x: true
754b48d935SLinus Walleij  touchscreen-size-y: true
764b48d935SLinus Walleij  touchscreen-fuzz-x: true
774b48d935SLinus Walleij  touchscreen-fuzz-y: true
784b48d935SLinus Walleij
794b48d935SLinus Walleij  active-distance:
804b48d935SLinus Walleij    description: the distance in pixels beyond which a touch must move
814b48d935SLinus Walleij      before movement is detected and reported by the device
824b48d935SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint32
834b48d935SLinus Walleij    minimum: 0
844b48d935SLinus Walleij    maximum: 15
854b48d935SLinus Walleij
864b48d935SLinus Walleij  active-interval-ms:
874b48d935SLinus Walleij    description: the minimum period in ms between consecutive
884b48d935SLinus Walleij      scanning/processing cycles when the chip is in active mode
894b48d935SLinus Walleij    minimum: 0
904b48d935SLinus Walleij    maximum: 255
914b48d935SLinus Walleij
924b48d935SLinus Walleij  lowpower-interval-ms:
934b48d935SLinus Walleij    description: the minimum period in ms between consecutive
944b48d935SLinus Walleij      scanning/processing cycles when the chip is in low-power mode
954b48d935SLinus Walleij    minimum: 0
964b48d935SLinus Walleij    maximum: 2550
974b48d935SLinus Walleij
984b48d935SLinus Walleij  touch-timeout-ms:
994b48d935SLinus Walleij    description: minimum time in ms spent in the active power state while no
1004b48d935SLinus Walleij      touches are detected before entering low-power mode
1014b48d935SLinus Walleij    minimum: 0
1024b48d935SLinus Walleij    maximum: 2550
1034b48d935SLinus Walleij
1044b48d935SLinus Walleij  use-handshake:
1054b48d935SLinus Walleij    description: enable register-based handshake (boolean). This should only
1064b48d935SLinus Walleij      be used if the chip is configured to use 'blocking communication with
1074b48d935SLinus Walleij      timeout' (in this case the device generates an interrupt at the end of
1084b48d935SLinus Walleij      every scanning/processing cycle)
1094b48d935SLinus Walleij    $ref: /schemas/types.yaml#/definitions/flag
1104b48d935SLinus Walleij
1114b48d935SLinus WalleijadditionalProperties: false
1124b48d935SLinus Walleij
1134b48d935SLinus Walleijrequired:
1144b48d935SLinus Walleij  - compatible
1154b48d935SLinus Walleij  - reg
1164b48d935SLinus Walleij  - interrupts
1174b48d935SLinus Walleij  - bootloader-key
1184b48d935SLinus Walleij  - touchscreen-size-x
1194b48d935SLinus Walleij  - touchscreen-size-y
1204b48d935SLinus Walleij
1214b48d935SLinus Walleijexamples:
1224b48d935SLinus Walleij  - |
1234b48d935SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
1244b48d935SLinus Walleij    #include <dt-bindings/gpio/gpio.h>
1254b48d935SLinus Walleij    spi {
1264b48d935SLinus Walleij      #address-cells = <1>;
1274b48d935SLinus Walleij      #size-cells = <0>;
1284b48d935SLinus Walleij      num-cs = <1>;
1294b48d935SLinus Walleij      cs-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
1304b48d935SLinus Walleij
1314b48d935SLinus Walleij      touchscreen@0 {
1324b48d935SLinus Walleij        compatible = "cypress,cy8ctma340";
1334b48d935SLinus Walleij        reg = <0>;
1344b48d935SLinus Walleij        interrupt-parent = <&gpio>;
1354b48d935SLinus Walleij        interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
1364b48d935SLinus Walleij        reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
1374b48d935SLinus Walleij        vdd-supply = <&ldo_aux1_reg>;
1384b48d935SLinus Walleij        vcpin-supply = <&ldo_aux2_reg>;
1394b48d935SLinus Walleij        bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
1404b48d935SLinus Walleij        touchscreen-size-x = <480>;
1414b48d935SLinus Walleij        touchscreen-size-y = <800>;
1424b48d935SLinus Walleij        active-interval-ms = <0>;
1434b48d935SLinus Walleij        touch-timeout-ms = <255>;
1444b48d935SLinus Walleij        lowpower-interval-ms = <10>;
1454b48d935SLinus Walleij      };
1464b48d935SLinus Walleij    };
1474b48d935SLinus Walleij
1484b48d935SLinus Walleij...
149