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 exynos4_restart(enum reboot_mode mode, const char *cmd); 23 void exynos5_restart(enum reboot_mode mode, const char *cmd); 24 void exynos_cpuidle_init(void); 25 void exynos_init_late(void); 26 27 void exynos_firmware_init(void); 28 29 #ifdef CONFIG_PM_GENERIC_DOMAINS 30 int exynos_pm_late_initcall(void); 31 #else 32 static inline int exynos_pm_late_initcall(void) { return 0; } 33 #endif 34 35 extern struct smp_operations exynos_smp_ops; 36 37 extern void exynos_cpu_die(unsigned int cpu); 38 39 /* PMU(Power Management Unit) support */ 40 41 #define PMU_TABLE_END NULL 42 43 enum sys_powerdown { 44 SYS_AFTR, 45 SYS_LPA, 46 SYS_SLEEP, 47 NUM_SYS_POWERDOWN, 48 }; 49 50 extern unsigned long l2x0_regs_phys; 51 struct exynos_pmu_conf { 52 void __iomem *reg; 53 unsigned int val[NUM_SYS_POWERDOWN]; 54 }; 55 56 extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); 57 58 #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ 59