diff options
author | Arun Kumar K <arun.kk@samsung.com> | 2014-05-25 15:16:11 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2014-05-30 13:37:16 -0400 |
commit | 86c6f1488d9e53894cafc5671487269e80286d10 (patch) | |
tree | 8131477db871685ce840caab982546401072f9b5 | |
parent | ed08f10397cc18cd35fa3938fc55e4effa4fb66f (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/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/mach-exynos/common.h | 11 | ||||
-rw-r--r-- | arch/arm/mach-exynos/platsmp.c | 2 |
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 | ||
116 | config SOC_EXYNOS5800 | ||
117 | bool "SAMSUNG EXYNOS5800" | ||
118 | default y | ||
119 | depends on SOC_EXYNOS5420 | ||
120 | |||
116 | endmenu | 121 | endmenu |
117 | 122 | ||
118 | endif | 123 | endif |
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 | ||
28 | extern unsigned long samsung_cpu_id; | 29 | extern unsigned long samsung_cpu_id; |
@@ -39,6 +40,7 @@ IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) | |||
39 | IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) | 40 | IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK) |
40 | IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) | 41 | IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) |
41 | IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) | 42 | IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) |
43 | IS_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 | ||
87 | void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1); | 96 | void 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 | } |