]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00215188-3 mx6sl:enable LDO bypass function on mx6sl_arm2
authorRobin Gong <B38343@freescale.com>
Thu, 28 Jun 2012 06:33:17 +0000 (14:33 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:34:53 +0000 (08:34 +0200)
enable LDO bypass function on mx6sl_arm2 board as mx6q_sabresd board
Signed-off-by: Robin Gong <B38343@freescale.com>
arch/arm/mach-mx6/board-mx6sl_arm2.c
arch/arm/mach-mx6/mx6sl_arm2_pmic_pfuze100.c

index 78952d83e7783ed7f9ff26317e7929dc7b7a85e7..4592fd6074124fa4222fa90ef7b1585e01f8118c 100755 (executable)
@@ -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();
 
index 0d5a37cb0df0fb37dcd1110cf37974d884934c8e..0c3f1b20d3611fd2655eed7e89c64280bb780585 100644 (file)
 #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");