]> git.ipfire.org Git - thirdparty/u-boot.git/blob - Bindings/input/microchip,cap11xx.yaml
Squashed 'dts/upstream/' changes from aaba2d45dc2a..b35b9bd1d4ee
[thirdparty/u-boot.git] / Bindings / input / microchip,cap11xx.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/input/microchip,cap11xx.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Microchip CAP11xx based capacitive touch sensors
8
9 description: |
10 The Microchip CAP1xxx Family of RightTouchTM multiple-channel capacitive
11 touch controllers and LED drivers. The device communication via I2C only.
12
13 maintainers:
14 - Rob Herring <robh@kernel.org>
15
16 properties:
17 compatible:
18 enum:
19 - microchip,cap1106
20 - microchip,cap1126
21 - microchip,cap1188
22 - microchip,cap1203
23 - microchip,cap1206
24 - microchip,cap1293
25 - microchip,cap1298
26
27 reg:
28 maxItems: 1
29
30 '#address-cells':
31 const: 1
32
33 '#size-cells':
34 const: 0
35
36 interrupts:
37 maxItems: 1
38 description: |
39 Property describing the interrupt line the
40 device's ALERT#/CM_IRQ# pin is connected to.
41 The device only has one interrupt source.
42
43 autorepeat:
44 description: |
45 Enables the Linux input system's autorepeat feature on the input device.
46
47 linux,keycodes:
48 minItems: 3
49 maxItems: 8
50 description: |
51 Specifies an array of numeric keycode values to
52 be used for the channels. If this property is
53 omitted, KEY_A, KEY_B, etc are used as defaults.
54 The number of entries must correspond to the number of channels.
55
56 microchip,sensor-gain:
57 $ref: /schemas/types.yaml#/definitions/uint32
58 default: 1
59 enum: [1, 2, 4, 8]
60 description: |
61 Defines the gain of the sensor circuitry. This
62 effectively controls the sensitivity, as a
63 smaller delta capacitance is required to
64 generate the same delta count values.
65
66 microchip,irq-active-high:
67 type: boolean
68 description: |
69 By default the interrupt pin is active low
70 open drain. This property allows using the active
71 high push-pull output.
72
73 microchip,sensitivity-delta-sense:
74 $ref: /schemas/types.yaml#/definitions/uint32
75 default: 32
76 enum: [1, 2, 4, 8, 16, 32, 64, 128]
77 description:
78 Controls the sensitivity multiplier of a touch detection.
79 Higher value means more sensitive settings.
80 At the more sensitive settings, touches are detected for a smaller delta
81 capacitance corresponding to a "lighter" touch.
82
83 microchip,signal-guard:
84 $ref: /schemas/types.yaml#/definitions/uint32-array
85 minItems: 3
86 maxItems: 8
87 items:
88 enum: [0, 1]
89 description: |
90 0 - off
91 1 - on
92 The signal guard isolates the signal from virtual grounds.
93 If enabled then the behavior of the channel is changed to signal guard.
94 The number of entries must correspond to the number of channels.
95
96 microchip,input-threshold:
97 $ref: /schemas/types.yaml#/definitions/uint32-array
98 minItems: 3
99 maxItems: 8
100 items:
101 minimum: 0
102 maximum: 127
103 description:
104 Specifies the delta threshold that is used to determine if a touch has
105 been detected. A higher value means a larger difference in capacitance
106 is required for a touch to be registered, making the touch sensor less
107 sensitive.
108 The number of entries must correspond to the number of channels.
109
110 microchip,calib-sensitivity:
111 $ref: /schemas/types.yaml#/definitions/uint32-array
112 minItems: 3
113 maxItems: 8
114 items:
115 enum: [1, 2, 4]
116 description: |
117 Specifies an array of numeric values that controls the gain
118 used by the calibration routine to enable sensor inputs
119 to be more sensitive for proximity detection.
120 Gain is based on touch pad capacitance range
121 1 - 5-50pF
122 2 - 0-25pF
123 4 - 0-12.5pF
124 The number of entries must correspond to the number of channels.
125
126 patternProperties:
127 "^led@[0-7]$":
128 type: object
129 description: CAP11xx LEDs
130 $ref: /schemas/leds/common.yaml#
131
132 properties:
133 reg:
134 enum: [0, 1, 2, 3, 4, 5, 6, 7]
135
136 label: true
137
138 linux,default-trigger: true
139
140 default-state: true
141
142 required:
143 - reg
144
145 additionalProperties: false
146
147 allOf:
148 - $ref: input.yaml
149 - if:
150 properties:
151 compatible:
152 contains:
153 enum:
154 - microchip,cap1106
155 - microchip,cap1203
156 - microchip,cap1206
157 - microchip,cap1293
158 - microchip,cap1298
159 then:
160 patternProperties:
161 "^led@[0-7]$": false
162
163 - if:
164 properties:
165 compatible:
166 contains:
167 enum:
168 - microchip,cap1106
169 - microchip,cap1126
170 - microchip,cap1188
171 - microchip,cap1203
172 - microchip,cap1206
173 then:
174 properties:
175 microchip,signal-guard: false
176 microchip,calib-sensitivity: false
177
178 required:
179 - compatible
180 - interrupts
181
182 additionalProperties: false
183
184 examples:
185 - |
186 i2c {
187 #address-cells = <1>;
188 #size-cells = <0>;
189
190 touch@28 {
191 compatible = "microchip,cap1188";
192 interrupt-parent = <&gpio1>;
193 interrupts = <0 0>;
194 reg = <0x28>;
195 autorepeat;
196 microchip,sensor-gain = <2>;
197 microchip,sensitivity-delta-sense = <16>;
198 microchip,input-threshold = <21>, <18>, <46>, <46>, <46>, <21>;
199
200 linux,keycodes = <103>, /* KEY_UP */
201 <106>, /* KEY_RIGHT */
202 <108>, /* KEY_DOWN */
203 <105>, /* KEY_LEFT */
204 <109>, /* KEY_PAGEDOWN */
205 <104>; /* KEY_PAGEUP */
206
207 #address-cells = <1>;
208 #size-cells = <0>;
209
210 led@0 {
211 label = "cap11xx:green:usr0";
212 reg = <0>;
213 };
214
215 led@1 {
216 label = "cap11xx:green:usr1";
217 reg = <1>;
218 };
219
220 led@2 {
221 label = "cap11xx:green:alive";
222 reg = <2>;
223 linux,default-trigger = "heartbeat";
224 };
225 };
226 };