1 /*
2  *  arch/arm/include/asm/glue-proc.h
3  *
4  *  Copyright (C) 1997-1999 Russell King
5  *  Copyright (C) 2000 Deep Blue Solutions Ltd
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 #ifndef ASM_GLUE_PROC_H
12 #define ASM_GLUE_PROC_H
13 
14 #include <asm/glue.h>
15 
16 /*
17  * Work out if we need multiple CPU support
18  */
19 #undef MULTI_CPU
20 #undef CPU_NAME
21 
22 /*
23  * CPU_NAME - the prefix for CPU related functions
24  */
25 
26 #ifdef CONFIG_CPU_ARM7TDMI
27 # ifdef CPU_NAME
28 #  undef  MULTI_CPU
29 #  define MULTI_CPU
30 # else
31 #  define CPU_NAME cpu_arm7tdmi
32 # endif
33 #endif
34 
35 #ifdef CONFIG_CPU_ARM720T
36 # ifdef CPU_NAME
37 #  undef  MULTI_CPU
38 #  define MULTI_CPU
39 # else
40 #  define CPU_NAME cpu_arm720
41 # endif
42 #endif
43 
44 #ifdef CONFIG_CPU_ARM740T
45 # ifdef CPU_NAME
46 #  undef  MULTI_CPU
47 #  define MULTI_CPU
48 # else
49 #  define CPU_NAME cpu_arm740
50 # endif
51 #endif
52 
53 #ifdef CONFIG_CPU_ARM9TDMI
54 # ifdef CPU_NAME
55 #  undef  MULTI_CPU
56 #  define MULTI_CPU
57 # else
58 #  define CPU_NAME cpu_arm9tdmi
59 # endif
60 #endif
61 
62 #ifdef CONFIG_CPU_ARM920T
63 # ifdef CPU_NAME
64 #  undef  MULTI_CPU
65 #  define MULTI_CPU
66 # else
67 #  define CPU_NAME cpu_arm920
68 # endif
69 #endif
70 
71 #ifdef CONFIG_CPU_ARM922T
72 # ifdef CPU_NAME
73 #  undef  MULTI_CPU
74 #  define MULTI_CPU
75 # else
76 #  define CPU_NAME cpu_arm922
77 # endif
78 #endif
79 
80 #ifdef CONFIG_CPU_FA526
81 # ifdef CPU_NAME
82 #  undef  MULTI_CPU
83 #  define MULTI_CPU
84 # else
85 #  define CPU_NAME cpu_fa526
86 # endif
87 #endif
88 
89 #ifdef CONFIG_CPU_ARM925T
90 # ifdef CPU_NAME
91 #  undef  MULTI_CPU
92 #  define MULTI_CPU
93 # else
94 #  define CPU_NAME cpu_arm925
95 # endif
96 #endif
97 
98 #ifdef CONFIG_CPU_ARM926T
99 # ifdef CPU_NAME
100 #  undef  MULTI_CPU
101 #  define MULTI_CPU
102 # else
103 #  define CPU_NAME cpu_arm926
104 # endif
105 #endif
106 
107 #ifdef CONFIG_CPU_ARM940T
108 # ifdef CPU_NAME
109 #  undef  MULTI_CPU
110 #  define MULTI_CPU
111 # else
112 #  define CPU_NAME cpu_arm940
113 # endif
114 #endif
115 
116 #ifdef CONFIG_CPU_ARM946E
117 # ifdef CPU_NAME
118 #  undef  MULTI_CPU
119 #  define MULTI_CPU
120 # else
121 #  define CPU_NAME cpu_arm946
122 # endif
123 #endif
124 
125 #ifdef CONFIG_CPU_SA110
126 # ifdef CPU_NAME
127 #  undef  MULTI_CPU
128 #  define MULTI_CPU
129 # else
130 #  define CPU_NAME cpu_sa110
131 # endif
132 #endif
133 
134 #ifdef CONFIG_CPU_SA1100
135 # ifdef CPU_NAME
136 #  undef  MULTI_CPU
137 #  define MULTI_CPU
138 # else
139 #  define CPU_NAME cpu_sa1100
140 # endif
141 #endif
142 
143 #ifdef CONFIG_CPU_ARM1020
144 # ifdef CPU_NAME
145 #  undef  MULTI_CPU
146 #  define MULTI_CPU
147 # else
148 #  define CPU_NAME cpu_arm1020
149 # endif
150 #endif
151 
152 #ifdef CONFIG_CPU_ARM1020E
153 # ifdef CPU_NAME
154 #  undef  MULTI_CPU
155 #  define MULTI_CPU
156 # else
157 #  define CPU_NAME cpu_arm1020e
158 # endif
159 #endif
160 
161 #ifdef CONFIG_CPU_ARM1022
162 # ifdef CPU_NAME
163 #  undef  MULTI_CPU
164 #  define MULTI_CPU
165 # else
166 #  define CPU_NAME cpu_arm1022
167 # endif
168 #endif
169 
170 #ifdef CONFIG_CPU_ARM1026
171 # ifdef CPU_NAME
172 #  undef  MULTI_CPU
173 #  define MULTI_CPU
174 # else
175 #  define CPU_NAME cpu_arm1026
176 # endif
177 #endif
178 
179 #ifdef CONFIG_CPU_XSCALE
180 # ifdef CPU_NAME
181 #  undef  MULTI_CPU
182 #  define MULTI_CPU
183 # else
184 #  define CPU_NAME cpu_xscale
185 # endif
186 #endif
187 
188 #ifdef CONFIG_CPU_XSC3
189 # ifdef CPU_NAME
190 #  undef  MULTI_CPU
191 #  define MULTI_CPU
192 # else
193 #  define CPU_NAME cpu_xsc3
194 # endif
195 #endif
196 
197 #ifdef CONFIG_CPU_MOHAWK
198 # ifdef CPU_NAME
199 #  undef  MULTI_CPU
200 #  define MULTI_CPU
201 # else
202 #  define CPU_NAME cpu_mohawk
203 # endif
204 #endif
205 
206 #ifdef CONFIG_CPU_FEROCEON
207 # ifdef CPU_NAME
208 #  undef  MULTI_CPU
209 #  define MULTI_CPU
210 # else
211 #  define CPU_NAME cpu_feroceon
212 # endif
213 #endif
214 
215 #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K)
216 # ifdef CPU_NAME
217 #  undef  MULTI_CPU
218 #  define MULTI_CPU
219 # else
220 #  define CPU_NAME cpu_v6
221 # endif
222 #endif
223 
224 #ifdef CONFIG_CPU_V7M
225 # ifdef CPU_NAME
226 #  undef  MULTI_CPU
227 #  define MULTI_CPU
228 # else
229 #  define CPU_NAME cpu_v7m
230 # endif
231 #endif
232 
233 #ifdef CONFIG_CPU_PJ4B
234 # ifdef CPU_NAME
235 #  undef  MULTI_CPU
236 #  define MULTI_CPU
237 # else
238 #  define CPU_NAME cpu_pj4b
239 # endif
240 #endif
241 
242 #ifdef CONFIG_CPU_V7
243 /*
244  * Cortex-A9 needs a different suspend/resume function, so we need
245  * multiple CPU support for ARMv7 anyway.
246  */
247 #  undef  MULTI_CPU
248 #  define MULTI_CPU
249 #endif
250 
251 #ifndef MULTI_CPU
252 #define cpu_proc_init			__glue(CPU_NAME,_proc_init)
253 #define cpu_proc_fin			__glue(CPU_NAME,_proc_fin)
254 #define cpu_reset			__glue(CPU_NAME,_reset)
255 #define cpu_do_idle			__glue(CPU_NAME,_do_idle)
256 #define cpu_dcache_clean_area		__glue(CPU_NAME,_dcache_clean_area)
257 #define cpu_do_switch_mm		__glue(CPU_NAME,_switch_mm)
258 #define cpu_set_pte_ext			__glue(CPU_NAME,_set_pte_ext)
259 #define cpu_suspend_size		__glue(CPU_NAME,_suspend_size)
260 #define cpu_do_suspend			__glue(CPU_NAME,_do_suspend)
261 #define cpu_do_resume			__glue(CPU_NAME,_do_resume)
262 #endif
263 
264 #endif
265