1
2
3
4
5
6
7
8
9
10 #ifndef __ASM_ARCH_HARDWARE_H
11 #define __ASM_ARCH_HARDWARE_H
12
13 #include <mach/addr-map.h>
14
15
16
17
18
19 #define UNCACHED_PHYS_0 0xfe000000
20 #define UNCACHED_PHYS_0_SIZE 0x00100000
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
37 #define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
38
39 #ifndef __ASSEMBLY__
40 # define __REG(x) (*((volatile u32 __iomem *)io_p2v(x)))
41
42
43
44 # define __REG2(x,y) \
45 (*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))
46
47 # define __PREG(x) (io_v2p((u32)&(x)))
48
49 #else
50
51 # define __REG(x) io_p2v(x)
52 # define __PREG(x) io_v2p(x)
53
54 #endif
55
56 #ifndef __ASSEMBLY__
57
58 #include <asm/cputype.h>
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 #ifdef CONFIG_PXA25x
104 #define __cpu_is_pxa210(id) \
105 ({ \
106 unsigned int _id = (id) & 0xf3f0; \
107 _id == 0x2120; \
108 })
109
110 #define __cpu_is_pxa250(id) \
111 ({ \
112 unsigned int _id = (id) & 0xf3ff; \
113 _id <= 0x2105; \
114 })
115
116 #define __cpu_is_pxa255(id) \
117 ({ \
118 unsigned int _id = (id) & 0xffff; \
119 _id == 0x2d06; \
120 })
121
122 #define __cpu_is_pxa25x(id) \
123 ({ \
124 unsigned int _id = (id) & 0xf300; \
125 _id == 0x2100; \
126 })
127 #else
128 #define __cpu_is_pxa210(id) (0)
129 #define __cpu_is_pxa250(id) (0)
130 #define __cpu_is_pxa255(id) (0)
131 #define __cpu_is_pxa25x(id) (0)
132 #endif
133
134 #ifdef CONFIG_PXA27x
135 #define __cpu_is_pxa27x(id) \
136 ({ \
137 unsigned int _id = (id) >> 4 & 0xfff; \
138 _id == 0x411; \
139 })
140 #else
141 #define __cpu_is_pxa27x(id) (0)
142 #endif
143
144 #ifdef CONFIG_CPU_PXA300
145 #define __cpu_is_pxa300(id) \
146 ({ \
147 unsigned int _id = (id) >> 4 & 0xfff; \
148 _id == 0x688; \
149 })
150 #else
151 #define __cpu_is_pxa300(id) (0)
152 #endif
153
154 #ifdef CONFIG_CPU_PXA310
155 #define __cpu_is_pxa310(id) \
156 ({ \
157 unsigned int _id = (id) >> 4 & 0xfff; \
158 _id == 0x689; \
159 })
160 #else
161 #define __cpu_is_pxa310(id) (0)
162 #endif
163
164 #ifdef CONFIG_CPU_PXA320
165 #define __cpu_is_pxa320(id) \
166 ({ \
167 unsigned int _id = (id) >> 4 & 0xfff; \
168 _id == 0x603 || _id == 0x682; \
169 })
170 #else
171 #define __cpu_is_pxa320(id) (0)
172 #endif
173
174 #ifdef CONFIG_CPU_PXA930
175 #define __cpu_is_pxa930(id) \
176 ({ \
177 unsigned int _id = (id) >> 4 & 0xfff; \
178 _id == 0x683; \
179 })
180 #else
181 #define __cpu_is_pxa930(id) (0)
182 #endif
183
184 #ifdef CONFIG_CPU_PXA935
185 #define __cpu_is_pxa935(id) \
186 ({ \
187 unsigned int _id = (id) >> 4 & 0xfff; \
188 _id == 0x693; \
189 })
190 #else
191 #define __cpu_is_pxa935(id) (0)
192 #endif
193
194 #define cpu_is_pxa210() \
195 ({ \
196 __cpu_is_pxa210(read_cpuid_id()); \
197 })
198
199 #define cpu_is_pxa250() \
200 ({ \
201 __cpu_is_pxa250(read_cpuid_id()); \
202 })
203
204 #define cpu_is_pxa255() \
205 ({ \
206 __cpu_is_pxa255(read_cpuid_id()); \
207 })
208
209 #define cpu_is_pxa25x() \
210 ({ \
211 __cpu_is_pxa25x(read_cpuid_id()); \
212 })
213
214 #define cpu_is_pxa27x() \
215 ({ \
216 __cpu_is_pxa27x(read_cpuid_id()); \
217 })
218
219 #define cpu_is_pxa300() \
220 ({ \
221 __cpu_is_pxa300(read_cpuid_id()); \
222 })
223
224 #define cpu_is_pxa310() \
225 ({ \
226 __cpu_is_pxa310(read_cpuid_id()); \
227 })
228
229 #define cpu_is_pxa320() \
230 ({ \
231 __cpu_is_pxa320(read_cpuid_id()); \
232 })
233
234 #define cpu_is_pxa930() \
235 ({ \
236 __cpu_is_pxa930(read_cpuid_id()); \
237 })
238
239 #define cpu_is_pxa935() \
240 ({ \
241 __cpu_is_pxa935(read_cpuid_id()); \
242 })
243
244
245
246
247
248
249
250 #if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x)
251 #define __cpu_is_pxa2xx(id) \
252 ({ \
253 unsigned int _id = (id) >> 13 & 0x7; \
254 _id <= 0x2; \
255 })
256 #else
257 #define __cpu_is_pxa2xx(id) (0)
258 #endif
259
260 #ifdef CONFIG_PXA3xx
261 #define __cpu_is_pxa3xx(id) \
262 ({ \
263 __cpu_is_pxa300(id) \
264 || __cpu_is_pxa310(id) \
265 || __cpu_is_pxa320(id) \
266 || __cpu_is_pxa93x(id); \
267 })
268 #else
269 #define __cpu_is_pxa3xx(id) (0)
270 #endif
271
272 #if defined(CONFIG_CPU_PXA930) || defined(CONFIG_CPU_PXA935)
273 #define __cpu_is_pxa93x(id) \
274 ({ \
275 __cpu_is_pxa930(id) \
276 || __cpu_is_pxa935(id); \
277 })
278 #else
279 #define __cpu_is_pxa93x(id) (0)
280 #endif
281
282 #define cpu_is_pxa2xx() \
283 ({ \
284 __cpu_is_pxa2xx(read_cpuid_id()); \
285 })
286
287 #define cpu_is_pxa3xx() \
288 ({ \
289 __cpu_is_pxa3xx(read_cpuid_id()); \
290 })
291
292 #define cpu_is_pxa93x() \
293 ({ \
294 __cpu_is_pxa93x(read_cpuid_id()); \
295 })
296
297
298
299
300
301 extern unsigned int get_memclk_frequency_10khz(void);
302
303 #endif
304
305 #endif