GNU Linux-libre 6.1.90-gnu
[releases.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: Device tree bindings for 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,cap1206
23
24   reg:
25     maxItems: 1
26
27   '#address-cells':
28     const: 1
29
30   '#size-cells':
31     const: 0
32
33   interrupts:
34     maxItems: 1
35     description: |
36       Property describing the interrupt line the
37       device's ALERT#/CM_IRQ# pin is connected to.
38       The device only has one interrupt source.
39
40   autorepeat:
41     description: |
42       Enables the Linux input system's autorepeat feature on the input device.
43
44   linux,keycodes:
45     minItems: 6
46     maxItems: 6
47     description: |
48       Specifies an array of numeric keycode values to
49       be used for the channels. If this property is
50       omitted, KEY_A, KEY_B, etc are used as defaults.
51       The array must have exactly six entries.
52
53   microchip,sensor-gain:
54     $ref: /schemas/types.yaml#/definitions/uint32
55     default: 1
56     enum: [1, 2, 4, 8]
57     description: |
58       Defines the gain of the sensor circuitry. This
59       effectively controls the sensitivity, as a
60       smaller delta capacitance is required to
61       generate the same delta count values.
62
63   microchip,irq-active-high:
64     type: boolean
65     description: |
66       By default the interrupt pin is active low
67       open drain. This property allows using the active
68       high push-pull output.
69
70 patternProperties:
71   "^led@[0-7]$":
72     type: object
73     description: CAP11xx LEDs
74     $ref: /schemas/leds/common.yaml#
75
76     properties:
77       reg:
78         enum: [0, 1, 2, 3, 4, 5, 6, 7]
79
80       label: true
81
82       linux,default-trigger: true
83
84       default-state: true
85
86     required:
87       - reg
88
89     additionalProperties: false
90
91 allOf:
92   - $ref: input.yaml
93   - if:
94       properties:
95         compatible:
96           contains:
97             enum:
98               - microchip,cap1106
99     then:
100       patternProperties:
101         "^led@[0-7]$": false
102
103 required:
104   - compatible
105   - interrupts
106
107 additionalProperties: false
108
109 examples:
110   - |
111     i2c {
112       #address-cells = <1>;
113       #size-cells = <0>;
114
115       touch@28 {
116         compatible = "microchip,cap1188";
117         interrupt-parent = <&gpio1>;
118         interrupts = <0 0>;
119         reg = <0x28>;
120         autorepeat;
121         microchip,sensor-gain = <2>;
122
123         linux,keycodes = <103>, /* KEY_UP */
124                          <106>, /* KEY_RIGHT */
125                          <108>, /* KEY_DOWN */
126                          <105>, /* KEY_LEFT */
127                          <109>, /* KEY_PAGEDOWN */
128                          <104>; /* KEY_PAGEUP */
129
130         #address-cells = <1>;
131         #size-cells = <0>;
132
133         led@0 {
134                 label = "cap11xx:green:usr0";
135                 reg = <0>;
136         };
137
138         led@1 {
139                 label = "cap11xx:green:usr1";
140                 reg = <1>;
141         };
142
143         led@2 {
144                 label = "cap11xx:green:alive";
145                 reg = <2>;
146                 linux,default-trigger = "heartbeat";
147         };
148       };
149     };