ARM: EXYNOS: Add Exynos3250 SoC ID
authorChanwoo Choi <cw00.choi@samsung.com>
Fri, 20 Dec 2013 10:35:43 +0000 (19:35 +0900)
committerChanho Park <chanho61.park@samsung.com>
Thu, 7 Aug 2014 06:17:44 +0000 (15:17 +0900)
This patch add Exynos3250's SoC ID. Exynos 3250 is SoC that
is based on the 32-bit RISC processor for Smartphone.
Exynos3250 uses Cortex-A7 dual cores and has a target speed
of 1.0GHz.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/common.c
arch/arm/plat-samsung/include/plat/cpu.h

index 3e53ad7..5ef3352 100644 (file)
@@ -11,6 +11,15 @@ if ARCH_EXYNOS
 
 menu "SAMSUNG EXYNOS SoCs Support"
 
+config ARCH_EXYNOS3
+       bool "SAMSUNG EXYNOS3"
+       default y
+       select HAVE_ARM_SCU if SMP
+       select HAVE_SMP
+       select MIGHT_HAVE_CACHE_L2X0
+       help
+         Samsung EXYNOS3 SoCs based systems
+
 config ARCH_EXYNOS4
        bool "SAMSUNG EXYNOS4"
        default y
@@ -31,6 +40,18 @@ config ARCH_EXYNOS5
 
 comment "EXYNOS SoCs"
 
+config SOC_EXYNOS3250
+       bool "SAMSUNG EXYNOS3250"
+       default y
+       depends on ARCH_EXYNOS3
+       select ARM_CPU_SUSPEND if PM
+       select PM_GENERIC_DOMAINS
+       select S5P_PM if PM
+       select S5P_SLEEP if PM
+       select SAMSUNG_DMADEV
+       help
+         Enable EXYNOS3250 CPU support
+
 config CPU_EXYNOS4210
        bool "SAMSUNG EXYNOS4210"
        default y
index d0dcfc0..291a7a0 100644 (file)
@@ -61,6 +61,7 @@
 #define L2_AUX_VAL 0x7C470001
 #define L2_AUX_MASK 0xC200ffff
 
+static const char name_exynos3250[] = "EXYNOS3250";
 static const char name_exynos4210[] = "EXYNOS4210";
 static const char name_exynos4212[] = "EXYNOS4212";
 static const char name_exynos4412[] = "EXYNOS4412";
@@ -77,6 +78,11 @@ unsigned long xxti_f = 0, xusbxti_f = 0;
 
 static struct cpu_table cpu_ids[] __initdata = {
        {
+               .idcode         = EXYNOS3250_SOC_ID,
+               .idmask         = EXYNOS3_SOC_MASK,
+               .init           = exynos_init,
+               .name           = name_exynos3250,
+       }, {
                .idcode         = EXYNOS4210_CPU_ID,
                .idmask         = EXYNOS4_CPU_MASK,
                .map_io         = exynos4_map_io,
index 989fefe..6e72135 100644 (file)
@@ -40,6 +40,9 @@ extern unsigned long samsung_cpu_id;
 #define S5PV210_CPU_ID         0x43110000
 #define S5PV210_CPU_MASK       0xFFFFF000
 
+#define EXYNOS3250_SOC_ID       0xE3472000
+#define EXYNOS3_SOC_MASK        0xFFFFF000
+
 #define EXYNOS4210_CPU_ID      0x43210000
 #define EXYNOS4212_CPU_ID      0x43220000
 #define EXYNOS4412_CPU_ID      0xE4412200
@@ -63,6 +66,7 @@ IS_SAMSUNG_CPU(s5p6440, S5P6440_CPU_ID, S5P64XX_CPU_MASK)
 IS_SAMSUNG_CPU(s5p6450, S5P6450_CPU_ID, S5P64XX_CPU_MASK)
 IS_SAMSUNG_CPU(s5pc100, S5PC100_CPU_ID, S5PC100_CPU_MASK)
 IS_SAMSUNG_CPU(s5pv210, S5PV210_CPU_ID, S5PV210_CPU_MASK)
+IS_SAMSUNG_CPU(exynos3250, EXYNOS3250_SOC_ID, EXYNOS3_SOC_MASK)
 IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
@@ -114,6 +118,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
 # define soc_is_s5pv210()      0
 #endif
 
+#if defined(CONFIG_SOC_EXYNOS3250)
+# define soc_is_exynos3250()    is_samsung_exynos3250()
+#else
+# define soc_is_exynos3250()    0
+#endif
+
 #if defined(CONFIG_CPU_EXYNOS4210)
 # define soc_is_exynos4210()   is_samsung_exynos4210()
 #else