Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mfd / st,stpmic1.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mfd/st,stpmic1.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: STMicroelectonics STPMIC1 Power Management IC bindings
8
9 description: STMicroelectronics STPMIC1 Power Management IC
10
11 maintainers:
12   - pascal Paillet <p.paillet@st.com>
13
14 properties:
15   compatible:
16     const: st,stpmic1
17
18   reg:
19     const: 0x33
20
21   interrupts:
22     maxItems: 1
23
24   "#interrupt-cells":
25     const: 2
26
27   interrupt-controller: true
28
29   onkey:
30     type: object
31
32     $ref: ../input/input.yaml
33
34     properties:
35       compatible:
36         const: st,stpmic1-onkey
37
38       interrupts:
39         items:
40           - description: onkey-falling, happens when onkey is pressed. IT_PONKEY_F of pmic
41           - description: onkey-rising, happens when onkey is released. IT_PONKEY_R of pmic
42
43       interrupt-names:
44         items:
45           - const: onkey-falling
46           - const: onkey-rising
47
48       st,onkey-clear-cc-flag:
49         description: onkey is able power on after an over-current shutdown event.
50         $ref: /schemas/types.yaml#/definitions/flag
51
52       st,onkey-pu-inactive:
53         description: onkey pull up is not active
54         $ref: /schemas/types.yaml#/definitions/flag
55
56       power-off-time-sec:
57         minimum: 1
58         maximum: 16
59
60     required:
61       - compatible
62       - interrupts
63       - interrupt-names
64
65     additionalProperties: false
66
67   watchdog:
68     type: object
69
70     $ref: ../watchdog/watchdog.yaml
71
72     properties:
73       compatible:
74         const: st,stpmic1-wdt
75
76       timeout-sec: true
77
78     required:
79       - compatible
80
81     additionalProperties: false
82
83   regulators:
84     type: object
85
86     description: |
87       Available Regulators in STPMIC1 device are:
88         - buck1 for Buck BUCK1
89         - buck2 for Buck BUCK2
90         - buck3 for Buck BUCK3
91         - buck4 for Buck BUCK4
92         - ldo1 for LDO LDO1
93         - ldo2 for LDO LDO2
94         - ldo3 for LDO LDO3
95         - ldo4 for LDO LDO4
96         - ldo5 for LDO LDO5
97         - ldo6 for LDO LDO6
98         - vref_ddr for LDO Vref DDR
99         - boost for Buck BOOST
100         - pwr_sw1 for VBUS_OTG switch
101         - pwr_sw2 for SW_OUT switch
102       Switches are fixed voltage regulators with only enable/disable capability.
103
104     properties:
105       compatible:
106         const: st,stpmic1-regulators
107
108       ldo3:
109         type: object
110
111         properties:
112           interrupts:
113             maxItems: 1
114
115           st,mask-reset:
116             description: mask reset for this regulator, the regulator configuration
117               is maintained during pmic reset.
118             $ref: /schemas/types.yaml#/definitions/flag
119
120           regulator-name: true
121           regulator-boot-on: true
122           regulator-always-on: true
123           regulator-min-microvolt: true
124           regulator-max-microvolt: true
125           regulator-allow-bypass: true
126           regulator-over-current-protection: true
127
128         additionalProperties: false
129
130       ldo4:
131         type: object
132
133         properties:
134           interrupts:
135             maxItems: 1
136
137           st,mask-reset:
138             description: mask reset for this regulator, the regulator configuration
139               is maintained during pmic reset.
140             $ref: /schemas/types.yaml#/definitions/flag
141
142           regulator-name: true
143           regulator-boot-on: true
144           regulator-always-on: true
145           regulator-over-current-protection: true
146
147         additionalProperties: false
148
149       vref_ddr:
150         type: object
151
152         properties:
153           interrupts:
154             maxItems: 1
155
156           st,mask-reset:
157             description: mask reset for this regulator, the regulator configuration
158               is maintained during pmic reset.
159             $ref: /schemas/types.yaml#/definitions/flag
160
161           regulator-name: true
162           regulator-boot-on: true
163           regulator-always-on: true
164
165         additionalProperties: false
166
167       boost:
168         type: object
169
170         properties:
171           interrupts:
172             maxItems: 1
173
174           st,mask-reset:
175             description: mask reset for this regulator, the regulator configuration
176               is maintained during pmic reset.
177             $ref: /schemas/types.yaml#/definitions/flag
178
179           regulator-name: true
180           regulator-boot-on: true
181           regulator-always-on: true
182           regulator-over-current-protection: true
183
184         additionalProperties: false
185
186     patternProperties:
187       "^(buck[1-4]|ldo[1-6]|boost|pwr_sw[1-2])-supply$":
188         description: STPMIC1 voltage regulators supplies
189
190       "^(buck[1-4]|ldo[1-6]|boost|vref_ddr|pwr_sw[1-2])$":
191         $ref: ../regulator/regulator.yaml
192
193       "^ldo[1-2,5-6]$":
194         type: object
195
196         properties:
197           interrupts:
198             maxItems: 1
199
200           st,mask-reset:
201             description: mask reset for this regulator, the regulator configuration
202               is maintained during pmic reset.
203             $ref: /schemas/types.yaml#/definitions/flag
204
205           regulator-name: true
206           regulator-boot-on: true
207           regulator-always-on: true
208           regulator-min-microvolt: true
209           regulator-max-microvolt: true
210           regulator-over-current-protection: true
211           regulator-enable-ramp-delay: true
212
213         additionalProperties: false
214
215       "^buck[1-4]$":
216         type: object
217
218         properties:
219           interrupts:
220             maxItems: 1
221
222           st,mask-reset:
223             description: mask reset for this regulator, the regulator configuration
224               is maintained during pmic reset.
225             $ref: /schemas/types.yaml#/definitions/flag
226
227           regulator-name: true
228           regulator-boot-on: true
229           regulator-always-on: true
230           regulator-min-microvolt: true
231           regulator-max-microvolt: true
232           regulator-initial-mode: true
233           regulator-pull-down: true
234           regulator-over-current-protection: true
235           regulator-enable-ramp-delay: true
236
237         additionalProperties: false
238
239       "^pwr_sw[1-2]$":
240         type: object
241
242         properties:
243           interrupts:
244             maxItems: 1
245
246           regulator-name: true
247           regulator-boot-on: true
248           regulator-always-on: true
249           regulator-over-current-protection: true
250           regulator-active-discharge: true
251
252         additionalProperties: false
253
254     required:
255       - compatible
256
257     additionalProperties: false
258
259 additionalProperties: false
260
261 required:
262   - compatible
263   - reg
264   - interrupts
265   - "#interrupt-cells"
266   - interrupt-controller
267
268 examples:
269   - |
270     #include <dt-bindings/mfd/st,stpmic1.h>
271     #include <dt-bindings/interrupt-controller/arm-gic.h>
272     i2c {
273       #address-cells = <1>;
274       #size-cells = <0>;
275       pmic@33 {
276         compatible = "st,stpmic1";
277         reg = <0x33>;
278         interrupt-parent = <&gpioa>;
279         interrupts = <0 2>;
280
281         interrupt-controller;
282         #interrupt-cells = <2>;
283
284         onkey {
285           compatible = "st,stpmic1-onkey";
286           interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
287           interrupt-names = "onkey-falling", "onkey-rising";
288           power-off-time-sec = <10>;
289         };
290
291         watchdog {
292           compatible = "st,stpmic1-wdt";
293         };
294
295         regulators {
296           compatible = "st,stpmic1-regulators";
297
298           ldo6-supply = <&v3v3>;
299
300           buck1 {
301             regulator-name = "vdd_core";
302             interrupts = <IT_CURLIM_BUCK1 0>;
303             st,mask-reset;
304             regulator-boot-on;
305             regulator-min-microvolt = <700000>;
306             regulator-max-microvolt = <1200000>;
307           };
308
309           buck3 {
310             regulator-name = "vdd";
311             regulator-min-microvolt = <3300000>;
312             regulator-max-microvolt = <3300000>;
313             regulator-boot-on;
314             regulator-pull-down;
315           };
316
317           buck4 {
318             regulator-name = "v3v3";
319             interrupts = <IT_CURLIM_BUCK4 0>;
320             regulator-min-microvolt = <3300000>;
321             regulator-max-microvolt = <3300000>;
322           };
323
324           ldo6 {
325             regulator-name = "v1v8";
326             regulator-min-microvolt = <1800000>;
327             regulator-max-microvolt = <1800000>;
328             regulator-over-current-protection;
329           };
330         };
331       };
332     };
333
334 ...