diff options
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 22 | ||||
-rw-r--r-- | arch/arm/mach-exynos/common.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-exynos/exynos.c | 2 |
3 files changed, 34 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 8390096e90e7..ec3403c46cbe 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -11,6 +11,17 @@ if ARCH_EXYNOS | |||
11 | 11 | ||
12 | menu "SAMSUNG EXYNOS SoCs Support" | 12 | menu "SAMSUNG EXYNOS SoCs Support" |
13 | 13 | ||
14 | config ARCH_EXYNOS3 | ||
15 | bool "SAMSUNG EXYNOS3" | ||
16 | select ARM_AMBA | ||
17 | select CLKSRC_OF | ||
18 | select HAVE_ARM_SCU if SMP | ||
19 | select HAVE_SMP | ||
20 | select PINCTRL | ||
21 | select PM_GENERIC_DOMAINS if PM_RUNTIME | ||
22 | help | ||
23 | Samsung EXYNOS3 SoCs based systems | ||
24 | |||
14 | config ARCH_EXYNOS4 | 25 | config ARCH_EXYNOS4 |
15 | bool "SAMSUNG EXYNOS4" | 26 | bool "SAMSUNG EXYNOS4" |
16 | default y | 27 | default y |
@@ -41,6 +52,17 @@ config ARCH_EXYNOS5 | |||
41 | 52 | ||
42 | comment "EXYNOS SoCs" | 53 | comment "EXYNOS SoCs" |
43 | 54 | ||
55 | config SOC_EXYNOS3250 | ||
56 | bool "SAMSUNG EXYNOS3250" | ||
57 | default y | ||
58 | depends on ARCH_EXYNOS3 | ||
59 | select ARCH_HAS_BANDGAP | ||
60 | select ARM_CPU_SUSPEND if PM | ||
61 | select PINCTRL_EXYNOS | ||
62 | select SAMSUNG_DMADEV | ||
63 | help | ||
64 | Enable EXYNOS3250 CPU support | ||
65 | |||
44 | config CPU_EXYNOS4210 | 66 | config CPU_EXYNOS4210 |
45 | bool "SAMSUNG EXYNOS4210" | 67 | bool "SAMSUNG EXYNOS4210" |
46 | default y | 68 | default y |
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index d439ed2e7350..26218e76bb2f 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h | |||
@@ -15,6 +15,9 @@ | |||
15 | #include <linux/reboot.h> | 15 | #include <linux/reboot.h> |
16 | #include <linux/of.h> | 16 | #include <linux/of.h> |
17 | 17 | ||
18 | #define EXYNOS3250_SOC_ID 0xE3472000 | ||
19 | #define EXYNOS3_SOC_MASK 0xFFFFF000 | ||
20 | |||
18 | #define EXYNOS4210_CPU_ID 0x43210000 | 21 | #define EXYNOS4210_CPU_ID 0x43210000 |
19 | #define EXYNOS4212_CPU_ID 0x43220000 | 22 | #define EXYNOS4212_CPU_ID 0x43220000 |
20 | #define EXYNOS4412_CPU_ID 0xE4412200 | 23 | #define EXYNOS4412_CPU_ID 0xE4412200 |
@@ -34,6 +37,7 @@ static inline int is_samsung_##name(void) \ | |||
34 | return ((samsung_cpu_id & mask) == (id & mask)); \ | 37 | return ((samsung_cpu_id & mask) == (id & mask)); \ |
35 | } | 38 | } |
36 | 39 | ||
40 | IS_SAMSUNG_CPU(exynos3250, EXYNOS3250_SOC_ID, EXYNOS3_SOC_MASK) | ||
37 | IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) | 41 | IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK) |
38 | IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) | 42 | IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK) |
39 | IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) | 43 | IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK) |
@@ -42,6 +46,12 @@ IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK) | |||
42 | IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) | 46 | IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK) |
43 | IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK) | 47 | IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK) |
44 | 48 | ||
49 | #if defined(CONFIG_SOC_EXYNOS3250) | ||
50 | # define soc_is_exynos3250() is_samsung_exynos3250() | ||
51 | #else | ||
52 | # define soc_is_exynos3250() 0 | ||
53 | #endif | ||
54 | |||
45 | #if defined(CONFIG_CPU_EXYNOS4210) | 55 | #if defined(CONFIG_CPU_EXYNOS4210) |
46 | # define soc_is_exynos4210() is_samsung_exynos4210() | 56 | # define soc_is_exynos4210() is_samsung_exynos4210() |
47 | #else | 57 | #else |
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c index 6d74947e8af8..0bcf11c650ad 100644 --- a/arch/arm/mach-exynos/exynos.c +++ b/arch/arm/mach-exynos/exynos.c | |||
@@ -357,6 +357,8 @@ static void __init exynos_dt_machine_init(void) | |||
357 | } | 357 | } |
358 | 358 | ||
359 | static char const *exynos_dt_compat[] __initconst = { | 359 | static char const *exynos_dt_compat[] __initconst = { |
360 | "samsung,exynos3", | ||
361 | "samsung,exynos3250", | ||
360 | "samsung,exynos4", | 362 | "samsung,exynos4", |
361 | "samsung,exynos4210", | 363 | "samsung,exynos4210", |
362 | "samsung,exynos4212", | 364 | "samsung,exynos4212", |