xref: /openbmc/linux/arch/arm/mach-exynos/common.h (revision 559ba237)
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