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
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...
341