blob: 044cd7542c2bcf5030b93de98b3314e6d63fce7f [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Azoteq IQS620A/621/622/624/625 Multi-Function Sensors
8
9maintainers:
10 - Jeff LaBundy <jeff@labundy.com>
11
12description: |
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
18properties:
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
46required:
47 - compatible
48 - reg
49 - interrupts
50
51additionalProperties: false
52
53examples:
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...