summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-arm/arch-ixp4xx/ixp4xx-regs.h')
-rw-r--r--include/asm-arm/arch-ixp4xx/ixp4xx-regs.h36
1 files changed, 32 insertions, 4 deletions
diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
index ed35e5c..deb9899 100644
--- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
@@ -607,15 +607,43 @@
#define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */
+/* Processor id value in CP15 Register 0 */
+#define IXP425_PROCESSOR_ID_VALUE 0x690541c0
+#define IXP435_PROCESSOR_ID_VALUE 0x69054040
+#define IXP465_PROCESSOR_ID_VALUE 0x69054200
+#define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0
+
#ifndef __ASSEMBLY__
+static inline int cpu_is_ixp42x(void)
+{
+ extern unsigned int processor_id;
+
+ if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
+ IXP425_PROCESSOR_ID_VALUE )
+ return 1;
+
+ return 0;
+}
+
+static inline int cpu_is_ixp43x(void)
+{
+#ifdef CONFIG_CPU_IXP43X
+ extern unsigned int processor_id;
+
+ if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
+ IXP435_PROCESSOR_ID_VALUE )
+ return 1;
+#endif
+ return 0;
+}
+
static inline int cpu_is_ixp46x(void)
{
#ifdef CONFIG_CPU_IXP46X
- unsigned int processor_id;
-
- asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :);
+ extern unsigned int processor_id;
- if ((processor_id & 0xffffff00) == 0x69054200)
+ if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
+ IXP465_PROCESSOR_ID_VALUE )
return 1;
#endif
return 0;
OpenPOWER on IntegriCloud