aboutsummaryrefslogtreecommitdiffstats
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 ed35e5c94f40..deb989950c52 100644
--- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
+++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h
@@ -607,15 +607,43 @@
607 607
608#define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */ 608#define DCMD_LENGTH 0x01fff /* length mask (max = 8K - 1) */
609 609
610/* Processor id value in CP15 Register 0 */
611#define IXP425_PROCESSOR_ID_VALUE 0x690541c0
612#define IXP435_PROCESSOR_ID_VALUE 0x69054040
613#define IXP465_PROCESSOR_ID_VALUE 0x69054200
614#define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0
615
610#ifndef __ASSEMBLY__ 616#ifndef __ASSEMBLY__
617static inline int cpu_is_ixp42x(void)
618{
619 extern unsigned int processor_id;
620
621 if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
622 IXP425_PROCESSOR_ID_VALUE )
623 return 1;
624
625 return 0;
626}
627
628static inline int cpu_is_ixp43x(void)
629{
630#ifdef CONFIG_CPU_IXP43X
631 extern unsigned int processor_id;
632
633 if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
634 IXP435_PROCESSOR_ID_VALUE )
635 return 1;
636#endif
637 return 0;
638}
639
611static inline int cpu_is_ixp46x(void) 640static inline int cpu_is_ixp46x(void)
612{ 641{
613#ifdef CONFIG_CPU_IXP46X 642#ifdef CONFIG_CPU_IXP46X
614 unsigned int processor_id; 643 extern unsigned int processor_id;
615
616 asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :);
617 644
618 if ((processor_id & 0xffffff00) == 0x69054200) 645 if ((processor_id & IXP4XX_PROCESSOR_ID_MASK) ==
646 IXP465_PROCESSOR_ID_VALUE )
619 return 1; 647 return 1;
620#endif 648#endif
621 return 0; 649 return 0;