From: 张晴 Date: Sat, 3 Nov 2012 02:20:12 +0000 (+0800) Subject: rk:pmu tps65910:set dcdc in pwm mode,and set dcdc in pfm mode when enter sleep X-Git-Tag: firefly_0821_release~8287 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=94257c7c2c0f4caf67a755a4dd6a261f26740dae;p=firefly-linux-kernel-4.4.55.git rk:pmu tps65910:set dcdc in pwm mode,and set dcdc in pfm mode when enter sleep --- diff --git a/arch/arm/mach-rk2928/board-rk2928-sdk-tps65910.c b/arch/arm/mach-rk2928/board-rk2928-sdk-tps65910.c index 43c24ce64675..e07bbe3e472c 100755 --- a/arch/arm/mach-rk2928/board-rk2928-sdk-tps65910.c +++ b/arch/arm/mach-rk2928/board-rk2928-sdk-tps65910.c @@ -188,6 +188,7 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } val |= 0xff; + val &= ~(0x07); //set vdd1 vdd2 vio in pfm mode when in sleep err = tps65910_reg_write(tps65910, TPS65910_SLEEP_KEEP_RES_ON, val); if (err) { printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ @@ -225,6 +226,22 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } #endif #endif + + /**********************set arm in pwm ****************/ + val = tps65910_reg_read(tps65910, TPS65910_DCDCCTRL); + if (val<0) { + printk(KERN_ERR "Unable to read TPS65910_DCDCCTRL reg\n"); + return val; + } + + val &= ~(1<<4); + err = tps65910_reg_write(tps65910, TPS65910_DCDCCTRL, val); + if (err) { + printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ + \n", TPS65910_VDIG1); + return err; + } + /************************************************/ printk("%s,line=%d\n", __func__,__LINE__); return 0; diff --git a/arch/arm/mach-rk30/board-pmu-tps65910.c b/arch/arm/mach-rk30/board-pmu-tps65910.c index 41c72f96e996..92db7c511754 100755 --- a/arch/arm/mach-rk30/board-pmu-tps65910.c +++ b/arch/arm/mach-rk30/board-pmu-tps65910.c @@ -205,6 +205,7 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } val |= 0xff; + val &= ~(0x07); //set vdd1 vdd2 vio in pfm mode when in sleep err = tps65910_reg_write(tps65910, TPS65910_SLEEP_KEEP_RES_ON, val); if (err) { printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ @@ -241,6 +242,23 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } #endif #endif + + /**********************set arm in pwm ****************/ + val = tps65910_reg_read(tps65910, TPS65910_DCDCCTRL); + if (val<0) { + printk(KERN_ERR "Unable to read TPS65910_DCDCCTRL reg\n"); + return val; + } + + val &= ~(1<<4); + err = tps65910_reg_write(tps65910, TPS65910_DCDCCTRL, val); + if (err) { + printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ + \n", TPS65910_VDIG1); + return err; + } + /************************************************/ + printk("%s,line=%d\n", __func__,__LINE__); return 0; diff --git a/arch/arm/mach-rk30/board-rk30-sdk-tps65910.c b/arch/arm/mach-rk30/board-rk30-sdk-tps65910.c index d61ef3f69c36..56f86dcb14be 100755 --- a/arch/arm/mach-rk30/board-rk30-sdk-tps65910.c +++ b/arch/arm/mach-rk30/board-rk30-sdk-tps65910.c @@ -191,6 +191,7 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } val |= 0xff; + val &= ~(0x07); //set vdd1 vdd2 vio in pfm mode when in sleep err = tps65910_reg_write(tps65910, TPS65910_SLEEP_KEEP_RES_ON, val); if (err) { printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ @@ -227,6 +228,23 @@ int tps65910_pre_init(struct tps65910 *tps65910){ } #endif #endif + + /**********************set arm in pwm ****************/ + val = tps65910_reg_read(tps65910, TPS65910_DCDCCTRL); + if (val<0) { + printk(KERN_ERR "Unable to read TPS65910_DCDCCTRL reg\n"); + return val; + } + + val &= ~(1<<4); + err = tps65910_reg_write(tps65910, TPS65910_DCDCCTRL, val); + if (err) { + printk(KERN_ERR "Unable to read TPS65910 Reg at offset 0x%x= \ + \n", TPS65910_VDIG1); + return err; + } + /************************************************/ + printk("%s,line=%d\n", __func__,__LINE__); return 0;