xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/regulator/regulator-max77620.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRegulator DT binding for MAX77620 Power management IC from Maxim Semiconductor.
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunDevice has multiple DCDC(sd[0-3] and LDOs(ldo[0-8]). The input supply
4*4882a593Smuzhiyunof these regulators are defined under parent device node.
5*4882a593SmuzhiyunDetails of regulator properties are defined as child node under
6*4882a593Smuzhiyunsub-node "regulators" which is child node of device node.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunPlease refer file <Documentation/devicetree/bindings/regulator/regulator.txt>
9*4882a593Smuzhiyunfor common regulator bindings used by client.
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunFollowing are properties of parent node related to regulators.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunOptional properties:
14*4882a593Smuzhiyun-------------------
15*4882a593SmuzhiyunThe input supply of regulators are the optional properties on the
16*4882a593Smuzhiyunparent device node. The input supply of these regulators are provided
17*4882a593Smuzhiyunthrough following properties:
18*4882a593Smuzhiyunin-sd0-supply:		Input supply for SD0, INA-SD0 or INB-SD0 pins.
19*4882a593Smuzhiyunin-sd1-supply:		Input supply for SD1.
20*4882a593Smuzhiyunin-sd2-supply:		Input supply for SD2.
21*4882a593Smuzhiyunin-sd3-supply:		Input supply for SD3.
22*4882a593Smuzhiyunin-ldo0-1-supply:	Input supply for LDO0 and LDO1.
23*4882a593Smuzhiyunin-ldo2-supply:		Input supply for LDO2.
24*4882a593Smuzhiyunin-ldo3-5-supply:	Input supply for LDO3 and LDO5
25*4882a593Smuzhiyunin-ldo4-6-supply:	Input supply for LDO4 and LDO6.
26*4882a593Smuzhiyunin-ldo7-8-supply:	Input supply for LDO7 and LDO8.
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunOptional sub nodes for regulators under "regulators" subnode:
29*4882a593Smuzhiyun------------------------------------------------------------
30*4882a593SmuzhiyunThe subnodes name is the name of regulator and it must be one of:
31*4882a593Smuzhiyun	sd[0-3], ldo[0-8]
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunEach sub-node should contain the constraints and initialization
34*4882a593Smuzhiyuninformation for that regulator. The definition for each of these
35*4882a593Smuzhiyunnodes is defined using the standard binding for regulators found at
36*4882a593Smuzhiyun<Documentation/devicetree/bindings/regulator/regulator.txt>.
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunTheres are also additional properties for SD/LDOs. These additional properties
39*4882a593Smuzhiyunare required to configure FPS configuration parameters for SDs and LDOs.
40*4882a593SmuzhiyunPlease refer <devicetree/bindings/mfd/max77620.txt> for more detail of Flexible
41*4882a593SmuzhiyunPower Sequence (FPS).
42*4882a593SmuzhiyunFollowing are additional properties:
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun- maxim,active-fps-source:		FPS source for the regulators to get
45*4882a593Smuzhiyun					enabled/disabled when system is in
46*4882a593Smuzhiyun					active state.  Valid values are:
47*4882a593Smuzhiyun					- MAX77620_FPS_SRC_0,
48*4882a593Smuzhiyun						FPS source is FPS0.
49*4882a593Smuzhiyun					- MAX77620_FPS_SRC_1,
50*4882a593Smuzhiyun						FPS source is FPS1
51*4882a593Smuzhiyun					- MAX77620_FPS_SRC_2 and
52*4882a593Smuzhiyun						FPS source is FPS2
53*4882a593Smuzhiyun					- MAX77620_FPS_SRC_NONE.
54*4882a593Smuzhiyun						Regulator is not controlled
55*4882a593Smuzhiyun						by FPS events and it gets
56*4882a593Smuzhiyun						enabled/disabled by register
57*4882a593Smuzhiyun						access.
58*4882a593Smuzhiyun					Absence of this property will leave
59*4882a593Smuzhiyun					the FPS configuration register for that
60*4882a593Smuzhiyun					regulator to default configuration.
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun- maxim,active-fps-power-up-slot:	Sequencing event slot number on which
63*4882a593Smuzhiyun					the regulator get enabled when
64*4882a593Smuzhiyun					master FPS input event set to HIGH.
65*4882a593Smuzhiyun					Valid values are 0 to 7.
66*4882a593Smuzhiyun					This is applicable if FPS source is
67*4882a593Smuzhiyun					selected as FPS0, FPS1 or FPS2.
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun- maxim,active-fps-power-down-slot:	Sequencing event slot number on which
70*4882a593Smuzhiyun					the regulator get disabled when master
71*4882a593Smuzhiyun					FPS input event set to LOW.
72*4882a593Smuzhiyun					Valid values are 0 to 7.
73*4882a593Smuzhiyun					This is applicable if FPS source is
74*4882a593Smuzhiyun					selected as FPS0, FPS1 or FPS2.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun- maxim,suspend-fps-source:		This is same as property
77*4882a593Smuzhiyun					"maxim,active-fps-source" but value
78*4882a593Smuzhiyun					get configured when system enters in
79*4882a593Smuzhiyun					to suspend state.
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun- maxim,suspend-fps-power-up-slot:	This is same as property
82*4882a593Smuzhiyun					"maxim,active-fps-power-up-slot" but
83*4882a593Smuzhiyun					this value get configured into FPS
84*4882a593Smuzhiyun					configuration register when system
85*4882a593Smuzhiyun					enters into suspend.
86*4882a593Smuzhiyun					This is applicable if suspend state
87*4882a593Smuzhiyun					FPS source is selected as FPS0, FPS1 or
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun- maxim,suspend-fps-power-down-slot:	This is same as property
90*4882a593Smuzhiyun					"maxim,active-fps-power-down-slot" but
91*4882a593Smuzhiyun					this value get configured into FPS
92*4882a593Smuzhiyun					configuration register when system
93*4882a593Smuzhiyun					enters into suspend.
94*4882a593Smuzhiyun					This is applicable if suspend state
95*4882a593Smuzhiyun					FPS source is selected as FPS0, FPS1 or
96*4882a593Smuzhiyun					FPS2.
97*4882a593Smuzhiyun- maxim,ramp-rate-setting:		integer, ramp rate(uV/us) setting to be
98*4882a593Smuzhiyun					configured to the device.
99*4882a593Smuzhiyun					The platform may have different ramp
100*4882a593Smuzhiyun					rate than advertised ramp rate if it has
101*4882a593Smuzhiyun					design variation from Maxim's
102*4882a593Smuzhiyun					recommended. On this case, platform
103*4882a593Smuzhiyun					specific ramp rate is used for ramp time
104*4882a593Smuzhiyun					calculation and this property is used
105*4882a593Smuzhiyun					for device register configurations.
106*4882a593Smuzhiyun					The measured ramp rate of platform is
107*4882a593Smuzhiyun					provided by the regulator-ramp-delay
108*4882a593Smuzhiyun					as described in <devicetree/bindings/
109*4882a593Smuzhiyun					regulator/regulator.txt>.
110*4882a593Smuzhiyun					Maxim Max77620 supports following ramp
111*4882a593Smuzhiyun					delay:
112*4882a593Smuzhiyun					  SD: 13.75mV/us, 27.5mV/us, 55mV/us
113*4882a593Smuzhiyun					  LDOs: 5mV/us, 100mV/us
114*4882a593Smuzhiyun
115*4882a593SmuzhiyunNote: If the measured ramp delay is same as advertised ramp delay then it is not
116*4882a593Smuzhiyunrequired to provide the ramp delay with property "maxim,ramp-rate-setting". The
117*4882a593Smuzhiyunramp rate can be provided by the regulator-ramp-delay which will be used for
118*4882a593Smuzhiyunramp time calculation for voltage change as well as for device configuration.
119*4882a593Smuzhiyun
120*4882a593SmuzhiyunExample:
121*4882a593Smuzhiyun--------
122*4882a593Smuzhiyun#include <dt-bindings/mfd/max77620.h>
123*4882a593Smuzhiyun...
124*4882a593Smuzhiyunmax77620@3c {
125*4882a593Smuzhiyun	in-ldo0-1-supply = <&max77620_sd2>;
126*4882a593Smuzhiyun	in-ldo7-8-supply = <&max77620_sd2>;
127*4882a593Smuzhiyun	regulators {
128*4882a593Smuzhiyun		sd0 {
129*4882a593Smuzhiyun			regulator-name = "vdd-core";
130*4882a593Smuzhiyun			regulator-min-microvolt = <600000>;
131*4882a593Smuzhiyun			regulator-max-microvolt = <1400000>;
132*4882a593Smuzhiyun			regulator-boot-on;
133*4882a593Smuzhiyun			regulator-always-on;
134*4882a593Smuzhiyun			maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun		sd1 {
138*4882a593Smuzhiyun			regulator-name = "vddio-ddr";
139*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
140*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
141*4882a593Smuzhiyun			regulator-always-on;
142*4882a593Smuzhiyun			regulator-boot-on;
143*4882a593Smuzhiyun			maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun		sd2 {
147*4882a593Smuzhiyun			regulator-name = "vdd-pre-reg";
148*4882a593Smuzhiyun			regulator-min-microvolt = <1350000>;
149*4882a593Smuzhiyun			regulator-max-microvolt = <1350000>;
150*4882a593Smuzhiyun		};
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun		sd3 {
153*4882a593Smuzhiyun			regulator-name = "vdd-1v8";
154*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
155*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
156*4882a593Smuzhiyun			regulator-always-on;
157*4882a593Smuzhiyun			regulator-boot-on;
158*4882a593Smuzhiyun		};
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun		ldo0 {
161*4882a593Smuzhiyun			regulator-name = "avdd-sys";
162*4882a593Smuzhiyun			regulator-min-microvolt = <1200000>;
163*4882a593Smuzhiyun			regulator-max-microvolt = <1200000>;
164*4882a593Smuzhiyun			regulator-always-on;
165*4882a593Smuzhiyun			regulator-boot-on;
166*4882a593Smuzhiyun		};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun		ldo1 {
169*4882a593Smuzhiyun			regulator-name = "vdd-pex";
170*4882a593Smuzhiyun			regulator-min-microvolt = <1050000>;
171*4882a593Smuzhiyun			regulator-max-microvolt = <1050000>;
172*4882a593Smuzhiyun		};
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun		ldo2 {
175*4882a593Smuzhiyun			regulator-name = "vddio-sdmmc3";
176*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
177*4882a593Smuzhiyun			regulator-max-microvolt = <3300000>;
178*4882a593Smuzhiyun		};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun		ldo3 {
181*4882a593Smuzhiyun			regulator-name = "vdd-cam-hv";
182*4882a593Smuzhiyun			regulator-min-microvolt = <2800000>;
183*4882a593Smuzhiyun			regulator-max-microvolt = <2800000>;
184*4882a593Smuzhiyun		};
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun		ldo4 {
187*4882a593Smuzhiyun			regulator-name = "vdd-rtc";
188*4882a593Smuzhiyun			regulator-min-microvolt = <1250000>;
189*4882a593Smuzhiyun			regulator-max-microvolt = <1250000>;
190*4882a593Smuzhiyun			regulator-always-on;
191*4882a593Smuzhiyun			regulator-boot-on;
192*4882a593Smuzhiyun		};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun		ldo5 {
195*4882a593Smuzhiyun			regulator-name = "avdd-ts-hv";
196*4882a593Smuzhiyun			regulator-min-microvolt = <3000000>;
197*4882a593Smuzhiyun			regulator-max-microvolt = <3000000>;
198*4882a593Smuzhiyun		};
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun		ldo6 {
201*4882a593Smuzhiyun			regulator-name = "vdd-ts";
202*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
203*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
204*4882a593Smuzhiyun			regulator-always-on;
205*4882a593Smuzhiyun			regulator-boot-on;
206*4882a593Smuzhiyun		};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun		ldo7 {
209*4882a593Smuzhiyun			regulator-name = "vdd-gen-pll-edp";
210*4882a593Smuzhiyun			regulator-min-microvolt = <1050000>;
211*4882a593Smuzhiyun			regulator-max-microvolt = <1050000>;
212*4882a593Smuzhiyun			regulator-always-on;
213*4882a593Smuzhiyun			regulator-boot-on;
214*4882a593Smuzhiyun		};
215*4882a593Smuzhiyun
216*4882a593Smuzhiyun		ldo8 {
217*4882a593Smuzhiyun			regulator-name = "vdd-hdmi-dp";
218*4882a593Smuzhiyun			regulator-min-microvolt = <1050000>;
219*4882a593Smuzhiyun			regulator-max-microvolt = <1050000>;
220*4882a593Smuzhiyun		};
221*4882a593Smuzhiyun	};
222*4882a593Smuzhiyun};
223