synopsys_ddr32_out_of_self_refresh(STIG125_DDR_PCTL_BASE), END_MARKER, }; #define SUSPEND_TBL(_enter, _exit) { \ .enter = _enter, \ .enter_size = ARRAY_SIZE(_enter) * sizeof(long), \ .exit = _exit, \ .exit_size = ARRAY_SIZE(_exit) * sizeof(long), \ } static struct stm_suspend_table stig125_suspend_tables[] = { SUSPEND_TBL(stig125_ddr0_enter, stig125_ddr0_exit) }; static int stig125_suspend_begin(suspend_state_t state) { int ret = 0; pr_info("[STM][PM] Analyzing the wakeup devices\n"); stm_check_wakeup_devices(&stig125_wkd); return ret; } static long *switch_cfg;
}; static const long stx_mpe42_ddr_pll_exit[] = { UPDATE32(MPE42_DDR_PLL_CFG, ~1, 0), WHILE_NE32(MPE42_DDR_PLL_STATUS, 1, 1), }; #define SUSPEND_TBL(_enter, _exit) { \ .enter = _enter, \ .enter_size = ARRAY_SIZE(_enter) * sizeof(long),\ .exit = _exit, \ .exit_size = ARRAY_SIZE(_exit) * sizeof(long), \ } static struct stm_suspend_table stx_mpe42_suspend_tables[] = { SUSPEND_TBL(stx_mpe42_ddr0_enter, stx_mpe42_ddr0_exit), SUSPEND_TBL(stx_mpe42_ddr1_enter, stx_mpe42_ddr1_exit), SUSPEND_TBL(stx_mpe42_ddr_pll_enter, stx_mpe42_ddr_pll_exit), }; static struct stm_mcm_suspend stx_mpe42_suspend = { .tables = stx_mpe42_suspend_tables, .nr_tables = ARRAY_SIZE(stx_mpe42_suspend_tables), .pre_enter = stx_mpe42_suspend_pre_enter, .post_enter = stx_mpe42_suspend_post_enter, }; struct stm_mcm_suspend * __init stx_mpe42_suspend_setup(void) { mpe42_clk_a_base[0] = ioremap_nocache(0xfde12000, 0x1000); if (!mpe42_clk_a_base[0])
}; static const long fli7610_ddr1_exit[] = { synopsys_ddr32_phy_standby_exit(MPE41_DDR1_PCTL_BASE), synopsys_ddr32_out_of_self_refresh(MPE41_DDR1_PCTL_BASE), }; #define SUSPEND_TBL(_enter, _exit) { \ .enter = _enter, \ .enter_size = ARRAY_SIZE(_enter) * sizeof(long),\ .exit = _exit, \ .exit_size = ARRAY_SIZE(_exit) * sizeof(long), \ } static struct stm_suspend_table fli7610_suspend_tables[] = { SUSPEND_TBL(fli7610_ddr0_enter, fli7610_ddr0_exit), SUSPEND_TBL(fli7610_ddr1_enter, fli7610_ddr1_exit), }; struct stm_wakeup_devices fli7610_wkd; static struct stm_mcm_suspend *main_mcm; static struct stm_mcm_suspend *peripheral_mcm; static suspend_state_t target_state; struct stm_mcm_suspend *stx_mpe41_suspend_setup(void); struct stm_mcm_suspend *stx_tae_suspend_setup(void); static int fli7610_suspend_begin(suspend_state_t state) { int ret; pr_info("stm pm: Analyzing the wakeup devices\n");