File Index
Files and directories
Sign in
FILE

cpu.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/soc/pxa/cpu.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 *  Author:	Nicolas Pitre
  4 *  Created:	Jun 15, 2001
  5 *  Copyright:	MontaVista Software Inc.
  6 */
  7
  8#ifndef __SOC_PXA_CPU_H
  9#define __SOC_PXA_CPU_H
 10
 11#ifdef CONFIG_ARM
 12#include <asm/cputype.h>
 13#endif
 14
 15/*
 16 *   CPU     Stepping     CPU_ID         JTAG_ID
 17 *
 18 *  PXA210	B0	0x69052922	0x2926C013
 19 *  PXA210	B1	0x69052923	0x3926C013
 20 *  PXA210	B2	0x69052924	0x4926C013
 21 *  PXA210	C0	0x69052D25	0x5926C013
 22 *
 23 *  PXA250	A0	0x69052100	0x09264013
 24 *  PXA250	A1	0x69052101	0x19264013
 25 *  PXA250	B0	0x69052902	0x29264013
 26 *  PXA250	B1	0x69052903	0x39264013
 27 *  PXA250	B2	0x69052904	0x49264013
 28 *  PXA250	C0	0x69052D05	0x59264013
 29 *
 30 *  PXA255	A0	0x69052D06	0x69264013
 31 *
 32 *  PXA26x	A0	0x69052903	0x39264013
 33 *  PXA26x	B0	0x69052D05	0x59264013
 34 *
 35 *  PXA27x	A0	0x69054110	0x09265013
 36 *  PXA27x	A1	0x69054111	0x19265013
 37 *  PXA27x	B0	0x69054112	0x29265013
 38 *  PXA27x	B1	0x69054113	0x39265013
 39 *  PXA27x	C0	0x69054114	0x49265013
 40 *  PXA27x	C5	0x69054117	0x79265013
 41 *
 42 *  PXA30x	A0	0x69056880	0x0E648013
 43 *  PXA30x	A1	0x69056881	0x1E648013
 44 *  PXA31x	A0	0x69056890	0x0E649013
 45 *  PXA31x	A1	0x69056891	0x1E649013
 46 *  PXA31x	A2	0x69056892	0x2E649013
 47 *  PXA32x	B1	0x69056825	0x5E642013
 48 *  PXA32x	B2	0x69056826	0x6E642013
 49 *
 50 *  PXA930	B0	0x69056835	0x5E643013
 51 *  PXA930	B1	0x69056837	0x7E643013
 52 *  PXA930	B2	0x69056838	0x8E643013
 53 *
 54 *  PXA935	A0	0x56056931	0x1E653013
 55 *  PXA935	B0	0x56056936	0x6E653013
 56 *  PXA935	B1	0x56056938	0x8E653013
 57 */
 58#ifdef CONFIG_PXA25x
 59#define __cpu_is_pxa210(id)				\
 60	({						\
 61		unsigned int _id = (id) & 0xf3f0;	\
 62		_id == 0x2120;				\
 63	})
 64
 65#define __cpu_is_pxa250(id)				\
 66	({						\
 67		unsigned int _id = (id) & 0xf3ff;	\
 68		_id <= 0x2105;				\
 69	})
 70
 71#define __cpu_is_pxa255(id)				\
 72	({						\
 73		unsigned int _id = (id) & 0xffff;	\
 74		_id == 0x2d06;				\
 75	})
 76
 77#define __cpu_is_pxa25x(id)				\
 78	({						\
 79		unsigned int _id = (id) & 0xf300;	\
 80		_id == 0x2100;				\
 81	})
 82#else
 83#define __cpu_is_pxa210(id)	(0)
 84#define __cpu_is_pxa250(id)	(0)
 85#define __cpu_is_pxa255(id)	(0)
 86#define __cpu_is_pxa25x(id)	(0)
 87#endif
 88
 89#ifdef CONFIG_PXA27x
 90#define __cpu_is_pxa27x(id)				\
 91	({						\
 92		unsigned int _id = (id) >> 4 & 0xfff;	\
 93		_id == 0x411;				\
 94	})
 95#else
 96#define __cpu_is_pxa27x(id)	(0)
 97#endif
 98
 99#ifdef CONFIG_CPU_PXA300
