[PATCH v8 2/2] ARM: exynos5: Add Suspend-to-RAM support for 5420
Abhilash Kesavan
kesavan.abhilash at gmail.com
Sun Oct 5 20:33:07 PDT 2014
Hi Vikas,
[...]
> +static void exynos5420_pm_resume(void)
> +{
> + unsigned long tmp;
> +
> + /* Restore the CPU0 low power state register */
> + tmp = pmu_raw_readl(EXYNOS5_ARM_CORE0_SYS_PWR_REG);
> + pmu_raw_writel(tmp | S5P_CORE_LOCAL_PWR_EN,
> + EXYNOS5_ARM_CORE0_SYS_PWR_REG);
I think these lines were accidentally added to this patch, please
remove them. I have a couple of changes to make in my s2r patch which
I will post once you send a new version.
Regards,
Abhilash
> +
> + /* Restore the sysram cpu state register */
> + __raw_writel(exynos5420_cpu_state,
> + sysram_base_addr + EXYNOS5420_CPU_STATE);
> +
> + pmu_raw_writel(EXYNOS5420_USE_STANDBY_WFI_ALL,
> + S5P_CENTRAL_SEQ_OPTION);
> +
> + if (exynos_pm_central_resume())
> + goto early_wakeup;
> +
> + /* For release retention */
> + exynos_pm_release_retention();
> +
> + pmu_raw_writel(exynos_pmu_spare3, S5P_PMU_SPARE3);
> +
> + s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
> +
> +early_wakeup:
> +
> + tmp = pmu_raw_readl(EXYNOS5420_SFR_AXI_CGDIS1);
> + tmp &= ~EXYNOS5420_UFS;
> + pmu_raw_writel(tmp, EXYNOS5420_SFR_AXI_CGDIS1);
> +
> + tmp = pmu_raw_readl(EXYNOS5420_FSYS2_OPTION);
> + tmp &= ~EXYNOS5420_EMULATION;
> + pmu_raw_writel(tmp, EXYNOS5420_FSYS2_OPTION);
> +
> + tmp = pmu_raw_readl(EXYNOS5420_PSGEN_OPTION);
> + tmp &= ~EXYNOS5420_EMULATION;
> + pmu_raw_writel(tmp, EXYNOS5420_PSGEN_OPTION);
> +
> + /* Clear SLEEP mode set in INFORM1 */
> + pmu_raw_writel(0x0, S5P_INFORM1);
> +}
> +
> /*
> * Suspend Ops
> */
> @@ -310,6 +449,16 @@ static const struct exynos_pm_data exynos5250_pm_data = {
> .cpu_suspend = exynos_cpu_suspend,
> };
>
> +static struct exynos_pm_data exynos5420_pm_data = {
> + .wkup_irq = exynos5250_wkup_irq,
> + .wake_disable_mask = (0x7F << 7) | (0x1F << 1),
> + .release_ret_regs = exynos5420_release_ret_regs,
> + .pm_resume = exynos5420_pm_resume,
> + .pm_suspend = exynos5420_pm_suspend,
> + .pm_prepare = exynos5420_pm_prepare,
> + .cpu_suspend = exynos5420_cpu_suspend,
> +};
> +
> static struct of_device_id exynos_pmu_of_device_ids[] = {
> {
> .compatible = "samsung,exynos4210-pmu",
> @@ -323,6 +472,9 @@ static struct of_device_id exynos_pmu_of_device_ids[] = {
> }, {
> .compatible = "samsung,exynos5250-pmu",
> .data = &exynos5250_pm_data,
> + }, {
> + .compatible = "samsung,exynos5420-pmu",
> + .data = &exynos5420_pm_data,
> },
> { /*sentinel*/ },
> };
> --
> 1.7.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list