ARM: 6077/1: ux500: add SOC Kconfig variables
authorRabin Vincent <rabin.vincent@stericsson.com>
Mon, 3 May 2010 06:27:31 +0000 (07:27 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 4 May 2010 16:50:00 +0000 (17:50 +0100)
This adds the different config options for SoCs DB8500 and DB5500 and
refines the SoC/CPU detection code to support the DB5500 as well via
these.  The selection between DB5500 and DB8500 is currently a simple
compile-time choice.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-ux500/Kconfig
arch/arm/mach-ux500/include/mach/hardware.h

index cd412a3..699588f 100644 (file)
@@ -1,16 +1,30 @@
+if ARCH_U8500
+
+config UX500_SOC_COMMON
+       bool
+       default y
+       select ARM_GIC
+       select HAS_MTU
+       select NOMADIK_GPIO
+
+config UX500_SOC_DB8500
+       bool
+
+config UX500_SOC_DB5500
+       bool
+
 menu "ST-Ericsson platform type"
-       depends on ARCH_U8500
 
 comment "ST-Ericsson Multicore Mobile Platforms"
 
 config MACH_U8500_MOP
        bool "U8500 Early Development platform"
        default y
-       select ARM_GIC
-       select HAS_MTU
-       select NOMADIK_GPIO
+       select UX500_SOC_DB8500
        help
          Include support for mop500 development platform
          based on U8500 architecture. The platform is based
          on early drop silicon version of 8500.
 endmenu
+
+endif
index 99ca89f..d86b354 100644 (file)
 
 #include <asm/cputype.h>
 
+static inline bool cpu_is_u8500(void)
+{
+#ifdef CONFIG_UX500_SOC_DB8500
+       return 1;
+#else
+       return 0;
+#endif
+}
+
 static inline bool cpu_is_u8500ed(void)
 {
-       return (read_cpuid_id() & 15) == 0;
+       return cpu_is_u8500() && (read_cpuid_id() & 15) == 0;
 }
 
 static inline bool cpu_is_u8500v1(void)
 {
-       return (read_cpuid_id() & 15) == 1;
+       return cpu_is_u8500() && (read_cpuid_id() & 15) == 1;
 }
 
 #endif