ARM: pm: add function to set WFI low-power mode for SMP CPUs
[deliverable/linux.git] / arch / arm / include / asm / proc-fns.h
CommitLineData
1da177e4 1/*
4baa9922 2 * arch/arm/include/asm/proc-fns.h
1da177e4
LT
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_PROCFNS_H
12#define __ASM_PROCFNS_H
13
14#ifdef __KERNEL__
15
1da177e4
LT
16
17/*
18 * Work out if we need multiple CPU support
19 */
20#undef MULTI_CPU
21#undef CPU_NAME
22
23/*
24 * CPU_NAME - the prefix for CPU related functions
25 */
26
4da8b820
RK
27#ifdef CONFIG_CPU_ARM610
28# ifdef CPU_NAME
29# undef MULTI_CPU
30# define MULTI_CPU
31# else
32# define CPU_NAME cpu_arm6
1da177e4 33# endif
4da8b820
RK
34#endif
35
36#ifdef CONFIG_CPU_ARM7TDMI
37# ifdef CPU_NAME
38# undef MULTI_CPU
39# define MULTI_CPU
40# else
41# define CPU_NAME cpu_arm7tdmi
07e0da78 42# endif
4da8b820
RK
43#endif
44
45#ifdef CONFIG_CPU_ARM710
46# ifdef CPU_NAME
47# undef MULTI_CPU
48# define MULTI_CPU
49# else
50# define CPU_NAME cpu_arm7
1da177e4 51# endif
4da8b820
RK
52#endif
53
54#ifdef CONFIG_CPU_ARM720T
55# ifdef CPU_NAME
56# undef MULTI_CPU
57# define MULTI_CPU
58# else
59# define CPU_NAME cpu_arm720
1da177e4 60# endif
4da8b820
RK
61#endif
62
63#ifdef CONFIG_CPU_ARM740T
64# ifdef CPU_NAME
65# undef MULTI_CPU
66# define MULTI_CPU
67# else
68# define CPU_NAME cpu_arm740
b731c311 69# endif
4da8b820
RK
70#endif
71
72#ifdef CONFIG_CPU_ARM9TDMI
73# ifdef CPU_NAME
74# undef MULTI_CPU
75# define MULTI_CPU
76# else
77# define CPU_NAME cpu_arm9tdmi
43f5f014 78# endif
4da8b820
RK
79#endif
80
81#ifdef CONFIG_CPU_ARM920T
82# ifdef CPU_NAME
83# undef MULTI_CPU
84# define MULTI_CPU
85# else
86# define CPU_NAME cpu_arm920
1da177e4 87# endif
4da8b820
RK
88#endif
89
90#ifdef CONFIG_CPU_ARM922T
91# ifdef CPU_NAME
92# undef MULTI_CPU
93# define MULTI_CPU
94# else
95# define CPU_NAME cpu_arm922
1da177e4 96# endif
4da8b820
RK
97#endif
98
99#ifdef CONFIG_CPU_FA526
100# ifdef CPU_NAME
101# undef MULTI_CPU
102# define MULTI_CPU
103# else
104# define CPU_NAME cpu_fa526
28853ac8 105# endif
4da8b820
RK
106#endif
107
108#ifdef CONFIG_CPU_ARM925T
109# ifdef CPU_NAME
110# undef MULTI_CPU
111# define MULTI_CPU
112# else
113# define CPU_NAME cpu_arm925
1da177e4 114# endif
4da8b820
RK
115#endif
116
117#ifdef CONFIG_CPU_ARM926T
118# ifdef CPU_NAME
119# undef MULTI_CPU
120# define MULTI_CPU
121# else
122# define CPU_NAME cpu_arm926
1da177e4 123# endif
4da8b820
RK
124#endif
125
126#ifdef CONFIG_CPU_ARM940T
127# ifdef CPU_NAME
128# undef MULTI_CPU
129# define MULTI_CPU
130# else
131# define CPU_NAME cpu_arm940
d60674eb 132# endif
4da8b820
RK
133#endif
134
135#ifdef CONFIG_CPU_ARM946E
136# ifdef CPU_NAME
137# undef MULTI_CPU
138# define MULTI_CPU
139# else
140# define CPU_NAME cpu_arm946
f37f46eb 141# endif
4da8b820
RK
142#endif
143
144#ifdef CONFIG_CPU_SA110
145# ifdef CPU_NAME
146# undef MULTI_CPU
147# define MULTI_CPU
148# else
149# define CPU_NAME cpu_sa110
1da177e4 150# endif
4da8b820
RK
151#endif
152
153#ifdef CONFIG_CPU_SA1100
154# ifdef CPU_NAME
155# undef MULTI_CPU
156# define MULTI_CPU
157# else
158# define CPU_NAME cpu_sa1100
1da177e4 159# endif
4da8b820
RK
160#endif
161
162#ifdef CONFIG_CPU_ARM1020
163# ifdef CPU_NAME
164# undef MULTI_CPU
165# define MULTI_CPU
166# else
167# define CPU_NAME cpu_arm1020
1da177e4 168# endif
4da8b820
RK
169#endif
170
171#ifdef CONFIG_CPU_ARM1020E
172# ifdef CPU_NAME
173# undef MULTI_CPU
174# define MULTI_CPU
175# else
176# define CPU_NAME cpu_arm1020e
1da177e4 177# endif
4da8b820
RK
178#endif
179
180#ifdef CONFIG_CPU_ARM1022
181# ifdef CPU_NAME
182# undef MULTI_CPU
183# define MULTI_CPU
184# else
185# define CPU_NAME cpu_arm1022
1da177e4 186# endif
4da8b820
RK
187#endif
188
189#ifdef CONFIG_CPU_ARM1026
190# ifdef CPU_NAME
191# undef MULTI_CPU
192# define MULTI_CPU
193# else
194# define CPU_NAME cpu_arm1026
1da177e4 195# endif
4da8b820
RK
196#endif
197
198#ifdef CONFIG_CPU_XSCALE
199# ifdef CPU_NAME
200# undef MULTI_CPU
201# define MULTI_CPU
202# else
203# define CPU_NAME cpu_xscale
1da177e4 204# endif
4da8b820
RK
205#endif
206
207#ifdef CONFIG_CPU_XSC3
208# ifdef CPU_NAME
209# undef MULTI_CPU
210# define MULTI_CPU
211# else
212# define CPU_NAME cpu_xsc3
23bdf86a 213# endif
4da8b820
RK
214#endif
215
216#ifdef CONFIG_CPU_MOHAWK
217# ifdef CPU_NAME
218# undef MULTI_CPU
219# define MULTI_CPU
220# else
221# define CPU_NAME cpu_mohawk
49cbe786 222# endif
4da8b820
RK
223#endif
224
225#ifdef CONFIG_CPU_FEROCEON
226# ifdef CPU_NAME
227# undef MULTI_CPU
228# define MULTI_CPU
229# else
230# define CPU_NAME cpu_feroceon
e50d6409 231# endif
4da8b820
RK
232#endif
233
234#ifdef CONFIG_CPU_V6
235# ifdef CPU_NAME
236# undef MULTI_CPU
237# define MULTI_CPU
238# else
239# define CPU_NAME cpu_v6
1da177e4 240# endif
4da8b820
RK
241#endif
242
243#ifdef CONFIG_CPU_V7
244# ifdef CPU_NAME
245# undef MULTI_CPU
246# define MULTI_CPU
247# else
248# define CPU_NAME cpu_v7
bbe88886 249# endif
1da177e4
LT
250#endif
251
252#ifndef __ASSEMBLY__
253
254#ifndef MULTI_CPU
10debfd2 255#include <asm/cpu-single.h>
1da177e4 256#else
10debfd2 257#include <asm/cpu-multi32.h>
1da177e4
LT
258#endif
259
260#include <asm/memory.h>
261
002547b4
RK
262#ifdef CONFIG_MMU
263
1da177e4
LT
264#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
265
266#define cpu_get_pgd() \
267 ({ \
268 unsigned long pg; \
269 __asm__("mrc p15, 0, %0, c2, c0, 0" \
270 : "=r" (pg) : : "cc"); \
271 pg &= ~0x3fff; \
272 (pgd_t *)phys_to_virt(pg); \
273 })
274
002547b4
RK
275#endif
276
1da177e4
LT
277#endif /* __ASSEMBLY__ */
278#endif /* __KERNEL__ */
279#endif /* __ASM_PROCFNS_H */
This page took 0.505608 seconds and 5 git commands to generate.