blob: 4dfbb93678b564377e79f271a47817f435c3f558 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/input/touchscreen/cypress,cy8ctma340.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cypress CY8CTMA340 series touchscreen controller
8
9description: The Cypress CY8CTMA340 series (also known as "CYTTSP" after
10 the marketing name Cypress TrueTouch Standard Product) touchscreens can
11 be connected to either I2C or SPI buses.
12
13maintainers:
14 - Javier Martinez Canillas <javier@dowhile0.org>
15 - Linus Walleij <linus.walleij@linaro.org>
16
17allOf:
18 - $ref: touchscreen.yaml#
19
20properties:
21 $nodename:
22 pattern: "^touchscreen(@.*)?$"
23
24 compatible:
25 oneOf:
26 - const: cypress,cy8ctma340
27 - const: cypress,cy8ctst341
28 - const: cypress,cyttsp-spi
29 description: Legacy compatible for SPI connected CY8CTMA340
30 deprecated: true
31 - const: cypress,cyttsp-i2c
32 description: Legacy compatible for I2C connected CY8CTMA340
33 deprecated: true
34
35 reg:
36 description: I2C address when used on the I2C bus, or the SPI chip
37 select index when used on the SPI bus
38
39 clock-frequency:
40 description: I2C client clock frequency, defined for host when using
41 the device on the I2C bus
42 minimum: 0
43 maximum: 400000
44
45 spi-max-frequency:
46 description: SPI clock frequency, defined for host, defined when using
47 the device on the SPI bus. The throughput is maximum 2 Mbps so the
48 typical value is 2000000, if higher rates are used the total throughput
49 needs to be restricted to 2 Mbps.
50 minimum: 0
51 maximum: 6000000
52
53 interrupts:
54 description: Interrupt to host
55 maxItems: 1
56
57 vcpin-supply:
58 description: Analog power supply regulator on VCPIN pin
59
60 vdd-supply:
61 description: Digital power supply regulator on VDD pin
62
63 reset-gpios:
64 description: Reset line for the touchscreen, should be tagged
65 as GPIO_ACTIVE_LOW
66
67 bootloader-key:
68 description: the 8-byte bootloader key that is required to switch
69 the chip from bootloader mode (default mode) to application mode
70 $ref: /schemas/types.yaml#/definitions/uint8-array
71 minItems: 8
72 maxItems: 8
73
74 touchscreen-size-x: true
75 touchscreen-size-y: true
76 touchscreen-fuzz-x: true
77 touchscreen-fuzz-y: true
78
79 active-distance:
80 description: the distance in pixels beyond which a touch must move
81 before movement is detected and reported by the device
82 $ref: /schemas/types.yaml#/definitions/uint32
83 minimum: 0
84 maximum: 15
85
86 active-interval-ms:
87 description: the minimum period in ms between consecutive
88 scanning/processing cycles when the chip is in active mode
89 minimum: 0
90 maximum: 255
91
92 lowpower-interval-ms:
93 description: the minimum period in ms between consecutive
94 scanning/processing cycles when the chip is in low-power mode
95 minimum: 0
96 maximum: 2550
97
98 touch-timeout-ms:
99 description: minimum time in ms spent in the active power state while no
100 touches are detected before entering low-power mode
101 minimum: 0
102 maximum: 2550
103
104 use-handshake:
105 description: enable register-based handshake (boolean). This should only
106 be used if the chip is configured to use 'blocking communication with
107 timeout' (in this case the device generates an interrupt at the end of
108 every scanning/processing cycle)
109 $ref: /schemas/types.yaml#/definitions/flag
110
111additionalProperties: false
112
113required:
114 - compatible
115 - reg
116 - interrupts
117 - bootloader-key
118 - touchscreen-size-x
119 - touchscreen-size-y
120
121examples:
122 - |
123 #include <dt-bindings/interrupt-controller/irq.h>
124 #include <dt-bindings/gpio/gpio.h>
125 spi {
126 #address-cells = <1>;
127 #size-cells = <0>;
128 num-cs = <1>;
129 cs-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
130
131 touchscreen@0 {
132 compatible = "cypress,cy8ctma340";
133 reg = <0>;
134 interrupt-parent = <&gpio>;
135 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
136 reset-gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
137 vdd-supply = <&ldo_aux1_reg>;
138 vcpin-supply = <&ldo_aux2_reg>;
139 bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
140 touchscreen-size-x = <480>;
141 touchscreen-size-y = <800>;
142 active-interval-ms = <0>;
143 touch-timeout-ms = <255>;
144 lowpower-interval-ms = <10>;
145 };
146 };
147
148...