static int omap2_pm_enter(suspend_state_t state) { int ret = 0; switch (state) { case PM_SUSPEND_STANDBY: case PM_SUSPEND_MEM: omap2_enter_full_retention(); break; default: ret = -EINVAL; } return ret; }
static int omap2_pm_suspend(void) { u32 wken_wkup, mir1; wken_wkup = prm_read_mod_reg(WKUP_MOD, PM_WKEN); prm_write_mod_reg(wken_wkup & ~OMAP24XX_EN_GPT1, WKUP_MOD, PM_WKEN); /* Mask GPT1 */ mir1 = omap_readl(0x480fe0a4); omap_writel(1 << 5, 0x480fe0ac); omap2_enter_full_retention(); omap_writel(mir1, 0x480fe0a4); prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN); return 0; }
static void omap2_pm_idle(void) { local_fiq_disable(); if (!omap2_can_sleep()) { if (omap_irq_pending()) goto out; omap2_enter_mpu_retention(); goto out; } if (omap_irq_pending()) goto out; omap2_enter_full_retention(); out: local_fiq_enable(); }