diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-exynos/include/mach/pm-core.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/include/mach/pm-core.h b/arch/arm/mach-exynos/include/mach/pm-core.h index 7dbbfec13ea5..296090e7f423 100644 --- a/arch/arm/mach-exynos/include/mach/pm-core.h +++ b/arch/arm/mach-exynos/include/mach/pm-core.h | |||
@@ -18,8 +18,15 @@ | |||
18 | #ifndef __ASM_ARCH_PM_CORE_H | 18 | #ifndef __ASM_ARCH_PM_CORE_H |
19 | #define __ASM_ARCH_PM_CORE_H __FILE__ | 19 | #define __ASM_ARCH_PM_CORE_H __FILE__ |
20 | 20 | ||
21 | #include <linux/of.h> | ||
21 | #include <mach/regs-pmu.h> | 22 | #include <mach/regs-pmu.h> |
22 | 23 | ||
24 | #ifdef CONFIG_PINCTRL_EXYNOS | ||
25 | extern u32 exynos_get_eint_wake_mask(void); | ||
26 | #else | ||
27 | static inline u32 exynos_get_eint_wake_mask(void) { return 0xffffffff; } | ||
28 | #endif | ||
29 | |||
23 | static inline void s3c_pm_debug_init_uart(void) | 30 | static inline void s3c_pm_debug_init_uart(void) |
24 | { | 31 | { |
25 | /* nothing here yet */ | 32 | /* nothing here yet */ |
@@ -27,7 +34,12 @@ static inline void s3c_pm_debug_init_uart(void) | |||
27 | 34 | ||
28 | static inline void s3c_pm_arch_prepare_irqs(void) | 35 | static inline void s3c_pm_arch_prepare_irqs(void) |
29 | { | 36 | { |
30 | __raw_writel(s3c_irqwake_eintmask, S5P_EINT_WAKEUP_MASK); | 37 | u32 eintmask = s3c_irqwake_eintmask; |
38 | |||
39 | if (of_have_populated_dt()) | ||
40 | eintmask = exynos_get_eint_wake_mask(); | ||
41 | |||
42 | __raw_writel(eintmask, S5P_EINT_WAKEUP_MASK); | ||
31 | __raw_writel(s3c_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK); | 43 | __raw_writel(s3c_irqwake_intmask & ~(1 << 31), S5P_WAKEUP_MASK); |
32 | } | 44 | } |
33 | 45 | ||