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