| /* |
| * DaVinci CPU type detection |
| * |
| * Author: Kevin Hilman, Deep Root Systems, LLC |
| * |
| * Defines the cpu_is_*() macros for runtime detection of DaVinci |
| * device type. In addtion, if support for a given device is not |
| * compiled in to the kernel, the macros return 0 so that |
| * resulting code can be optimized out. |
| * |
| * 2009 (c) Deep Root Systems, LLC. This file is licensed under |
| * the terms of the GNU General Public License version 2. This program |
| * is licensed "as is" without any warranty of any kind, whether express |
| * or implied. |
| */ |
| #ifndef _ASM_ARCH_CPU_H |
| #define _ASM_ARCH_CPU_H |
| |
| extern unsigned int davinci_rev(void); |
| |
| #define IS_DAVINCI_CPU(type, id) \ |
| static inline int is_davinci_dm ##type(void) \ |
| { \ |
| return (davinci_rev() == (id)) ? 1 : 0; \ |
| } |
| |
| IS_DAVINCI_CPU(644x, 0x6446) |
| IS_DAVINCI_CPU(646x, 0x6467) |
| IS_DAVINCI_CPU(355, 0x355) |
| |
| #ifdef CONFIG_ARCH_DAVINCI_DM644x |
| #define cpu_is_davinci_dm644x() is_davinci_dm644x() |
| #else |
| #define cpu_is_davinci_dm644x() 0 |
| #endif |
| |
| #ifdef CONFIG_ARCH_DAVINCI_DM646x |
| #define cpu_is_davinci_dm646x() is_davinci_dm646x() |
| #else |
| #define cpu_is_davinci_dm646x() 0 |
| #endif |
| |
| #ifdef CONFIG_ARCH_DAVINCI_DM355 |
| #define cpu_is_davinci_dm355() is_davinci_dm355() |
| #else |
| #define cpu_is_davinci_dm355() 0 |
| #endif |
| |
| #endif |