xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/regulator/lp872x.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunBinding for TI/National Semiconductor LP872x Driver
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun  - compatible: "ti,lp8720" or "ti,lp8725"
5*4882a593Smuzhiyun  - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunOptional properties:
8*4882a593Smuzhiyun  - ti,general-config: the value of LP872X_GENERAL_CFG register (u8)
9*4882a593Smuzhiyun    (LP8720)
10*4882a593Smuzhiyun    bit[2]: BUCK output voltage control by external DVS pin or register
11*4882a593Smuzhiyun            1 = external pin, 0 = bit7 of register 08h
12*4882a593Smuzhiyun    bit[1]: sleep control by external DVS pin or register
13*4882a593Smuzhiyun            1 = external pin, 0 = bit6 of register 08h
14*4882a593Smuzhiyun    bit[0]: time step unit(usec). 1 = 25, 0 = 50
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun    (LP8725)
17*4882a593Smuzhiyun    bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256
18*4882a593Smuzhiyun    bit[4]:   BUCK2 enable control. 1 = enable, 0 = disable
19*4882a593Smuzhiyun    bit[3]:   BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh
20*4882a593Smuzhiyun    bit[2]:   BUCK1 output voltage control by external DVS pin or register
21*4882a593Smuzhiyun              1 = register 08h, 0 = DVS
22*4882a593Smuzhiyun    bit[1]:   LDO sleep control. 1 = sleep mode, 0 = normal
23*4882a593Smuzhiyun    bit[0]:   BUCK1 enable control, 1 = enable, 0 = disable
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun    For more details, please see the datasheet.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun  - ti,update-config: define it when LP872X_GENERAL_CFG register should be set
28*4882a593Smuzhiyun  - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices.
29*4882a593Smuzhiyun  - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2.
30*4882a593Smuzhiyun  - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH.
31*4882a593Smuzhiyun  - enable-gpios: GPIO specifier for EN pin control of LP872x devices.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun  Sub nodes for regulator_init_data
34*4882a593Smuzhiyun    LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck)
35*4882a593Smuzhiyun    LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2)
36*4882a593Smuzhiyun    For more details, please see the following binding document.
37*4882a593Smuzhiyun    (Documentation/devicetree/bindings/regulator/regulator.txt)
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunDatasheet
40*4882a593Smuzhiyun  - LP8720: https://www.ti.com/lit/ds/symlink/lp8720.pdf
41*4882a593Smuzhiyun  - LP8725: https://www.ti.com/lit/ds/symlink/lp8725.pdf
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunExample 1) LP8720
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunlp8720@7d {
46*4882a593Smuzhiyun	compatible = "ti,lp8720";
47*4882a593Smuzhiyun	reg = <0x7d>;
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	/* external DVS pin used, timestep is 25usec */
50*4882a593Smuzhiyun	ti,general-config = /bits/ 8 <0x03>;
51*4882a593Smuzhiyun	ti,update-config;
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	/*
54*4882a593Smuzhiyun	 * The dvs-gpio depends on the processor environment.
55*4882a593Smuzhiyun	 * For example, following GPIO specifier means GPIO134 in OMAP4.
56*4882a593Smuzhiyun	 */
57*4882a593Smuzhiyun	ti,dvs-gpio = <&gpio5 6 0>;
58*4882a593Smuzhiyun	ti,dvs-vsel = /bits/ 8 <1>;		/* SEL_V2 */
59*4882a593Smuzhiyun	ti,dvs-state = /bits/ 8 <1>;		/* DVS_HIGH */
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	vaf: ldo1 {
62*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
63*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
64*4882a593Smuzhiyun	};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun	vmmc: ldo2 {
67*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
68*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
69*4882a593Smuzhiyun	};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	vcam_io: ldo3 {
72*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
73*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
74*4882a593Smuzhiyun		regulator-boot-on;
75*4882a593Smuzhiyun	};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun	vcam_core: ldo4 {
78*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
79*4882a593Smuzhiyun		regulator-max-microvolt = <2850000>;
80*4882a593Smuzhiyun		regulator-boot-on;
81*4882a593Smuzhiyun	};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	vcam: ldo5 {
84*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
85*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
86*4882a593Smuzhiyun	};
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	vcc: buck {
89*4882a593Smuzhiyun		regulator-name = "VBUCK";
90*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
91*4882a593Smuzhiyun		regulator-max-microvolt = <2300000>;
92*4882a593Smuzhiyun	};
93*4882a593Smuzhiyun};
94*4882a593Smuzhiyun
95*4882a593SmuzhiyunExample 2) LP8725
96*4882a593Smuzhiyun
97*4882a593Smuzhiyunlp8725@7a {
98*4882a593Smuzhiyun	compatible = "ti,lp8725";
99*4882a593Smuzhiyun	reg = <0x7a>;
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun	/* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */
102*4882a593Smuzhiyun	ti,general-config = /bits/ 8 <0xdd>;
103*4882a593Smuzhiyun	ti,update-config;
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun	vcam_io: ldo1 {
106*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
107*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
108*4882a593Smuzhiyun	};
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun	vcam_core: ldo2 {
111*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
112*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
113*4882a593Smuzhiyun	};
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun	vcam: ldo3 {
116*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
117*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
118*4882a593Smuzhiyun	};
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun	vcmmb_io: ldo4 {
121*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
122*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
123*4882a593Smuzhiyun		regulator-boot-on;
124*4882a593Smuzhiyun	};
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun	vcmmb_core: ldo5 {
127*4882a593Smuzhiyun		regulator-min-microvolt = <1200000>;
128*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
129*4882a593Smuzhiyun		regulator-boot-on;
130*4882a593Smuzhiyun	};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun	vaux1: lilo1 {
133*4882a593Smuzhiyun		regulator-name = "VAUX1";
134*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
135*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
136*4882a593Smuzhiyun	};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun	vaux2: lilo2 {
139*4882a593Smuzhiyun		regulator-name = "VAUX2";
140*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
141*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
142*4882a593Smuzhiyun	};
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun	vcc1: buck1 {
145*4882a593Smuzhiyun		regulator-name = "VBUCK1";
146*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
147*4882a593Smuzhiyun		regulator-max-microvolt = <3000000>;
148*4882a593Smuzhiyun		regulator-min-microamp  = <460000>;
149*4882a593Smuzhiyun		regulator-max-microamp  = <1370000>;
150*4882a593Smuzhiyun		regulator-boot-on;
151*4882a593Smuzhiyun	};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun	vcc2: buck2 {
154*4882a593Smuzhiyun		regulator-name = "VBUCK2";
155*4882a593Smuzhiyun		regulator-min-microvolt = <800000>;
156*4882a593Smuzhiyun		regulator-max-microvolt = <3000000>;
157*4882a593Smuzhiyun		regulator-min-microamp  = <460000>;
158*4882a593Smuzhiyun		regulator-max-microamp  = <1370000>;
159*4882a593Smuzhiyun		regulator-boot-on;
160*4882a593Smuzhiyun	};
161*4882a593Smuzhiyun};
162