Merge tag 'v5.13-rc3' into asoc-5.13
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mfd / iqs62x.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mfd/iqs62x.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Azoteq IQS620A/621/622/624/625 Multi-Function Sensors
8
9 maintainers:
10   - Jeff LaBundy <jeff@labundy.com>
11
12 description: |
13   The Azoteq IQS620A, IQS621, IQS622, IQS624 and IQS625 multi-function sensors
14   integrate multiple sensing technologies in a single package.
15
16   Link to datasheets: https://www.azoteq.com/
17
18 properties:
19   compatible:
20     enum:
21       - azoteq,iqs620a
22       - azoteq,iqs621
23       - azoteq,iqs622
24       - azoteq,iqs624
25       - azoteq,iqs625
26
27   reg:
28     maxItems: 1
29
30   interrupts:
31     maxItems: 1
32
33   firmware-name:
34     $ref: /schemas/types.yaml#/definitions/string
35     description:
36       Specifies the name of the calibration and configuration file selected by
37       the driver. If this property is omitted, the name is chosen based on the
38       device name with ".bin" as the extension (e.g. iqs620a.bin for IQS620A).
39
40   keys:
41     $ref: ../input/iqs62x-keys.yaml
42
43   pwm:
44     $ref: ../pwm/iqs620a-pwm.yaml
45
46 required:
47   - compatible
48   - reg
49   - interrupts
50
51 additionalProperties: false
52
53 examples:
54   - |
55     /*
56      * Dual capacitive buttons with proximity-activated function, unipolar lid
57      * switch and panel-mounted LED.
58      */
59     #include <dt-bindings/input/input.h>
60     #include <dt-bindings/interrupt-controller/irq.h>
61
62     i2c {
63             #address-cells = <1>;
64             #size-cells = <0>;
65
66             iqs620a@44 {
67                     compatible = "azoteq,iqs620a";
68                     reg = <0x44>;
69                     interrupt-parent = <&gpio>;
70                     interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
71
72                     keys {
73                             compatible = "azoteq,iqs620a-keys";
74
75                             linux,keycodes = <KEY_SELECT>,
76                                              <KEY_MENU>,
77                                              <KEY_OK>,
78                                              <KEY_MENU>;
79
80                             hall-switch-south {
81                                     linux,code = <SW_LID>;
82                                     azoteq,use-prox;
83                             };
84                     };
85
86                     iqs620a_pwm: pwm {
87                             compatible = "azoteq,iqs620a-pwm";
88                             #pwm-cells = <2>;
89                     };
90             };
91     };
92
93     pwmleds {
94             compatible = "pwm-leds";
95
96             led-1 {
97                     pwms = <&iqs620a_pwm 0 1000000>;
98                     max-brightness = <255>;
99             };
100     };
101
102   - |
103     /* Single inductive button with bipolar dock/tablet-mode switch. */
104     #include <dt-bindings/input/input.h>
105     #include <dt-bindings/interrupt-controller/irq.h>
106
107     i2c {
108             #address-cells = <1>;
109             #size-cells = <0>;
110
111             iqs620a@44 {
112                     compatible = "azoteq,iqs620a";
113                     reg = <0x44>;
114                     interrupt-parent = <&gpio>;
115                     interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
116
117                     firmware-name = "iqs620a_coil.bin";
118
119                     keys {
120                             compatible = "azoteq,iqs620a-keys";
121
122                             linux,keycodes = <0>,
123                                              <0>,
124                                              <0>,
125                                              <0>,
126                                              <0>,
127                                              <0>,
128                                              <KEY_MUTE>;
129
130                             hall-switch-north {
131                                     linux,code = <SW_DOCK>;
132                             };
133
134                             hall-switch-south {
135                                     linux,code = <SW_TABLET_MODE>;
136                             };
137                     };
138             };
139     };
140
141   - |
142     /* Dual capacitive buttons with volume knob. */
143     #include <dt-bindings/input/input.h>
144     #include <dt-bindings/interrupt-controller/irq.h>
145
146     i2c {
147             #address-cells = <1>;
148             #size-cells = <0>;
149
150             iqs624@44 {
151                     compatible = "azoteq,iqs624";
152                     reg = <0x44>;
153                     interrupt-parent = <&gpio>;
154                     interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
155
156                     keys {
157                             compatible = "azoteq,iqs624-keys";
158
159                             linux,keycodes = <BTN_0>,
160                                              <0>,
161                                              <BTN_1>,
162                                              <0>,
163                                              <0>,
164                                              <0>,
165                                              <0>,
166                                              <0>,
167                                              <0>,
168                                              <0>,
169                                              <0>,
170                                              <0>,
171                                              <0>,
172                                              <0>,
173                                              <KEY_VOLUMEUP>,
174                                              <KEY_VOLUMEDOWN>;
175                     };
176             };
177     };
178
179 ...