1 /* 2 * Copyright (c) 2011 Samsung Electronics Co., Ltd. 3 * http://www.samsung.com 4 * 5 * Common Header for EXYNOS machines 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12 #ifndef __ARCH_ARM_MACH_EXYNOS_COMMON_H 13 #define __ARCH_ARM_MACH_EXYNOS_COMMON_H 14 15 #include <linux/reboot.h> 16 #include <linux/of.h> 17 18 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1); 19 20 struct map_desc; 21 void exynos_init_io(void); 22 void exynos_restart(enum reboot_mode mode, const char *cmd); 23 void exynos_cpuidle_init(void); 24 void exynos_cpufreq_init(void); 25 void exynos_init_late(void); 26 27 void exynos_firmware_init(void); 28 29 #ifdef CONFIG_PINCTRL_EXYNOS 30 extern u32 exynos_get_eint_wake_mask(void); 31 #else 32 static inline u32 exynos_get_eint_wake_mask(void) { return 0xffffffff; } 33 #endif 34 35 #ifdef CONFIG_PM_SLEEP 36 extern void __init exynos_pm_init(void); 37 #else 38 static inline void exynos_pm_init(void) {} 39 #endif 40 41 extern void exynos_cpu_resume(void); 42 43 extern struct smp_operations exynos_smp_ops; 44 45 extern void exynos_cpu_die(unsigned int cpu); 46 47 /* PMU(Power Management Unit) support */ 48 49 #define PMU_TABLE_END NULL 50 51 enum sys_powerdown { 52 SYS_AFTR, 53 SYS_LPA, 54 SYS_SLEEP, 55 NUM_SYS_POWERDOWN, 56 }; 57 58 extern unsigned long l2x0_regs_phys; 59 struct exynos_pmu_conf { 60 void __iomem *reg; 61 unsigned int val[NUM_SYS_POWERDOWN]; 62 }; 63 64 extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); 65 66 #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ 67