xref: /openbmc/linux/Documentation/devicetree/bindings/mfd/st,stpmic1.yaml (revision a01822e94ee53e8ebc9632fe2764048b81921254)
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
262additionalProperties: false
263
264required:
265  - compatible
266  - reg
267  - interrupts
268  - "#interrupt-cells"
269  - interrupt-controller
270
271examples:
272  - |
273    #include <dt-bindings/mfd/st,stpmic1.h>
274    #include <dt-bindings/interrupt-controller/arm-gic.h>
275    i2c {
276      #address-cells = <1>;
277      #size-cells = <0>;
278      pmic@33 {
279        compatible = "st,stpmic1";
280        reg = <0x33>;
281        interrupt-parent = <&gpioa>;
282        interrupts = <0 2>;
283
284        interrupt-controller;
285        #interrupt-cells = <2>;
286
287        onkey {
288          compatible = "st,stpmic1-onkey";
289          interrupts = <IT_PONKEY_F 0>,<IT_PONKEY_R 1>;
290          interrupt-names = "onkey-falling", "onkey-rising";
291          power-off-time-sec = <10>;
292        };
293
294        watchdog {
295          compatible = "st,stpmic1-wdt";
296        };
297
298        regulators {
299          compatible = "st,stpmic1-regulators";
300
301          ldo6-supply = <&v3v3>;
302
303          buck1 {
304            regulator-name = "vdd_core";
305            interrupts = <IT_CURLIM_BUCK1 0>;
306            st,mask-reset;
307            regulator-boot-on;
308            regulator-min-microvolt = <700000>;
309            regulator-max-microvolt = <1200000>;
310          };
311
312          buck3 {
313            regulator-name = "vdd";
314            regulator-min-microvolt = <3300000>;
315            regulator-max-microvolt = <3300000>;
316            regulator-boot-on;
317            regulator-pull-down;
318          };
319
320          buck4 {
321            regulator-name = "v3v3";
322            interrupts = <IT_CURLIM_BUCK4 0>;
323            regulator-min-microvolt = <3300000>;
324            regulator-max-microvolt = <3300000>;
325          };
326
327          ldo6 {
328            regulator-name = "v1v8";
329            regulator-min-microvolt = <1800000>;
330            regulator-max-microvolt = <1800000>;
331            regulator-over-current-protection;
332          };
333        };
334      };
335    };
336
337...
338