diff options
author | Kukjin Kim <kgene.kim@samsung.com> | 2011-02-14 02:33:10 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-02-21 23:51:14 -0500 |
commit | 7d30e8b3815f804139271dfc31962ab74ce89650 (patch) | |
tree | 711d4830705e0147cb8184ca1a8e6e3c97bc02fe /arch/arm/plat-s5p | |
parent | f5412be599602124d2bdd49947b231dd77c0bf99 (diff) |
ARM: EXYNOS4: Add EXYNOS4 CPU initialization support
This patch adds EXYNOS4 CPU support files in mach-exynos4,
and basically they are moved from mach-s5pv310 so that it
can support Samsung's new CPU name, EXYNOS4.
The EXYNOS4 ingegrates a ARM Cortex A9 multi-core.
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-s5p')
-rw-r--r-- | arch/arm/plat-s5p/cpu.c | 25 | ||||
-rw-r--r-- | arch/arm/plat-s5p/include/plat/exynos4.h | 34 | ||||
-rw-r--r-- | arch/arm/plat-s5p/include/plat/s5pv310.h | 34 |
3 files changed, 48 insertions, 45 deletions
diff --git a/arch/arm/plat-s5p/cpu.c b/arch/arm/plat-s5p/cpu.c index 047d31c1bbd8..c3bfe9b13acf 100644 --- a/arch/arm/plat-s5p/cpu.c +++ b/arch/arm/plat-s5p/cpu.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* linux/arch/arm/plat-s5p/cpu.c | 1 | /* linux/arch/arm/plat-s5p/cpu.c |
2 | * | 2 | * |
3 | * Copyright (c) 2009 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2009-2011 Samsung Electronics Co., Ltd. |
4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com |
5 | * | 5 | * |
6 | * S5P CPU Support | 6 | * S5P CPU Support |
7 | * | 7 | * |
@@ -12,17 +12,20 @@ | |||
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <mach/map.h> | 15 | |
16 | #include <asm/mach/arch.h> | 16 | #include <asm/mach/arch.h> |
17 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
18 | |||
19 | #include <mach/map.h> | ||
18 | #include <mach/regs-clock.h> | 20 | #include <mach/regs-clock.h> |
21 | |||
19 | #include <plat/cpu.h> | 22 | #include <plat/cpu.h> |
20 | #include <plat/s5p6440.h> | 23 | #include <plat/s5p6440.h> |
21 | #include <plat/s5p6442.h> | 24 | #include <plat/s5p6442.h> |
22 | #include <plat/s5p6450.h> | 25 | #include <plat/s5p6450.h> |
23 | #include <plat/s5pc100.h> | 26 | #include <plat/s5pc100.h> |
24 | #include <plat/s5pv210.h> | 27 | #include <plat/s5pv210.h> |
25 | #include <plat/s5pv310.h> | 28 | #include <plat/exynos4.h> |
26 | 29 | ||
27 | /* table of supported CPUs */ | 30 | /* table of supported CPUs */ |
28 | 31 | ||
@@ -31,7 +34,7 @@ static const char name_s5p6442[] = "S5P6442"; | |||
31 | static const char name_s5p6450[] = "S5P6450"; | 34 | static const char name_s5p6450[] = "S5P6450"; |
32 | static const char name_s5pc100[] = "S5PC100"; | 35 | static const char name_s5pc100[] = "S5PC100"; |
33 | static const char name_s5pv210[] = "S5PV210/S5PC110"; | 36 | static const char name_s5pv210[] = "S5PV210/S5PC110"; |
34 | static const char name_s5pv310[] = "S5PV310"; | 37 | static const char name_exynos4210[] = "EXYNOS4210"; |
35 | 38 | ||
36 | static struct cpu_table cpu_ids[] __initdata = { | 39 | static struct cpu_table cpu_ids[] __initdata = { |
37 | { | 40 | { |
@@ -75,13 +78,13 @@ static struct cpu_table cpu_ids[] __initdata = { | |||
75 | .init = s5pv210_init, | 78 | .init = s5pv210_init, |
76 | .name = name_s5pv210, | 79 | .name = name_s5pv210, |
77 | }, { | 80 | }, { |
78 | .idcode = 0x43200000, | 81 | .idcode = 0x43210000, |
79 | .idmask = 0xfffff000, | 82 | .idmask = 0xfffff000, |
80 | .map_io = s5pv310_map_io, | 83 | .map_io = exynos4_map_io, |
81 | .init_clocks = s5pv310_init_clocks, | 84 | .init_clocks = exynos4_init_clocks, |
82 | .init_uarts = s5pv310_init_uarts, | 85 | .init_uarts = exynos4_init_uarts, |
83 | .init = s5pv310_init, | 86 | .init = exynos4_init, |
84 | .name = name_s5pv310, | 87 | .name = name_exynos4210, |
85 | }, | 88 | }, |
86 | }; | 89 | }; |
87 | 90 | ||
diff --git a/arch/arm/plat-s5p/include/plat/exynos4.h b/arch/arm/plat-s5p/include/plat/exynos4.h new file mode 100644 index 000000000000..907caab53dcf --- /dev/null +++ b/arch/arm/plat-s5p/include/plat/exynos4.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* linux/arch/arm/plat-s5p/include/plat/exynos4.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Header file for exynos4 cpu support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | /* Common init code for EXYNOS4 related SoCs */ | ||
14 | |||
15 | extern void exynos4_common_init_uarts(struct s3c2410_uartcfg *cfg, int no); | ||
16 | extern void exynos4_register_clocks(void); | ||
17 | extern void exynos4_setup_clocks(void); | ||
18 | |||
19 | #ifdef CONFIG_CPU_EXYNOS4210 | ||
20 | |||
21 | extern int exynos4_init(void); | ||
22 | extern void exynos4_init_irq(void); | ||
23 | extern void exynos4_map_io(void); | ||
24 | extern void exynos4_init_clocks(int xtal); | ||
25 | extern struct sys_timer exynos4_timer; | ||
26 | |||
27 | #define exynos4_init_uarts exynos4_common_init_uarts | ||
28 | |||
29 | #else | ||
30 | #define exynos4_init_clocks NULL | ||
31 | #define exynos4_init_uarts NULL | ||
32 | #define exynos4_map_io NULL | ||
33 | #define exynos4_init NULL | ||
34 | #endif | ||
diff --git a/arch/arm/plat-s5p/include/plat/s5pv310.h b/arch/arm/plat-s5p/include/plat/s5pv310.h deleted file mode 100644 index 769c991ceb37..000000000000 --- a/arch/arm/plat-s5p/include/plat/s5pv310.h +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | /* linux/arch/arm/plat-s5p/include/plat/s5pv310.h | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * Header file for s5pv310 cpu support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | /* Common init code for S5PV310 related SoCs */ | ||
14 | |||
15 | extern void s5pv310_common_init_uarts(struct s3c2410_uartcfg *cfg, int no); | ||
16 | extern void s5pv310_register_clocks(void); | ||
17 | extern void s5pv310_setup_clocks(void); | ||
18 | |||
19 | #ifdef CONFIG_CPU_S5PV310 | ||
20 | |||
21 | extern int s5pv310_init(void); | ||
22 | extern void s5pv310_init_irq(void); | ||
23 | extern void s5pv310_map_io(void); | ||
24 | extern void s5pv310_init_clocks(int xtal); | ||
25 | extern struct sys_timer s5pv310_timer; | ||
26 | |||
27 | #define s5pv310_init_uarts s5pv310_common_init_uarts | ||
28 | |||
29 | #else | ||
30 | #define s5pv310_init_clocks NULL | ||
31 | #define s5pv310_init_uarts NULL | ||
32 | #define s5pv310_map_io NULL | ||
33 | #define s5pv310_init NULL | ||
34 | #endif | ||