Modified board-3430sdp.c to use PMIC initialization macros / wrappers
for TWL4030 regulator.

Signed-off-by: Anuj Aggarwal <[email protected]>
---
 arch/arm/mach-omap2/board-3430sdp.c |  196 +++++++++--------------------------
 1 files changed, 51 insertions(+), 145 deletions(-)

diff --git a/arch/arm/mach-omap2/board-3430sdp.c 
b/arch/arm/mach-omap2/board-3430sdp.c
index a3c1271..d87e50d 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -44,6 +44,8 @@
 #include "sdram-qimonda-hyb18m512160af-6.h"
 #include "mmc-twl4030.h"
 
+#include "board-omap35x-pmic.h"
+
 #define CONFIG_DISABLE_HFCLK 1
 
 #define SDP3430_TS_GPIO_IRQ_SDPV1      3
@@ -157,15 +159,10 @@ static struct platform_device sdp3430_lcd_device = {
        .id             = -1,
 };
 
-static struct regulator_consumer_supply sdp3430_vdac_supply = {
-       .supply         = "vdac",
-       .dev            = &sdp3430_lcd_device.dev,
-};
-
-static struct regulator_consumer_supply sdp3430_vdvi_supply = {
-       .supply         = "vdvi",
-       .dev            = &sdp3430_lcd_device.dev,
-};
+/* Create a single supply for VDAC */
+REGULATOR_CONSUMER_SINGLE_SUPPLY(vdac, vdac, &sdp3430_lcd_device.dev);
+/* Create a single supply for VDAC */
+REGULATOR_CONSUMER_SINGLE_SUPPLY(vpll2, vdvi, &sdp3430_lcd_device.dev);
 
 static struct platform_device *sdp3430_devices[] __initdata = {
        &sdp3430_lcd_device,
@@ -221,17 +218,12 @@ static struct twl4030_hsmmc_info mmc[] = {
        {}      /* Terminator */
 };
 
-static struct regulator_consumer_supply sdp3430_vmmc1_supply = {
-       .supply                 = "vmmc",
-};
-
-static struct regulator_consumer_supply sdp3430_vsim_supply = {
-       .supply                 = "vmmc_aux",
-};
-
-static struct regulator_consumer_supply sdp3430_vmmc2_supply = {
-       .supply                 = "vmmc",
-};
+/* Create default supply for VMMC1 */
+TWL_VMMC1_SUPPLY;
+/* Create default supply for VSIM */
+TWL_VSIM_SUPPLY;
+/* Create default supply for VMMC2 */
+TWL_VMMC2_SUPPLY;
 
 static int sdp3430_twl_gpio_setup(struct device *dev,
                unsigned gpio, unsigned ngpio)
@@ -246,9 +238,9 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
        /* link regulators to MMC adapters ... we "know" the
         * regulators will be set up only *after* we return.
         */
-       sdp3430_vmmc1_supply.dev = mmc[0].dev;
-       sdp3430_vsim_supply.dev = mmc[0].dev;
-       sdp3430_vmmc2_supply.dev = mmc[1].dev;
+       vmmc1_consumers[0].dev = mmc[0].dev;
+       vsim_consumers[0].dev = mmc[0].dev;
+       vmmc2_consumers[0].dev = mmc[1].dev;
 
        /* gpio + 7 is "sub_lcd_en_bkl" (output/PWM1) */
        gpio_request(gpio + 7, "sub_lcd_en_bkl");
@@ -282,133 +274,45 @@ static struct twl4030_madc_platform_data 
sdp3430_madc_data = {
  * Apply all the fixed voltages since most versions of U-Boot
  * don't bother with that initialization.
  */
-
+/* VAUX1 doesn't supply to anyone */
+REGULATOR_CONSUMER_NO_SUPPLY(vaux1);
+/* VAUX2 doesn't supply to anyone */
+REGULATOR_CONSUMER_NO_SUPPLY(vaux2);
+/* VAUX3 doesn't supply to anyone */
+REGULATOR_CONSUMER_NO_SUPPLY(vaux3);
+/* VAUX4 doesn't supply to anyone */
+REGULATOR_CONSUMER_NO_SUPPLY(vaux4);
+
+/* Create regulator initialization data for various regulators */
 /* VAUX1 for mainboard (irda and sub-lcd) */
-static struct regulator_init_data sdp3430_vaux1 = {
-       .constraints = {
-               .min_uV                 = 2800000,
-               .max_uV                 = 2800000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
-
+TWL_VAUX1_DATA;
 /* VAUX2 for camera module */
-static struct regulator_init_data sdp3430_vaux2 = {
-       .constraints = {
-               .min_uV                 = 2800000,
-               .max_uV                 = 2800000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
-
+TWL_VAUX2_DATA;
 /* VAUX3 for LCD board */
-static struct regulator_init_data sdp3430_vaux3 = {
-       .constraints = {
-               .min_uV                 = 2800000,
-               .max_uV                 = 2800000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
-
+TWL_VAUX3_DATA;
 /* VAUX4 for OMAP VDD_CSI2 (camera) */
-static struct regulator_init_data sdp3430_vaux4 = {
-       .constraints = {
-               .min_uV                 = 1800000,
-               .max_uV                 = 1800000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
+TWL_VAUX4_DATA;
 
 /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
-static struct regulator_init_data sdp3430_vmmc1 = {
-       .constraints = {
-               .min_uV                 = 1850000,
-               .max_uV                 = 3150000,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_VOLTAGE
-                                       | REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-       .num_consumer_supplies  = 1,
-       .consumer_supplies      = &sdp3430_vmmc1_supply,
-};
+REGULATOR_INIT_DATA(vmmc1, VMMC1, 1850000, 3150000,
+               TWL_REGULATOR_MODES_DEFAULT,
+               TWL_REGULATOR_OPS_DEFAULT | REGULATOR_CHANGE_VOLTAGE,
+               false);
 
 /* VMMC2 for MMC2 card */
-static struct regulator_init_data sdp3430_vmmc2 = {
-       .constraints = {
-               .min_uV                 = 1850000,
-               .max_uV                 = 1850000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-       .num_consumer_supplies  = 1,
-       .consumer_supplies      = &sdp3430_vmmc2_supply,
-};
+TWL_VMMC2_DATA;
 
 /* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
-static struct regulator_init_data sdp3430_vsim = {
-       .constraints = {
-               .min_uV                 = 1800000,
-               .max_uV                 = 3000000,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_VOLTAGE
-                                       | REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-       .num_consumer_supplies  = 1,
-       .consumer_supplies      = &sdp3430_vsim_supply,
-};
+REGULATOR_INIT_DATA(vsim, VSIM, 1800000, 3000000,
+               TWL_REGULATOR_MODES_DEFAULT,
+               TWL_REGULATOR_OPS_DEFAULT | REGULATOR_CHANGE_VOLTAGE,
+               false);
 
 /* VDAC for DSS driving S-Video */
-static struct regulator_init_data sdp3430_vdac = {
-       .constraints = {
-               .min_uV                 = 1800000,
-               .max_uV                 = 1800000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-       .num_consumer_supplies  = 1,
-       .consumer_supplies      = &sdp3430_vdac_supply,
-};
+TWL_VDAC_DATA;
 
 /* VPLL2 for digital video outputs */
-static struct regulator_init_data sdp3430_vpll2 = {
-       .constraints = {
-               .name                   = "VDVI",
-               .min_uV                 = 1800000,
-               .max_uV                 = 1800000,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask         = REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-       .num_consumer_supplies  = 1,
-       .consumer_supplies      = &sdp3430_vdvi_supply,
-};
+TWL_VPLL2_DATA;
 
 static struct twl4030_platform_data sdp3430_twldata = {
        .irq_base       = TWL4030_IRQ_BASE,
@@ -421,15 +325,15 @@ static struct twl4030_platform_data sdp3430_twldata = {
        .keypad         = &sdp3430_kp_data,
        .usb            = &sdp3430_usb_data,
 
-       .vaux1          = &sdp3430_vaux1,
-       .vaux2          = &sdp3430_vaux2,
-       .vaux3          = &sdp3430_vaux3,
-       .vaux4          = &sdp3430_vaux4,
-       .vmmc1          = &sdp3430_vmmc1,
-       .vmmc2          = &sdp3430_vmmc2,
-       .vsim           = &sdp3430_vsim,
-       .vdac           = &sdp3430_vdac,
-       .vpll2          = &sdp3430_vpll2,
+       .vaux1          = &vaux1_data[0],
+       .vaux2          = &vaux2_data[0],
+       .vaux3          = &vaux3_data[0],
+       .vaux4          = &vaux4_data[0],
+       .vmmc1          = &vmmc1_data[0],
+       .vmmc2          = &vmmc2_data[0],
+       .vsim           = &vsim_data[0],
+       .vdac           = &vdac_data[0],
+       .vpll2          = &vpll2_data[0],
 };
 
 static struct i2c_board_info __initdata sdp3430_i2c_boardinfo[] = {
@@ -499,6 +403,8 @@ static struct ehci_hcd_omap_platform_data ehci_pdata 
__initconst = {
 static void __init omap_3430sdp_init(void)
 {
        omap3430_i2c_init();
+       regulator_has_full_constraints();
+
        platform_add_devices(sdp3430_devices, ARRAY_SIZE(sdp3430_devices));
        if (omap_rev() > OMAP3430_REV_ES1_0)
                ts_gpio = SDP3430_TS_GPIO_IRQ_SDPV2;
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to