ARM: ux500: remove unused regulator data
[linux-block.git] / arch / arm / mach-ux500 / board-mop500-regulators.c
CommitLineData
4f724bea
SI
1/*
2 * Copyright (C) ST-Ericsson SA 2010
3 *
4 * License Terms: GNU General Public License v2
5 *
a1e516e3
BJ
6 * Authors: Sundar Iyer <sundar.iyer@stericsson.com>
7 * Bengt Jonsson <bengt.g.jonsson@stericsson.com>
547f384f 8 * Daniel Willerud <daniel.willerud@stericsson.com>
4f724bea
SI
9 *
10 * MOP500 board specific initialization for regulators
11 */
12#include <linux/kernel.h>
13#include <linux/regulator/machine.h>
a1e516e3 14#include <linux/regulator/ab8500.h>
d1de85a2 15#include "board-mop500-regulators.h"
fe67dfc8 16
d1de85a2 17static struct regulator_consumer_supply ab8500_vaux1_consumers[] = {
27f26de1
LJ
18 /* Main display, u8500 R3 uib */
19 REGULATOR_SUPPLY("vddi", "mcde_disp_sony_acx424akp.0"),
20 /* Main display, u8500 uib and ST uib */
21 REGULATOR_SUPPLY("vdd1", "samsung_s6d16d0.0"),
22 /* Secondary display, ST uib */
23 REGULATOR_SUPPLY("vdd1", "samsung_s6d16d0.1"),
d1de85a2
LW
24 /* SFH7741 proximity sensor */
25 REGULATOR_SUPPLY("vcc", "gpio-keys.0"),
26 /* BH1780GLS ambient light sensor */
27 REGULATOR_SUPPLY("vcc", "2-0029"),
28 /* lsm303dlh accelerometer */
a652f3d2 29 REGULATOR_SUPPLY("vdd", "2-0018"),
cb6795ac
LJ
30 /* lsm303dlhc accelerometer */
31 REGULATOR_SUPPLY("vdd", "2-0019"),
d1de85a2 32 /* lsm303dlh magnetometer */
cb6795ac 33 REGULATOR_SUPPLY("vdd", "2-001e"),
d1de85a2
LW
34 /* Rohm BU21013 Touchscreen devices */
35 REGULATOR_SUPPLY("avdd", "3-005c"),
36 REGULATOR_SUPPLY("avdd", "3-005d"),
37 /* Synaptics RMI4 Touchscreen device */
38 REGULATOR_SUPPLY("vdd", "3-004b"),
efb34d27
LJ
39 /* L3G4200D Gyroscope device */
40 REGULATOR_SUPPLY("vdd", "2-0068"),
2d0266ab
LJ
41 /* Ambient light sensor device */
42 REGULATOR_SUPPLY("vdd", "3-0029"),
4336c1d2
LJ
43 /* Pressure sensor device */
44 REGULATOR_SUPPLY("vdd", "2-005c"),
5379f026
LJ
45 /* Cypress TrueTouch Touchscreen device */
46 REGULATOR_SUPPLY("vcpin", "spi8.0"),
fa679523
LJ
47 /* Camera device */
48 REGULATOR_SUPPLY("vaux12v5", "mmio_camera"),
d1de85a2
LW
49};
50
51static struct regulator_consumer_supply ab8500_vaux2_consumers[] = {
52 /* On-board eMMC power */
53 REGULATOR_SUPPLY("vmmc", "sdi4"),
54 /* AB8500 audio codec */
55 REGULATOR_SUPPLY("vcc-N2158", "ab8500-codec.0"),
a652f3d2
LJ
56 /* AB8500 accessory detect 1 */
57 REGULATOR_SUPPLY("vcc-N2158", "ab8500-acc-det.0"),
58 /* AB8500 Tv-out device */
59 REGULATOR_SUPPLY("vcc-N2158", "mcde_tv_ab8500.4"),
60 /* AV8100 HDMI device */
61 REGULATOR_SUPPLY("vcc-N2158", "av8100_hdmi.3"),
d1de85a2
LW
62};
63
64static struct regulator_consumer_supply ab8500_vaux3_consumers[] = {
a652f3d2 65 REGULATOR_SUPPLY("v-SD-STM", "stm"),
d1de85a2
LW
66 /* External MMC slot power */
67 REGULATOR_SUPPLY("vmmc", "sdi0"),
68};
69
70static struct regulator_consumer_supply ab8500_vtvout_consumers[] = {
71 /* TV-out DENC supply */
72 REGULATOR_SUPPLY("vtvout", "ab8500-denc.0"),
73 /* Internal general-purpose ADC */
74 REGULATOR_SUPPLY("vddadc", "ab8500-gpadc.0"),
a652f3d2
LJ
75 /* ADC for charger */
76 REGULATOR_SUPPLY("vddadc", "ab8500-charger.0"),
77 /* AB8500 Tv-out device */
78 REGULATOR_SUPPLY("vtvout", "mcde_tv_ab8500.4"),
d1de85a2
LW
79};
80
29bd2ab8
OL
81static struct regulator_consumer_supply ab8500_vaud_consumers[] = {
82 /* AB8500 audio-codec main supply */
83 REGULATOR_SUPPLY("vaud", "ab8500-codec.0"),
84};
85
86static struct regulator_consumer_supply ab8500_vamic1_consumers[] = {
87 /* AB8500 audio-codec Mic1 supply */
88 REGULATOR_SUPPLY("vamic1", "ab8500-codec.0"),
89};
90
91static struct regulator_consumer_supply ab8500_vamic2_consumers[] = {
92 /* AB8500 audio-codec Mic2 supply */
93 REGULATOR_SUPPLY("vamic2", "ab8500-codec.0"),
94};
95
96static struct regulator_consumer_supply ab8500_vdmic_consumers[] = {
97 /* AB8500 audio-codec DMic supply */
98 REGULATOR_SUPPLY("vdmic", "ab8500-codec.0"),
99};
100
d1de85a2
LW
101static struct regulator_consumer_supply ab8500_vintcore_consumers[] = {
102 /* SoC core supply, no device */
103 REGULATOR_SUPPLY("v-intcore", NULL),
7c9d440e 104 /* USB Transceiver */
d1de85a2 105 REGULATOR_SUPPLY("vddulpivio18", "ab8500-usb.0"),
a652f3d2
LJ
106 /* Handled by abx500 clk driver */
107 REGULATOR_SUPPLY("v-intcore", "abx500-clk.0"),
d1de85a2
LW
108};
109
110static struct regulator_consumer_supply ab8500_vana_consumers[] = {
a652f3d2
LJ
111 /* DB8500 DSI */
112 REGULATOR_SUPPLY("vdddsi1v2", "mcde"),
113 REGULATOR_SUPPLY("vdddsi1v2", "b2r2_core"),
114 REGULATOR_SUPPLY("vdddsi1v2", "b2r2_1_core"),
115 REGULATOR_SUPPLY("vdddsi1v2", "dsilink.0"),
116 REGULATOR_SUPPLY("vdddsi1v2", "dsilink.1"),
117 REGULATOR_SUPPLY("vdddsi1v2", "dsilink.2"),
118 /* DB8500 CSI */
119 REGULATOR_SUPPLY("vddcsi1v2", "mmio_camera"),
d1de85a2 120};
4f724bea 121
dfa3a824 122/* ab8500 regulator register initialization */
732805a5 123static struct ab8500_regulator_reg_init ab8500_reg_init[] = {
dfa3a824
BJ
124 /*
125 * VanaRequestCtrl = HP/LP depending on VxRequest
126 * VextSupply1RequestCtrl = HP/LP depending on VxRequest
127 */
43a5911b 128 INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL2, 0xf0, 0x00),
dfa3a824
BJ
129 /*
130 * VextSupply2RequestCtrl = HP/LP depending on VxRequest
131 * VextSupply3RequestCtrl = HP/LP depending on VxRequest
132 * Vaux1RequestCtrl = HP/LP depending on VxRequest
133 * Vaux2RequestCtrl = HP/LP depending on VxRequest
134 */
3c1b8438 135 INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL3, 0xff, 0x00),
dfa3a824
BJ
136 /*
137 * Vaux3RequestCtrl = HP/LP depending on VxRequest
138 * SwHPReq = Control through SWValid disabled
139 */
3c1b8438 140 INIT_REGULATOR_REGISTER(AB8500_REGUREQUESTCTRL4, 0x07, 0x00),
dfa3a824
BJ
141 /*
142 * VanaSysClkReq1HPValid = disabled
143 * Vaux1SysClkReq1HPValid = disabled
144 * Vaux2SysClkReq1HPValid = disabled
145 * Vaux3SysClkReq1HPValid = disabled
146 */
43a5911b 147 INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID1, 0xe8, 0x00),
dfa3a824
BJ
148 /*
149 * VextSupply1SysClkReq1HPValid = disabled
150 * VextSupply2SysClkReq1HPValid = disabled
151 * VextSupply3SysClkReq1HPValid = SysClkReq1 controlled
152 */
3c1b8438 153 INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQ1HPVALID2, 0x70, 0x40),
dfa3a824
BJ
154 /*
155 * VanaHwHPReq1Valid = disabled
156 * Vaux1HwHPreq1Valid = disabled
157 * Vaux2HwHPReq1Valid = disabled
158 * Vaux3HwHPReqValid = disabled
159 */
3c1b8438 160 INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID1, 0xe8, 0x00),
dfa3a824
BJ
161 /*
162 * VextSupply1HwHPReq1Valid = disabled
163 * VextSupply2HwHPReq1Valid = disabled
164 * VextSupply3HwHPReq1Valid = disabled
165 */
3c1b8438 166 INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ1VALID2, 0x07, 0x00),
dfa3a824
BJ
167 /*
168 * VanaHwHPReq2Valid = disabled
169 * Vaux1HwHPReq2Valid = disabled
170 * Vaux2HwHPReq2Valid = disabled
171 * Vaux3HwHPReq2Valid = disabled
172 */
3c1b8438 173 INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID1, 0xe8, 0x00),
dfa3a824
BJ
174 /*
175 * VextSupply1HwHPReq2Valid = disabled
176 * VextSupply2HwHPReq2Valid = disabled
177 * VextSupply3HwHPReq2Valid = HWReq2 controlled
178 */
3c1b8438 179 INIT_REGULATOR_REGISTER(AB8500_REGUHWHPREQ2VALID2, 0x07, 0x04),
dfa3a824
BJ
180 /*
181 * VanaSwHPReqValid = disabled
182 * Vaux1SwHPReqValid = disabled
183 */
3c1b8438 184 INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID1, 0xa0, 0x00),
dfa3a824
BJ
185 /*
186 * Vaux2SwHPReqValid = disabled
187 * Vaux3SwHPReqValid = disabled
188 * VextSupply1SwHPReqValid = disabled
189 * VextSupply2SwHPReqValid = disabled
190 * VextSupply3SwHPReqValid = disabled
191 */
3c1b8438 192 INIT_REGULATOR_REGISTER(AB8500_REGUSWHPREQVALID2, 0x1f, 0x00),
dfa3a824
BJ
193 /*
194 * SysClkReq2Valid1 = SysClkReq2 controlled
195 * SysClkReq3Valid1 = disabled
196 * SysClkReq4Valid1 = SysClkReq4 controlled
197 * SysClkReq5Valid1 = disabled
198 * SysClkReq6Valid1 = SysClkReq6 controlled
199 * SysClkReq7Valid1 = disabled
200 * SysClkReq8Valid1 = disabled
201 */
3c1b8438 202 INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID1, 0xfe, 0x2a),
dfa3a824
BJ
203 /*
204 * SysClkReq2Valid2 = disabled
205 * SysClkReq3Valid2 = disabled
206 * SysClkReq4Valid2 = disabled
207 * SysClkReq5Valid2 = disabled
208 * SysClkReq6Valid2 = SysClkReq6 controlled
209 * SysClkReq7Valid2 = disabled
210 * SysClkReq8Valid2 = disabled
211 */
3c1b8438 212 INIT_REGULATOR_REGISTER(AB8500_REGUSYSCLKREQVALID2, 0xfe, 0x20),
dfa3a824
BJ
213 /*
214 * VTVoutEna = disabled
215 * Vintcore12Ena = disabled
216 * Vintcore12Sel = 1.25 V
217 * Vintcore12LP = inactive (HP)
218 * VTVoutLP = inactive (HP)
219 */
3c1b8438 220 INIT_REGULATOR_REGISTER(AB8500_REGUMISC1, 0xfe, 0x10),
dfa3a824
BJ
221 /*
222 * VaudioEna = disabled
223 * VdmicEna = disabled
224 * Vamic1Ena = disabled
225 * Vamic2Ena = disabled
226 */
3c1b8438 227 INIT_REGULATOR_REGISTER(AB8500_VAUDIOSUPPLY, 0x1e, 0x00),
dfa3a824
BJ
228 /*
229 * Vamic1_dzout = high-Z when Vamic1 is disabled
230 * Vamic2_dzout = high-Z when Vamic2 is disabled
231 */
3c1b8438 232 INIT_REGULATOR_REGISTER(AB8500_REGUCTRL1VAMIC, 0x03, 0x00),
d79df329 233 /*
43a5911b 234 * VPll = Hw controlled (NOTE! PRCMU bits)
dfa3a824
BJ
235 * VanaRegu = force off
236 */
3c1b8438 237 INIT_REGULATOR_REGISTER(AB8500_VPLLVANAREGU, 0x0f, 0x02),
dfa3a824
BJ
238 /*
239 * VrefDDREna = disabled
240 * VrefDDRSleepMode = inactive (no pulldown)
241 */
3c1b8438 242 INIT_REGULATOR_REGISTER(AB8500_VREFDDR, 0x03, 0x00),
dfa3a824 243 /*
a387ac5f
LJ
244 * VextSupply1Regu = force LP
245 * VextSupply2Regu = force OFF
246 * VextSupply3Regu = force HP (-> STBB2=LP and TPS=LP)
dfa3a824
BJ
247 * ExtSupply2Bypass = ExtSupply12LPn ball is 0 when Ena is 0
248 * ExtSupply3Bypass = ExtSupply3LPn ball is 0 when Ena is 0
249 */
a387ac5f 250 INIT_REGULATOR_REGISTER(AB8500_EXTSUPPLYREGU, 0xff, 0x13),
dfa3a824
BJ
251 /*
252 * Vaux1Regu = force HP
253 * Vaux2Regu = force off
254 */
3c1b8438 255 INIT_REGULATOR_REGISTER(AB8500_VAUX12REGU, 0x0f, 0x01),
dfa3a824 256 /*
d79df329 257 * Vaux3Regu = force off
dfa3a824 258 */
43a5911b 259 INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3REGU, 0x03, 0x00),
dfa3a824 260 /*
a652f3d2 261 * Vaux1Sel = 2.8 V
dfa3a824 262 */
a652f3d2 263 INIT_REGULATOR_REGISTER(AB8500_VAUX1SEL, 0x0f, 0x0C),
dfa3a824
BJ
264 /*
265 * Vaux2Sel = 2.9 V
266 */
3c1b8438 267 INIT_REGULATOR_REGISTER(AB8500_VAUX2SEL, 0x0f, 0x0d),
dfa3a824
BJ
268 /*
269 * Vaux3Sel = 2.91 V
270 */
3c1b8438 271 INIT_REGULATOR_REGISTER(AB8500_VRF1VAUX3SEL, 0x07, 0x07),
dfa3a824
BJ
272 /*
273 * VextSupply12LP = disabled (no LP)
274 */
3c1b8438 275 INIT_REGULATOR_REGISTER(AB8500_REGUCTRL2SPARE, 0x01, 0x00),
dfa3a824
BJ
276 /*
277 * Vaux1Disch = short discharge time
278 * Vaux2Disch = short discharge time
279 * Vaux3Disch = short discharge time
280 * Vintcore12Disch = short discharge time
281 * VTVoutDisch = short discharge time
282 * VaudioDisch = short discharge time
283 */
3c1b8438 284 INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH, 0xfc, 0x00),
dfa3a824
BJ
285 /*
286 * VanaDisch = short discharge time
287 * VdmicPullDownEna = pulldown disabled when Vdmic is disabled
288 * VdmicDisch = short discharge time
289 */
3c1b8438 290 INIT_REGULATOR_REGISTER(AB8500_REGUCTRLDISCH2, 0x16, 0x00),
dfa3a824
BJ
291};
292
a1e516e3 293/* AB8500 regulators */
732805a5 294static struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS] = {
a1e516e3
BJ
295 /* supplies to the display/camera */
296 [AB8500_LDO_AUX1] = {
67b7c75e 297 .supply_regulator = "ab8500-ext-supply3",
a1e516e3
BJ
298 .constraints = {
299 .name = "V-DISPLAY",
a652f3d2
LJ
300 .min_uV = 2800000,
301 .max_uV = 3300000,
a1e516e3
BJ
302 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
303 REGULATOR_CHANGE_STATUS,
db24520f 304 .boot_on = 1, /* display is on at boot */
a1e516e3 305 },
d1de85a2
LW
306 .num_consumer_supplies = ARRAY_SIZE(ab8500_vaux1_consumers),
307 .consumer_supplies = ab8500_vaux1_consumers,
4f724bea 308 },
a1e516e3
BJ
309 /* supplies to the on-board eMMC */
310 [AB8500_LDO_AUX2] = {
67b7c75e 311 .supply_regulator = "ab8500-ext-supply3",
a1e516e3
BJ
312 .constraints = {
313 .name = "V-eMMC1",
314 .min_uV = 1100000,
315 .max_uV = 3300000,
316 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
a652f3d2
LJ
317 REGULATOR_CHANGE_STATUS |
318 REGULATOR_CHANGE_MODE,
319 .valid_modes_mask = REGULATOR_MODE_NORMAL |
320 REGULATOR_MODE_IDLE,
a1e516e3 321 },
d1de85a2
LW
322 .num_consumer_supplies = ARRAY_SIZE(ab8500_vaux2_consumers),
323 .consumer_supplies = ab8500_vaux2_consumers,
4f724bea 324 },
a1e516e3
BJ
325 /* supply for VAUX3, supplies to SDcard slots */
326 [AB8500_LDO_AUX3] = {
67b7c75e 327 .supply_regulator = "ab8500-ext-supply3",
a1e516e3
BJ
328 .constraints = {
329 .name = "V-MMC-SD",
330 .min_uV = 1100000,
331 .max_uV = 3300000,
332 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
a652f3d2
LJ
333 REGULATOR_CHANGE_STATUS |
334 REGULATOR_CHANGE_MODE,
335 .valid_modes_mask = REGULATOR_MODE_NORMAL |
336 REGULATOR_MODE_IDLE,
a1e516e3 337 },
d1de85a2
LW
338 .num_consumer_supplies = ARRAY_SIZE(ab8500_vaux3_consumers),
339 .consumer_supplies = ab8500_vaux3_consumers,
4f724bea 340 },
a1e516e3
BJ
341 /* supply for tvout, gpadc, TVOUT LDO */
342 [AB8500_LDO_TVOUT] = {
343 .constraints = {
344 .name = "V-TVOUT",
345 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
346 },
d1de85a2
LW
347 .num_consumer_supplies = ARRAY_SIZE(ab8500_vtvout_consumers),
348 .consumer_supplies = ab8500_vtvout_consumers,
4f724bea 349 },
a1e516e3
BJ
350 /* supply for ab8500-vaudio, VAUDIO LDO */
351 [AB8500_LDO_AUDIO] = {
352 .constraints = {
353 .name = "V-AUD",
354 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
355 },
29bd2ab8
OL
356 .num_consumer_supplies = ARRAY_SIZE(ab8500_vaud_consumers),
357 .consumer_supplies = ab8500_vaud_consumers,
4f724bea 358 },
a1e516e3
BJ
359 /* supply for v-anamic1 VAMic1-LDO */
360 [AB8500_LDO_ANAMIC1] = {
361 .constraints = {
362 .name = "V-AMIC1",
363 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
364 },
29bd2ab8
OL
365 .num_consumer_supplies = ARRAY_SIZE(ab8500_vamic1_consumers),
366 .consumer_supplies = ab8500_vamic1_consumers,
4f724bea 367 },
a1e516e3
BJ
368 /* supply for v-amic2, VAMIC2 LDO, reuse constants for AMIC1 */
369 [AB8500_LDO_ANAMIC2] = {
370 .constraints = {
371 .name = "V-AMIC2",
372 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
373 },
29bd2ab8
OL
374 .num_consumer_supplies = ARRAY_SIZE(ab8500_vamic2_consumers),
375 .consumer_supplies = ab8500_vamic2_consumers,
4f724bea 376 },
a1e516e3
BJ
377 /* supply for v-dmic, VDMIC LDO */
378 [AB8500_LDO_DMIC] = {
379 .constraints = {
380 .name = "V-DMIC",
381 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
382 },
29bd2ab8
OL
383 .num_consumer_supplies = ARRAY_SIZE(ab8500_vdmic_consumers),
384 .consumer_supplies = ab8500_vdmic_consumers,
4f724bea 385 },
a1e516e3
BJ
386 /* supply for v-intcore12, VINTCORE12 LDO */
387 [AB8500_LDO_INTCORE] = {
388 .constraints = {
389 .name = "V-INTCORE",
a652f3d2
LJ
390 .min_uV = 1250000,
391 .max_uV = 1350000,
392 .input_uV = 1800000,
393 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
394 REGULATOR_CHANGE_STATUS |
395 REGULATOR_CHANGE_MODE |
396 REGULATOR_CHANGE_DRMS,
397 .valid_modes_mask = REGULATOR_MODE_NORMAL |
398 REGULATOR_MODE_IDLE,
a1e516e3 399 },
d1de85a2
LW
400 .num_consumer_supplies = ARRAY_SIZE(ab8500_vintcore_consumers),
401 .consumer_supplies = ab8500_vintcore_consumers,
4f724bea 402 },
a652f3d2 403 /* supply for U8500 CSI-DSI, VANA LDO */
a1e516e3
BJ
404 [AB8500_LDO_ANA] = {
405 .constraints = {
a652f3d2 406 .name = "V-CSI-DSI",
a1e516e3
BJ
407 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
408 },
d1de85a2
LW
409 .num_consumer_supplies = ARRAY_SIZE(ab8500_vana_consumers),
410 .consumer_supplies = ab8500_vana_consumers,
4f724bea
SI
411 },
412};
732805a5 413
a387ac5f
LJ
414/* supply for VextSupply3 */
415static struct regulator_consumer_supply ab8500_ext_supply3_consumers[] = {
416 /* SIM supply for 3 V SIM cards */
417 REGULATOR_SUPPLY("vinvsim", "sim-detect.0"),
418};
419
a387ac5f
LJ
420/*
421 * AB8500 external regulators
422 */
423static struct regulator_init_data ab8500_ext_regulators[] = {
424 /* fixed Vbat supplies VSMPS1_EXT_1V8 */
425 [AB8500_EXT_SUPPLY1] = {
426 .constraints = {
427 .name = "ab8500-ext-supply1",
428 .min_uV = 1800000,
429 .max_uV = 1800000,
430 .initial_mode = REGULATOR_MODE_IDLE,
431 .boot_on = 1,
432 .always_on = 1,
433 },
434 },
435 /* fixed Vbat supplies VSMPS2_EXT_1V36 and VSMPS5_EXT_1V15 */
436 [AB8500_EXT_SUPPLY2] = {
437 .constraints = {
438 .name = "ab8500-ext-supply2",
439 .min_uV = 1360000,
440 .max_uV = 1360000,
441 },
442 },
443 /* fixed Vbat supplies VSMPS3_EXT_3V4 and VSMPS4_EXT_3V4 */
444 [AB8500_EXT_SUPPLY3] = {
445 .constraints = {
446 .name = "ab8500-ext-supply3",
447 .min_uV = 3400000,
448 .max_uV = 3400000,
449 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
450 .boot_on = 1,
451 },
452 .num_consumer_supplies =
453 ARRAY_SIZE(ab8500_ext_supply3_consumers),
454 .consumer_supplies = ab8500_ext_supply3_consumers,
455 },
456};
457
732805a5
BJ
458struct ab8500_regulator_platform_data ab8500_regulator_plat_data = {
459 .reg_init = ab8500_reg_init,
460 .num_reg_init = ARRAY_SIZE(ab8500_reg_init),
461 .regulator = ab8500_regulators,
462 .num_regulator = ARRAY_SIZE(ab8500_regulators),
a387ac5f
LJ
463 .ext_regulator = ab8500_ext_regulators,
464 .num_ext_regulator = ARRAY_SIZE(ab8500_ext_regulators),
732805a5 465};