本文整理汇总了C++中s3c_pm_do_save函数的典型用法代码示例。如果您正苦于以下问题:C++ s3c_pm_do_save函数的具体用法?C++ s3c_pm_do_save怎么用?C++ s3c_pm_do_save使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了s3c_pm_do_save函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: exynos4_pm_suspend
static int exynos4_pm_suspend(void)
{
unsigned long tmp;
if (!exynos4_is_c2c_use())
s3c_pm_do_save(exynos4_core_save, ARRAY_SIZE(exynos4_core_save));
s3c_pm_do_save(exynos4_l2cc_save, ARRAY_SIZE(exynos4_l2cc_save));
/* Setting Central Sequence Register for power down mode */
tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
tmp &= ~(S5P_CENTRAL_LOWPWR_CFG);
__raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
/* When enter sleep mode, USE_DELAYED_RESET_ASSERTION have to disable */
if (!soc_is_exynos4210())
exynos4_reset_assert_ctrl(0);
if (!soc_is_exynos4210()) {
tmp = S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0;
__raw_writel(tmp, S5P_CENTRAL_SEQ_OPTION);
if (exynos4_is_c2c_use()) {
tmp = __raw_readl(S5P_WAKEUP_MASK_COREBLK);
tmp &= ~(1 << 20);
__raw_writel(tmp, S5P_WAKEUP_MASK_COREBLK);
tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION_COREBLK);
tmp &= ~S5P_CENTRAL_SEQ_COREBLK_CONF;
__raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION_COREBLK);
}
}
return 0;
}
示例2: s5p_irq_suspend
int s5p_irq_suspend(struct sys_device *dev, pm_message_t state)
{
s3c_pm_do_save(eint_save, ARRAY_SIZE(eint_save));
s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
return 0;
}
示例3: s3c_pm_save_core
void s3c_pm_save_core(void)
{
s3c_pm_do_save(sromc_save, ARRAY_SIZE(sromc_save));
s3c_pm_do_save(core_save, ARRAY_SIZE(core_save));
s3c_pm_do_save(gpio_save_ext, ARRAY_SIZE(gpio_save_ext));
s3c_pm_do_save(gpio_save_gpio_int, ARRAY_SIZE(gpio_save_gpio_int));
s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
}
示例4: exynos4210_clock_suspend
static int exynos4210_clock_suspend(void)
{
s3c_pm_do_save(exynos4210_clock_save, ARRAY_SIZE(exynos4210_clock_save));
s3c_pm_do_save(exynos4210_epll_save, ARRAY_SIZE(exynos4210_epll_save));
s3c_pm_do_save(exynos4210_vpll_save, ARRAY_SIZE(exynos4210_vpll_save));
return 0;
}
示例5: exynos4212_clock_suspend
static int exynos4212_clock_suspend(void)
{
s3c_pm_do_save(exynos4212_clock_save, ARRAY_SIZE(exynos4212_clock_save));
s3c_pm_do_save(exynos4212_vpll_save, ARRAY_SIZE(exynos4212_vpll_save));
#if (defined(CONFIG_MACH_M0) && defined(CONFIG_TARGET_LOCALE_EUR)) || \
((defined(CONFIG_MACH_C1) || defined(CONFIG_MACH_M0)) && \
defined(CONFIG_TARGET_LOCALE_KOR))
s3c_pm_do_save(exynos4212_epll_save, ARRAY_SIZE(exynos4212_epll_save));
#endif
return 0;
}
示例6: exynos3_pd_lcd0_clk_enable_off
static int exynos3_pd_lcd0_clk_enable_off(struct exynos_pm_domain *domain)
{
unsigned int tmp;
DEBUG_PRINT_INFO("%s pre power off\n", "LCD");
s3c_pm_do_save(exynos_pd_lcd0_clk_save,
ARRAY_SIZE(exynos_pd_lcd0_clk_save));
tmp = __raw_readl(EXYNOS3_CLKSRC_MASK_LCD);
tmp |= ((0x1 << 12)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKSRC_MASK_LCD);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_LCD);
tmp |= ((0x7F << 14)|(0x3 << 9)|(0x1F << 3)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_LCD);
tmp = __raw_readl(EXYNOS3_CLKGATE_SCLK_LCD);
tmp |= ((0x3 << 3)|(0x3));
__raw_writel(tmp, EXYNOS3_CLKGATE_SCLK_LCD);
tmp = __raw_readl(EXYNOS3_CLKGATE_IP_LCD);
tmp |= ((0x3F << 2)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKGATE_IP_LCD);
return 0;
}
示例7: exynos5_pm_suspend
static int exynos5_pm_suspend(void)
{
unsigned long tmp;
s3c_pm_do_save(exynos5_core_save, ARRAY_SIZE(exynos5_core_save));
if (!(__raw_readl(EXYNOS5_ISP_STATUS) & S5P_INT_LOCAL_PWR_EN)) {
isp_pwr_off = true;
/*
* Before enter suspend, ISP power domain should be on
*/
__raw_writel(S5P_INT_LOCAL_PWR_EN, EXYNOS5_ISP_CONFIGURATION);
}
tmp = __raw_readl(EXYNOS5_CENTRAL_SEQ_CONFIGURATION);
tmp &= ~(EXYNOS5_CENTRAL_LOWPWR_CFG);
__raw_writel(tmp, EXYNOS5_CENTRAL_SEQ_CONFIGURATION);
tmp = __raw_readl(EXYNOS5_CENTRAL_SEQ_OPTION);
tmp = (EXYNOS5_USE_STANDBYWFI_ARM_CORE0 |
EXYNOS5_USE_STANDBYWFE_ARM_CORE0);
__raw_writel(tmp, EXYNOS5_CENTRAL_SEQ_OPTION);
return 0;
}
示例8: exynos3_pd_cam_clk_enable_off
static int exynos3_pd_cam_clk_enable_off(struct exynos_pm_domain *domain)
{
unsigned int tmp;
DEBUG_PRINT_INFO("%s pre power off\n", "CAM");
s3c_pm_do_save(exynos_pd_cam_clk_save,
ARRAY_SIZE(exynos_pd_cam_clk_save));
tmp = __raw_readl(EXYNOS3_CLKSRC_MASK_CAM);
tmp |= ((0x1 << 20)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKSRC_MASK_CAM);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_CAM0);
tmp |= ((0x3 << 29)|(0x1 << 27)|(0xF << 22)|(0x7 << 18)|(0x3 << 14)|(0x7 << 10)|(0xF << 5)|(0x7));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_CAM0);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_CAM1);
tmp |= ((0xF << 10)|(0x7));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_CAM1);
tmp = __raw_readl(EXYNOS3_CLKGATE_SCLK_CAM);
tmp |= (0x1 << 8);
__raw_writel(tmp, EXYNOS3_CLKGATE_SCLK_CAM);
tmp = __raw_readl(EXYNOS3_CLKGATE_IP_CAM);
tmp |= ((0xF << 16)|(0xF << 11)|(0xF << 6)|(0x7));
__raw_writel(tmp, EXYNOS3_CLKGATE_IP_CAM);
return 0;
}
示例9: s3c_pm_save_core
void s3c_pm_save_core(void)
{
#ifdef CONFIG_ARCH_LBOOK_V3
if (machine_is_lbook_v3()) {
s3c2410_gpio_setpin(S3C2410_GPC(6), 1);
}
#endif
s3c_pm_do_save(misc_save, ARRAY_SIZE(misc_save));
s3c_pm_do_save(core_save, ARRAY_SIZE(core_save));
#ifdef CONFIG_ARCH_LBOOK_V3
if (machine_is_lbook_v3()) {
s3c2410_gpio_setpin(S3C2410_GPC(6), 1);
}
#endif
}
示例10: exynos_pm_prepare
static void exynos_pm_prepare(void)
{
exynos_set_delayed_reset_assertion(false);
/* Set wake-up mask registers */
exynos_pm_set_wakeup_mask();
s3c_pm_do_save(exynos_core_save, ARRAY_SIZE(exynos_core_save));
if (pm_data->extra_save)
s3c_pm_do_save(pm_data->extra_save,
pm_data->num_extra_save);
exynos_pm_enter_sleep_mode();
/* ensure at least INFORM0 has the resume address */
pmu_raw_writel(virt_to_phys(exynos_cpu_resume), S5P_INFORM0);
}
示例11: exynos5_pm_suspend
static int exynos5_pm_suspend(void)
{
unsigned long tmp;
u32 timeout;
s3c_pm_do_save(exynos5_core_save, ARRAY_SIZE(exynos5_core_save));
s3c_pm_do_save(exynos5_regs_save, ARRAY_SIZE(exynos5_regs_save));
if (samsung_rev() < EXYNOS5250_REV_1_0) {
if (!(__raw_readl(EXYNOS5_ISP_STATUS) & S5P_INT_LOCAL_PWR_EN)) {
isp_pwr_off = true;
/*
* Before enter suspend, ISP power domain should be on
*/
__raw_writel(S5P_INT_LOCAL_PWR_EN,
EXYNOS5_ISP_CONFIGURATION);
timeout = 1000;
while (!(__raw_readl(EXYNOS5_ISP_STATUS) & S5P_INT_LOCAL_PWR_EN)) {
if (timeout == 0) {
printk(KERN_ERR "ISP power domain can not on\n");
}
timeout--;
udelay(1);
}
}
}
tmp = __raw_readl(EXYNOS5_CENTRAL_SEQ_CONFIGURATION);
tmp &= ~(EXYNOS5_CENTRAL_LOWPWR_CFG);
__raw_writel(tmp, EXYNOS5_CENTRAL_SEQ_CONFIGURATION);
tmp = __raw_readl(EXYNOS5_CENTRAL_SEQ_OPTION);
tmp = (EXYNOS5_USE_STANDBYWFI_ARM_CORE0 |
EXYNOS5_USE_STANDBYWFE_ARM_CORE0);
__raw_writel(tmp, EXYNOS5_CENTRAL_SEQ_OPTION);
return 0;
}
示例12: s3c24xx_irq_suspend
int s3c24xx_irq_suspend(struct sys_device *dev, pm_message_t state)
{
unsigned int i;
for (i = 0; i < ARRAY_SIZE(save_extint); i++)
save_extint[i] = __raw_readl(S3C24XX_EXTINT0 + (i*4));
for (i = 0; i < ARRAY_SIZE(save_eintflt); i++)
save_eintflt[i] = __raw_readl(S3C24XX_EINFLT0 + (i*4));
s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
save_eintmask = __raw_readl(S3C24XX_EINTMASK);
return 0;
}
示例13: s3c24xx_irq_suspend
int s3c24xx_irq_suspend(void)
{
unsigned int i;
for (i = 0; i < ARRAY_SIZE(save_extint); i++)
save_extint[i] = __raw_readl(S3C24XX_EXTINT0 + (i*4));
for (i = 0; i < ARRAY_SIZE(save_eintflt); i++)
save_eintflt[i] = __raw_readl(S3C24XX_EINFLT0 + (i*4));
s3c_pm_do_save(irq_save, ARRAY_SIZE(irq_save));
save_eintmask = __raw_readl(S3C24XX_EINTMASK);
return 0;
}
示例14: exynos5_asv_suspend
static int exynos5_asv_suspend(void)
{
struct asv_info *exynos_asv_info;
int i;
s3c_pm_do_save(exynos5_abb_save,
ARRAY_SIZE(exynos5_abb_save));
for (i = 0; i < ARRAY_SIZE(exynos5_asv_member); i++) {
exynos_asv_info = &exynos5_asv_member[i];
exynos_asv_info->ops_cal
->set_abb(exynos_asv_info->asv_type, ABB_BYPASS);
}
return 0;
}
示例15: exynos3_pd_isp_clk_enable_off
static int exynos3_pd_isp_clk_enable_off(struct exynos_pm_domain *domain)
{
unsigned int tmp;
DEBUG_PRINT_INFO("%s pre power off : save clocks and masking\n", "ISP");
s3c_pm_do_save(exynos_pd_isp_clk_save,
ARRAY_SIZE(exynos_pd_isp_clk_save));
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_ISP0);
tmp |= ((0x7 << 27)|(0xF << 21)|(0xFFF << 8)|(0x7F));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_ISP0);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_ISP1);
tmp |= ((0x7F << 15)|(0x1 << 4));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_ISP1);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_ISP2);
tmp |= ((0x3 << 30)|(0x1 << 28)|(0xF << 23)|(0x3 << 20)|(0x1F << 14)|(0xFFF << 1));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_ISP2);
tmp = __raw_readl(EXYNOS3_CLKGATE_BUS_ISP3);
tmp |= ((0x7F << 15)|(0x3 << 12)|(0x3 << 3)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKGATE_BUS_ISP3);
tmp = __raw_readl(EXYNOS3_CLKGATE_IP_ISP0);
tmp |= ((0x3 << 30)|(0x1 << 28)|(0xF << 23)|(0x3 << 20)|(0x3FFFF));
__raw_writel(tmp, EXYNOS3_CLKGATE_IP_ISP0);
tmp = __raw_readl(EXYNOS3_CLKGATE_IP_ISP1);
tmp |= ((0x7F << 15)|(0x3 << 12)|(0x1 << 4)|(0x1));
__raw_writel(tmp, EXYNOS3_CLKGATE_IP_ISP1);
tmp = __raw_readl(EXYNOS3_CLKSRC_MASK_ISP);
tmp |= ((0x1 << 12)|(0x1 << 8)|(0x3 << 4));
__raw_writel(tmp, EXYNOS3_CLKSRC_MASK_ISP);
tmp = __raw_readl(EXYNOS3_CLKGATE_SCLK_TOP_ISP);
tmp |= (0xF << 1);
__raw_writel(tmp, EXYNOS3_CLKGATE_SCLK_TOP_ISP);
tmp = __raw_readl(EXYNOS3_CLKGATE_SCLK_ISP);
tmp |= (0x1);
__raw_writel(tmp, EXYNOS3_CLKGATE_SCLK_ISP);
return 0;
}