OMAP4: twl-common: Add twl6030 V1V8, V2V1 SMPS common configuration
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 9 May 2012 21:19:16 +0000 (14:19 -0700)
committerTony Lindgren <tony@atomide.com>
Wed, 9 May 2012 21:19:16 +0000 (14:19 -0700)
V1V8 supply from twl6030 commonly used as VIO for the machine.
V2V1 is adviced to supply the twl6040, and also to feed the twl6030's
VCXIO_IN, and VDAC_IN inputs.
Create the common regulator configurations for these regulators:
Make the V2V1 as supply_regulator for VCXIO, VDAC.
Add twl6040 (1-004b) as consumer for V1V8, and V2V1.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
[tony@atomide.com: updated for the pm regulator changes]
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-omap2/twl-common.h

index ee6596b..119d5a9 100644 (file)
@@ -266,6 +266,7 @@ static struct regulator_init_data omap4_vdac_idata = {
                .valid_ops_mask         = REGULATOR_CHANGE_MODE
                                        | REGULATOR_CHANGE_STATUS,
        },
+       .supply_regulator       = "V2V1",
 };
 
 static struct regulator_init_data omap4_vaux2_idata = {
@@ -356,6 +357,7 @@ static struct regulator_init_data omap4_vcxio_idata = {
        },
        .num_consumer_supplies  = ARRAY_SIZE(omap4_vcxio_supply),
        .consumer_supplies      = omap4_vcxio_supply,
+       .supply_regulator       = "V2V1",
 };
 
 static struct regulator_init_data omap4_vusb_idata = {
@@ -439,6 +441,41 @@ static struct twl_regulator_driver_data omap4_vdd3_drvdata = {
        .set_voltage = twl_set_voltage,
 };
 
+static struct regulator_consumer_supply omap4_v1v8_supply[] = {
+       REGULATOR_SUPPLY("vio", "1-004b"),
+};
+
+static struct regulator_init_data omap4_v1v8_idata = {
+       .constraints = {
+               .min_uV                 = 1800000,
+               .max_uV                 = 1800000,
+               .valid_modes_mask       = REGULATOR_MODE_NORMAL
+                                       | REGULATOR_MODE_STANDBY,
+               .valid_ops_mask         = REGULATOR_CHANGE_MODE
+                                       | REGULATOR_CHANGE_STATUS,
+               .always_on              = true,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(omap4_v1v8_supply),
+       .consumer_supplies      = omap4_v1v8_supply,
+};
+
+static struct regulator_consumer_supply omap4_v2v1_supply[] = {
+       REGULATOR_SUPPLY("v2v1", "1-004b"),
+};
+
+static struct regulator_init_data omap4_v2v1_idata = {
+       .constraints = {
+               .min_uV                 = 2100000,
+               .max_uV                 = 2100000,
+               .valid_modes_mask       = REGULATOR_MODE_NORMAL
+                                       | REGULATOR_MODE_STANDBY,
+               .valid_ops_mask         = REGULATOR_CHANGE_MODE
+                                       | REGULATOR_CHANGE_STATUS,
+       },
+       .num_consumer_supplies  = ARRAY_SIZE(omap4_v2v1_supply),
+       .consumer_supplies      = omap4_v2v1_supply,
+};
+
 void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
                                  u32 pdata_flags, u32 regulators_flags)
 {
@@ -497,5 +534,11 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
        if (regulators_flags & TWL_COMMON_REGULATOR_CLK32KG &&
            !pmic_data->clk32kg)
                pmic_data->clk32kg = &omap4_clk32kg_idata;
+
+       if (regulators_flags & TWL_COMMON_REGULATOR_V1V8 && !pmic_data->v1v8)
+               pmic_data->v1v8 = &omap4_v1v8_idata;
+
+       if (regulators_flags & TWL_COMMON_REGULATOR_V2V1 && !pmic_data->v2v1)
+               pmic_data->v2v1 = &omap4_v2v1_idata;
 }
 #endif /* CONFIG_ARCH_OMAP4 */
index 0962748..8fe71cf 100644 (file)
@@ -22,6 +22,8 @@
 #define TWL_COMMON_REGULATOR_VCXIO     (1 << 8)
 #define TWL_COMMON_REGULATOR_VUSB      (1 << 9)
 #define TWL_COMMON_REGULATOR_CLK32KG   (1 << 10)
+#define TWL_COMMON_REGULATOR_V1V8      (1 << 11)
+#define TWL_COMMON_REGULATOR_V2V1      (1 << 12)
 
 /* TWL4030 LDO regulators */
 #define TWL_COMMON_REGULATOR_VPLL1     (1 << 4)