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,tt21000.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cypress TT21000 touchscreen controller
8
9description: The Cypress TT21000 series (also known as "CYTTSP5" after
10  the marketing name Cypress TrueTouch Standard Product series 5).
11
12maintainers:
13  - Alistair Francis <alistair@alistair23.me>
14
15allOf:
16  - $ref: touchscreen.yaml#
17
18properties:
19  compatible:
20    const: cypress,tt21000
21
22  reg:
23    maxItems: 1
24
25  '#address-cells':
26    const: 1
27
28  '#size-cells':
29    const: 0
30
31  interrupts:
32    maxItems: 1
33
34  vdd-supply:
35    description: Regulator for voltage.
36
37  vddio-supply:
38    description: Optional Regulator for I/O voltage.
39
40  reset-gpios:
41    maxItems: 1
42
43  linux,keycodes:
44    description: EV_ABS specific event code generated by the axis.
45
46  wakeup-source: true
47
48patternProperties:
49  "^button@[0-9]+$":
50    type: object
51    $ref: ../input.yaml#
52    properties:
53      reg:
54        maxItems: 1
55      linux,keycodes:
56        description: Keycode to emit
57
58    required:
59      - reg
60      - linux,keycodes
61
62    additionalProperties: false
63
64required:
65  - compatible
66  - reg
67  - interrupts
68  - vdd-supply
69
70unevaluatedProperties: false
71
72examples:
73  - |
74    #include <dt-bindings/interrupt-controller/irq.h>
75    #include <dt-bindings/gpio/gpio.h>
76    #include <dt-bindings/input/linux-event-codes.h>
77
78    i2c {
79        #address-cells = <1>;
80        #size-cells = <0>;
81
82        touchscreen@24 {
83            #address-cells = <1>;
84            #size-cells = <0>;
85
86            compatible = "cypress,tt21000";
87            reg = <0x24>;
88            pinctrl-names = "default";
89            pinctrl-0 = <&tp_reset_ds203>;
90            interrupt-parent = <&pio>;
91            interrupts = <1 5 IRQ_TYPE_LEVEL_LOW>;
92            reset-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>;
93            vdd-supply = <&reg_touch>;
94
95            button@0 {
96                reg = <0>;
97                linux,keycodes = <KEY_HOMEPAGE>;
98            };
99
100            button@1 {
101                reg = <1>;
102                linux,keycodes = <KEY_MENU>;
103            };
104
105            button@2 {
106                reg = <2>;
107                linux,keycodes = <KEY_BACK>;
108            };
109        };
110    };
111...
112