xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/regulator/pfuze100.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/regulator/pfuze100.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: PFUZE100 family of regulators
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Robin Gong <yibin.gong@nxp.com>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundescription: |
13*4882a593Smuzhiyun  The valid names for regulators are:
14*4882a593Smuzhiyun  --PFUZE100
15*4882a593Smuzhiyun  sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
16*4882a593Smuzhiyun  --PFUZE200
17*4882a593Smuzhiyun  sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6,coin
18*4882a593Smuzhiyun  --PFUZE3000
19*4882a593Smuzhiyun  sw1a,sw1b,sw2,sw3,swbst,vsnvs,vrefddr,vldo1,vldo2,vccsd,v33,vldo3,vldo4
20*4882a593Smuzhiyun  --PFUZE3001
21*4882a593Smuzhiyun  sw1,sw2,sw3,vsnvs,vldo1,vldo2,vccsd,v33,vldo3,vldo4
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun  Each regulator is defined using the standard binding for regulators.
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunproperties:
26*4882a593Smuzhiyun  $nodename:
27*4882a593Smuzhiyun    pattern: "^pmic@[0-9]$"
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun  compatible:
30*4882a593Smuzhiyun    enum:
31*4882a593Smuzhiyun      - fsl,pfuze100
32*4882a593Smuzhiyun      - fsl,pfuze200
33*4882a593Smuzhiyun      - fsl,pfuze3000
34*4882a593Smuzhiyun      - fsl,pfuze3001
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun  reg:
37*4882a593Smuzhiyun    maxItems: 1
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun  fsl,pfuze-support-disable-sw:
40*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/flag
41*4882a593Smuzhiyun    description: |
42*4882a593Smuzhiyun      Boolean, if present disable all unused switch regulators to save power
43*4882a593Smuzhiyun      consumption. Attention, ensure that all important regulators
44*4882a593Smuzhiyun      (e.g. DDR ref, DDR supply) has set the "regulator-always-on" property.
45*4882a593Smuzhiyun      If not present, the switched regulators are always on and can't be
46*4882a593Smuzhiyun      disabled. This binding is a workaround to keep backward compatibility
47*4882a593Smuzhiyun      with old dtb's which rely on the fact that the switched regulators are
48*4882a593Smuzhiyun      always on and don't mark them explicit as "regulator-always-on".
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun  fsl,pmic-stby-poweroff:
51*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/flag
52*4882a593Smuzhiyun    description: |
53*4882a593Smuzhiyun      if present, configure the PMIC to shutdown all
54*4882a593Smuzhiyun      power rails when PMIC_STBY_REQ line is asserted during the power off sequence.
55*4882a593Smuzhiyun      Use this option if the SoC should be powered off by external power management
56*4882a593Smuzhiyun      IC (PMIC) on PMIC_STBY_REQ signal.
57*4882a593Smuzhiyun      As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun  regulators:
60*4882a593Smuzhiyun    type: object
61*4882a593Smuzhiyun    description: |
62*4882a593Smuzhiyun      list of regulators provided by this controller.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun    patternProperties:
65*4882a593Smuzhiyun      "^sw([1-4]|[1-4][a-c]|[1-4][a-c][a-c])$":
66*4882a593Smuzhiyun        $ref: "regulator.yaml#"
67*4882a593Smuzhiyun        type: object
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun      "^vgen[1-6]$":
70*4882a593Smuzhiyun        $ref: "regulator.yaml#"
71*4882a593Smuzhiyun        type: object
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun      "^(vsnvs|vref|vrefddr|swbst|coin)$":
74*4882a593Smuzhiyun        $ref: "regulator.yaml#"
75*4882a593Smuzhiyun        type: object
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun    additionalProperties: false
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunrequired:
80*4882a593Smuzhiyun  - compatible
81*4882a593Smuzhiyun  - reg
82*4882a593Smuzhiyun
83*4882a593SmuzhiyunadditionalProperties: false
84*4882a593Smuzhiyun
85*4882a593Smuzhiyunexamples:
86*4882a593Smuzhiyun  - |
87*4882a593Smuzhiyun    i2c {
88*4882a593Smuzhiyun        #address-cells = <1>;
89*4882a593Smuzhiyun        #size-cells = <0>;
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun        pmic@8 {
92*4882a593Smuzhiyun            compatible = "fsl,pfuze100";
93*4882a593Smuzhiyun            reg = <0x08>;
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun            regulators {
96*4882a593Smuzhiyun                sw1a_reg: sw1ab {
97*4882a593Smuzhiyun                    regulator-min-microvolt = <300000>;
98*4882a593Smuzhiyun                    regulator-max-microvolt = <1875000>;
99*4882a593Smuzhiyun                    regulator-boot-on;
100*4882a593Smuzhiyun                    regulator-always-on;
101*4882a593Smuzhiyun                    regulator-ramp-delay = <6250>;
102*4882a593Smuzhiyun                };
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun                sw1c_reg: sw1c {
105*4882a593Smuzhiyun                    regulator-min-microvolt = <300000>;
106*4882a593Smuzhiyun                    regulator-max-microvolt = <1875000>;
107*4882a593Smuzhiyun                    regulator-boot-on;
108*4882a593Smuzhiyun                    regulator-always-on;
109*4882a593Smuzhiyun                };
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun                sw2_reg: sw2 {
112*4882a593Smuzhiyun                    regulator-min-microvolt = <800000>;
113*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
114*4882a593Smuzhiyun                    regulator-boot-on;
115*4882a593Smuzhiyun                    regulator-always-on;
116*4882a593Smuzhiyun                };
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun                sw3a_reg: sw3a {
119*4882a593Smuzhiyun                    regulator-min-microvolt = <400000>;
120*4882a593Smuzhiyun                    regulator-max-microvolt = <1975000>;
121*4882a593Smuzhiyun                    regulator-boot-on;
122*4882a593Smuzhiyun                    regulator-always-on;
123*4882a593Smuzhiyun                };
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun                sw3b_reg: sw3b {
126*4882a593Smuzhiyun                    regulator-min-microvolt = <400000>;
127*4882a593Smuzhiyun                    regulator-max-microvolt = <1975000>;
128*4882a593Smuzhiyun                    regulator-boot-on;
129*4882a593Smuzhiyun                    regulator-always-on;
130*4882a593Smuzhiyun                };
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun                sw4_reg: sw4 {
133*4882a593Smuzhiyun                    regulator-min-microvolt = <800000>;
134*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
135*4882a593Smuzhiyun                };
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun                swbst_reg: swbst {
138*4882a593Smuzhiyun                    regulator-min-microvolt = <5000000>;
139*4882a593Smuzhiyun                    regulator-max-microvolt = <5150000>;
140*4882a593Smuzhiyun                };
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun                snvs_reg: vsnvs {
143*4882a593Smuzhiyun                    regulator-min-microvolt = <1000000>;
144*4882a593Smuzhiyun                    regulator-max-microvolt = <3000000>;
145*4882a593Smuzhiyun                    regulator-boot-on;
146*4882a593Smuzhiyun                    regulator-always-on;
147*4882a593Smuzhiyun                };
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun                vref_reg: vrefddr {
150*4882a593Smuzhiyun                    regulator-boot-on;
151*4882a593Smuzhiyun                    regulator-always-on;
152*4882a593Smuzhiyun                };
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun                vgen1_reg: vgen1 {
155*4882a593Smuzhiyun                    regulator-min-microvolt = <800000>;
156*4882a593Smuzhiyun                    regulator-max-microvolt = <1550000>;
157*4882a593Smuzhiyun                };
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun                vgen2_reg: vgen2 {
160*4882a593Smuzhiyun                    regulator-min-microvolt = <800000>;
161*4882a593Smuzhiyun                    regulator-max-microvolt = <1550000>;
162*4882a593Smuzhiyun                };
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun                vgen3_reg: vgen3 {
165*4882a593Smuzhiyun                    regulator-min-microvolt = <1800000>;
166*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
167*4882a593Smuzhiyun                };
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun                vgen4_reg: vgen4 {
170*4882a593Smuzhiyun                    regulator-min-microvolt = <1800000>;
171*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
172*4882a593Smuzhiyun                    regulator-always-on;
173*4882a593Smuzhiyun                };
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun                vgen5_reg: vgen5 {
176*4882a593Smuzhiyun                    regulator-min-microvolt = <1800000>;
177*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
178*4882a593Smuzhiyun                    regulator-always-on;
179*4882a593Smuzhiyun                };
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun                vgen6_reg: vgen6 {
182*4882a593Smuzhiyun                    regulator-min-microvolt = <1800000>;
183*4882a593Smuzhiyun                    regulator-max-microvolt = <3300000>;
184*4882a593Smuzhiyun                    regulator-always-on;
185*4882a593Smuzhiyun                };
186*4882a593Smuzhiyun            };
187*4882a593Smuzhiyun        };
188*4882a593Smuzhiyun    };
189