summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c
diff options
context:
space:
mode:
authorRobin Gong <B38343@freescale.com>2012-08-27 10:47:10 +0800
committerRobin Gong <B38343@freescale.com>2012-08-28 11:19:38 +0800
commitb14b8d7f06de65bb2b494c0ced821be7af609f84 (patch)
tree495cdb2228823fe70748de06594c5073eeb5b916 /arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c
parent45edfa15a310e20023021bc3f9e7b6305fbe630e (diff)
ENGR00221302 [MX6SL_ARM2/EVK]: VDDSOC adjust if use LDO bypass
The function has been implement in LDO enable , but not in LDO bypass. Implement it on mx6sl. Signed-off-by: Robin Gong <B38343@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c')
-rw-r--r--arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c b/arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c
index 958f8a0ab780..ee66541f8bff 100644
--- a/arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c
+++ b/arch/arm/mach-mx6/mx6sl_evk_pmic_pfuze100.c
@@ -66,7 +66,9 @@
#define PFUZE100_SW1ACON 36
#define PFUZE100_SW1ACON_SPEED_VAL (0x1<<6) /*default */
#define PFUZE100_SW1ACON_SPEED_M (0x3<<6)
-
+#define PFUZE100_SW1CCON 49
+#define PFUZE100_SW1CCON_SPEED_VAL (0x1<<6) /*default */
+#define PFUZE100_SW1CCON_SPEED_M (0x3<<6)
#ifdef CONFIG_MX6_INTER_LDO_BYPASS
static struct regulator_consumer_supply sw1_consumers[] = {
@@ -74,6 +76,11 @@ static struct regulator_consumer_supply sw1_consumers[] = {
.supply = "VDDCORE",
}
};
+static struct regulator_consumer_supply sw1c_consumers[] = {
+ {
+ .supply = "VDDSOC",
+ },
+};
#endif
static struct regulator_consumer_supply sw2_consumers[] = {
@@ -126,7 +133,7 @@ static struct regulator_consumer_supply vgen3_consumers[] = {
};
static struct regulator_consumer_supply vgen4_consumers[] = {
{
- .supply = "VGEN4_1V58",
+ .supply = "VGEN4_1V8",
}
};
static struct regulator_consumer_supply vgen5_consumers[] = {
@@ -155,10 +162,10 @@ static struct regulator_init_data sw1a_init = {
.boot_on = 1,
.always_on = 1,
},
- #ifdef CONFIG_MX6_INTER_LDO_BYPASS
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
.num_consumer_supplies = ARRAY_SIZE(sw1_consumers),
.consumer_supplies = sw1_consumers,
- #endif
+#endif
};
static struct regulator_init_data sw1b_init = {
@@ -183,6 +190,10 @@ static struct regulator_init_data sw1c_init = {
.always_on = 1,
.boot_on = 1,
},
+#ifdef CONFIG_MX6_INTER_LDO_BYPASS
+ .num_consumer_supplies = ARRAY_SIZE(sw1c_consumers),
+ .consumer_supplies = sw1c_consumers,
+#endif
};
static struct regulator_init_data sw2_init = {
@@ -397,12 +408,17 @@ static int pfuze100_init(struct mc_pfuze *pfuze)
PFUZE100_SW1CSTANDBY_STBY_VAL);
if (ret)
goto err;
- /*set SW1ABDVSPEED as 25mV step each 4us,quick than 16us before.*/
+ /*set SW1AB/SW1CDVSPEED as 25mV step each 4us,quick than 16us before.*/
ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1ACON,
PFUZE100_SW1ACON_SPEED_M,
PFUZE100_SW1ACON_SPEED_VAL);
if (ret)
goto err;
+ ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CCON,
+ PFUZE100_SW1CCON_SPEED_M,
+ PFUZE100_SW1CCON_SPEED_VAL);
+ if (ret)
+ goto err;
return 0;
err:
printk(KERN_ERR "pfuze100 init error!\n");