xref: /openbmc/linux/arch/arm/mach-exynos/common.h (revision cbf08b9e)
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);
22cbf08b9eSSachin Kamat void exynos_restart(enum reboot_mode mode, const char *cmd);
2335baa336SBartlomiej Zolnierkiewicz void exynos_cpuidle_init(void);
24d568b6f7SLukasz Majewski void exynos_cpufreq_init(void);
25bb13fabcSShawn Guo void exynos_init_late(void);
26bb13fabcSShawn Guo 
27bca28f8fSTomasz Figa void exynos_firmware_init(void);
28bca28f8fSTomasz Figa 
2906853ae4SMarc Zyngier extern struct smp_operations exynos_smp_ops;
3006853ae4SMarc Zyngier 
3106853ae4SMarc Zyngier extern void exynos_cpu_die(unsigned int cpu);
3206853ae4SMarc Zyngier 
33ccd458c1SKukjin Kim /* PMU(Power Management Unit) support */
34ccd458c1SKukjin Kim 
35ccd458c1SKukjin Kim #define PMU_TABLE_END	NULL
36ccd458c1SKukjin Kim 
37ccd458c1SKukjin Kim enum sys_powerdown {
38ccd458c1SKukjin Kim 	SYS_AFTR,
39ccd458c1SKukjin Kim 	SYS_LPA,
40ccd458c1SKukjin Kim 	SYS_SLEEP,
41ccd458c1SKukjin Kim 	NUM_SYS_POWERDOWN,
42ccd458c1SKukjin Kim };
43ccd458c1SKukjin Kim 
44ccd458c1SKukjin Kim extern unsigned long l2x0_regs_phys;
45ccd458c1SKukjin Kim struct exynos_pmu_conf {
46ccd458c1SKukjin Kim 	void __iomem *reg;
47ccd458c1SKukjin Kim 	unsigned int val[NUM_SYS_POWERDOWN];
48ccd458c1SKukjin Kim };
49ccd458c1SKukjin Kim 
50ccd458c1SKukjin Kim extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
51ccd458c1SKukjin Kim 
52cc511b8dSKukjin Kim #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
53