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