Merge branch 'async-scsi-resume' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / arch / arm / mach-davinci / include / mach / cputype.h
1 /*
2  * DaVinci CPU type detection
3  *
4  * Author: Kevin Hilman, Deep Root Systems, LLC
5  *
6  * Defines the cpu_is_*() macros for runtime detection of DaVinci
7  * device type.  In addition, if support for a given device is not
8  * compiled in to the kernel, the macros return 0 so that
9  * resulting code can be optimized out.
10  *
11  * 2009 (c) Deep Root Systems, LLC. This file is licensed under
12  * the terms of the GNU General Public License version 2. This program
13  * is licensed "as is" without any warranty of any kind, whether express
14  * or implied.
15  */
16 #ifndef _ASM_ARCH_CPU_H
17 #define _ASM_ARCH_CPU_H
18
19 #include <mach/common.h>
20
21 struct davinci_id {
22         u8      variant;        /* JTAG ID bits 31:28 */
23         u16     part_no;        /* JTAG ID bits 27:12 */
24         u16     manufacturer;   /* JTAG ID bits 11:1 */
25         u32     cpu_id;
26         char    *name;
27 };
28
29 /* Can use lower 16 bits of cpu id  for a variant when required */
30 #define DAVINCI_CPU_ID_DM6446           0x64460000
31 #define DAVINCI_CPU_ID_DM6467           0x64670000
32 #define DAVINCI_CPU_ID_DM355            0x03550000
33 #define DAVINCI_CPU_ID_DM365            0x03650000
34 #define DAVINCI_CPU_ID_DA830            0x08300000
35 #define DAVINCI_CPU_ID_DA850            0x08500000
36
37 #define IS_DAVINCI_CPU(type, id)                                        \
38 static inline int is_davinci_ ##type(void)                              \
39 {                                                                       \
40         return (davinci_soc_info.cpu_id == (id));                       \
41 }
42
43 IS_DAVINCI_CPU(dm644x, DAVINCI_CPU_ID_DM6446)
44 IS_DAVINCI_CPU(dm646x, DAVINCI_CPU_ID_DM6467)
45 IS_DAVINCI_CPU(dm355, DAVINCI_CPU_ID_DM355)
46 IS_DAVINCI_CPU(dm365, DAVINCI_CPU_ID_DM365)
47 IS_DAVINCI_CPU(da830, DAVINCI_CPU_ID_DA830)
48 IS_DAVINCI_CPU(da850, DAVINCI_CPU_ID_DA850)
49
50 #ifdef CONFIG_ARCH_DAVINCI_DM644x
51 #define cpu_is_davinci_dm644x() is_davinci_dm644x()
52 #else
53 #define cpu_is_davinci_dm644x() 0
54 #endif
55
56 #ifdef CONFIG_ARCH_DAVINCI_DM646x
57 #define cpu_is_davinci_dm646x() is_davinci_dm646x()
58 #else
59 #define cpu_is_davinci_dm646x() 0
60 #endif
61
62 #ifdef CONFIG_ARCH_DAVINCI_DM355
63 #define cpu_is_davinci_dm355() is_davinci_dm355()
64 #else
65 #define cpu_is_davinci_dm355() 0
66 #endif
67
68 #ifdef CONFIG_ARCH_DAVINCI_DM365
69 #define cpu_is_davinci_dm365() is_davinci_dm365()
70 #else
71 #define cpu_is_davinci_dm365() 0
72 #endif
73
74 #ifdef CONFIG_ARCH_DAVINCI_DA830
75 #define cpu_is_davinci_da830() is_davinci_da830()
76 #else
77 #define cpu_is_davinci_da830() 0
78 #endif
79
80 #ifdef CONFIG_ARCH_DAVINCI_DA850
81 #define cpu_is_davinci_da850() is_davinci_da850()
82 #else
83 #define cpu_is_davinci_da850() 0
84 #endif
85
86 #endif