summaryrefslogtreecommitdiffstats
path: root/kernel/Documentation/devicetree/bindings/regulator/lp872x.txt
blob: 78183182dad9e04cd9d33d7d20309e8f1a35371b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Binding for TI/National Semiconductor LP872x Driver

Required properties:
  - compatible: "ti,lp8720" or "ti,lp8725"
  - reg: I2C slave address. 0x7d = LP8720, 0x7a = LP8725

Optional properties:
  - ti,general-config: the value of LP872X_GENERAL_CFG register (u8)
    (LP8720)
    bit[2]: BUCK output voltage control by external DVS pin or register
            1 = external pin, 0 = bit7 of register 08h
    bit[1]: sleep control by external DVS pin or register
            1 = external pin, 0 = bit6 of register 08h
    bit[0]: time step unit(usec). 1 = 25, 0 = 50

    (LP8725)
    bit[7:6]: time step unit(usec). 00 = 32, 01 = 64, 10 = 128, 11 = 256
    bit[4]:   BUCK2 enable control. 1 = enable, 0 = disable
    bit[3]:   BUCK2 output voltage register address. 1 = 0Ah, 0 = 0Bh
    bit[2]:   BUCK1 output voltage control by external DVS pin or register
              1 = register 08h, 0 = DVS
    bit[1]:   LDO sleep control. 1 = sleep mode, 0 = normal
    bit[0]:   BUCK1 enable control, 1 = enable, 0 = disable

    For more details, please see the datasheet.

  - ti,update-config: define it when LP872X_GENERAL_CFG register should be set
  - ti,dvs-gpio: GPIO specifier for external DVS pin control of LP872x devices.
  - ti,dvs-vsel: DVS selector. 0 = SEL_V1, 1 = SEL_V2.
  - ti,dvs-state: initial DVS pin state. 0 = DVS_LOW, 1 = DVS_HIGH.

  Sub nodes for regulator_init_data
    LP8720 has maximum 6 nodes. (child name: ldo1 ~ 5 and buck)
    LP8725 has maximum 9 nodes. (child name: ldo1 ~ 5, lilo1,2 and buck1,2)
    For more details, please see the following binding document.
    (Documentation/devicetree/bindings/regulator/regulator.txt)

Datasheet
  - LP8720: http://www.ti.com/lit/ds/symlink/lp8720.pdf
  - LP8725: http://www.ti.com/lit/ds/symlink/lp8725.pdf

Example 1) LP8720

lp8720@7d {
	compatible = "ti,lp8720";
	reg = <0x7d>;

	/* external DVS pin used, timestep is 25usec */
	ti,general-config = /bits/ 8 <0x03>;
	ti,update-config;

	/*
	 * The dvs-gpio depends on the processor environment.
	 * For example, following GPIO specifier means GPIO134 in OMAP4.
	 */
	ti,dvs-gpio = <&gpio5 6 0>;
	ti,dvs-vsel = /bits/ 8 <1>;		/* SEL_V2 */
	ti,dvs-state = /bits/ 8 <1>;		/* DVS_HIGH */

	vaf: ldo1 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vmmc: ldo2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vcam_io: ldo3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
	};

	vcam_core: ldo4 {
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <2850000>;
		regulator-boot-on;
	};

	vcam: ldo5 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc: buck {
		regulator-name = "VBUCK";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <2300000>;
	};
};

Example 2) LP8725

lp8725@7a {
	compatible = "ti,lp8725";
	reg = <0x7a>;

	/* Enable BUCK1,2, no DVS, normal LDO mode, timestep is 256usec */
	ti,general-config = /bits/ 8 <0xdd>;
	ti,update-config;

	vcam_io: ldo1 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vcam_core: ldo2 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vcam: ldo3 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
	};

	vcmmb_io: ldo4 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
	};

	vcmmb_core: ldo5 {
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
	};

	vaux1: lilo1 {
		regulator-name = "VAUX1";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <3300000>;
	};

	vaux2: lilo2 {
		regulator-name = "VAUX2";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc1: buck1 {
		regulator-name = "VBUCK1";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <3000000>;
		regulator-min-microamp  = <460000>;
		regulator-max-microamp  = <1370000>;
		regulator-boot-on;
	};

	vcc2: buck2 {
		regulator-name = "VBUCK2";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <3000000>;
		regulator-min-microamp  = <460000>;
		regulator-max-microamp  = <1370000>;
		regulator-boot-on;
	};
};