diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 22:11:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 22:11:38 -0400 |
commit | 9cd11c0c47b8690b47e7573311ce5c483cb344ed (patch) | |
tree | 59f51c2bb3f73b21005105095d7321d35616ca9d /arch/arm/mach-exynos | |
parent | b9541d94bcd2f23a069dbe84830fef1bbcd643f0 (diff) | |
parent | 1ec9c26ad0890003f2b8a4ab97164f66d5de3f6d (diff) |
Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc multiplatform enablement from Olof Johansson:
"This is a pretty significant branch. It's the introduction of the
first multiplatform support on ARM, and with this (and the later
branch) merged, it is now possible to build one kernel that contains
support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
platforms will be convered over in the next few releases.
Two critical last things had to be done for this to be practical and
possible:
* Today each platform has its own include directory under
mach-<mach>/include/mach/*, and traditionally that is where a lot
of driver/platform shared definitions have gone, such as platform
data structures. They now need to move out to a common location
instead, and this branch moves a large number of those out to
include/linux/platform_data.
* Each platform used to list the device trees to compile for its
boards in mach-<mach>/Makefile.boot.
Both of the above changes will mean that there are some merge
conflicts to come (and some to resolve here). It's a one-time move
and once it settles in, we should be good for quite a while. Sorry
for the overhead."
Fix conflicts as per Olof.
* tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits)
ARM: add v7 multi-platform defconfig
ARM: msm: Move core.h contents into common.h
ARM: highbank: call highbank_pm_init from .init_machine
ARM: dtb: move all dtb targets to common Makefile
ARM: spear: move platform_data definitions
ARM: samsung: move platform_data definitions
ARM: orion: move platform_data definitions
ARM: vexpress: convert to multi-platform
ARM: initial multiplatform support
ARM: mvebu: move armada-370-xp.h in mach dir
ARM: vexpress: remove dependency on mach/* headers
ARM: picoxcell: remove dependency on mach/* headers
ARM: move all dtb targets out of Makefile.boot
ARM: picoxcell: move debug macros to include/debug
ARM: socfpga: move debug macros to include/debug
ARM: mvebu: move debug macros to include/debug
ARM: vexpress: move debug macros to include/debug
ARM: highbank: move debug macros to include/debug
ARM: move debug macros to common location
ARM: make mach/gpio.h headers optional
...
Diffstat (limited to 'arch/arm/mach-exynos')
22 files changed, 54 insertions, 73 deletions
diff --git a/arch/arm/mach-exynos/Makefile.boot b/arch/arm/mach-exynos/Makefile.boot index a79d999725cb..b9862e22bf10 100644 --- a/arch/arm/mach-exynos/Makefile.boot +++ b/arch/arm/mach-exynos/Makefile.boot | |||
@@ -1,5 +1,2 @@ | |||
1 | zreladdr-y += 0x40008000 | 1 | zreladdr-y += 0x40008000 |
2 | params_phys-y := 0x40000100 | 2 | params_phys-y := 0x40000100 |
3 | |||
4 | dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb exynos4210-trats.dtb | ||
5 | dtb-$(CONFIG_MACH_EXYNOS5_DT) += exynos5250-smdk5250.dtb | ||
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h index aed2eeb06517..dac146df79ac 100644 --- a/arch/arm/mach-exynos/common.h +++ b/arch/arm/mach-exynos/common.h | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | extern struct sys_timer exynos4_timer; | 15 | extern struct sys_timer exynos4_timer; |
16 | 16 | ||
17 | struct map_desc; | ||
17 | void exynos_init_io(struct map_desc *mach_desc, int size); | 18 | void exynos_init_io(struct map_desc *mach_desc, int size); |
18 | void exynos4_init_irq(void); | 19 | void exynos4_init_irq(void); |
19 | void exynos5_init_irq(void); | 20 | void exynos5_init_irq(void); |
@@ -59,4 +60,8 @@ void exynos4212_register_clocks(void); | |||
59 | #define exynos4212_register_clocks() | 60 | #define exynos4212_register_clocks() |
60 | #endif | 61 | #endif |
61 | 62 | ||
63 | extern struct smp_operations exynos_smp_ops; | ||
64 | |||
65 | extern void exynos_cpu_die(unsigned int cpu); | ||
66 | |||
62 | #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ | 67 | #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */ |
diff --git a/arch/arm/mach-exynos/dev-audio.c b/arch/arm/mach-exynos/dev-audio.c index b33a5b67b547..ae321c7cb15f 100644 --- a/arch/arm/mach-exynos/dev-audio.c +++ b/arch/arm/mach-exynos/dev-audio.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
17 | 17 | ||
18 | #include <plat/gpio-cfg.h> | 18 | #include <plat/gpio-cfg.h> |
19 | #include <plat/audio.h> | 19 | #include <linux/platform_data/asoc-s3c.h> |
20 | 20 | ||
21 | #include <mach/map.h> | 21 | #include <mach/map.h> |
22 | #include <mach/dma.h> | 22 | #include <mach/dma.h> |
diff --git a/arch/arm/mach-exynos/dev-ohci.c b/arch/arm/mach-exynos/dev-ohci.c index b8e75300c77d..14ed7951a2c6 100644 --- a/arch/arm/mach-exynos/dev-ohci.c +++ b/arch/arm/mach-exynos/dev-ohci.c | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | #include <mach/irqs.h> | 16 | #include <mach/irqs.h> |
17 | #include <mach/map.h> | 17 | #include <mach/map.h> |
18 | #include <mach/ohci.h> | 18 | #include <linux/platform_data/usb-exynos.h> |
19 | 19 | ||
20 | #include <plat/devs.h> | 20 | #include <plat/devs.h> |
21 | #include <plat/usb-phy.h> | 21 | #include <plat/usb-phy.h> |
diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c index 9c17a0a43858..f4d7dd20cdac 100644 --- a/arch/arm/mach-exynos/hotplug.c +++ b/arch/arm/mach-exynos/hotplug.c | |||
@@ -21,7 +21,7 @@ | |||
21 | 21 | ||
22 | #include <mach/regs-pmu.h> | 22 | #include <mach/regs-pmu.h> |
23 | 23 | ||
24 | extern volatile int pen_release; | 24 | #include "common.h" |
25 | 25 | ||
26 | static inline void cpu_enter_lowpower(void) | 26 | static inline void cpu_enter_lowpower(void) |
27 | { | 27 | { |
@@ -95,17 +95,12 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | |||
95 | } | 95 | } |
96 | } | 96 | } |
97 | 97 | ||
98 | int platform_cpu_kill(unsigned int cpu) | ||
99 | { | ||
100 | return 1; | ||
101 | } | ||
102 | |||
103 | /* | 98 | /* |
104 | * platform-specific code to shutdown a CPU | 99 | * platform-specific code to shutdown a CPU |
105 | * | 100 | * |
106 | * Called with IRQs disabled | 101 | * Called with IRQs disabled |
107 | */ | 102 | */ |
108 | void platform_cpu_die(unsigned int cpu) | 103 | void __ref exynos_cpu_die(unsigned int cpu) |
109 | { | 104 | { |
110 | int spurious = 0; | 105 | int spurious = 0; |
111 | 106 | ||
@@ -124,12 +119,3 @@ void platform_cpu_die(unsigned int cpu) | |||
124 | if (spurious) | 119 | if (spurious) |
125 | pr_warn("CPU%u: %u spurious wakeup calls\n", cpu, spurious); | 120 | pr_warn("CPU%u: %u spurious wakeup calls\n", cpu, spurious); |
126 | } | 121 | } |
127 | |||
128 | int platform_cpu_disable(unsigned int cpu) | ||
129 | { | ||
130 | /* | ||
131 | * we don't allow CPU 0 to be shutdown (it is still too special | ||
132 | * e.g. clock tick interrupts) | ||
133 | */ | ||
134 | return cpu == 0 ? -EPERM : 0; | ||
135 | } | ||
diff --git a/arch/arm/mach-exynos/include/mach/ohci.h b/arch/arm/mach-exynos/include/mach/ohci.h deleted file mode 100644 index c256c595be5e..000000000000 --- a/arch/arm/mach-exynos/include/mach/ohci.h +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Samsung Electronics Co.Ltd | ||
3 | * http://www.samsung.com/ | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the | ||
7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | */ | ||
10 | |||
11 | #ifndef __MACH_EXYNOS_OHCI_H | ||
12 | #define __MACH_EXYNOS_OHCI_H | ||
13 | |||
14 | struct exynos4_ohci_platdata { | ||
15 | int (*phy_init)(struct platform_device *pdev, int type); | ||
16 | int (*phy_exit)(struct platform_device *pdev, int type); | ||
17 | }; | ||
18 | |||
19 | extern void exynos4_ohci_set_platdata(struct exynos4_ohci_platdata *pd); | ||
20 | |||
21 | #endif /* __MACH_EXYNOS_OHCI_H */ | ||
diff --git a/arch/arm/mach-exynos/mach-armlex4210.c b/arch/arm/mach-exynos/mach-armlex4210.c index 5a3daa0168d8..3f37a5e8a1f4 100644 --- a/arch/arm/mach-exynos/mach-armlex4210.c +++ b/arch/arm/mach-exynos/mach-armlex4210.c | |||
@@ -199,6 +199,7 @@ static void __init armlex4210_machine_init(void) | |||
199 | MACHINE_START(ARMLEX4210, "ARMLEX4210") | 199 | MACHINE_START(ARMLEX4210, "ARMLEX4210") |
200 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ | 200 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ |
201 | .atag_offset = 0x100, | 201 | .atag_offset = 0x100, |
202 | .smp = smp_ops(exynos_smp_ops), | ||
202 | .init_irq = exynos4_init_irq, | 203 | .init_irq = exynos4_init_irq, |
203 | .map_io = armlex4210_map_io, | 204 | .map_io = armlex4210_map_io, |
204 | .handle_irq = gic_handle_irq, | 205 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c index fee9dcd49fdf..db1cd8eacf28 100644 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c | |||
@@ -95,6 +95,7 @@ static char const *exynos5250_dt_compat[] __initdata = { | |||
95 | DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") | 95 | DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") |
96 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 96 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
97 | .init_irq = exynos5_init_irq, | 97 | .init_irq = exynos5_init_irq, |
98 | .smp = smp_ops(exynos_smp_ops), | ||
98 | .map_io = exynos5250_dt_map_io, | 99 | .map_io = exynos5250_dt_map_io, |
99 | .handle_irq = gic_handle_irq, | 100 | .handle_irq = gic_handle_irq, |
100 | .init_machine = exynos5250_dt_machine_init, | 101 | .init_machine = exynos5250_dt_machine_init, |
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c index ea785fcaf6c3..480cd78f1920 100644 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c | |||
@@ -45,14 +45,14 @@ | |||
45 | #include <plat/devs.h> | 45 | #include <plat/devs.h> |
46 | #include <plat/fb.h> | 46 | #include <plat/fb.h> |
47 | #include <plat/sdhci.h> | 47 | #include <plat/sdhci.h> |
48 | #include <plat/ehci.h> | 48 | #include <linux/platform_data/usb-ehci-s5p.h> |
49 | #include <plat/clock.h> | 49 | #include <plat/clock.h> |
50 | #include <plat/gpio-cfg.h> | 50 | #include <plat/gpio-cfg.h> |
51 | #include <plat/iic.h> | 51 | #include <linux/platform_data/i2c-s3c2410.h> |
52 | #include <plat/mfc.h> | 52 | #include <plat/mfc.h> |
53 | #include <plat/fimc-core.h> | 53 | #include <plat/fimc-core.h> |
54 | #include <plat/camport.h> | 54 | #include <plat/camport.h> |
55 | #include <plat/mipi_csis.h> | 55 | #include <linux/platform_data/mipi-csis.h> |
56 | 56 | ||
57 | #include <mach/map.h> | 57 | #include <mach/map.h> |
58 | 58 | ||
@@ -1383,6 +1383,7 @@ static void __init nuri_machine_init(void) | |||
1383 | MACHINE_START(NURI, "NURI") | 1383 | MACHINE_START(NURI, "NURI") |
1384 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 1384 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
1385 | .atag_offset = 0x100, | 1385 | .atag_offset = 0x100, |
1386 | .smp = smp_ops(exynos_smp_ops), | ||
1386 | .init_irq = exynos4_init_irq, | 1387 | .init_irq = exynos4_init_irq, |
1387 | .map_io = nuri_map_io, | 1388 | .map_io = nuri_map_io, |
1388 | .handle_irq = gic_handle_irq, | 1389 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index b45600fcf73e..67b50bb89c0f 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -36,8 +36,8 @@ | |||
36 | #include <plat/cpu.h> | 36 | #include <plat/cpu.h> |
37 | #include <plat/devs.h> | 37 | #include <plat/devs.h> |
38 | #include <plat/sdhci.h> | 38 | #include <plat/sdhci.h> |
39 | #include <plat/iic.h> | 39 | #include <linux/platform_data/i2c-s3c2410.h> |
40 | #include <plat/ehci.h> | 40 | #include <linux/platform_data/usb-ehci-s5p.h> |
41 | #include <plat/clock.h> | 41 | #include <plat/clock.h> |
42 | #include <plat/gpio-cfg.h> | 42 | #include <plat/gpio-cfg.h> |
43 | #include <plat/backlight.h> | 43 | #include <plat/backlight.h> |
@@ -45,7 +45,7 @@ | |||
45 | #include <plat/mfc.h> | 45 | #include <plat/mfc.h> |
46 | #include <plat/hdmi.h> | 46 | #include <plat/hdmi.h> |
47 | 47 | ||
48 | #include <mach/ohci.h> | 48 | #include <linux/platform_data/usb-exynos.h> |
49 | #include <mach/map.h> | 49 | #include <mach/map.h> |
50 | 50 | ||
51 | #include <drm/exynos_drm.h> | 51 | #include <drm/exynos_drm.h> |
@@ -812,6 +812,7 @@ static void __init origen_machine_init(void) | |||
812 | MACHINE_START(ORIGEN, "ORIGEN") | 812 | MACHINE_START(ORIGEN, "ORIGEN") |
813 | /* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */ | 813 | /* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */ |
814 | .atag_offset = 0x100, | 814 | .atag_offset = 0x100, |
815 | .smp = smp_ops(exynos_smp_ops), | ||
815 | .init_irq = exynos4_init_irq, | 816 | .init_irq = exynos4_init_irq, |
816 | .map_io = origen_map_io, | 817 | .map_io = origen_map_io, |
817 | .handle_irq = gic_handle_irq, | 818 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c index 81bf59c6f4bf..7a265d1a82d3 100644 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <plat/devs.h> | 33 | #include <plat/devs.h> |
34 | #include <plat/fb.h> | 34 | #include <plat/fb.h> |
35 | #include <plat/gpio-cfg.h> | 35 | #include <plat/gpio-cfg.h> |
36 | #include <plat/iic.h> | 36 | #include <linux/platform_data/i2c-s3c2410.h> |
37 | #include <plat/keypad.h> | 37 | #include <plat/keypad.h> |
38 | #include <plat/mfc.h> | 38 | #include <plat/mfc.h> |
39 | #include <plat/regs-fb.h> | 39 | #include <plat/regs-fb.h> |
@@ -376,6 +376,7 @@ static void __init smdk4x12_machine_init(void) | |||
376 | MACHINE_START(SMDK4212, "SMDK4212") | 376 | MACHINE_START(SMDK4212, "SMDK4212") |
377 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 377 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
378 | .atag_offset = 0x100, | 378 | .atag_offset = 0x100, |
379 | .smp = smp_ops(exynos_smp_ops), | ||
379 | .init_irq = exynos4_init_irq, | 380 | .init_irq = exynos4_init_irq, |
380 | .map_io = smdk4x12_map_io, | 381 | .map_io = smdk4x12_map_io, |
381 | .handle_irq = gic_handle_irq, | 382 | .handle_irq = gic_handle_irq, |
@@ -389,6 +390,7 @@ MACHINE_START(SMDK4412, "SMDK4412") | |||
389 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 390 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
390 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ | 391 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ |
391 | .atag_offset = 0x100, | 392 | .atag_offset = 0x100, |
393 | .smp = smp_ops(exynos_smp_ops), | ||
392 | .init_irq = exynos4_init_irq, | 394 | .init_irq = exynos4_init_irq, |
393 | .map_io = smdk4x12_map_io, | 395 | .map_io = smdk4x12_map_io, |
394 | .handle_irq = gic_handle_irq, | 396 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c index 12a1db29e1a1..c15d2238ceb0 100644 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c | |||
@@ -35,16 +35,16 @@ | |||
35 | #include <plat/fb.h> | 35 | #include <plat/fb.h> |
36 | #include <plat/keypad.h> | 36 | #include <plat/keypad.h> |
37 | #include <plat/sdhci.h> | 37 | #include <plat/sdhci.h> |
38 | #include <plat/iic.h> | 38 | #include <linux/platform_data/i2c-s3c2410.h> |
39 | #include <plat/gpio-cfg.h> | 39 | #include <plat/gpio-cfg.h> |
40 | #include <plat/backlight.h> | 40 | #include <plat/backlight.h> |
41 | #include <plat/mfc.h> | 41 | #include <plat/mfc.h> |
42 | #include <plat/ehci.h> | 42 | #include <linux/platform_data/usb-ehci-s5p.h> |
43 | #include <plat/clock.h> | 43 | #include <plat/clock.h> |
44 | #include <plat/hdmi.h> | 44 | #include <plat/hdmi.h> |
45 | 45 | ||
46 | #include <mach/map.h> | 46 | #include <mach/map.h> |
47 | #include <mach/ohci.h> | 47 | #include <linux/platform_data/usb-exynos.h> |
48 | 48 | ||
49 | #include <drm/exynos_drm.h> | 49 | #include <drm/exynos_drm.h> |
50 | #include "common.h" | 50 | #include "common.h" |
@@ -424,6 +424,7 @@ MACHINE_START(SMDKV310, "SMDKV310") | |||
424 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 424 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
425 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ | 425 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ |
426 | .atag_offset = 0x100, | 426 | .atag_offset = 0x100, |
427 | .smp = smp_ops(exynos_smp_ops), | ||
427 | .init_irq = exynos4_init_irq, | 428 | .init_irq = exynos4_init_irq, |
428 | .map_io = smdkv310_map_io, | 429 | .map_io = smdkv310_map_io, |
429 | .handle_irq = gic_handle_irq, | 430 | .handle_irq = gic_handle_irq, |
@@ -436,6 +437,7 @@ MACHINE_END | |||
436 | MACHINE_START(SMDKC210, "SMDKC210") | 437 | MACHINE_START(SMDKC210, "SMDKC210") |
437 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 438 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
438 | .atag_offset = 0x100, | 439 | .atag_offset = 0x100, |
440 | .smp = smp_ops(exynos_smp_ops), | ||
439 | .init_irq = exynos4_init_irq, | 441 | .init_irq = exynos4_init_irq, |
440 | .map_io = smdkv310_map_io, | 442 | .map_io = smdkv310_map_io, |
441 | .handle_irq = gic_handle_irq, | 443 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c index 4d1f40d44ed1..98d3aced2289 100644 --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include <plat/clock.h> | 34 | #include <plat/clock.h> |
35 | #include <plat/cpu.h> | 35 | #include <plat/cpu.h> |
36 | #include <plat/devs.h> | 36 | #include <plat/devs.h> |
37 | #include <plat/iic.h> | 37 | #include <linux/platform_data/i2c-s3c2410.h> |
38 | #include <plat/gpio-cfg.h> | 38 | #include <plat/gpio-cfg.h> |
39 | #include <plat/fb.h> | 39 | #include <plat/fb.h> |
40 | #include <plat/mfc.h> | 40 | #include <plat/mfc.h> |
@@ -43,7 +43,7 @@ | |||
43 | #include <plat/fimc-core.h> | 43 | #include <plat/fimc-core.h> |
44 | #include <plat/s5p-time.h> | 44 | #include <plat/s5p-time.h> |
45 | #include <plat/camport.h> | 45 | #include <plat/camport.h> |
46 | #include <plat/mipi_csis.h> | 46 | #include <linux/platform_data/mipi-csis.h> |
47 | 47 | ||
48 | #include <mach/map.h> | 48 | #include <mach/map.h> |
49 | 49 | ||
@@ -1155,6 +1155,7 @@ static void __init universal_machine_init(void) | |||
1155 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") | 1155 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") |
1156 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 1156 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
1157 | .atag_offset = 0x100, | 1157 | .atag_offset = 0x100, |
1158 | .smp = smp_ops(exynos_smp_ops), | ||
1158 | .init_irq = exynos4_init_irq, | 1159 | .init_irq = exynos4_init_irq, |
1159 | .map_io = universal_map_io, | 1160 | .map_io = universal_map_io, |
1160 | .handle_irq = gic_handle_irq, | 1161 | .handle_irq = gic_handle_irq, |
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c index 36c3984aaa47..8d57e4223bdb 100644 --- a/arch/arm/mach-exynos/platsmp.c +++ b/arch/arm/mach-exynos/platsmp.c | |||
@@ -32,19 +32,14 @@ | |||
32 | 32 | ||
33 | #include <plat/cpu.h> | 33 | #include <plat/cpu.h> |
34 | 34 | ||
35 | #include "common.h" | ||
36 | |||
35 | extern void exynos4_secondary_startup(void); | 37 | extern void exynos4_secondary_startup(void); |
36 | 38 | ||
37 | #define CPU1_BOOT_REG (samsung_rev() == EXYNOS4210_REV_1_1 ? \ | 39 | #define CPU1_BOOT_REG (samsung_rev() == EXYNOS4210_REV_1_1 ? \ |
38 | S5P_INFORM5 : S5P_VA_SYSRAM) | 40 | S5P_INFORM5 : S5P_VA_SYSRAM) |
39 | 41 | ||
40 | /* | 42 | /* |
41 | * control for which core is the next to come out of the secondary | ||
42 | * boot "holding pen" | ||
43 | */ | ||
44 | |||
45 | volatile int __cpuinitdata pen_release = -1; | ||
46 | |||
47 | /* | ||
48 | * Write pen_release in a way that is guaranteed to be visible to all | 43 | * Write pen_release in a way that is guaranteed to be visible to all |
49 | * observers, irrespective of whether they're taking part in coherency | 44 | * observers, irrespective of whether they're taking part in coherency |
50 | * or not. This is necessary for the hotplug code to work reliably. | 45 | * or not. This is necessary for the hotplug code to work reliably. |
@@ -64,7 +59,7 @@ static void __iomem *scu_base_addr(void) | |||
64 | 59 | ||
65 | static DEFINE_SPINLOCK(boot_lock); | 60 | static DEFINE_SPINLOCK(boot_lock); |
66 | 61 | ||
67 | void __cpuinit platform_secondary_init(unsigned int cpu) | 62 | static void __cpuinit exynos_secondary_init(unsigned int cpu) |
68 | { | 63 | { |
69 | /* | 64 | /* |
70 | * if any interrupts are already enabled for the primary | 65 | * if any interrupts are already enabled for the primary |
@@ -86,7 +81,7 @@ void __cpuinit platform_secondary_init(unsigned int cpu) | |||
86 | spin_unlock(&boot_lock); | 81 | spin_unlock(&boot_lock); |
87 | } | 82 | } |
88 | 83 | ||
89 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | 84 | static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) |
90 | { | 85 | { |
91 | unsigned long timeout; | 86 | unsigned long timeout; |
92 | 87 | ||
@@ -161,7 +156,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
161 | * which may be present or become present in the system. | 156 | * which may be present or become present in the system. |
162 | */ | 157 | */ |
163 | 158 | ||
164 | void __init smp_init_cpus(void) | 159 | static void __init exynos_smp_init_cpus(void) |
165 | { | 160 | { |
166 | void __iomem *scu_base = scu_base_addr(); | 161 | void __iomem *scu_base = scu_base_addr(); |
167 | unsigned int i, ncores; | 162 | unsigned int i, ncores; |
@@ -184,7 +179,7 @@ void __init smp_init_cpus(void) | |||
184 | set_smp_cross_call(gic_raise_softirq); | 179 | set_smp_cross_call(gic_raise_softirq); |
185 | } | 180 | } |
186 | 181 | ||
187 | void __init platform_smp_prepare_cpus(unsigned int max_cpus) | 182 | static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) |
188 | { | 183 | { |
189 | if (!soc_is_exynos5250()) | 184 | if (!soc_is_exynos5250()) |
190 | scu_enable(scu_base_addr()); | 185 | scu_enable(scu_base_addr()); |
@@ -198,3 +193,13 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus) | |||
198 | __raw_writel(virt_to_phys(exynos4_secondary_startup), | 193 | __raw_writel(virt_to_phys(exynos4_secondary_startup), |
199 | CPU1_BOOT_REG); | 194 | CPU1_BOOT_REG); |
200 | } | 195 | } |
196 | |||
197 | struct smp_operations exynos_smp_ops __initdata = { | ||
198 | .smp_init_cpus = exynos_smp_init_cpus, | ||
199 | .smp_prepare_cpus = exynos_smp_prepare_cpus, | ||
200 | .smp_secondary_init = exynos_secondary_init, | ||
201 | .smp_boot_secondary = exynos_boot_secondary, | ||
202 | #ifdef CONFIG_HOTPLUG_CPU | ||
203 | .cpu_die = exynos_cpu_die, | ||
204 | #endif | ||
205 | }; | ||
diff --git a/arch/arm/mach-exynos/setup-i2c0.c b/arch/arm/mach-exynos/setup-i2c0.c index b90d94c17f7c..5700f23629f7 100644 --- a/arch/arm/mach-exynos/setup-i2c0.c +++ b/arch/arm/mach-exynos/setup-i2c0.c | |||
@@ -14,7 +14,7 @@ | |||
14 | struct platform_device; /* don't need the contents */ | 14 | struct platform_device; /* don't need the contents */ |
15 | 15 | ||
16 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
17 | #include <plat/iic.h> | 17 | #include <linux/platform_data/i2c-s3c2410.h> |
18 | #include <plat/gpio-cfg.h> | 18 | #include <plat/gpio-cfg.h> |
19 | #include <plat/cpu.h> | 19 | #include <plat/cpu.h> |
20 | 20 | ||
diff --git a/arch/arm/mach-exynos/setup-i2c1.c b/arch/arm/mach-exynos/setup-i2c1.c index fd7235a43f6e..8d2279cc85dc 100644 --- a/arch/arm/mach-exynos/setup-i2c1.c +++ b/arch/arm/mach-exynos/setup-i2c1.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c1_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c1_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c2.c b/arch/arm/mach-exynos/setup-i2c2.c index 2694b19e8b37..0ed62fc42a77 100644 --- a/arch/arm/mach-exynos/setup-i2c2.c +++ b/arch/arm/mach-exynos/setup-i2c2.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c2_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c2_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c3.c b/arch/arm/mach-exynos/setup-i2c3.c index 379bd306993f..7787fd26076b 100644 --- a/arch/arm/mach-exynos/setup-i2c3.c +++ b/arch/arm/mach-exynos/setup-i2c3.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c3_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c3_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c4.c b/arch/arm/mach-exynos/setup-i2c4.c index 9f3c04855b76..edc847f89826 100644 --- a/arch/arm/mach-exynos/setup-i2c4.c +++ b/arch/arm/mach-exynos/setup-i2c4.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c4_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c4_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c5.c b/arch/arm/mach-exynos/setup-i2c5.c index 77e1a1e57c76..d88af7f75954 100644 --- a/arch/arm/mach-exynos/setup-i2c5.c +++ b/arch/arm/mach-exynos/setup-i2c5.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c5_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c5_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c6.c b/arch/arm/mach-exynos/setup-i2c6.c index 284d12b7af0e..c590286c9d3a 100644 --- a/arch/arm/mach-exynos/setup-i2c6.c +++ b/arch/arm/mach-exynos/setup-i2c6.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c6_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c6_cfg_gpio(struct platform_device *dev) |
diff --git a/arch/arm/mach-exynos/setup-i2c7.c b/arch/arm/mach-exynos/setup-i2c7.c index b7611ee359a2..1bba75568a5f 100644 --- a/arch/arm/mach-exynos/setup-i2c7.c +++ b/arch/arm/mach-exynos/setup-i2c7.c | |||
@@ -13,7 +13,7 @@ | |||
13 | struct platform_device; /* don't need the contents */ | 13 | struct platform_device; /* don't need the contents */ |
14 | 14 | ||
15 | #include <linux/gpio.h> | 15 | #include <linux/gpio.h> |
16 | #include <plat/iic.h> | 16 | #include <linux/platform_data/i2c-s3c2410.h> |
17 | #include <plat/gpio-cfg.h> | 17 | #include <plat/gpio-cfg.h> |
18 | 18 | ||
19 | void s3c_i2c7_cfg_gpio(struct platform_device *dev) | 19 | void s3c_i2c7_cfg_gpio(struct platform_device *dev) |