blob: 8f94addd9bcea1ca5384b827a633d630773aed27 [file] [log] [blame]
Eric Miao49cbe782009-01-20 14:15:18 +08001#ifndef __ASM_MACH_CPUTYPE_H
2#define __ASM_MACH_CPUTYPE_H
3
4#include <asm/cputype.h>
5
6/*
Haojian Zhuangf090c742010-09-21 16:43:57 +08007 * CPU Stepping CPU_ID CHIP_ID
Eric Miao49cbe782009-01-20 14:15:18 +08008 *
Haojian Zhuangf090c742010-09-21 16:43:57 +08009 * 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 Miao49cbe782009-01-20 14:15:18 +080020 */
21
Haojian Zhuangf090c742010-09-21 16:43:57 +080022extern unsigned int mmp_chip_id;
23
Eric Miao49cbe782009-01-20 14:15:18 +080024#ifdef CONFIG_CPU_PXA168
Haojian Zhuangf090c742010-09-21 16:43:57 +080025static inline int cpu_is_pxa168(void)
26{
27 return (((read_cpuid_id() >> 8) & 0xff) == 0x84) &&
28 ((mmp_chip_id & 0xfff) == 0x168);
29}
Eric Miao49cbe782009-01-20 14:15:18 +080030#else
Haojian Zhuangf090c742010-09-21 16:43:57 +080031#define cpu_is_pxa168() (0)
Eric Miao49cbe782009-01-20 14:15:18 +080032#endif
33
Haojian Zhuangf090c742010-09-21 16:43:57 +080034/* cpu_is_pxa910() is shared on both pxa910 and pxa920 */
Eric Miao14c6b5e2009-03-20 12:50:22 +080035#ifdef CONFIG_CPU_PXA910
Haojian Zhuangf090c742010-09-21 16:43:57 +080036static 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 Miao14c6b5e2009-03-20 12:50:22 +080042#else
Haojian Zhuangf090c742010-09-21 16:43:57 +080043#define cpu_is_pxa910() (0)
Eric Miao14c6b5e2009-03-20 12:50:22 +080044#endif
45
Lubomir Rintel6c4fbbd2018-12-02 12:12:24 +010046#if defined(CONFIG_CPU_MMP2) || defined(CONFIG_MACH_MMP2_DT)
Haojian Zhuangf090c742010-09-21 16:43:57 +080047static inline int cpu_is_mmp2(void)
48{
Lubomir Rintel6c4fbbd2018-12-02 12:12:24 +010049 return (((read_cpuid_id() >> 8) & 0xff) == 0x58) &&
50 (((mmp_chip_id & 0xfff) == 0x410) ||
51 ((mmp_chip_id & 0xfff) == 0x610));
Haojian Zhuang3073f0f2010-10-29 11:32:56 +080052}
Haojian Zhuang2f7e8fa2009-12-04 09:41:28 -050053#else
Haojian Zhuangf090c742010-09-21 16:43:57 +080054#define cpu_is_mmp2() (0)
Haojian Zhuang2f7e8fa2009-12-04 09:41:28 -050055#endif
56
Eric Miao49cbe782009-01-20 14:15:18 +080057#endif /* __ASM_MACH_CPUTYPE_H */