aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-rx51-peripherals.c
diff options
context:
space:
mode:
authorKalle Jokiniemi <kalle.jokiniemi@nokia.com>2011-07-05 06:38:22 -0400
committerTony Lindgren <tony@atomide.com>2011-07-05 06:38:22 -0400
commit094fc5593174e48366804484e2070f178a5317cb (patch)
treea8c95352135fe899f4e67d28d5e78a83d6e0bfc3 /arch/arm/mach-omap2/board-rx51-peripherals.c
parenteeada9e89ff72cfb66e46d682bb3b8acdc0d95bd (diff)
OMAP3: rx-51: Add full regulator definitions
The vaux2 (VCSI) regulator is left on by the bootloader in rx-51. Since there the product has shipped and there won't be any bootloader updates to fix this issue, we need to define all the regulators and declare full constraints for the regulator FW. This will allow the regulator FW to disable unused regulators. Also this helps in adding more fine grain regulator support for rx-51 in the future. Thanks for Mark Brown for pointing out the correct solution. Signed-off-by: Kalle Jokiniemi <kalle.jokiniemi@nokia.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/board-rx51-peripherals.c')
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index c1938dffb946..7d3775425170 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -563,6 +563,32 @@ static struct regulator_init_data rx51_vmmc2 = {
563 .consumer_supplies = rx51_vmmc2_supplies, 563 .consumer_supplies = rx51_vmmc2_supplies,
564}; 564};
565 565
566static struct regulator_init_data rx51_vpll1 = {
567 .constraints = {
568 .name = "VPLL",
569 .min_uV = 1800000,
570 .max_uV = 1800000,
571 .apply_uV = true,
572 .always_on = true,
573 .valid_modes_mask = REGULATOR_MODE_NORMAL
574 | REGULATOR_MODE_STANDBY,
575 .valid_ops_mask = REGULATOR_CHANGE_MODE,
576 },
577};
578
579static struct regulator_init_data rx51_vpll2 = {
580 .constraints = {
581 .name = "VSDI_CSI",
582 .min_uV = 1800000,
583 .max_uV = 1800000,
584 .apply_uV = true,
585 .always_on = true,
586 .valid_modes_mask = REGULATOR_MODE_NORMAL
587 | REGULATOR_MODE_STANDBY,
588 .valid_ops_mask = REGULATOR_CHANGE_MODE,
589 },
590};
591
566static struct regulator_init_data rx51_vsim = { 592static struct regulator_init_data rx51_vsim = {
567 .constraints = { 593 .constraints = {
568 .name = "VMMC2_IO_18", 594 .name = "VMMC2_IO_18",
@@ -607,6 +633,43 @@ static struct regulator_init_data rx51_vio = {
607 .consumer_supplies = rx51_vio_supplies, 633 .consumer_supplies = rx51_vio_supplies,
608}; 634};
609 635
636static struct regulator_init_data rx51_vintana1 = {
637 .constraints = {
638 .name = "VINTANA1",
639 .min_uV = 1500000,
640 .max_uV = 1500000,
641 .always_on = true,
642 .valid_modes_mask = REGULATOR_MODE_NORMAL
643 | REGULATOR_MODE_STANDBY,
644 .valid_ops_mask = REGULATOR_CHANGE_MODE,
645 },
646};
647
648static struct regulator_init_data rx51_vintana2 = {
649 .constraints = {
650 .name = "VINTANA2",
651 .min_uV = 2750000,
652 .max_uV = 2750000,
653 .apply_uV = true,
654 .always_on = true,
655 .valid_modes_mask = REGULATOR_MODE_NORMAL
656 | REGULATOR_MODE_STANDBY,
657 .valid_ops_mask = REGULATOR_CHANGE_MODE,
658 },
659};
660
661static struct regulator_init_data rx51_vintdig = {
662 .constraints = {
663 .name = "VINTDIG",
664 .min_uV = 1500000,
665 .max_uV = 1500000,
666 .always_on = true,
667 .valid_modes_mask = REGULATOR_MODE_NORMAL
668 | REGULATOR_MODE_STANDBY,
669 .valid_ops_mask = REGULATOR_CHANGE_MODE,
670 },
671};
672
610static struct si4713_platform_data rx51_si4713_i2c_data __initdata_or_module = { 673static struct si4713_platform_data rx51_si4713_i2c_data __initdata_or_module = {
611 .gpio_reset = RX51_FMTX_RESET_GPIO, 674 .gpio_reset = RX51_FMTX_RESET_GPIO,
612}; 675};
@@ -853,8 +916,13 @@ static struct twl4030_platform_data rx51_twldata __initdata = {
853 .vaux2 = &rx51_vaux2, 916 .vaux2 = &rx51_vaux2,
854 .vaux4 = &rx51_vaux4, 917 .vaux4 = &rx51_vaux4,
855 .vmmc1 = &rx51_vmmc1, 918 .vmmc1 = &rx51_vmmc1,
919 .vpll1 = &rx51_vpll1,
920 .vpll2 = &rx51_vpll2,
856 .vsim = &rx51_vsim, 921 .vsim = &rx51_vsim,
857 .vdac = &rx51_vdac, 922 .vdac = &rx51_vdac,
923 .vintana1 = &rx51_vintana1,
924 .vintana2 = &rx51_vintana2,
925 .vintdig = &rx51_vintdig,
858 .vio = &rx51_vio, 926 .vio = &rx51_vio,
859}; 927};
860 928
@@ -1042,6 +1110,7 @@ error:
1042void __init rx51_peripherals_init(void) 1110void __init rx51_peripherals_init(void)
1043{ 1111{
1044 rx51_i2c_init(); 1112 rx51_i2c_init();
1113 regulator_has_full_constraints();
1045 gpmc_onenand_init(board_onenand_data); 1114 gpmc_onenand_init(board_onenand_data);
1046 board_smc91x_init(); 1115 board_smc91x_init();
1047 rx51_add_gpio_keys(); 1116 rx51_add_gpio_keys();