#ifndef __ASM_MACH_CPUTYPE_H #define __ASM_MACH_CPUTYPE_H #include <asm/cputype.h> /* * CPU Stepping CPU_ID CHIP_ID * * PXA168 S0 0x56158400 0x0000C910 * PXA168 A0 0x56158400 0x00A0A168 * PXA910 Y1 0x56158400 0x00F2C920 * PXA910 A0 0x56158400 0x00F2C910 * PXA910 A1 0x56158400 0x00A0C910 * PXA920 Y0 0x56158400 0x00F2C920 * PXA920 A0 0x56158400 0x00A0C920 * PXA920 A1 0x56158400 0x00A1C920 * MMP2 Z0 0x560f5811 0x00F00410 * MMP2 Z1 0x560f5811 0x00E00410 * MMP2 A0 0x560f5811 0x00A0A610 */ extern unsigned int mmp_chip_id; #ifdef [31mCONFIG_CPU_PXA168[0m static inline int cpu_is_pxa168(void) { return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && ((mmp_chip_id & 0xfff) == 0x168); } #else #define cpu_is_pxa168() (0) #endif /* cpu_is_pxa910() is shared on both pxa910 and pxa920 */ #ifdef [31mCONFIG_CPU_PXA910[0m static inline int cpu_is_pxa910(void) { return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && (((mmp_chip_id & 0xfff) == 0x910) || ((mmp_chip_id & 0xfff) == 0x920)); } #else #define cpu_is_pxa910() (0) #endif #ifdef [31mCONFIG_CPU_MMP2[0m static inline int cpu_is_mmp2(void) { return (((read_cpuid_id() >> 8) & 0xff) == 0x58); } #else #define cpu_is_mmp2() (0) #endif #endif /* __ASM_MACH_CPUTYPE_H */ |