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