blob: b17ebeb0a42f16000d1bec520f0f873abdcb1921 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: STMicroelectonics STPMIC1 Power Management IC
8
9description: STMicroelectronics STPMIC1 Power Management IC
10
11maintainers:
12 - pascal Paillet <p.paillet@foss.st.com>
13
14properties:
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
265additionalProperties: false
266
267required:
268 - compatible
269 - reg
270 - interrupts
271 - "#interrupt-cells"
272 - interrupt-controller
273
274examples:
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...