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;
Пример #2
0
};

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");