Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / input / touchscreen / cypress,cy8ctma340.yaml
1 # 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
7 title: Cypress CY8CTMA340 series touchscreen controller bindings
8
9 description: 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
13 maintainers:
14   - Javier Martinez Canillas <javier@dowhile0.org>
15   - Linus Walleij <linus.walleij@linaro.org>
16
17 allOf:
18   - $ref: touchscreen.yaml#
19
20 properties:
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
111 additionalProperties: false
112
113 required:
114   - compatible
115   - reg
116   - interrupts
117   - bootloader-key
118   - touchscreen-size-x
119   - touchscreen-size-y
120
121 examples:
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 ...