suspend: power optimization for vccio(usb to uart bypass)
author许盛飞 <xsf@rock-chips.com>
Thu, 20 Dec 2012 02:14:42 +0000 (10:14 +0800)
committer许盛飞 <xsf@rock-chips.com>
Thu, 20 Dec 2012 02:14:42 +0000 (10:14 +0800)
arch/arm/mach-rk2928/pm.c

index e524a7ca2bcd1c41b0893028163e587a945919ba..a50dccba082765cbc401acf1cadc907dd8f82564 100644 (file)
@@ -281,6 +281,7 @@ static void __sramfunc rk2928_sram_suspend(void)
        u32 cru_clksel0_con;
        u32 clkgt_regs[CRU_CLKGATES_CON_CNT];
        int i;
+       u32 grf_uoc1_con;
 
        sram_printch('5');
        ddr_suspend();
@@ -290,7 +291,8 @@ static void __sramfunc rk2928_sram_suspend(void)
        board_pmu_suspend();
        sram_printch('7');
 
-
+        grf_uoc1_con = grf_readl(GRF_UOC1_CON4);
+        grf_writel(0x30000000,GRF_UOC1_CON4);
        for (i = 0; i < CRU_CLKGATES_CON_CNT; i++) {
                clkgt_regs[i] = cru_readl(CRU_CLKGATES_CON(i));
        }
@@ -337,6 +339,7 @@ static void __sramfunc rk2928_sram_suspend(void)
                cru_writel(clkgt_regs[i] | 0xffff0000, CRU_CLKGATES_CON(i));
        }
 
+       grf_writel(0x30000000|grf_uoc1_con,GRF_UOC1_CON4);
        sram_printch('7');
        board_pmu_resume();
        rk30_pwm_logic_resume_voltage();