Merge branch 'for-6.9/amd-sfh' into for-linus
[sfrench/cifs-2.6.git] / Documentation / devicetree / 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     };