Skip to content

Commit 9bb91ae

Browse files
committed
ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend
PMU_GPIOINT_WAKEUP_EN seems needed when entering the shallow suspend (with logic staying on) but does not seem to be needed for the deep suspend for unknown reasons. Testing revealed that this setting really is necessary to reliably resume the veyron devices from suspend. Reported-by: Chris Zhong <[email protected]> Signed-off-by: Heiko Stuebner <[email protected]> Reviewed-by: Chris Zhong <[email protected]> Tested-by: Chris Zhong <[email protected]> Reviewed-by: Douglas Anderson <[email protected]>
1 parent d1d3a1a commit 9bb91ae

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

arch/arm/mach-rockchip/pm.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ static void rk3288_slp_mode_set(int level)
123123
regmap_write(sgrf_regmap, RK3288_SGRF_FAST_BOOT_ADDR,
124124
rk3288_bootram_phy);
125125

126-
regmap_write(pmu_regmap, RK3288_PMU_WAKEUP_CFG1,
127-
PMU_ARMINT_WAKEUP_EN);
128-
129126
mode_set = BIT(PMU_GLOBAL_INT_DISABLE) | BIT(PMU_L2FLUSH_EN) |
130127
BIT(PMU_SREF0_ENTER_EN) | BIT(PMU_SREF1_ENTER_EN) |
131128
BIT(PMU_DDR0_GATING_EN) | BIT(PMU_DDR1_GATING_EN) |
@@ -146,6 +143,9 @@ static void rk3288_slp_mode_set(int level)
146143
mode_set1 |= BIT(PMU_CLR_ALIVE) | BIT(PMU_CLR_BUS) |
147144
BIT(PMU_CLR_PERI) | BIT(PMU_CLR_DMA);
148145

146+
regmap_write(pmu_regmap, RK3288_PMU_WAKEUP_CFG1,
147+
PMU_ARMINT_WAKEUP_EN);
148+
149149
/*
150150
* In deep suspend we use PMU_PMU_USE_LF to let the rk3288
151151
* switch its main clock supply to the alternative 32kHz
@@ -166,6 +166,9 @@ static void rk3288_slp_mode_set(int level)
166166
*/
167167
mode_set |= BIT(PMU_CLK_CORE_SRC_GATE_EN);
168168

169+
regmap_write(pmu_regmap, RK3288_PMU_WAKEUP_CFG1,
170+
PMU_ARMINT_WAKEUP_EN | PMU_GPIOINT_WAKEUP_EN);
171+
169172
/* 30ms on a 24MHz clock for pmic stabilization */
170173
regmap_write(pmu_regmap, RK3288_PMU_STABL_CNT, 24000 * 30);
171174

arch/arm/mach-rockchip/pm.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ static inline void rockchip_suspend_init(void)
6161

6262
/* PMU_WAKEUP_CFG1 bits */
6363
#define PMU_ARMINT_WAKEUP_EN BIT(0)
64+
#define PMU_GPIOINT_WAKEUP_EN BIT(3)
6465

6566
enum rk3288_pwr_mode_con {
6667
PMU_PWR_MODE_EN = 0,

0 commit comments

Comments
 (0)