From d77aec883416baf392ccd34a7a3a60c30974bf11 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=AE=B8=E7=9B=9B=E9=A3=9E?= Date: Sat, 20 Jul 2013 09:13:30 +0800 Subject: [PATCH] add the function of calling-in-suspend --- arch/arm/mach-rk30/pm.c | 151 ++++++++++++++++++++++++++++++++++------ 1 file changed, 131 insertions(+), 20 deletions(-) mode change 100755 => 100644 arch/arm/mach-rk30/pm.c diff --git a/arch/arm/mach-rk30/pm.c b/arch/arm/mach-rk30/pm.c old mode 100755 new mode 100644 index 3e3a381e8052..60a7ff855bbb --- a/arch/arm/mach-rk30/pm.c +++ b/arch/arm/mach-rk30/pm.c @@ -54,6 +54,10 @@ __weak void board_act8846_set_resume_vol(void){} __weak void __sramfunc rk30_pwm_logic_suspend_voltage(void){} __weak void __sramfunc rk30_pwm_logic_resume_voltage(void){} +__weak int __sramfunc rk30_phonecall_lowerpower(void) +{ + return 0; +} static int rk3188plus_soc = 0; @@ -541,14 +545,46 @@ static void __sramfunc rk_pm_soc_sram_clk_gating(void) for (i = 0; i < CRU_CLKGATES_CON_CNT; i++) { clkgt_regs_sram[i] = cru_readl(CRU_CLKGATES_CON(i)); } +#ifndef CONFIG_PHONE_INCALL_IS_SUSPEND gate_save_soc_clk(0 - | (1 << CLK_GATE_CORE_PERIPH) - | (1 << CLK_GATE_ACLK_CPU) - | (1 << CLK_GATE_HCLK_CPU) - | (1 << CLK_GATE_PCLK_CPU) - | (1 << CLK_GATE_ACLK_CORE) - , clkgt_regs_sram[0], CRU_CLKGATES_CON(0), CLK_GATE_W_MSK0); + | (1 << CLK_GATE_CORE_PERIPH) + | (1 << CLK_GATE_ACLK_CPU) + | (1 << CLK_GATE_HCLK_CPU) + | (1 << CLK_GATE_PCLK_CPU) + | (1 << CLK_GATE_ACLK_CORE) + , clkgt_regs_sram[0], CRU_CLKGATES_CON(0), CLK_GATE_W_MSK0); +#else + if(rk30_phonecall_lowerpower() == 0){ + gate_save_soc_clk(0 + | (1 << CLK_GATE_CORE_PERIPH) + | (1 << CLK_GATE_ACLK_CPU) + | (1 << CLK_GATE_HCLK_CPU) + | (1 << CLK_GATE_PCLK_CPU) + | (1 << CLK_GATE_ACLK_CORE) + , clkgt_regs_sram[0], CRU_CLKGATES_CON(0), CLK_GATE_W_MSK0); + }else{ + gate_save_soc_clk(0 + | (1 << CLK_GATE_CORE_PERIPH) + | (1 << CLK_GATE_ACLK_CPU) + | (1 << CLK_GATE_HCLK_CPU) + | (1 << CLK_GATE_PCLK_CPU) + | (1 << CLK_GATE_ACLK_CORE) + +#if defined(CONFIG_ARCH_RK3066B) || defined(CONFIG_ARCH_RK3188) + | (1 << CLK_GATE_I2S0_SRC) + | (1 << CLK_GATE_I2S0_FRAC) +#else + |(1<