Merge tag 'qcom-soc-for-3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / arch / arm / mach-exynos / common.h
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 extern void __iomem *sysram_ns_base_addr;
22 void exynos_init_io(void);
23 void exynos_restart(enum reboot_mode mode, const char *cmd);
24 void exynos_cpuidle_init(void);
25 void exynos_cpufreq_init(void);
26 void exynos_init_late(void);
27
28 void exynos_firmware_init(void);
29
30 #ifdef CONFIG_PINCTRL_EXYNOS
31 extern u32 exynos_get_eint_wake_mask(void);
32 #else
33 static inline u32 exynos_get_eint_wake_mask(void) { return 0xffffffff; }
34 #endif
35
36 #ifdef CONFIG_PM_SLEEP
37 extern void __init exynos_pm_init(void);
38 #else
39 static inline void exynos_pm_init(void) {}
40 #endif
41
42 extern void exynos_cpu_resume(void);
43
44 extern struct smp_operations exynos_smp_ops;
45
46 extern void exynos_cpu_die(unsigned int cpu);
47
48 /* PMU(Power Management Unit) support */
49
50 #define PMU_TABLE_END   NULL
51
52 enum sys_powerdown {
53         SYS_AFTR,
54         SYS_LPA,
55         SYS_SLEEP,
56         NUM_SYS_POWERDOWN,
57 };
58
59 extern unsigned long l2x0_regs_phys;
60 struct exynos_pmu_conf {
61         void __iomem *reg;
62         unsigned int val[NUM_SYS_POWERDOWN];
63 };
64
65 extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
66 extern void exynos_cpu_power_down(int cpu);
67 extern void exynos_cpu_power_up(int cpu);
68 extern int  exynos_cpu_power_state(int cpu);
69 extern void exynos_cluster_power_down(int cluster);
70 extern void exynos_cluster_power_up(int cluster);
71 extern int  exynos_cluster_power_state(int cluster);
72
73 #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */