Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd272ab0 authored by eric miao's avatar eric miao Committed by Russell King
Browse files

[ARM] pxa: add PXA3 cpu_is_xxx() macros



Extracted from patch by Eric Miao, this adds the cpu_is_xxx() macros
for identifying PXA3 SoCs.

Signed-off-by: default avatareric miao <eric.y.miao@gmail.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent fa0b6251
Loading
Loading
Loading
Loading
+65 −0
Original line number Diff line number Diff line
@@ -80,6 +80,24 @@
		_id == 0x411;				\
	})

#define __cpu_is_pxa300(id)				\
	({						\
		unsigned int _id = (id) >> 4 & 0xfff;	\
		_id == 0x688;				\
	 })

#define __cpu_is_pxa310(id)				\
	({						\
		unsigned int _id = (id) >> 4 & 0xfff;	\
		_id == 0x689;				\
	 })

#define __cpu_is_pxa320(id)				\
	({						\
		unsigned int _id = (id) >> 4 & 0xfff;	\
		_id == 0x603 || _id == 0x682;		\
	 })

#define cpu_is_pxa21x()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
@@ -98,6 +116,53 @@
		__cpu_is_pxa27x(id);			\
	})

#define cpu_is_pxa300()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
		__cpu_is_pxa300(id);			\
	 })

#define cpu_is_pxa310()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
		__cpu_is_pxa310(id);			\
	 })

#define cpu_is_pxa320()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
		__cpu_is_pxa320(id);			\
	 })

/*
 * CPUID Core Generation Bit
 * <= 0x2 for pxa21x/pxa25x/pxa26x/pxa27x
 * == 0x3 for pxa300/pxa310/pxa320
 */
#define __cpu_is_pxa2xx(id)				\
	({						\
		unsigned int _id = (id) >> 13 & 0x7;	\
		_id <= 0x2;				\
	 })

#define __cpu_is_pxa3xx(id)				\
	({						\
		unsigned int _id = (id) >> 13 & 0x7;	\
		_id == 0x3;				\
	 })

#define cpu_is_pxa2xx()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
		__cpu_is_pxa2xx(id);			\
	 })

#define cpu_is_pxa3xx()					\
	({						\
		unsigned int id = read_cpuid(CPUID_ID);	\
		__cpu_is_pxa3xx(id);			\
	 })

/*
 * Handy routine to set GPIO alternate functions
 */