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