ARM: EXYNOS: Add 5800 SoC support
authorArun Kumar K <arun.kk@samsung.com>
Sun, 25 May 2014 19:16:11 +0000 (04:16 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Fri, 30 May 2014 17:37:16 +0000 (02:37 +0900)
Exynos5800 is an octa core SoC which is based on the 5420
platform. This patch adds the basic support for it in the
mach-exynos.

Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/platsmp.c

index bf4ed87..8390096 100644 (file)
@@ -113,6 +113,11 @@ config SOC_EXYNOS5440
        help
          Enable EXYNOS5440 SoC support
 
+config SOC_EXYNOS5800
+       bool "SAMSUNG EXYNOS5800"
+       default y
+       depends on SOC_EXYNOS5420
+
 endmenu
 
 endif
index c1a2f22..d439ed2 100644 (file)
@@ -23,6 +23,7 @@
 #define EXYNOS5250_SOC_ID      0x43520000
 #define EXYNOS5420_SOC_ID      0xE5420000
 #define EXYNOS5440_SOC_ID      0xE5440000
+#define EXYNOS5800_SOC_ID      0xE5422000
 #define EXYNOS5_SOC_MASK       0xFFFFF000
 
 extern unsigned long samsung_cpu_id;
@@ -39,6 +40,7 @@ IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
+IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
 
 #if defined(CONFIG_CPU_EXYNOS4210)
 # define soc_is_exynos4210()   is_samsung_exynos4210()
@@ -80,9 +82,16 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
 # define soc_is_exynos5440()   0
 #endif
 
+#if defined(CONFIG_SOC_EXYNOS5800)
+# define soc_is_exynos5800()   is_samsung_exynos5800()
+#else
+# define soc_is_exynos5800()   0
+#endif
+
 #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
                          soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
+#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420() || \
+                         soc_is_exynos5800())
 
 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
index c28cdb1..f5ec7e8 100644 (file)
@@ -45,7 +45,7 @@ static inline void __iomem *cpu_boot_reg(int cpu)
        boot_reg = cpu_boot_reg_base();
        if (soc_is_exynos4412())
                boot_reg += 4*cpu;
-       else if (soc_is_exynos5420())
+       else if (soc_is_exynos5420() || soc_is_exynos5800())
                boot_reg += 4;
        return boot_reg;
 }