Commit | Line | Data |
---|---|---|
cc511b8d KK |
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 | ||
6bb27d73 | 15 | extern void exynos4_timer_init(void); |
906c789c | 16 | |
06853ae4 | 17 | struct map_desc; |
cc511b8d KK |
18 | void exynos_init_io(struct map_desc *mach_desc, int size); |
19 | void exynos4_init_irq(void); | |
94c7ca71 | 20 | void exynos5_init_irq(void); |
906c789c | 21 | void exynos4_restart(char mode, const char *cmd); |
94c7ca71 | 22 | void exynos5_restart(char mode, const char *cmd); |
bb13fabc SG |
23 | void exynos_init_late(void); |
24 | ||
25 | #ifdef CONFIG_PM_GENERIC_DOMAINS | |
26 | int exynos_pm_late_initcall(void); | |
27 | #else | |
d0c2e4e4 | 28 | static inline int exynos_pm_late_initcall(void) { return 0; } |
bb13fabc | 29 | #endif |
cc511b8d | 30 | |
a855039e | 31 | #ifdef CONFIG_ARCH_EXYNOS4 |
cc511b8d KK |
32 | void exynos4_register_clocks(void); |
33 | void exynos4_setup_clocks(void); | |
34 | ||
a855039e KK |
35 | #else |
36 | #define exynos4_register_clocks() | |
37 | #define exynos4_setup_clocks() | |
a855039e KK |
38 | #endif |
39 | ||
94c7ca71 KK |
40 | #ifdef CONFIG_ARCH_EXYNOS5 |
41 | void exynos5_register_clocks(void); | |
42 | void exynos5_setup_clocks(void); | |
43 | ||
44 | #else | |
45 | #define exynos5_register_clocks() | |
46 | #define exynos5_setup_clocks() | |
47 | #endif | |
48 | ||
906c789c KK |
49 | #ifdef CONFIG_CPU_EXYNOS4210 |
50 | void exynos4210_register_clocks(void); | |
9eb48595 | 51 | |
906c789c KK |
52 | #else |
53 | #define exynos4210_register_clocks() | |
54 | #endif | |
cc511b8d | 55 | |
906c789c KK |
56 | #ifdef CONFIG_SOC_EXYNOS4212 |
57 | void exynos4212_register_clocks(void); | |
cc511b8d KK |
58 | |
59 | #else | |
906c789c | 60 | #define exynos4212_register_clocks() |
cc511b8d KK |
61 | #endif |
62 | ||
a900e5d9 RH |
63 | struct device_node; |
64 | void combiner_init(void __iomem *combiner_base, struct device_node *np); | |
65 | ||
06853ae4 MZ |
66 | extern struct smp_operations exynos_smp_ops; |
67 | ||
68 | extern void exynos_cpu_die(unsigned int cpu); | |
69 | ||
ccd458c1 KK |
70 | /* PMU(Power Management Unit) support */ |
71 | ||
72 | #define PMU_TABLE_END NULL | |
73 | ||
74 | enum sys_powerdown { | |
75 | SYS_AFTR, | |
76 | SYS_LPA, | |
77 | SYS_SLEEP, | |
78 | NUM_SYS_POWERDOWN, | |
79 | }; | |
80 | ||
81 | extern unsigned long l2x0_regs_phys; | |
82 | struct exynos_pmu_conf { | |
83 | void __iomem *reg; | |
84 | unsigned int val[NUM_SYS_POWERDOWN]; | |
85 | }; | |
86 | ||
87 | extern void exynos_sys_powerdown_conf(enum sys_powerdown mode); | |
88 | extern void s3c_cpu_resume(void); | |
89 | ||
cc511b8d | 90 | #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ |