Linux 6.7-rc7
[linux-modified.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
8
9 description: STMicroelectronics STPMIC1 Power Management IC
10
11 maintainers:
12   - pascal Paillet <p.paillet@foss.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         $ref: /schemas/regulator/regulator.yaml
110         type: object
111
112         properties:
113           interrupts:
114             maxItems: 1
115
116           st,mask-reset:
117             description: mask reset for this regulator, the regulator configuration
118               is maintained during pmic reset.
119             $ref: /schemas/types.yaml#/definitions/flag
120
121           regulator-name: true
122           regulator-boot-on: true
123           regulator-always-on: true
124           regulator-min-microvolt: true
125           regulator-max-microvolt: true
126           regulator-allow-bypass: true
127           regulator-over-current-protection: true
128
129         additionalProperties: false
130
131       ldo4:
132         $ref: /schemas/regulator/regulator.yaml
133         type: object
134
135         properties:
136           interrupts:
137             maxItems: 1
138
139           st,mask-reset:
140             description: mask reset for this regulator, the regulator configuration
141               is maintained during pmic reset.
142             $ref: /schemas/types.yaml#/definitions/flag
143
144           regulator-name: true
145           regulator-boot-on: true
146           regulator-always-on: true
147           regulator-min-microvolt: true
148           regulator-max-microvolt: true
149           regulator-over-current-protection: true
150
151         additionalProperties: false
152
153       vref_ddr:
154         $ref: /schemas/regulator/regulator.yaml
155         type: object
156
157         properties:
158           interrupts:
159             maxItems: 1
160
161           st,mask-reset:
162             description: mask reset for this regulator, the regulator configuration
163               is maintained during pmic reset.
164             $ref: /schemas/types.yaml#/definitions/flag
165
166           regulator-name: true
167           regulator-boot-on: true
168           regulator-always-on: true
169
170         additionalProperties: false
171
172       boost:
173         $ref: /schemas/regulator/regulator.yaml
174         type: object
175
176         properties:
177           interrupts:
178             maxItems: 1
179
180           st,mask-reset:
181             description: mask reset for this regulator, the regulator configuration
182               is maintained during pmic reset.
183             $ref: /schemas/types.yaml#/definitions/flag
184
185           regulator-name: true
186           regulator-boot-on: true
187           regulator-always-on: true
188           regulator-over-current-protection: true
189
190         additionalProperties: false
191
192     patternProperties:
193       "^(buck[1-4]|ldo[1-6]|vref_ddr|boost|pwr_sw[1-2])-supply$":
194         description: STPMIC1 voltage regulators supplies
195
196       "^ldo[1-2,5-6]$":
197         $ref: /schemas/regulator/regulator.yaml
198         type: object
199
200         properties:
201           interrupts:
202             maxItems: 1
203
204           st,mask-reset:
205             description: mask reset for this regulator, the regulator configuration
206               is maintained during pmic reset.
207             $ref: /schemas/types.yaml#/definitions/flag
208
209           regulator-name: true
210           regulator-boot-on: true
211           regulator-always-on: true
212           regulator-min-microvolt: true
213           regulator-max-microvolt: true
214           regulator-over-current-protection: true
215           regulator-enable-ramp-delay: true
216
217         additionalProperties: false
218
219       "^buck[1-4]$":
220         $ref: /schemas/regulator/regulator.yaml
221         type: object
222
223         properties:
224           interrupts:
225             maxItems: 1
226
227           st,mask-reset:
228             description: mask reset for this regulator, the regulator configuration
229               is maintained during pmic reset.
230             $ref: /schemas/types.yaml#/definitions/flag
231
232           regulator-name: true
233           regulator-boot-on: true
234           regulator-always-on: true
235           regulator-min-microvolt: true
236           regulator-max-microvolt: true
237           regulator-initial-mode: true
238           regulator-pull-down: true
239           regulator-over-current-protection: true
240           regulator-enable-ramp-delay: true
241
242         additionalProperties: false
243
244       "^pwr_sw[1-2]$":
245         $ref: /schemas/regulator/regulator.yaml
246         type: object
247
248         properties:
249           interrupts:
250             maxItems: 1
251
252           regulator-name: true
253           regulator-boot-on: true
254           regulator-always-on: true
255           regulator-over-current-protection: true
256           regulator-active-discharge: true
257
258         additionalProperties: false
259
260     required:
261       - compatible
262
263     additionalProperties: false
264
265 additionalProperties: false
266
267 required:
268   - compatible
269   - reg
270   - interrupts
271   - "#interrupt-cells"
272   - interrupt-controller
273
274 examples:
275   - |
276     #include <dt-bindings/mfd/st,stpmic1.h>
277     #include <dt-bindings/interrupt-controller/arm-gic.h>
278     i2c {
279       #address-cells = <1>;
280       #size-cells = <0>;
281       pmic@33 {
282         compatible = "st,stpmic1";
283         reg = <0x33>;
284         interrupt-parent = <&gpioa>;
285         interrupts = <0 2>;
286
287         interrupt-controller;
288         #interrupt-cells = <2>;
289
290         onkey {
291           compatible = "st,stpmic1-onkey";
292           interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
293           interrupt-names = "onkey-falling", "onkey-rising";
294           power-off-time-sec = <10>;
295         };
296
297         watchdog {
298           compatible = "st,stpmic1-wdt";
299         };
300
301         regulators {
302           compatible = "st,stpmic1-regulators";
303
304           ldo6-supply = <&v3v3>;
305
306           buck1 {
307             regulator-name = "vdd_core";
308             interrupts = <IT_CURLIM_BUCK1 0>;
309             st,mask-reset;
310             regulator-boot-on;
311             regulator-min-microvolt = <700000>;
312             regulator-max-microvolt = <1200000>;
313           };
314
315           buck3 {
316             regulator-name = "vdd";
317             regulator-min-microvolt = <3300000>;
318             regulator-max-microvolt = <3300000>;
319             regulator-boot-on;
320             regulator-pull-down;
321           };
322
323           buck4 {
324             regulator-name = "v3v3";
325             interrupts = <IT_CURLIM_BUCK4 0>;
326             regulator-min-microvolt = <3300000>;
327             regulator-max-microvolt = <3300000>;
328           };
329
330           ldo6 {
331             regulator-name = "v1v8";
332             regulator-min-microvolt = <1800000>;
333             regulator-max-microvolt = <1800000>;
334             regulator-over-current-protection;
335           };
336         };
337       };
338     };
339
340 ...