davinci: Adding DM365 SOC Support
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / arm / mach-davinci / include / mach / cputype.h
blob56b92d49e293ecac27e8f216d0e79bc163a7a049
1 /*
2 * DaVinci CPU type detection
4 * Author: Kevin Hilman, Deep Root Systems, LLC
6 * Defines the cpu_is_*() macros for runtime detection of DaVinci
7 * device type. In addtion, 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.
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.
16 #ifndef _ASM_ARCH_CPU_H
17 #define _ASM_ARCH_CPU_H
19 #include <mach/common.h>
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;
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
35 #define IS_DAVINCI_CPU(type, id) \
36 static inline int is_davinci_ ##type(void) \
37 { \
38 return (davinci_soc_info.cpu_id == (id)); \
41 IS_DAVINCI_CPU(dm644x, DAVINCI_CPU_ID_DM6446)
42 IS_DAVINCI_CPU(dm646x, DAVINCI_CPU_ID_DM6467)
43 IS_DAVINCI_CPU(dm355, DAVINCI_CPU_ID_DM355)
44 IS_DAVINCI_CPU(dm365, DAVINCI_CPU_ID_DM365)
46 #ifdef CONFIG_ARCH_DAVINCI_DM644x
47 #define cpu_is_davinci_dm644x() is_davinci_dm644x()
48 #else
49 #define cpu_is_davinci_dm644x() 0
50 #endif
52 #ifdef CONFIG_ARCH_DAVINCI_DM646x
53 #define cpu_is_davinci_dm646x() is_davinci_dm646x()
54 #else
55 #define cpu_is_davinci_dm646x() 0
56 #endif
58 #ifdef CONFIG_ARCH_DAVINCI_DM355
59 #define cpu_is_davinci_dm355() is_davinci_dm355()
60 #else
61 #define cpu_is_davinci_dm355() 0
62 #endif
64 #ifdef CONFIG_ARCH_DAVINCI_DM365
65 #define cpu_is_davinci_dm365() is_davinci_dm365()
66 #else
67 #define cpu_is_davinci_dm365() 0
68 #endif
70 #endif