1cc511b8dSKukjin Kim /* 2cc511b8dSKukjin Kim * Copyright (c) 2011 Samsung Electronics Co., Ltd. 3cc511b8dSKukjin Kim * http://www.samsung.com 4cc511b8dSKukjin Kim * 5cc511b8dSKukjin Kim * Common Header for EXYNOS machines 6cc511b8dSKukjin Kim * 7cc511b8dSKukjin Kim * This program is free software; you can redistribute it and/or modify 8cc511b8dSKukjin Kim * it under the terms of the GNU General Public License version 2 as 9cc511b8dSKukjin Kim * published by the Free Software Foundation. 10cc511b8dSKukjin Kim */ 11cc511b8dSKukjin Kim 12cc511b8dSKukjin Kim #ifndef __ARCH_ARM_MACH_EXYNOS_COMMON_H 13cc511b8dSKukjin Kim #define __ARCH_ARM_MACH_EXYNOS_COMMON_H 14cc511b8dSKukjin Kim 157b6d864bSRobin Holt #include <linux/reboot.h> 166e6aac75SThomas Abraham #include <linux/of.h> 176e6aac75SThomas Abraham 18034c097cSArnd Bergmann void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1); 19906c789cSKukjin Kim 2006853ae4SMarc Zyngier struct map_desc; 210e2238ecSArnd Bergmann void exynos_init_io(void); 227b6d864bSRobin Holt void exynos4_restart(enum reboot_mode mode, const char *cmd); 237b6d864bSRobin Holt void exynos5_restart(enum reboot_mode mode, const char *cmd); 2435baa336SBartlomiej Zolnierkiewicz void exynos_cpuidle_init(void); 25d568b6f7SLukasz Majewski void exynos_cpufreq_init(void); 26bb13fabcSShawn Guo void exynos_init_late(void); 27bb13fabcSShawn Guo 28bca28f8fSTomasz Figa void exynos_firmware_init(void); 29bca28f8fSTomasz Figa 30559ba237STomasz Figa #ifdef CONFIG_PM_SLEEP 31559ba237STomasz Figa extern void __init exynos_pm_init(void); 32559ba237STomasz Figa #else 33559ba237STomasz Figa static inline void exynos_pm_init(void) {} 34559ba237STomasz Figa #endif 35559ba237STomasz Figa 3606853ae4SMarc Zyngier extern struct smp_operations exynos_smp_ops; 3706853ae4SMarc Zyngier 3806853ae4SMarc Zyngier extern void exynos_cpu_die(unsigned int cpu); 3906853ae4SMarc Zyngier 40ccd458c1SKukjin Kim /* PMU(Power Management Unit) support */ 41ccd458c1SKukjin Kim 42ccd458c1SKukjin Kim #define PMU_TABLE_END NULL 43ccd458c1SKukjin Kim 44ccd458c1SKukjin Kim enum sys_powerdown { 45ccd458c1SKukjin Kim SYS_AFTR, 46ccd458c1SKukjin Kim SYS_LPA, 47ccd458c1SKukjin Kim SYS_SLEEP, 48ccd458c1SKukjin Kim NUM_SYS_POWERDOWN, 49ccd458c1SKukjin Kim }; 50ccd458c1SKukjin Kim 51ccd458c1SKukjin Kim extern unsigned long l2x0_regs_phys; 52ccd458c1SKukjin Kim struct exynos_pmu_conf { 53ccd458c1SKukjin Kim void __iomem *reg; 54ccd458c1SKukjin Kim unsigned int val[NUM_SYS_POWERDOWN]; 55ccd458c1SKukjin Kim }; 56ccd458c1SKukjin Kim 57ccd458c1SKukjin Kim extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); 58ccd458c1SKukjin Kim 59cc511b8dSKukjin Kim #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ 60