|
@@ -72,34 +72,6 @@ static struct powerdomain *mpu_pwrdm, *neon_pwrdm;
|
|
|
static struct powerdomain *core_pwrdm, *per_pwrdm;
|
|
|
static struct powerdomain *cam_pwrdm;
|
|
|
|
|
|
-static void omap3_enable_io_chain(void)
|
|
|
-{
|
|
|
- int timeout = 0;
|
|
|
-
|
|
|
- omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
|
|
|
- PM_WKEN);
|
|
|
- /* Do a readback to assure write has been done */
|
|
|
- omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
|
|
|
-
|
|
|
- while (!(omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST) &
|
|
|
- OMAP3430_ST_IO_CHAIN_MASK)) {
|
|
|
- timeout++;
|
|
|
- if (timeout > 1000) {
|
|
|
- pr_err("Wake up daisy chain activation failed.\n");
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
|
|
|
- PM_WKEN);
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-static void omap3_disable_io_chain(void)
|
|
|
-{
|
|
|
- omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
|
|
|
- PM_WKEN);
|
|
|
-}
|
|
|
-
|
|
|
static void omap3_core_save_context(void)
|
|
|
{
|
|
|
omap3_ctrl_save_padconf();
|
|
@@ -305,7 +277,7 @@ void omap_sram_idle(void)
|
|
|
core_next_state < PWRDM_POWER_ON)) {
|
|
|
omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
|
|
|
if (omap3_has_io_chain_ctrl())
|
|
|
- omap3_enable_io_chain();
|
|
|
+ omap3xxx_prm_reconfigure_io_chain();
|
|
|
}
|
|
|
|
|
|
pwrdm_pre_transition();
|
|
@@ -382,12 +354,9 @@ void omap_sram_idle(void)
|
|
|
/* Disable IO-PAD and IO-CHAIN wakeup */
|
|
|
if (omap3_has_io_wakeup() &&
|
|
|
(per_next_state < PWRDM_POWER_ON ||
|
|
|
- core_next_state < PWRDM_POWER_ON)) {
|
|
|
+ core_next_state < PWRDM_POWER_ON))
|
|
|
omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD,
|
|
|
PM_WKEN);
|
|
|
- if (omap3_has_io_chain_ctrl())
|
|
|
- omap3_disable_io_chain();
|
|
|
- }
|
|
|
|
|
|
clkdm_allow_idle(mpu_pwrdm->pwrdm_clkdms[0]);
|
|
|
}
|