xref: /openbmc/linux/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml (revision db6da59cf27b5661ced03754ae0550f8914eda9e)
1a8bc0707SDavid Heidelberg# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2a8bc0707SDavid Heidelberg%YAML 1.2
3a8bc0707SDavid Heidelberg---
4*fcb52d7dSRob Herring$id: http://devicetree.org/schemas/input/microchip,cap11xx.yaml#
5*fcb52d7dSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6a8bc0707SDavid Heidelberg
79d69d47fSKrzysztof Kozlowskititle: Microchip CAP11xx based capacitive touch sensors
8a8bc0707SDavid Heidelberg
9a8bc0707SDavid Heidelbergdescription: |
10a8bc0707SDavid Heidelberg  The Microchip CAP1xxx Family of RightTouchTM multiple-channel capacitive
11a8bc0707SDavid Heidelberg  touch controllers and LED drivers. The device communication via I2C only.
12a8bc0707SDavid Heidelberg
13a8bc0707SDavid Heidelbergmaintainers:
14a8bc0707SDavid Heidelberg  - Rob Herring <robh@kernel.org>
15a8bc0707SDavid Heidelberg
16a8bc0707SDavid Heidelbergproperties:
17a8bc0707SDavid Heidelberg  compatible:
18a8bc0707SDavid Heidelberg    enum:
19a8bc0707SDavid Heidelberg      - microchip,cap1106
20a8bc0707SDavid Heidelberg      - microchip,cap1126
21a8bc0707SDavid Heidelberg      - microchip,cap1188
22bedd9c67SJiri Valek - 2N      - microchip,cap1203
23f78e9de8SLinus Torvalds      - microchip,cap1206
24bedd9c67SJiri Valek - 2N      - microchip,cap1293
25bedd9c67SJiri Valek - 2N      - microchip,cap1298
26a8bc0707SDavid Heidelberg
27a8bc0707SDavid Heidelberg  reg:
28a8bc0707SDavid Heidelberg    maxItems: 1
29a8bc0707SDavid Heidelberg
30a8bc0707SDavid Heidelberg  '#address-cells':
31a8bc0707SDavid Heidelberg    const: 1
32a8bc0707SDavid Heidelberg
33a8bc0707SDavid Heidelberg  '#size-cells':
34a8bc0707SDavid Heidelberg    const: 0
35a8bc0707SDavid Heidelberg
36a8bc0707SDavid Heidelberg  interrupts:
37a8bc0707SDavid Heidelberg    maxItems: 1
38a8bc0707SDavid Heidelberg    description: |
39a8bc0707SDavid Heidelberg      Property describing the interrupt line the
40a8bc0707SDavid Heidelberg      device's ALERT#/CM_IRQ# pin is connected to.
41a8bc0707SDavid Heidelberg      The device only has one interrupt source.
42a8bc0707SDavid Heidelberg
43a8bc0707SDavid Heidelberg  autorepeat:
44a8bc0707SDavid Heidelberg    description: |
45a8bc0707SDavid Heidelberg      Enables the Linux input system's autorepeat feature on the input device.
46a8bc0707SDavid Heidelberg
47a8bc0707SDavid Heidelberg  linux,keycodes:
48a8bc0707SDavid Heidelberg    minItems: 6
49a8bc0707SDavid Heidelberg    maxItems: 6
50a8bc0707SDavid Heidelberg    description: |
51a8bc0707SDavid Heidelberg      Specifies an array of numeric keycode values to
52a8bc0707SDavid Heidelberg      be used for the channels. If this property is
53a8bc0707SDavid Heidelberg      omitted, KEY_A, KEY_B, etc are used as defaults.
54a8bc0707SDavid Heidelberg      The array must have exactly six entries.
55a8bc0707SDavid Heidelberg
56a8bc0707SDavid Heidelberg  microchip,sensor-gain:
57a8bc0707SDavid Heidelberg    $ref: /schemas/types.yaml#/definitions/uint32
58a8bc0707SDavid Heidelberg    default: 1
59a8bc0707SDavid Heidelberg    enum: [1, 2, 4, 8]
60a8bc0707SDavid Heidelberg    description: |
61a8bc0707SDavid Heidelberg      Defines the gain of the sensor circuitry. This
62a8bc0707SDavid Heidelberg      effectively controls the sensitivity, as a
63a8bc0707SDavid Heidelberg      smaller delta capacitance is required to
64a8bc0707SDavid Heidelberg      generate the same delta count values.
65a8bc0707SDavid Heidelberg
66a8bc0707SDavid Heidelberg  microchip,irq-active-high:
67a8bc0707SDavid Heidelberg    type: boolean
68a8bc0707SDavid Heidelberg    description: |
69a8bc0707SDavid Heidelberg      By default the interrupt pin is active low
70a8bc0707SDavid Heidelberg      open drain. This property allows using the active
71a8bc0707SDavid Heidelberg      high push-pull output.
72a8bc0707SDavid Heidelberg
73a8bc0707SDavid HeidelbergpatternProperties:
74a8bc0707SDavid Heidelberg  "^led@[0-7]$":
75a8bc0707SDavid Heidelberg    type: object
76a8bc0707SDavid Heidelberg    description: CAP11xx LEDs
77a8bc0707SDavid Heidelberg    $ref: /schemas/leds/common.yaml#
78a8bc0707SDavid Heidelberg
79a8bc0707SDavid Heidelberg    properties:
80a8bc0707SDavid Heidelberg      reg:
81a8bc0707SDavid Heidelberg        enum: [0, 1, 2, 3, 4, 5, 6, 7]
82a8bc0707SDavid Heidelberg
83a8bc0707SDavid Heidelberg      label: true
84a8bc0707SDavid Heidelberg
85a8bc0707SDavid Heidelberg      linux,default-trigger: true
86a8bc0707SDavid Heidelberg
87a8bc0707SDavid Heidelberg      default-state: true
88a8bc0707SDavid Heidelberg
89a8bc0707SDavid Heidelberg    required:
90a8bc0707SDavid Heidelberg      - reg
91a8bc0707SDavid Heidelberg
92a8bc0707SDavid Heidelberg    additionalProperties: false
93a8bc0707SDavid Heidelberg
94a8bc0707SDavid HeidelbergallOf:
95a8bc0707SDavid Heidelberg  - $ref: input.yaml
96a8bc0707SDavid Heidelberg  - if:
97a8bc0707SDavid Heidelberg      properties:
98a8bc0707SDavid Heidelberg        compatible:
99a8bc0707SDavid Heidelberg          contains:
100a8bc0707SDavid Heidelberg            enum:
101a8bc0707SDavid Heidelberg              - microchip,cap1106
102a8bc0707SDavid Heidelberg    then:
103a8bc0707SDavid Heidelberg      patternProperties:
104a8bc0707SDavid Heidelberg        "^led@[0-7]$": false
105a8bc0707SDavid Heidelberg
106a8bc0707SDavid Heidelbergrequired:
107a8bc0707SDavid Heidelberg  - compatible
108a8bc0707SDavid Heidelberg  - interrupts
109a8bc0707SDavid Heidelberg
110a8bc0707SDavid HeidelbergadditionalProperties: false
111a8bc0707SDavid Heidelberg
112a8bc0707SDavid Heidelbergexamples:
113a8bc0707SDavid Heidelberg  - |
114a8bc0707SDavid Heidelberg    i2c {
115a8bc0707SDavid Heidelberg      #address-cells = <1>;
116a8bc0707SDavid Heidelberg      #size-cells = <0>;
117a8bc0707SDavid Heidelberg
1184fda8a2dSKrzysztof Kozlowski      touch@28 {
119a8bc0707SDavid Heidelberg        compatible = "microchip,cap1188";
120a8bc0707SDavid Heidelberg        interrupt-parent = <&gpio1>;
121a8bc0707SDavid Heidelberg        interrupts = <0 0>;
122a8bc0707SDavid Heidelberg        reg = <0x28>;
123a8bc0707SDavid Heidelberg        autorepeat;
124a8bc0707SDavid Heidelberg        microchip,sensor-gain = <2>;
125a8bc0707SDavid Heidelberg
126a8bc0707SDavid Heidelberg        linux,keycodes = <103>,	/* KEY_UP */
127a8bc0707SDavid Heidelberg                         <106>,	/* KEY_RIGHT */
128a8bc0707SDavid Heidelberg                         <108>,	/* KEY_DOWN */
129a8bc0707SDavid Heidelberg                         <105>,	/* KEY_LEFT */
130a8bc0707SDavid Heidelberg                         <109>,	/* KEY_PAGEDOWN */
131a8bc0707SDavid Heidelberg                         <104>;	/* KEY_PAGEUP */
132a8bc0707SDavid Heidelberg
133a8bc0707SDavid Heidelberg        #address-cells = <1>;
134a8bc0707SDavid Heidelberg        #size-cells = <0>;
135a8bc0707SDavid Heidelberg
136a8bc0707SDavid Heidelberg        led@0 {
137a8bc0707SDavid Heidelberg                label = "cap11xx:green:usr0";
138a8bc0707SDavid Heidelberg                reg = <0>;
139a8bc0707SDavid Heidelberg        };
140a8bc0707SDavid Heidelberg
141a8bc0707SDavid Heidelberg        led@1 {
142a8bc0707SDavid Heidelberg                label = "cap11xx:green:usr1";
143a8bc0707SDavid Heidelberg                reg = <1>;
144a8bc0707SDavid Heidelberg        };
145a8bc0707SDavid Heidelberg
146a8bc0707SDavid Heidelberg        led@2 {
147a8bc0707SDavid Heidelberg                label = "cap11xx:green:alive";
148a8bc0707SDavid Heidelberg                reg = <2>;
149a8bc0707SDavid Heidelberg                linux,default-trigger = "heartbeat";
150a8bc0707SDavid Heidelberg        };
151a8bc0707SDavid Heidelberg      };
152a8bc0707SDavid Heidelberg    };
153