• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/mach-davinci/include/mach/
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 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.
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
21struct 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#define	DAVINCI_CPU_ID_TNETV107X	0x0b8a0000
37
38#define IS_DAVINCI_CPU(type, id)					\
39static inline int is_davinci_ ##type(void)				\
40{									\
41	return (davinci_soc_info.cpu_id == (id));			\
42}
43
44IS_DAVINCI_CPU(dm644x, DAVINCI_CPU_ID_DM6446)
45IS_DAVINCI_CPU(dm646x, DAVINCI_CPU_ID_DM6467)
46IS_DAVINCI_CPU(dm355, DAVINCI_CPU_ID_DM355)
47IS_DAVINCI_CPU(dm365, DAVINCI_CPU_ID_DM365)
48IS_DAVINCI_CPU(da830, DAVINCI_CPU_ID_DA830)
49IS_DAVINCI_CPU(da850, DAVINCI_CPU_ID_DA850)
50IS_DAVINCI_CPU(tnetv107x, DAVINCI_CPU_ID_TNETV107X)
51
52#ifdef CONFIG_ARCH_DAVINCI_DM644x
53#define cpu_is_davinci_dm644x() is_davinci_dm644x()
54#else
55#define cpu_is_davinci_dm644x() 0
56#endif
57
58#ifdef CONFIG_ARCH_DAVINCI_DM646x
59#define cpu_is_davinci_dm646x() is_davinci_dm646x()
60#else
61#define cpu_is_davinci_dm646x() 0
62#endif
63
64#ifdef CONFIG_ARCH_DAVINCI_DM355
65#define cpu_is_davinci_dm355() is_davinci_dm355()
66#else
67#define cpu_is_davinci_dm355() 0
68#endif
69
70#ifdef CONFIG_ARCH_DAVINCI_DM365
71#define cpu_is_davinci_dm365() is_davinci_dm365()
72#else
73#define cpu_is_davinci_dm365() 0
74#endif
75
76#ifdef CONFIG_ARCH_DAVINCI_DA830
77#define cpu_is_davinci_da830() is_davinci_da830()
78#else
79#define cpu_is_davinci_da830() 0
80#endif
81
82#ifdef CONFIG_ARCH_DAVINCI_DA850
83#define cpu_is_davinci_da850() is_davinci_da850()
84#else
85#define cpu_is_davinci_da850() 0
86#endif
87
88#ifdef CONFIG_ARCH_DAVINCI_TNETV107X
89#define cpu_is_davinci_tnetv107x() is_davinci_tnetv107x()
90#else
91#define cpu_is_davinci_tnetv107x() 0
92#endif
93
94#endif
95