aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArun Kumar K <arun.kk@samsung.com>2014-05-25 15:16:11 -0400
committerKukjin Kim <kgene.kim@samsung.com>2014-05-30 13:37:16 -0400
commit86c6f1488d9e53894cafc5671487269e80286d10 (patch)
tree8131477db871685ce840caab982546401072f9b5
parented08f10397cc18cd35fa3938fc55e4effa4fb66f (diff)
ARM: EXYNOS: Add 5800 SoC support
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>
-rw-r--r--arch/arm/mach-exynos/Kconfig5
-rw-r--r--arch/arm/mach-exynos/common.h11
-rw-r--r--arch/arm/mach-exynos/platsmp.c2
3 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index bf4ed87a4f1e..8390096e90e7 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -113,6 +113,11 @@ config SOC_EXYNOS5440
113 help 113 help
114 Enable EXYNOS5440 SoC support 114 Enable EXYNOS5440 SoC support
115 115
116config SOC_EXYNOS5800
117 bool "SAMSUNG EXYNOS5800"
118 default y
119 depends on SOC_EXYNOS5420
120
116endmenu 121endmenu
117 122
118endif 123endif
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index c1a2f2207af0..d439ed2e7350 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -23,6 +23,7 @@
23#define EXYNOS5250_SOC_ID 0x43520000 23#define EXYNOS5250_SOC_ID 0x43520000
24#define EXYNOS5420_SOC_ID 0xE5420000 24#define EXYNOS5420_SOC_ID 0xE5420000
25#define EXYNOS5440_SOC_ID 0xE5440000 25#define EXYNOS5440_SOC_ID 0xE5440000
26#define EXYNOS5800_SOC_ID 0xE5422000
26#define EXYNOS5_SOC_MASK 0xFFFFF000 27#define EXYNOS5_SOC_MASK 0xFFFFF000
27 28
28extern unsigned long samsung_cpu_id; 29extern unsigned long samsung_cpu_id;
@@ -39,6 +40,7 @@ IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
39IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) 40IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
40IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) 41IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
41IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) 42IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
43IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
42 44
43#if defined(CONFIG_CPU_EXYNOS4210) 45#if defined(CONFIG_CPU_EXYNOS4210)
44# define soc_is_exynos4210() is_samsung_exynos4210() 46# define soc_is_exynos4210() is_samsung_exynos4210()
@@ -80,9 +82,16 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
80# define soc_is_exynos5440() 0 82# define soc_is_exynos5440() 0
81#endif 83#endif
82 84
85#if defined(CONFIG_SOC_EXYNOS5800)
86# define soc_is_exynos5800() is_samsung_exynos5800()
87#else
88# define soc_is_exynos5800() 0
89#endif
90
83#define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \ 91#define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
84 soc_is_exynos4412()) 92 soc_is_exynos4412())
85#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420()) 93#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420() || \
94 soc_is_exynos5800())
86 95
87void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1); 96void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
88 97
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index c28cdb1c82cd..f5ec7e805298 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -45,7 +45,7 @@ static inline void __iomem *cpu_boot_reg(int cpu)
45 boot_reg = cpu_boot_reg_base(); 45 boot_reg = cpu_boot_reg_base();
46 if (soc_is_exynos4412()) 46 if (soc_is_exynos4412())
47 boot_reg += 4*cpu; 47 boot_reg += 4*cpu;
48 else if (soc_is_exynos5420()) 48 else if (soc_is_exynos5420() || soc_is_exynos5800())
49 boot_reg += 4; 49 boot_reg += 4;
50 return boot_reg; 50 return boot_reg;
51} 51}