Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 1 | #ifndef __ASM_MACH_CPUTYPE_H |
| 2 | #define __ASM_MACH_CPUTYPE_H |
| 3 | |
| 4 | #include <asm/cputype.h> |
| 5 | |
| 6 | /* |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 7 | * CPU Stepping CPU_ID CHIP_ID |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 8 | * |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 9 | * PXA168 S0 0x56158400 0x0000C910 |
| 10 | * PXA168 A0 0x56158400 0x00A0A168 |
| 11 | * PXA910 Y1 0x56158400 0x00F2C920 |
| 12 | * PXA910 A0 0x56158400 0x00F2C910 |
| 13 | * PXA910 A1 0x56158400 0x00A0C910 |
| 14 | * PXA920 Y0 0x56158400 0x00F2C920 |
| 15 | * PXA920 A0 0x56158400 0x00A0C920 |
| 16 | * PXA920 A1 0x56158400 0x00A1C920 |
| 17 | * MMP2 Z0 0x560f5811 0x00F00410 |
| 18 | * MMP2 Z1 0x560f5811 0x00E00410 |
| 19 | * MMP2 A0 0x560f5811 0x00A0A610 |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 20 | */ |
| 21 | |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 22 | extern unsigned int mmp_chip_id; |
| 23 | |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 24 | #ifdef CONFIG_CPU_PXA168 |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 25 | static inline int cpu_is_pxa168(void) |
| 26 | { |
| 27 | return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && |
| 28 | ((mmp_chip_id & 0xfff) == 0x168); |
| 29 | } |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 30 | #else |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 31 | #define cpu_is_pxa168() (0) |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 32 | #endif |
| 33 | |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 34 | /* cpu_is_pxa910() is shared on both pxa910 and pxa920 */ |
Eric Miao | 14c6b5e | 2009-03-20 12:50:22 +0800 | [diff] [blame] | 35 | #ifdef CONFIG_CPU_PXA910 |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 36 | static inline int cpu_is_pxa910(void) |
| 37 | { |
| 38 | return (((read_cpuid_id() >> 8) & 0xff) == 0x84) && |
| 39 | (((mmp_chip_id & 0xfff) == 0x910) || |
| 40 | ((mmp_chip_id & 0xfff) == 0x920)); |
| 41 | } |
Eric Miao | 14c6b5e | 2009-03-20 12:50:22 +0800 | [diff] [blame] | 42 | #else |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 43 | #define cpu_is_pxa910() (0) |
Eric Miao | 14c6b5e | 2009-03-20 12:50:22 +0800 | [diff] [blame] | 44 | #endif |
| 45 | |
Lubomir Rintel | 6c4fbbd | 2018-12-02 12:12:24 +0100 | [diff] [blame] | 46 | #if defined(CONFIG_CPU_MMP2) || defined(CONFIG_MACH_MMP2_DT) |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 47 | static inline int cpu_is_mmp2(void) |
| 48 | { |
Lubomir Rintel | 6c4fbbd | 2018-12-02 12:12:24 +0100 | [diff] [blame] | 49 | return (((read_cpuid_id() >> 8) & 0xff) == 0x58) && |
| 50 | (((mmp_chip_id & 0xfff) == 0x410) || |
| 51 | ((mmp_chip_id & 0xfff) == 0x610)); |
Haojian Zhuang | 3073f0f | 2010-10-29 11:32:56 +0800 | [diff] [blame] | 52 | } |
Haojian Zhuang | 2f7e8fa | 2009-12-04 09:41:28 -0500 | [diff] [blame] | 53 | #else |
Haojian Zhuang | f090c74 | 2010-09-21 16:43:57 +0800 | [diff] [blame] | 54 | #define cpu_is_mmp2() (0) |
Haojian Zhuang | 2f7e8fa | 2009-12-04 09:41:28 -0500 | [diff] [blame] | 55 | #endif |
| 56 | |
Eric Miao | 49cbe78 | 2009-01-20 14:15:18 +0800 | [diff] [blame] | 57 | #endif /* __ASM_MACH_CPUTYPE_H */ |