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