aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2011-07-24 15:59:34 -0400
committerPaolo Pisati <paolo.pisati@canonical.com>2012-08-17 04:18:19 -0400
commitc9bd3db79c1804865bde5e0729a24e650a9c8608 (patch)
tree12ecbf9621d9c7aa73e6bcb853850f1be81a35ae
parent6d1b0d20a310030d0f0155d9e76e4d47747efc0b (diff)
Subject: [PATCH 040/104] OMAP3: Move common regulator configuration to twl-common
Some regulator config can be moved out from board files, since they are close to identical. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c51
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c41
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c21
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c28
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c44
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c48
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c44
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c48
-rw-r--r--arch/arm/mach-omap2/board-omap3touchbook.c40
-rw-r--r--arch/arm/mach-omap2/board-overo.c44
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c25
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c41
-rw-r--r--arch/arm/mach-omap2/twl-common.c42
-rw-r--r--arch/arm/mach-omap2/twl-common.h5
14 files changed, 109 insertions, 413 deletions
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index fe35ebd7886..77662ee140b 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -284,16 +284,6 @@ static struct regulator_consumer_supply sdp3430_vaux3_supplies[] = {
284 REGULATOR_SUPPLY("vcc", "spi1.0"), 284 REGULATOR_SUPPLY("vcc", "spi1.0"),
285}; 285};
286 286
287static struct regulator_consumer_supply sdp3430_vdda_dac_supplies[] = {
288 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
289};
290
291/* VPLL2 for digital video outputs */
292static struct regulator_consumer_supply sdp3430_vpll2_supplies[] = {
293 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
294 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
295};
296
297static struct regulator_consumer_supply sdp3430_vmmc1_supplies[] = { 287static struct regulator_consumer_supply sdp3430_vmmc1_supplies[] = {
298 REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), 288 REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"),
299}; 289};
@@ -410,36 +400,6 @@ static struct regulator_init_data sdp3430_vsim = {
410 .consumer_supplies = sdp3430_vsim_supplies, 400 .consumer_supplies = sdp3430_vsim_supplies,
411}; 401};
412 402
413/* VDAC for DSS driving S-Video */
414static struct regulator_init_data sdp3430_vdac = {
415 .constraints = {
416 .min_uV = 1800000,
417 .max_uV = 1800000,
418 .apply_uV = true,
419 .valid_modes_mask = REGULATOR_MODE_NORMAL
420 | REGULATOR_MODE_STANDBY,
421 .valid_ops_mask = REGULATOR_CHANGE_MODE
422 | REGULATOR_CHANGE_STATUS,
423 },
424 .num_consumer_supplies = ARRAY_SIZE(sdp3430_vdda_dac_supplies),
425 .consumer_supplies = sdp3430_vdda_dac_supplies,
426};
427
428static struct regulator_init_data sdp3430_vpll2 = {
429 .constraints = {
430 .name = "VDVI",
431 .min_uV = 1800000,
432 .max_uV = 1800000,
433 .apply_uV = true,
434 .valid_modes_mask = REGULATOR_MODE_NORMAL
435 | REGULATOR_MODE_STANDBY,
436 .valid_ops_mask = REGULATOR_CHANGE_MODE
437 | REGULATOR_CHANGE_STATUS,
438 },
439 .num_consumer_supplies = ARRAY_SIZE(sdp3430_vpll2_supplies),
440 .consumer_supplies = sdp3430_vpll2_supplies,
441};
442
443static struct twl4030_platform_data sdp3430_twldata = { 403static struct twl4030_platform_data sdp3430_twldata = {
444 /* platform_data for children goes here */ 404 /* platform_data for children goes here */
445 .gpio = &sdp3430_gpio_data, 405 .gpio = &sdp3430_gpio_data,
@@ -452,16 +412,19 @@ static struct twl4030_platform_data sdp3430_twldata = {
452 .vmmc1 = &sdp3430_vmmc1, 412 .vmmc1 = &sdp3430_vmmc1,
453 .vmmc2 = &sdp3430_vmmc2, 413 .vmmc2 = &sdp3430_vmmc2,
454 .vsim = &sdp3430_vsim, 414 .vsim = &sdp3430_vsim,
455 .vdac = &sdp3430_vdac,
456 .vpll2 = &sdp3430_vpll2,
457}; 415};
458 416
459static int __init omap3430_i2c_init(void) 417static int __init omap3430_i2c_init(void)
460{ 418{
461 /* i2c1 for PMIC only */ 419 /* i2c1 for PMIC only */
462 omap3_pmic_get_config(&sdp3430_twldata, 420 omap3_pmic_get_config(&sdp3430_twldata,
463 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI | 421 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI |
464 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, 0); 422 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
423 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
424 sdp3430_twldata.vdac->constraints.apply_uV = true;
425 sdp3430_twldata.vpll2->constraints.apply_uV = true;
426 sdp3430_twldata.vpll2->constraints.name = "VDVI";
427
465 omap3_pmic_init("twl4030", &sdp3430_twldata); 428 omap3_pmic_init("twl4030", &sdp3430_twldata);
466 429
467 /* i2c2 on camera connector (for sensor control) and optional isp1301 */ 430 /* i2c2 on camera connector (for sensor control) and optional isp1301 */
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 4b02b0f0781..d55454170cf 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -347,9 +347,6 @@ static struct regulator_consumer_supply cm_t35_vsim_supply = {
347 .supply = "vmmc_aux", 347 .supply = "vmmc_aux",
348}; 348};
349 349
350static struct regulator_consumer_supply cm_t35_vdac_supply =
351 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
352
353static struct regulator_consumer_supply cm_t35_vdvi_supply = 350static struct regulator_consumer_supply cm_t35_vdvi_supply =
354 REGULATOR_SUPPLY("vdvi", "omapdss"); 351 REGULATOR_SUPPLY("vdvi", "omapdss");
355 352
@@ -383,35 +380,6 @@ static struct regulator_init_data cm_t35_vsim = {
383 .consumer_supplies = &cm_t35_vsim_supply, 380 .consumer_supplies = &cm_t35_vsim_supply,
384}; 381};
385 382
386/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
387static struct regulator_init_data cm_t35_vdac = {
388 .constraints = {
389 .min_uV = 1800000,
390 .max_uV = 1800000,
391 .valid_modes_mask = REGULATOR_MODE_NORMAL
392 | REGULATOR_MODE_STANDBY,
393 .valid_ops_mask = REGULATOR_CHANGE_MODE
394 | REGULATOR_CHANGE_STATUS,
395 },
396 .num_consumer_supplies = 1,
397 .consumer_supplies = &cm_t35_vdac_supply,
398};
399
400/* VPLL2 for digital video outputs */
401static struct regulator_init_data cm_t35_vpll2 = {
402 .constraints = {
403 .name = "VDVI",
404 .min_uV = 1800000,
405 .max_uV = 1800000,
406 .valid_modes_mask = REGULATOR_MODE_NORMAL
407 | REGULATOR_MODE_STANDBY,
408 .valid_ops_mask = REGULATOR_CHANGE_MODE
409 | REGULATOR_CHANGE_STATUS,
410 },
411 .num_consumer_supplies = 1,
412 .consumer_supplies = &cm_t35_vdvi_supply,
413};
414
415static uint32_t cm_t35_keymap[] = { 383static uint32_t cm_t35_keymap[] = {
416 KEY(0, 0, KEY_A), KEY(0, 1, KEY_B), KEY(0, 2, KEY_LEFT), 384 KEY(0, 0, KEY_A), KEY(0, 1, KEY_B), KEY(0, 2, KEY_LEFT),
417 KEY(1, 0, KEY_UP), KEY(1, 1, KEY_ENTER), KEY(1, 2, KEY_DOWN), 385 KEY(1, 0, KEY_UP), KEY(1, 1, KEY_ENTER), KEY(1, 2, KEY_DOWN),
@@ -499,13 +467,16 @@ static struct twl4030_platform_data cm_t35_twldata = {
499 .gpio = &cm_t35_gpio_data, 467 .gpio = &cm_t35_gpio_data,
500 .vmmc1 = &cm_t35_vmmc1, 468 .vmmc1 = &cm_t35_vmmc1,
501 .vsim = &cm_t35_vsim, 469 .vsim = &cm_t35_vsim,
502 .vdac = &cm_t35_vdac,
503 .vpll2 = &cm_t35_vpll2,
504}; 470};
505 471
506static void __init cm_t35_init_i2c(void) 472static void __init cm_t35_init_i2c(void)
507{ 473{
508 omap3_pmic_get_config(&cm_t35_twldata, TWL_COMMON_PDATA_USB, 0); 474 omap3_pmic_get_config(&cm_t35_twldata, TWL_COMMON_PDATA_USB,
475 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
476 cm_t35_twldata.vpll2->constraints.name = "VDVI";
477 cm_t35_twldata.vpll2->num_consumer_supplies = 1;
478 cm_t35_twldata.vpll2->consumer_supplies = &cm_t35_vdvi_supply;
479
509 omap3_pmic_init("tps65930", &cm_t35_twldata); 480 omap3_pmic_init("tps65930", &cm_t35_twldata);
510} 481}
511 482
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9d94776d0dd..3421797797d 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -188,9 +188,6 @@ static struct omap_dss_board_info devkit8000_dss_data = {
188 .default_device = &devkit8000_lcd_device, 188 .default_device = &devkit8000_lcd_device,
189}; 189};
190 190
191static struct regulator_consumer_supply devkit8000_vdda_dac_supply =
192 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
193
194static uint32_t board_keymap[] = { 191static uint32_t board_keymap[] = {
195 KEY(0, 0, KEY_1), 192 KEY(0, 0, KEY_1),
196 KEY(1, 0, KEY_2), 193 KEY(1, 0, KEY_2),
@@ -290,20 +287,6 @@ static struct regulator_init_data devkit8000_vmmc1 = {
290 .consumer_supplies = &devkit8000_vmmc1_supply, 287 .consumer_supplies = &devkit8000_vmmc1_supply,
291}; 288};
292 289
293/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
294static struct regulator_init_data devkit8000_vdac = {
295 .constraints = {
296 .min_uV = 1800000,
297 .max_uV = 1800000,
298 .valid_modes_mask = REGULATOR_MODE_NORMAL
299 | REGULATOR_MODE_STANDBY,
300 .valid_ops_mask = REGULATOR_CHANGE_MODE
301 | REGULATOR_CHANGE_STATUS,
302 },
303 .num_consumer_supplies = 1,
304 .consumer_supplies = &devkit8000_vdda_dac_supply,
305};
306
307/* VPLL1 for digital video outputs */ 290/* VPLL1 for digital video outputs */
308static struct regulator_init_data devkit8000_vpll1 = { 291static struct regulator_init_data devkit8000_vpll1 = {
309 .constraints = { 292 .constraints = {
@@ -337,7 +320,6 @@ static struct twl4030_platform_data devkit8000_twldata = {
337 /* platform_data for children goes here */ 320 /* platform_data for children goes here */
338 .gpio = &devkit8000_gpio_data, 321 .gpio = &devkit8000_gpio_data,
339 .vmmc1 = &devkit8000_vmmc1, 322 .vmmc1 = &devkit8000_vmmc1,
340 .vdac = &devkit8000_vdac,
341 .vpll1 = &devkit8000_vpll1, 323 .vpll1 = &devkit8000_vpll1,
342 .vio = &devkit8000_vio, 324 .vio = &devkit8000_vio,
343 .keypad = &devkit8000_kp_data, 325 .keypad = &devkit8000_kp_data,
@@ -346,7 +328,8 @@ static struct twl4030_platform_data devkit8000_twldata = {
346static int __init devkit8000_i2c_init(void) 328static int __init devkit8000_i2c_init(void)
347{ 329{
348 omap3_pmic_get_config(&devkit8000_twldata, 330 omap3_pmic_get_config(&devkit8000_twldata,
349 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO, 0); 331 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
332 TWL_COMMON_REGULATOR_VDAC);
350 omap3_pmic_init("tps65930", &devkit8000_twldata); 333 omap3_pmic_init("tps65930", &devkit8000_twldata);
351 /* Bus 3 is attached to the DVI port where devices like the pico DLP 334 /* Bus 3 is attached to the DVI port where devices like the pico DLP
352 * projector don't work reliably with 400kHz */ 335 * projector don't work reliably with 400kHz */
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 718a5be1a47..8298a809849 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -477,26 +477,6 @@ static struct omap_dss_board_info igep2_dss_data = {
477 .default_device = &igep2_dvi_device, 477 .default_device = &igep2_dvi_device,
478}; 478};
479 479
480static struct regulator_consumer_supply igep2_vpll2_supplies[] = {
481 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
482 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
483};
484
485static struct regulator_init_data igep2_vpll2 = {
486 .constraints = {
487 .name = "VDVI",
488 .min_uV = 1800000,
489 .max_uV = 1800000,
490 .apply_uV = true,
491 .valid_modes_mask = REGULATOR_MODE_NORMAL
492 | REGULATOR_MODE_STANDBY,
493 .valid_ops_mask = REGULATOR_CHANGE_MODE
494 | REGULATOR_CHANGE_STATUS,
495 },
496 .num_consumer_supplies = ARRAY_SIZE(igep2_vpll2_supplies),
497 .consumer_supplies = igep2_vpll2_supplies,
498};
499
500static void __init igep2_display_init(void) 480static void __init igep2_display_init(void)
501{ 481{
502 int err = gpio_request_one(IGEP2_GPIO_DVI_PUP, GPIOF_OUT_INIT_HIGH, 482 int err = gpio_request_one(IGEP2_GPIO_DVI_PUP, GPIOF_OUT_INIT_HIGH,
@@ -577,9 +557,11 @@ static void __init igep_i2c_init(void)
577 pr_warning("IGEP2: Could not register I2C3 bus (%d)\n", ret); 557 pr_warning("IGEP2: Could not register I2C3 bus (%d)\n", ret);
578 558
579 igep_twldata.keypad = &igep2_keypad_pdata; 559 igep_twldata.keypad = &igep2_keypad_pdata;
580 igep_twldata.vpll2 = &igep2_vpll2; 560 /* Get common pmic data */
581 /* Use common codec data */ 561 omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO,
582 omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, 0); 562 TWL_COMMON_REGULATOR_VPLL2);
563 igep_twldata.vpll2->constraints.apply_uV = true;
564 igep_twldata.vpll2->constraints.name = "VDVI";
583 } 565 }
584 566
585 omap3_pmic_init("twl4030", &igep_twldata); 567 omap3_pmic_init("twl4030", &igep_twldata);
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index f897729e52a..1f051be32c9 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -238,15 +238,6 @@ static struct omap_dss_board_info beagle_dss_data = {
238 .default_device = &beagle_dvi_device, 238 .default_device = &beagle_dvi_device,
239}; 239};
240 240
241static struct regulator_consumer_supply beagle_vdac_supply =
242 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
243
244static struct regulator_consumer_supply beagle_vdds_supplies[] = {
245 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
246 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
247 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
248};
249
250static void __init beagle_display_init(void) 241static void __init beagle_display_init(void)
251{ 242{
252 int r; 243 int r;
@@ -377,41 +368,11 @@ static struct regulator_init_data beagle_vsim = {
377 .consumer_supplies = &beagle_vsim_supply, 368 .consumer_supplies = &beagle_vsim_supply,
378}; 369};
379 370
380/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
381static struct regulator_init_data beagle_vdac = {
382 .constraints = {
383 .min_uV = 1800000,
384 .max_uV = 1800000,
385 .valid_modes_mask = REGULATOR_MODE_NORMAL
386 | REGULATOR_MODE_STANDBY,
387 .valid_ops_mask = REGULATOR_CHANGE_MODE
388 | REGULATOR_CHANGE_STATUS,
389 },
390 .num_consumer_supplies = 1,
391 .consumer_supplies = &beagle_vdac_supply,
392};
393
394/* VPLL2 for digital video outputs */
395static struct regulator_init_data beagle_vpll2 = {
396 .constraints = {
397 .min_uV = 1800000,
398 .max_uV = 1800000,
399 .valid_modes_mask = REGULATOR_MODE_NORMAL
400 | REGULATOR_MODE_STANDBY,
401 .valid_ops_mask = REGULATOR_CHANGE_MODE
402 | REGULATOR_CHANGE_STATUS,
403 },
404 .num_consumer_supplies = ARRAY_SIZE(beagle_vdds_supplies),
405 .consumer_supplies = beagle_vdds_supplies,
406};
407
408static struct twl4030_platform_data beagle_twldata = { 371static struct twl4030_platform_data beagle_twldata = {
409 /* platform_data for children goes here */ 372 /* platform_data for children goes here */
410 .gpio = &beagle_gpio_data, 373 .gpio = &beagle_gpio_data,
411 .vmmc1 = &beagle_vmmc1, 374 .vmmc1 = &beagle_vmmc1,
412 .vsim = &beagle_vsim, 375 .vsim = &beagle_vsim,
413 .vdac = &beagle_vdac,
414 .vpll2 = &beagle_vpll2,
415}; 376};
416 377
417static struct i2c_board_info __initdata beagle_i2c_eeprom[] = { 378static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
@@ -423,7 +384,10 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
423static int __init omap3_beagle_i2c_init(void) 384static int __init omap3_beagle_i2c_init(void)
424{ 385{
425 omap3_pmic_get_config(&beagle_twldata, 386 omap3_pmic_get_config(&beagle_twldata,
426 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO, 0); 387 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
388 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
389 beagle_twldata.vpll2->constraints.name = "VDVI";
390
427 omap3_pmic_init("twl4030", &beagle_twldata); 391 omap3_pmic_init("twl4030", &beagle_twldata);
428 /* Bus 3 is attached to the DVI port where devices like the pico DLP 392 /* Bus 3 is attached to the DVI port where devices like the pico DLP
429 * projector don't work reliably with 400kHz */ 393 * projector don't work reliably with 400kHz */
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 4960769171d..5f523749e5c 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -435,45 +435,6 @@ static struct twl4030_keypad_data omap3evm_kp_data = {
435 .rep = 1, 435 .rep = 1,
436}; 436};
437 437
438static struct regulator_consumer_supply omap3_evm_vdda_dac_supply =
439 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
440
441/* VDAC for DSS driving S-Video */
442static struct regulator_init_data omap3_evm_vdac = {
443 .constraints = {
444 .min_uV = 1800000,
445 .max_uV = 1800000,
446 .apply_uV = true,
447 .valid_modes_mask = REGULATOR_MODE_NORMAL
448 | REGULATOR_MODE_STANDBY,
449 .valid_ops_mask = REGULATOR_CHANGE_MODE
450 | REGULATOR_CHANGE_STATUS,
451 },
452 .num_consumer_supplies = 1,
453 .consumer_supplies = &omap3_evm_vdda_dac_supply,
454};
455
456/* VPLL2 for digital video outputs */
457static struct regulator_consumer_supply omap3_evm_vdds_supplies[] = {
458 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
459 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
460 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
461};
462
463static struct regulator_init_data omap3_evm_vpll2 = {
464 .constraints = {
465 .min_uV = 1800000,
466 .max_uV = 1800000,
467 .apply_uV = true,
468 .valid_modes_mask = REGULATOR_MODE_NORMAL
469 | REGULATOR_MODE_STANDBY,
470 .valid_ops_mask = REGULATOR_CHANGE_MODE
471 | REGULATOR_CHANGE_STATUS,
472 },
473 .num_consumer_supplies = ARRAY_SIZE(omap3_evm_vdds_supplies),
474 .consumer_supplies = omap3_evm_vdds_supplies,
475};
476
477/* ads7846 on SPI */ 438/* ads7846 on SPI */
478static struct regulator_consumer_supply omap3evm_vio_supply = 439static struct regulator_consumer_supply omap3evm_vio_supply =
479 REGULATOR_SUPPLY("vcc", "spi1.0"); 440 REGULATOR_SUPPLY("vcc", "spi1.0");
@@ -538,8 +499,6 @@ static struct twl4030_platform_data omap3evm_twldata = {
538 /* platform_data for children goes here */ 499 /* platform_data for children goes here */
539 .keypad = &omap3evm_kp_data, 500 .keypad = &omap3evm_kp_data,
540 .gpio = &omap3evm_gpio_data, 501 .gpio = &omap3evm_gpio_data,
541 .vdac = &omap3_evm_vdac,
542 .vpll2 = &omap3_evm_vpll2,
543 .vio = &omap3evm_vio, 502 .vio = &omap3evm_vio,
544 .vmmc1 = &omap3evm_vmmc1, 503 .vmmc1 = &omap3evm_vmmc1,
545 .vsim = &omap3evm_vsim, 504 .vsim = &omap3evm_vsim,
@@ -548,8 +507,11 @@ static struct twl4030_platform_data omap3evm_twldata = {
548static int __init omap3_evm_i2c_init(void) 507static int __init omap3_evm_i2c_init(void)
549{ 508{
550 omap3_pmic_get_config(&omap3evm_twldata, 509 omap3_pmic_get_config(&omap3evm_twldata,
551 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC | 510 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC |
552 TWL_COMMON_PDATA_AUDIO, 0); 511 TWL_COMMON_PDATA_AUDIO,
512 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
513 omap3evm_twldata.vdac->constraints.apply_uV = true;
514 omap3evm_twldata.vpll2->constraints.apply_uV = true;
553 omap3_pmic_init("twl4030", &omap3evm_twldata); 515 omap3_pmic_init("twl4030", &omap3evm_twldata);
554 omap_register_i2c_bus(2, 400, NULL, 0); 516 omap_register_i2c_bus(2, 400, NULL, 0);
555 omap_register_i2c_bus(3, 400, NULL, 0); 517 omap_register_i2c_bus(3, 400, NULL, 0);
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 7bfe109c090..db8b2064a0f 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -329,9 +329,6 @@ static struct regulator_consumer_supply pandora_vmmc2_supply =
329static struct regulator_consumer_supply pandora_vmmc3_supply = 329static struct regulator_consumer_supply pandora_vmmc3_supply =
330 REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"); 330 REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2");
331 331
332static struct regulator_consumer_supply pandora_vdda_dac_supply =
333 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
334
335static struct regulator_consumer_supply pandora_vdds_supplies[] = { 332static struct regulator_consumer_supply pandora_vdds_supplies[] = {
336 REGULATOR_SUPPLY("vdds_sdi", "omapdss"), 333 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
337 REGULATOR_SUPPLY("vdds_dsi", "omapdss"), 334 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
@@ -384,36 +381,6 @@ static struct regulator_init_data pandora_vmmc2 = {
384 .consumer_supplies = &pandora_vmmc2_supply, 381 .consumer_supplies = &pandora_vmmc2_supply,
385}; 382};
386 383
387/* VDAC for DSS driving S-Video */
388static struct regulator_init_data pandora_vdac = {
389 .constraints = {
390 .min_uV = 1800000,
391 .max_uV = 1800000,
392 .apply_uV = true,
393 .valid_modes_mask = REGULATOR_MODE_NORMAL
394 | REGULATOR_MODE_STANDBY,
395 .valid_ops_mask = REGULATOR_CHANGE_MODE
396 | REGULATOR_CHANGE_STATUS,
397 },
398 .num_consumer_supplies = 1,
399 .consumer_supplies = &pandora_vdda_dac_supply,
400};
401
402/* VPLL2 for digital video outputs */
403static struct regulator_init_data pandora_vpll2 = {
404 .constraints = {
405 .min_uV = 1800000,
406 .max_uV = 1800000,
407 .apply_uV = true,
408 .valid_modes_mask = REGULATOR_MODE_NORMAL
409 | REGULATOR_MODE_STANDBY,
410 .valid_ops_mask = REGULATOR_CHANGE_MODE
411 | REGULATOR_CHANGE_STATUS,
412 },
413 .num_consumer_supplies = ARRAY_SIZE(pandora_vdds_supplies),
414 .consumer_supplies = pandora_vdds_supplies,
415};
416
417/* VAUX1 for LCD */ 384/* VAUX1 for LCD */
418static struct regulator_init_data pandora_vaux1 = { 385static struct regulator_init_data pandora_vaux1 = {
419 .constraints = { 386 .constraints = {
@@ -507,8 +474,6 @@ static struct twl4030_platform_data omap3pandora_twldata = {
507 .gpio = &omap3pandora_gpio_data, 474 .gpio = &omap3pandora_gpio_data,
508 .vmmc1 = &pandora_vmmc1, 475 .vmmc1 = &pandora_vmmc1,
509 .vmmc2 = &pandora_vmmc2, 476 .vmmc2 = &pandora_vmmc2,
510 .vdac = &pandora_vdac,
511 .vpll2 = &pandora_vpll2,
512 .vaux1 = &pandora_vaux1, 477 .vaux1 = &pandora_vaux1,
513 .vaux2 = &pandora_vaux2, 478 .vaux2 = &pandora_vaux2,
514 .vaux4 = &pandora_vaux4, 479 .vaux4 = &pandora_vaux4,
@@ -527,7 +492,14 @@ static struct i2c_board_info __initdata omap3pandora_i2c3_boardinfo[] = {
527static int __init omap3pandora_i2c_init(void) 492static int __init omap3pandora_i2c_init(void)
528{ 493{
529 omap3_pmic_get_config(&omap3pandora_twldata, 494 omap3_pmic_get_config(&omap3pandora_twldata,
530 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO, 0); 495 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
496 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
497 omap3pandora_twldata.vdac->constraints.apply_uV = true;
498 omap3pandora_twldata.vpll2->constraints.apply_uV = true;
499 omap3pandora_twldata.vpll2->num_consumer_supplies =
500 ARRAY_SIZE(pandora_vdds_supplies);
501 omap3pandora_twldata.vpll2->consumer_supplies = pandora_vdds_supplies;
502
531 omap3_pmic_init("tps65950", &omap3pandora_twldata); 503 omap3_pmic_init("tps65950", &omap3pandora_twldata);
532 /* i2c2 pins are not connected */ 504 /* i2c2 pins are not connected */
533 omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo, 505 omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo,
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index 1806e3e2c5f..ba4d1d24633 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -390,51 +390,10 @@ static struct twl4030_keypad_data omap3stalker_kp_data = {
390 .rep = 1, 390 .rep = 1,
391}; 391};
392 392
393static struct regulator_consumer_supply omap3_stalker_vdda_dac_supply =
394 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
395
396/* VDAC for DSS driving S-Video */
397static struct regulator_init_data omap3_stalker_vdac = {
398 .constraints = {
399 .min_uV = 1800000,
400 .max_uV = 1800000,
401 .apply_uV = true,
402 .valid_modes_mask = REGULATOR_MODE_NORMAL
403 | REGULATOR_MODE_STANDBY,
404 .valid_ops_mask = REGULATOR_CHANGE_MODE
405 | REGULATOR_CHANGE_STATUS,
406 },
407 .num_consumer_supplies = 1,
408 .consumer_supplies = &omap3_stalker_vdda_dac_supply,
409};
410
411/* VPLL2 for digital video outputs */
412static struct regulator_consumer_supply omap3_stalker_vpll2_supplies[] = {
413 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
414 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
415};
416
417static struct regulator_init_data omap3_stalker_vpll2 = {
418 .constraints = {
419 .name = "VDVI",
420 .min_uV = 1800000,
421 .max_uV = 1800000,
422 .apply_uV = true,
423 .valid_modes_mask = REGULATOR_MODE_NORMAL
424 | REGULATOR_MODE_STANDBY,
425 .valid_ops_mask = REGULATOR_CHANGE_MODE
426 | REGULATOR_CHANGE_STATUS,
427 },
428 .num_consumer_supplies = ARRAY_SIZE(omap3_stalker_vpll2_supplies),
429 .consumer_supplies = omap3_stalker_vpll2_supplies,
430};
431
432static struct twl4030_platform_data omap3stalker_twldata = { 393static struct twl4030_platform_data omap3stalker_twldata = {
433 /* platform_data for children goes here */ 394 /* platform_data for children goes here */
434 .keypad = &omap3stalker_kp_data, 395 .keypad = &omap3stalker_kp_data,
435 .gpio = &omap3stalker_gpio_data, 396 .gpio = &omap3stalker_gpio_data,
436 .vdac = &omap3_stalker_vdac,
437 .vpll2 = &omap3_stalker_vpll2,
438 .vmmc1 = &omap3stalker_vmmc1, 397 .vmmc1 = &omap3stalker_vmmc1,
439 .vsim = &omap3stalker_vsim, 398 .vsim = &omap3stalker_vsim,
440}; 399};
@@ -457,7 +416,12 @@ static int __init omap3_stalker_i2c_init(void)
457{ 416{
458 omap3_pmic_get_config(&omap3stalker_twldata, 417 omap3_pmic_get_config(&omap3stalker_twldata,
459 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC | 418 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC |
460 TWL_COMMON_PDATA_AUDIO, 0); 419 TWL_COMMON_PDATA_AUDIO,
420 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
421 omap3stalker_twldata.vdac->constraints.apply_uV = true;
422 omap3stalker_twldata.vpll2->constraints.apply_uV = true;
423 omap3stalker_twldata.vpll2->constraints.name = "VDVI";
424
461 omap3_pmic_init("twl4030", &omap3stalker_twldata); 425 omap3_pmic_init("twl4030", &omap3stalker_twldata);
462 omap_register_i2c_bus(2, 400, NULL, 0); 426 omap_register_i2c_bus(2, 400, NULL, 0);
463 omap_register_i2c_bus(3, 400, omap3stalker_i2c_boardinfo3, 427 omap_register_i2c_bus(3, 400, omap3stalker_i2c_boardinfo3,
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index 094ea80f234..a0a3cf001d8 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -207,42 +207,11 @@ static struct regulator_init_data touchbook_vsim = {
207 .consumer_supplies = &touchbook_vsim_supply, 207 .consumer_supplies = &touchbook_vsim_supply,
208}; 208};
209 209
210/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
211static struct regulator_init_data touchbook_vdac = {
212 .constraints = {
213 .min_uV = 1800000,
214 .max_uV = 1800000,
215 .valid_modes_mask = REGULATOR_MODE_NORMAL
216 | REGULATOR_MODE_STANDBY,
217 .valid_ops_mask = REGULATOR_CHANGE_MODE
218 | REGULATOR_CHANGE_STATUS,
219 },
220 .num_consumer_supplies = 1,
221 .consumer_supplies = &touchbook_vdac_supply,
222};
223
224/* VPLL2 for digital video outputs */
225static struct regulator_init_data touchbook_vpll2 = {
226 .constraints = {
227 .name = "VDVI",
228 .min_uV = 1800000,
229 .max_uV = 1800000,
230 .valid_modes_mask = REGULATOR_MODE_NORMAL
231 | REGULATOR_MODE_STANDBY,
232 .valid_ops_mask = REGULATOR_CHANGE_MODE
233 | REGULATOR_CHANGE_STATUS,
234 },
235 .num_consumer_supplies = 1,
236 .consumer_supplies = &touchbook_vdvi_supply,
237};
238
239static struct twl4030_platform_data touchbook_twldata = { 210static struct twl4030_platform_data touchbook_twldata = {
240 /* platform_data for children goes here */ 211 /* platform_data for children goes here */
241 .gpio = &touchbook_gpio_data, 212 .gpio = &touchbook_gpio_data,
242 .vmmc1 = &touchbook_vmmc1, 213 .vmmc1 = &touchbook_vmmc1,
243 .vsim = &touchbook_vsim, 214 .vsim = &touchbook_vsim,
244 .vdac = &touchbook_vdac,
245 .vpll2 = &touchbook_vpll2,
246}; 215};
247 216
248static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = { 217static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = {
@@ -255,7 +224,14 @@ static int __init omap3_touchbook_i2c_init(void)
255{ 224{
256 /* Standard TouchBook bus */ 225 /* Standard TouchBook bus */
257 omap3_pmic_get_config(&touchbook_twldata, 226 omap3_pmic_get_config(&touchbook_twldata,
258 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO, 0); 227 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
228 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
229 touchbook_twldata.vdac->num_consumer_supplies = 1;
230 touchbook_twldata.vdac->consumer_supplies = &touchbook_vdac_supply;
231 touchbook_twldata.vpll2->constraints.name = "VDVI";
232 touchbook_twldata.vpll2->num_consumer_supplies = 1;
233 touchbook_twldata.vpll2->consumer_supplies = &touchbook_vdvi_supply;
234
259 omap3_pmic_init("twl4030", &touchbook_twldata); 235 omap3_pmic_init("twl4030", &touchbook_twldata);
260 /* Additional TouchBook bus */ 236 /* Additional TouchBook bus */
261 omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo, 237 omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo,
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index f334829a9af..e3fa177558a 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -264,14 +264,6 @@ static struct omap_dss_board_info overo_dss_data = {
264 .default_device = &overo_dvi_device, 264 .default_device = &overo_dvi_device,
265}; 265};
266 266
267static struct regulator_consumer_supply overo_vdda_dac_supply =
268 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
269
270static struct regulator_consumer_supply overo_vdds_dsi_supply[] = {
271 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
272 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
273};
274
275static struct mtd_partition overo_nand_partitions[] = { 267static struct mtd_partition overo_nand_partitions[] = {
276 { 268 {
277 .name = "xloader", 269 .name = "xloader",
@@ -447,46 +439,18 @@ static struct regulator_init_data overo_vmmc1 = {
447 .consumer_supplies = &overo_vmmc1_supply, 439 .consumer_supplies = &overo_vmmc1_supply,
448}; 440};
449 441
450/* VDAC for DSS driving S-Video (8 mA unloaded, max 65 mA) */
451static struct regulator_init_data overo_vdac = {
452 .constraints = {
453 .min_uV = 1800000,
454 .max_uV = 1800000,
455 .valid_modes_mask = REGULATOR_MODE_NORMAL
456 | REGULATOR_MODE_STANDBY,
457 .valid_ops_mask = REGULATOR_CHANGE_MODE
458 | REGULATOR_CHANGE_STATUS,
459 },
460 .num_consumer_supplies = 1,
461 .consumer_supplies = &overo_vdda_dac_supply,
462};
463
464/* VPLL2 for digital video outputs */
465static struct regulator_init_data overo_vpll2 = {
466 .constraints = {
467 .name = "VDVI",
468 .min_uV = 1800000,
469 .max_uV = 1800000,
470 .valid_modes_mask = REGULATOR_MODE_NORMAL
471 | REGULATOR_MODE_STANDBY,
472 .valid_ops_mask = REGULATOR_CHANGE_MODE
473 | REGULATOR_CHANGE_STATUS,
474 },
475 .num_consumer_supplies = ARRAY_SIZE(overo_vdds_dsi_supply),
476 .consumer_supplies = overo_vdds_dsi_supply,
477};
478
479static struct twl4030_platform_data overo_twldata = { 442static struct twl4030_platform_data overo_twldata = {
480 .gpio = &overo_gpio_data, 443 .gpio = &overo_gpio_data,
481 .vmmc1 = &overo_vmmc1, 444 .vmmc1 = &overo_vmmc1,
482 .vdac = &overo_vdac,
483 .vpll2 = &overo_vpll2,
484}; 445};
485 446
486static int __init overo_i2c_init(void) 447static int __init overo_i2c_init(void)
487{ 448{
488 omap3_pmic_get_config(&overo_twldata, 449 omap3_pmic_get_config(&overo_twldata,
489 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO, 0); 450 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_AUDIO,
451 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
452 overo_twldata.vpll2->constraints.name = "VDVI";
453
490 omap3_pmic_init("tps65950", &overo_twldata); 454 omap3_pmic_init("tps65950", &overo_twldata);
491 /* i2c2 pins are used for gpio */ 455 /* i2c2 pins are used for gpio */
492 omap_register_i2c_bus(3, 400, NULL, 0); 456 omap_register_i2c_bus(3, 400, NULL, 0);
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 2a6ef491374..d727479d92c 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -391,10 +391,6 @@ static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
391 REGULATOR_SUPPLY("vdd", "2-0063"), 391 REGULATOR_SUPPLY("vdd", "2-0063"),
392}; 392};
393 393
394static struct regulator_consumer_supply rx51_vdac_supply[] = {
395 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
396};
397
398static struct regulator_init_data rx51_vaux1 = { 394static struct regulator_init_data rx51_vaux1 = {
399 .constraints = { 395 .constraints = {
400 .name = "V28", 396 .name = "V28",
@@ -511,21 +507,6 @@ static struct regulator_init_data rx51_vsim = {
511 .consumer_supplies = &rx51_vsim_supply, 507 .consumer_supplies = &rx51_vsim_supply,
512}; 508};
513 509
514static struct regulator_init_data rx51_vdac = {
515 .constraints = {
516 .name = "VDAC",
517 .min_uV = 1800000,
518 .max_uV = 1800000,
519 .apply_uV = true,
520 .valid_modes_mask = REGULATOR_MODE_NORMAL
521 | REGULATOR_MODE_STANDBY,
522 .valid_ops_mask = REGULATOR_CHANGE_MODE
523 | REGULATOR_CHANGE_STATUS,
524 },
525 .num_consumer_supplies = 1,
526 .consumer_supplies = rx51_vdac_supply,
527};
528
529static struct regulator_init_data rx51_vio = { 510static struct regulator_init_data rx51_vio = {
530 .constraints = { 511 .constraints = {
531 .min_uV = 1800000, 512 .min_uV = 1800000,
@@ -778,7 +759,6 @@ static struct twl4030_platform_data rx51_twldata __initdata = {
778 .vaux4 = &rx51_vaux4, 759 .vaux4 = &rx51_vaux4,
779 .vmmc1 = &rx51_vmmc1, 760 .vmmc1 = &rx51_vmmc1,
780 .vsim = &rx51_vsim, 761 .vsim = &rx51_vsim,
781 .vdac = &rx51_vdac,
782 .vio = &rx51_vio, 762 .vio = &rx51_vio,
783}; 763};
784 764
@@ -835,7 +815,10 @@ static int __init rx51_i2c_init(void)
835 } 815 }
836 rx51_twldata.vmmc2 = &rx51_vmmc2; 816 rx51_twldata.vmmc2 = &rx51_vmmc2;
837 omap3_pmic_get_config(&rx51_twldata, 817 omap3_pmic_get_config(&rx51_twldata,
838 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC, 0); 818 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC,
819 TWL_COMMON_REGULATOR_VDAC);
820 rx51_twldata.vdac->constraints.apply_uV = true;
821 rx51_twldata.vdac->constraints.name = "VDAC";
839 omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ, &rx51_twldata); 822 omap_pmic_init(1, 2200, "twl5030", INT_34XX_SYS_NIRQ, &rx51_twldata);
840 omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2, 823 omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
841 ARRAY_SIZE(rx51_peripherals_i2c_board_info_2)); 824 ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index 58c0c6ed078..8853dc4827a 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -227,40 +227,6 @@ static struct omap2_hsmmc_info mmc[] = {
227 {} /* Terminator */ 227 {} /* Terminator */
228}; 228};
229 229
230static struct regulator_consumer_supply zoom_vpll2_supplies[] = {
231 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
232 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
233};
234
235static struct regulator_consumer_supply zoom_vdda_dac_supply =
236 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
237
238static struct regulator_init_data zoom_vpll2 = {
239 .constraints = {
240 .min_uV = 1800000,
241 .max_uV = 1800000,
242 .valid_modes_mask = REGULATOR_MODE_NORMAL
243 | REGULATOR_MODE_STANDBY,
244 .valid_ops_mask = REGULATOR_CHANGE_MODE
245 | REGULATOR_CHANGE_STATUS,
246 },
247 .num_consumer_supplies = ARRAY_SIZE(zoom_vpll2_supplies),
248 .consumer_supplies = zoom_vpll2_supplies,
249};
250
251static struct regulator_init_data zoom_vdac = {
252 .constraints = {
253 .min_uV = 1800000,
254 .max_uV = 1800000,
255 .valid_modes_mask = REGULATOR_MODE_NORMAL
256 | REGULATOR_MODE_STANDBY,
257 .valid_ops_mask = REGULATOR_CHANGE_MODE
258 | REGULATOR_CHANGE_STATUS,
259 },
260 .num_consumer_supplies = 1,
261 .consumer_supplies = &zoom_vdda_dac_supply,
262};
263
264static int zoom_twl_gpio_setup(struct device *dev, 230static int zoom_twl_gpio_setup(struct device *dev,
265 unsigned gpio, unsigned ngpio) 231 unsigned gpio, unsigned ngpio)
266{ 232{
@@ -306,15 +272,14 @@ static struct twl4030_platform_data zoom_twldata = {
306 .vmmc1 = &zoom_vmmc1, 272 .vmmc1 = &zoom_vmmc1,
307 .vmmc2 = &zoom_vmmc2, 273 .vmmc2 = &zoom_vmmc2,
308 .vsim = &zoom_vsim, 274 .vsim = &zoom_vsim,
309 .vpll2 = &zoom_vpll2,
310 .vdac = &zoom_vdac,
311}; 275};
312 276
313static int __init omap_i2c_init(void) 277static int __init omap_i2c_init(void)
314{ 278{
315 omap3_pmic_get_config(&zoom_twldata, 279 omap3_pmic_get_config(&zoom_twldata,
316 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI | 280 TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI |
317 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, 0); 281 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
282 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
318 283
319 if (machine_is_omap_zoom2()) { 284 if (machine_is_omap_zoom2()) {
320 struct twl4030_codec_audio_data *audio_data; 285 struct twl4030_codec_audio_data *audio_data;
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index 2487e3c60a3..f15f8802bca 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -87,6 +87,41 @@ static struct twl4030_codec_data omap3_codec_pdata = {
87 .audio = &omap3_audio, 87 .audio = &omap3_audio,
88}; 88};
89 89
90static struct regulator_consumer_supply omap3_vdda_dac_supplies[] = {
91 REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"),
92};
93
94static struct regulator_init_data omap3_vdac_idata = {
95 .constraints = {
96 .min_uV = 1800000,
97 .max_uV = 1800000,
98 .valid_modes_mask = REGULATOR_MODE_NORMAL
99 | REGULATOR_MODE_STANDBY,
100 .valid_ops_mask = REGULATOR_CHANGE_MODE
101 | REGULATOR_CHANGE_STATUS,
102 },
103 .num_consumer_supplies = ARRAY_SIZE(omap3_vdda_dac_supplies),
104 .consumer_supplies = omap3_vdda_dac_supplies,
105};
106
107static struct regulator_consumer_supply omap3_vpll2_supplies[] = {
108 REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
109 REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
110};
111
112static struct regulator_init_data omap3_vpll2_idata = {
113 .constraints = {
114 .min_uV = 1800000,
115 .max_uV = 1800000,
116 .valid_modes_mask = REGULATOR_MODE_NORMAL
117 | REGULATOR_MODE_STANDBY,
118 .valid_ops_mask = REGULATOR_CHANGE_MODE
119 | REGULATOR_CHANGE_STATUS,
120 },
121 .num_consumer_supplies = ARRAY_SIZE(omap3_vpll2_supplies),
122 .consumer_supplies = omap3_vpll2_supplies,
123};
124
90static struct regulator_init_data omap4_vdac_idata = { 125static struct regulator_init_data omap4_vdac_idata = {
91 .constraints = { 126 .constraints = {
92 .min_uV = 1800000, 127 .min_uV = 1800000,
@@ -259,4 +294,11 @@ void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
259 294
260 if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->codec) 295 if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->codec)
261 pmic_data->codec = &omap3_codec_pdata; 296 pmic_data->codec = &omap3_codec_pdata;
297
298 /* Common regulator configurations */
299 if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac)
300 pmic_data->vdac = &omap3_vdac_idata;
301
302 if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 && !pmic_data->vpll2)
303 pmic_data->vpll2 = &omap3_vpll2_idata;
262} 304}
diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-omap2/twl-common.h
index 3b4b05d529b..5e83a5bd37f 100644
--- a/arch/arm/mach-omap2/twl-common.h
+++ b/arch/arm/mach-omap2/twl-common.h
@@ -21,6 +21,11 @@
21#define TWL_COMMON_REGULATOR_VUSB (1 << 9) 21#define TWL_COMMON_REGULATOR_VUSB (1 << 9)
22#define TWL_COMMON_REGULATOR_CLK32KG (1 << 10) 22#define TWL_COMMON_REGULATOR_CLK32KG (1 << 10)
23 23
24/* TWL4030 LDO regulators */
25#define TWL_COMMON_REGULATOR_VPLL1 (1 << 4)
26#define TWL_COMMON_REGULATOR_VPLL2 (1 << 5)
27
28
24struct twl4030_platform_data; 29struct twl4030_platform_data;
25 30
26void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq, 31void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq,