1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __ASM_MACH_CPUTYPE_H 3 #define __ASM_MACH_CPUTYPE_H 4 5 #if defined(CONFIG_ARM) || defined(CONFIG_ARM64) 6 #include <asm/cputype.h> 7 #endif 8 9 /* 10 * CPU Stepping CPU_ID CHIP_ID 11 * 12 * PXA168 S0 0x56158400 0x0000C910 13 * PXA168 A0 0x56158400 0x00A0A168 14 * PXA910 Y1 0x56158400 0x00F2C920 15 * PXA910 A0 0x56158400 0x00F2C910 16 * PXA910 A1 0x56158400 0x00A0C910 17 * PXA920 Y0 0x56158400 0x00F2C920 18 * PXA920 A0 0x56158400 0x00A0C920 19 * PXA920 A1 0x56158400 0x00A1C920 20 * MMP2 Z0 0x560f5811 0x00F00410 21 * MMP2 Z1 0x560f5811 0x00E00410 22 * MMP2 A0 0x560f5811 0x00A0A610 23 * MMP3 A0 0x562f5842 0x00A02128 24 * MMP3 B0 0x562f5842 0x00B02128 25 */ 26 27 extern unsigned int mmp_chip_id; 28 29 #ifdef CONFIG_CPU_PXA168 cpu_is_pxa168(void)30static inline int cpu_is_pxa168(void) 31 { 32 return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && 33 ((mmp_chip_id & 0xfff) == 0x168); 34 } 35 #else 36 #define cpu_is_pxa168() (0) 37 #endif 38 39 /* cpu_is_pxa910() is shared on both pxa910 and pxa920 */ 40 #ifdef CONFIG_CPU_PXA910 cpu_is_pxa910(void)41static inline int cpu_is_pxa910(void) 42 { 43 return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && 44 (((mmp_chip_id & 0xfff) == 0x910) || 45 ((mmp_chip_id & 0xfff) == 0x920)); 46 } 47 #else 48 #define cpu_is_pxa910() (0) 49 #endif 50 51 #if defined(CONFIG_CPU_MMP2) || defined(CONFIG_MACH_MMP2_DT) cpu_is_mmp2(void)52static inline int cpu_is_mmp2(void) 53 { 54 return (((read_cpuid_id() >> 8) & 0xff) == 0x58) && 55 (((mmp_chip_id & 0xfff) == 0x410) || 56 ((mmp_chip_id & 0xfff) == 0x610)); 57 } 58 #else 59 #define cpu_is_mmp2() (0) 60 #endif 61 62 #ifdef CONFIG_MACH_MMP3_DT cpu_is_mmp3(void)63static inline int cpu_is_mmp3(void) 64 { 65 return (((read_cpuid_id() >> 8) & 0xff) == 0x58) && 66 ((mmp_chip_id & 0xffff) == 0x2128); 67 } 68 cpu_is_mmp3_a0(void)69static inline int cpu_is_mmp3_a0(void) 70 { 71 return (cpu_is_mmp3() && 72 ((mmp_chip_id & 0x00ff0000) == 0x00a00000)); 73 } 74 cpu_is_mmp3_b0(void)75static inline int cpu_is_mmp3_b0(void) 76 { 77 return (cpu_is_mmp3() && 78 ((mmp_chip_id & 0x00ff0000) == 0x00b00000)); 79 } 80 81 #else 82 #define cpu_is_mmp3() (0) 83 #define cpu_is_mmp3_a0() (0) 84 #define cpu_is_mmp3_b0() (0) 85 #endif 86 87 #endif /* __ASM_MACH_CPUTYPE_H */ 88