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