diff options
Diffstat (limited to 'arch/arm/mach-exynos/pmu.c')
-rw-r--r-- | arch/arm/mach-exynos/pmu.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-exynos/pmu.c b/arch/arm/mach-exynos/pmu.c index 4aacb66f7161..3a48c852be6c 100644 --- a/arch/arm/mach-exynos/pmu.c +++ b/arch/arm/mach-exynos/pmu.c | |||
@@ -315,7 +315,7 @@ static struct exynos_pmu_conf exynos5250_pmu_config[] = { | |||
315 | { PMU_TABLE_END,}, | 315 | { PMU_TABLE_END,}, |
316 | }; | 316 | }; |
317 | 317 | ||
318 | void __iomem *exynos5_list_both_cnt_feed[] = { | 318 | static void __iomem *exynos5_list_both_cnt_feed[] = { |
319 | EXYNOS5_ARM_CORE0_OPTION, | 319 | EXYNOS5_ARM_CORE0_OPTION, |
320 | EXYNOS5_ARM_CORE1_OPTION, | 320 | EXYNOS5_ARM_CORE1_OPTION, |
321 | EXYNOS5_ARM_COMMON_OPTION, | 321 | EXYNOS5_ARM_COMMON_OPTION, |
@@ -329,7 +329,7 @@ void __iomem *exynos5_list_both_cnt_feed[] = { | |||
329 | EXYNOS5_TOP_PWR_SYSMEM_OPTION, | 329 | EXYNOS5_TOP_PWR_SYSMEM_OPTION, |
330 | }; | 330 | }; |
331 | 331 | ||
332 | void __iomem *exynos5_list_diable_wfi_wfe[] = { | 332 | static void __iomem *exynos5_list_diable_wfi_wfe[] = { |
333 | EXYNOS5_ARM_CORE1_OPTION, | 333 | EXYNOS5_ARM_CORE1_OPTION, |
334 | EXYNOS5_FSYS_ARM_OPTION, | 334 | EXYNOS5_FSYS_ARM_OPTION, |
335 | EXYNOS5_ISP_ARM_OPTION, | 335 | EXYNOS5_ISP_ARM_OPTION, |
@@ -390,6 +390,8 @@ void exynos_sys_powerdown_conf(enum sys_powerdown mode) | |||
390 | 390 | ||
391 | static int __init exynos_pmu_init(void) | 391 | static int __init exynos_pmu_init(void) |
392 | { | 392 | { |
393 | unsigned int value; | ||
394 | |||
393 | exynos_pmu_config = exynos4210_pmu_config; | 395 | exynos_pmu_config = exynos4210_pmu_config; |
394 | 396 | ||
395 | if (soc_is_exynos4210()) { | 397 | if (soc_is_exynos4210()) { |
@@ -399,6 +401,18 @@ static int __init exynos_pmu_init(void) | |||
399 | exynos_pmu_config = exynos4x12_pmu_config; | 401 | exynos_pmu_config = exynos4x12_pmu_config; |
400 | pr_info("EXYNOS4x12 PMU Initialize\n"); | 402 | pr_info("EXYNOS4x12 PMU Initialize\n"); |
401 | } else if (soc_is_exynos5250()) { | 403 | } else if (soc_is_exynos5250()) { |
404 | /* | ||
405 | * When SYS_WDTRESET is set, watchdog timer reset request | ||
406 | * is ignored by power management unit. | ||
407 | */ | ||
408 | value = __raw_readl(EXYNOS5_AUTO_WDTRESET_DISABLE); | ||
409 | value &= ~EXYNOS5_SYS_WDTRESET; | ||
410 | __raw_writel(value, EXYNOS5_AUTO_WDTRESET_DISABLE); | ||
411 | |||
412 | value = __raw_readl(EXYNOS5_MASK_WDTRESET_REQUEST); | ||
413 | value &= ~EXYNOS5_SYS_WDTRESET; | ||
414 | __raw_writel(value, EXYNOS5_MASK_WDTRESET_REQUEST); | ||
415 | |||
402 | exynos_pmu_config = exynos5250_pmu_config; | 416 | exynos_pmu_config = exynos5250_pmu_config; |
403 | pr_info("EXYNOS5250 PMU Initialize\n"); | 417 | pr_info("EXYNOS5250 PMU Initialize\n"); |
404 | } else { | 418 | } else { |