Commit | Line | Data |
---|---|---|
8551f3ff KK |
1 | /* |
2 | * Copyright (c) 2012 Samsung Electronics Co., Ltd. | |
3 | * http://www.samsung.com | |
4 | * | |
5 | * Common Header for S3C24XX SoCs | |
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_S3C24XX_COMMON_H | |
13 | #define __ARCH_ARM_MACH_S3C24XX_COMMON_H __FILE__ | |
14 | ||
7b6d864b RH |
15 | #include <linux/reboot.h> |
16 | ||
7488335d | 17 | struct s3c2410_uartcfg; |
e1a621da | 18 | |
7488335d | 19 | #ifdef CONFIG_CPU_S3C2410 |
e1a621da HS |
20 | extern int s3c2410_init(void); |
21 | extern int s3c2410a_init(void); | |
e1a621da | 22 | extern void s3c2410_map_io(void); |
e1a621da | 23 | extern void s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no); |
e1a621da | 24 | extern void s3c2410_init_clocks(int xtal); |
f182aa1d | 25 | extern void s3c2410_init_irq(void); |
e1a621da HS |
26 | #else |
27 | #define s3c2410_init_clocks NULL | |
28 | #define s3c2410_init_uarts NULL | |
29 | #define s3c2410_map_io NULL | |
30 | #define s3c2410_init NULL | |
31 | #define s3c2410a_init NULL | |
32 | #endif | |
33 | ||
34 | #ifdef CONFIG_CPU_S3C2412 | |
e1a621da | 35 | extern int s3c2412_init(void); |
e1a621da | 36 | extern void s3c2412_map_io(void); |
e1a621da | 37 | extern void s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no); |
e1a621da | 38 | extern void s3c2412_init_clocks(int xtal); |
e1a621da | 39 | extern int s3c2412_baseclk_add(void); |
0da09930 | 40 | extern void s3c2412_init_irq(void); |
e1a621da HS |
41 | #else |
42 | #define s3c2412_init_clocks NULL | |
43 | #define s3c2412_init_uarts NULL | |
44 | #define s3c2412_map_io NULL | |
45 | #define s3c2412_init NULL | |
e1a621da HS |
46 | #endif |
47 | ||
48 | #ifdef CONFIG_CPU_S3C2416 | |
e1a621da | 49 | extern int s3c2416_init(void); |
e1a621da | 50 | extern void s3c2416_map_io(void); |
e1a621da | 51 | extern void s3c2416_init_uarts(struct s3c2410_uartcfg *cfg, int no); |
e1a621da | 52 | extern void s3c2416_init_clocks(int xtal); |
e1a621da | 53 | extern int s3c2416_baseclk_add(void); |
e1a621da | 54 | extern void s3c2416_init_irq(void); |
e1a621da | 55 | |
7488335d | 56 | extern struct syscore_ops s3c2416_irq_syscore_ops; |
e1a621da HS |
57 | #else |
58 | #define s3c2416_init_clocks NULL | |
59 | #define s3c2416_init_uarts NULL | |
60 | #define s3c2416_map_io NULL | |
61 | #define s3c2416_init NULL | |
e1a621da HS |
62 | #endif |
63 | ||
64 | #if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442) | |
e1a621da | 65 | extern void s3c244x_map_io(void); |
e1a621da | 66 | extern void s3c244x_init_uarts(struct s3c2410_uartcfg *cfg, int no); |
e1a621da | 67 | #else |
e1a621da HS |
68 | #define s3c244x_init_uarts NULL |
69 | #endif | |
70 | ||
71 | #ifdef CONFIG_CPU_S3C2440 | |
72 | extern int s3c2440_init(void); | |
e1a621da | 73 | extern void s3c2440_map_io(void); |
4659c534 | 74 | extern void s3c2440_init_clocks(int xtal); |
ce6c164b | 75 | extern void s3c2440_init_irq(void); |
e1a621da HS |
76 | #else |
77 | #define s3c2440_init NULL | |
78 | #define s3c2440_map_io NULL | |
79 | #endif | |
80 | ||
81 | #ifdef CONFIG_CPU_S3C2442 | |
82 | extern int s3c2442_init(void); | |
e1a621da | 83 | extern void s3c2442_map_io(void); |
4659c534 | 84 | extern void s3c2442_init_clocks(int xtal); |
ce6c164b | 85 | extern void s3c2442_init_irq(void); |
e1a621da HS |
86 | #else |
87 | #define s3c2442_init NULL | |
88 | #define s3c2442_map_io NULL | |
89 | #endif | |
90 | ||
91 | #ifdef CONFIG_CPU_S3C2443 | |
e1a621da | 92 | extern int s3c2443_init(void); |
e1a621da | 93 | extern void s3c2443_map_io(void); |
e1a621da | 94 | extern void s3c2443_init_uarts(struct s3c2410_uartcfg *cfg, int no); |
e1a621da | 95 | extern void s3c2443_init_clocks(int xtal); |
e1a621da | 96 | extern int s3c2443_baseclk_add(void); |
e1a621da HS |
97 | extern void s3c2443_init_irq(void); |
98 | #else | |
99 | #define s3c2443_init_clocks NULL | |
100 | #define s3c2443_init_uarts NULL | |
101 | #define s3c2443_map_io NULL | |
102 | #define s3c2443_init NULL | |
e1a621da HS |
103 | #endif |
104 | ||
d8fdec16 HS |
105 | extern struct syscore_ops s3c24xx_irq_syscore_ops; |
106 | ||
1fecf895 | 107 | extern struct platform_device s3c2410_device_dma; |
f2dda07d | 108 | extern struct platform_device s3c2412_device_dma; |
1fecf895 | 109 | extern struct platform_device s3c2440_device_dma; |
f2dda07d HS |
110 | extern struct platform_device s3c2443_device_dma; |
111 | ||
51cb1289 HS |
112 | extern struct platform_device s3c2410_device_dclk; |
113 | ||
4659c534 HS |
114 | #ifdef CONFIG_S3C2410_COMMON_CLK |
115 | void __init s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f, | |
116 | int current_soc, | |
117 | void __iomem *reg_base); | |
118 | #endif | |
3c27f314 HS |
119 | #ifdef CONFIG_S3C2412_COMMON_CLK |
120 | void __init s3c2412_common_clk_init(struct device_node *np, unsigned long xti_f, | |
121 | unsigned long ext_f, void __iomem *reg_base); | |
122 | #endif | |
dfc0f509 HS |
123 | #ifdef CONFIG_S3C2443_COMMON_CLK |
124 | void __init s3c2443_common_clk_init(struct device_node *np, unsigned long xti_f, | |
125 | int current_soc, | |
126 | void __iomem *reg_base); | |
127 | #endif | |
128 | ||
8551f3ff | 129 | #endif /* __ARCH_ARM_MACH_S3C24XX_COMMON_H */ |