Loading arch/arm/mach-omap2/pm34xx.c +1 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ static void omap_sram_idle(void) omap3_core_restore_context(); omap3_prcm_restore_context(); omap3_sram_restore_context(); omap2_sms_restore_context(); } if (per_next_state < PWRDM_POWER_ON) { per_prev_state = Loading arch/arm/mach-omap2/sdrc.c +27 −0 Original line number Diff line number Diff line Loading @@ -37,11 +37,37 @@ static struct omap_sdrc_params *sdrc_init_params_cs0, *sdrc_init_params_cs1; void __iomem *omap2_sdrc_base; void __iomem *omap2_sms_base; struct omap2_sms_regs { u32 sms_sysconfig; }; static struct omap2_sms_regs sms_context; /* SDRC_POWER register bits */ #define SDRC_POWER_EXTCLKDIS_SHIFT 3 #define SDRC_POWER_PWDENA_SHIFT 2 #define SDRC_POWER_PAGEPOLICY_SHIFT 0 /** * omap2_sms_save_context - Save SMS registers * * Save SMS registers that need to be restored after off mode. */ void omap2_sms_save_context(void) { sms_context.sms_sysconfig = sms_read_reg(SMS_SYSCONFIG); } /** * omap2_sms_restore_context - Restore SMS registers * * Restore SMS registers that need to be Restored after off mode. */ void omap2_sms_restore_context(void) { sms_write_reg(sms_context.sms_sysconfig, SMS_SYSCONFIG); } /** * omap2_sdrc_get_params - return SDRC register values for a given clock rate * @r: SDRC clock rate (in Hz) Loading Loading @@ -132,4 +158,5 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, l = (1 << SDRC_POWER_EXTCLKDIS_SHIFT) | (1 << SDRC_POWER_PAGEPOLICY_SHIFT); sdrc_write_reg(l, SDRC_POWER); omap2_sms_save_context(); } arch/arm/plat-omap/include/plat/sdrc.h +2 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,8 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, int omap2_sdrc_get_params(unsigned long r, struct omap_sdrc_params **sdrc_cs0, struct omap_sdrc_params **sdrc_cs1); void omap2_sms_save_context(void); void omap2_sms_restore_context(void); #ifdef CONFIG_ARCH_OMAP2 Loading Loading
arch/arm/mach-omap2/pm34xx.c +1 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,7 @@ static void omap_sram_idle(void) omap3_core_restore_context(); omap3_prcm_restore_context(); omap3_sram_restore_context(); omap2_sms_restore_context(); } if (per_next_state < PWRDM_POWER_ON) { per_prev_state = Loading
arch/arm/mach-omap2/sdrc.c +27 −0 Original line number Diff line number Diff line Loading @@ -37,11 +37,37 @@ static struct omap_sdrc_params *sdrc_init_params_cs0, *sdrc_init_params_cs1; void __iomem *omap2_sdrc_base; void __iomem *omap2_sms_base; struct omap2_sms_regs { u32 sms_sysconfig; }; static struct omap2_sms_regs sms_context; /* SDRC_POWER register bits */ #define SDRC_POWER_EXTCLKDIS_SHIFT 3 #define SDRC_POWER_PWDENA_SHIFT 2 #define SDRC_POWER_PAGEPOLICY_SHIFT 0 /** * omap2_sms_save_context - Save SMS registers * * Save SMS registers that need to be restored after off mode. */ void omap2_sms_save_context(void) { sms_context.sms_sysconfig = sms_read_reg(SMS_SYSCONFIG); } /** * omap2_sms_restore_context - Restore SMS registers * * Restore SMS registers that need to be Restored after off mode. */ void omap2_sms_restore_context(void) { sms_write_reg(sms_context.sms_sysconfig, SMS_SYSCONFIG); } /** * omap2_sdrc_get_params - return SDRC register values for a given clock rate * @r: SDRC clock rate (in Hz) Loading Loading @@ -132,4 +158,5 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, l = (1 << SDRC_POWER_EXTCLKDIS_SHIFT) | (1 << SDRC_POWER_PAGEPOLICY_SHIFT); sdrc_write_reg(l, SDRC_POWER); omap2_sms_save_context(); }
arch/arm/plat-omap/include/plat/sdrc.h +2 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,8 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0, int omap2_sdrc_get_params(unsigned long r, struct omap_sdrc_params **sdrc_cs0, struct omap_sdrc_params **sdrc_cs1); void omap2_sms_save_context(void); void omap2_sms_restore_context(void); #ifdef CONFIG_ARCH_OMAP2 Loading