100#define __cpu_is_pxa300(id)				\
101	({						\
102		unsigned int _id = (id) >> 4 & 0xfff;	\
103		_id == 0x688;				\
104	 })
105#else
106#define __cpu_is_pxa300(id)	(0)
107#endif
108
109#ifdef CONFIG_CPU_PXA310
110#define __cpu_is_pxa310(id)				\
111	({						\
112		unsigned int _id = (id) >> 4 & 0xfff;	\
113		_id == 0x689;				\
114	 })
115#else
116#define __cpu_is_pxa310(id)	(0)
117#endif
118
119#ifdef CONFIG_CPU_PXA320
120#define __cpu_is_pxa320(id)				\
121	({						\
122		unsigned int _id = (id) >> 4 & 0xfff;	\
123		_id == 0x603 || _id == 0x682;		\
124	 })
125#else
126#define __cpu_is_pxa320(id)	(0)
127#endif
128
129#ifdef CONFIG_CPU_PXA930
130#define __cpu_is_pxa930(id)				\
131	({						\
132		unsigned int _id = (id) >> 4 & 0xfff;	\
133		_id == 0x683;				\
134	 })
135#else
136#define __cpu_is_pxa930(id)	(0)
137#endif
138
139#ifdef CONFIG_CPU_PXA935
140#define __cpu_is_pxa935(id)				\
141	({						\
142		unsigned int _id = (id) >> 4 & 0xfff;	\
143		_id == 0x693;				\
144	 })
145#else
146#define __cpu_is_pxa935(id)	(0)
147#endif
148
149#define cpu_is_pxa210()					\
150	({						\
151		__cpu_is_pxa210(read_cpuid_id());	\
152	})
153
154#define cpu_is_pxa250()					\
155	({						\
156		__cpu_is_pxa250(read_cpuid_id());	\
157	})
158
159#define cpu_is_pxa255()                                 \
160	({                                              \
161		__cpu_is_pxa255(read_cpuid_id());       \
162	})
163
164#define cpu_is_pxa25x()					\
165	({						\
166		__cpu_is_pxa25x(read_cpuid_id());	\
167	})
168
169#define cpu_is_pxa27x()					\
170	({						\
171		__cpu_is_pxa27x(read_cpuid_id());	\
172	})
173
174#define cpu_is_pxa300()					\
175	({						\
176		__cpu_is_pxa300(read_cpuid_id());	\
177	 })
178
179#define cpu_is_pxa310()					\
180	({						\
181		__cpu_is_pxa310(read_cpuid_id());	\
182	 })
183
184#define cpu_is_pxa320()					\
185	({						\
186		__cpu_is_pxa320(read_cpuid_id());	\
187	 })
188
189#define cpu_is_pxa930()					\
190	({						\
191		__cpu_is_pxa930(read_cpuid_id());	\
192	 })
193
194#define cpu_is_pxa935()					\
195	({						\
196		__cpu_is_pxa935(read_cpuid_id());	\
197	 })
198
199
200
201/*
202 * CPUID Core Generation Bit
203 * <= 0x2 for pxa21x/pxa25x/pxa26x/pxa27x
204 */
205#if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x)
206#define __cpu_is_pxa2xx(id)				\
207	({						\
208		unsigned int _id = (id) >> 13 & 0x7;	\
209		_id <= 0x2;				\
210	 })
211#else
212#define __cpu_is_pxa2xx(id)	(0)
213#endif
214
215#ifdef CONFIG_PXA3xx
216#define __cpu_is_pxa3xx(id)				\
217	({						\
218		__cpu_is_pxa300(id)			\
219			|| __cpu_is_pxa310(id)		\
220			|| __cpu_is_pxa320(id)		\
221			|| __cpu_is_pxa93x(id);		\
222	 })
223#else
224#define __cpu_is_pxa3xx(id)	(0)
225#endif
226
227#if defined(CONFIG_CPU_PXA930) || defined(CONFIG_CPU_PXA935)
228#define __cpu_is_pxa93x(id)				\
229	({						\
230		__cpu_is_pxa930(id)			\
231			|| __cpu_is_pxa935(id);		\
232	 })
233#else
234#define __cpu_is_pxa93x(id)	(0)
235#endif
236
237#define cpu_is_pxa2xx()					\
238	({						\
239		__cpu_is_pxa2xx(read_cpuid_id());	\
240	 })
241
242#define cpu_is_pxa3xx()					\
243	({						\
244		__cpu_is_pxa3xx(read_cpuid_id());	\
245	 })
246
247#define cpu_is_pxa93x()					\
248	({						\
249		__cpu_is_pxa93x(read_cpuid_id());	\
250	 })
251
252#endif
~/ Read-only file preview.