From d874792f2f845c5a38c6d1ea8fe42b6fd986b030 Mon Sep 17 00:00:00 2001 From: Robin Gong Date: Thu, 28 Jun 2012 14:33:17 +0800 Subject: [PATCH] ENGR00215188-3 mx6sl:enable LDO bypass function on mx6sl_arm2 enable LDO bypass function on mx6sl_arm2 board as mx6q_sabresd board Signed-off-by: Robin Gong --- arch/arm/mach-mx6/board-mx6sl_arm2.c | 4 +++ arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c | 26 ++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-mx6/board-mx6sl_arm2.c b/arch/arm/mach-mx6/board-mx6sl_arm2.c index 78952d83e778..4592fd607412 100755 --- a/arch/arm/mach-mx6/board-mx6sl_arm2.c +++ b/arch/arm/mach-mx6/board-mx6sl_arm2.c @@ -1216,8 +1216,12 @@ static void __init mx6_arm2_init(void) elan_ts_init(); + #ifdef CONFIG_MX6_INTER_LDO_BYPASS + gp_reg_id = "VDDCORE"; + #else gp_reg_id = "cpu_vddgp"; mx6_cpu_regulator_init(); + #endif imx6q_add_imx_snvs_rtc(); diff --git a/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c b/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c index 0d5a37cb0df0..0c3f1b20d361 100644 --- a/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c +++ b/arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c @@ -63,8 +63,19 @@ #define PFUZE100_SWBSTCON1 102 #define PFUZE100_SWBSTCON1_SWBSTMOD_VAL (0x1<<2) #define PFUZE100_SWBSTCON1_SWBSTMOD_M (0x3<<2) +#define PFUZE100_SW1ACON 36 +#define PFUZE100_SW1ACON_SPEED_VAL (0x1<<6) /*default */ +#define PFUZE100_SW1ACON_SPEED_M (0x3<<6) +#ifdef CONFIG_MX6_INTER_LDO_BYPASS +static struct regulator_consumer_supply sw1_consumers[] = { + { + .supply = "VDDCORE", + } +}; +#endif + static struct regulator_consumer_supply sw2_consumers[] = { { .supply = "MICVDD", @@ -140,6 +151,10 @@ static struct regulator_init_data sw1a_init = { .boot_on = 1, .always_on = 1, }, + #ifdef CONFIG_MX6_INTER_LDO_BYPASS + .num_consumer_supplies = ARRAY_SIZE(sw1_consumers), + .consumer_supplies = sw1_consumers, + #endif }; static struct regulator_init_data sw1b_init = { @@ -369,16 +384,17 @@ static int pfuze100_init(struct mc_pfuze *pfuze) PFUZE100_SW1ASTANDBY_STBY_VAL); if (ret) goto err; - ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1BSTANDBY, - PFUZE100_SW1BSTANDBY_STBY_M, - PFUZE100_SW1BSTANDBY_STBY_VAL); - if (ret) - goto err; ret = pfuze_reg_rmw(pfuze, PFUZE100_SW1CSTANDBY, PFUZE100_SW1CSTANDBY_STBY_M, PFUZE100_SW1CSTANDBY_STBY_VAL); if (ret) goto err; + /*set SW1ABDVSPEED 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; return 0; err: printk(KERN_ERR "pfuze100 init error!\n"); -- 2.39.5