diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-04-10 08:57:15 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-04-19 07:51:26 -0400 |
commit | bd51de53e1be9896d815bbea30560262216d4616 (patch) | |
tree | bd9f221d20bcc28cd6f4bb80f869c3aa6b1e3721 /arch/arm/plat-samsung | |
parent | b9d7c5d3f48fb9582458ce014baa66c1e16d9be6 (diff) |
ARM: exynos: enable multiplatform support
This makes it possible to enable the exynos platform as part of a
multiplatform kernel, in addition to keeping the single-platform
exynos support.
The multiplatform variant has a number of limitations at the moment:
* It only supports DT-enabled machines. This is not a problem in
the long run, as non-DT machines for exynos are going away.
The main problem here is that the gpio code and the exynos_eint
irqchip are not multiplatform capable but still required for
ATAGS based boot.
* The watchdog driver is still missing a conversion.
* sparsemem and memory_holes are currently not supported in
multiplatform.
The the multiplatform aware ARCH_EXYNOS Kconfig symbol is disabled
for now, as dependent patches are still pending in other
subsystem trees. We will enable it once everything comes together.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/plat-samsung/Makefile | 8 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/pm.h | 5 |
3 files changed, 17 insertions, 3 deletions
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig index a9d52167e16e..8aae6816ebc2 100644 --- a/arch/arm/plat-samsung/Kconfig +++ b/arch/arm/plat-samsung/Kconfig | |||
@@ -13,6 +13,10 @@ config PLAT_SAMSUNG | |||
13 | help | 13 | help |
14 | Base platform code for all Samsung SoC based systems | 14 | Base platform code for all Samsung SoC based systems |
15 | 15 | ||
16 | config PLAT_SAMSUNG_SINGLE | ||
17 | def_bool PLAT_SAMSUNG && !ARCH_MULTIPLATFORM | ||
18 | |||
19 | |||
16 | config PLAT_S5P | 20 | config PLAT_S5P |
17 | bool | 21 | bool |
18 | depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS) | 22 | depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS) |
@@ -23,7 +27,7 @@ config PLAT_S5P | |||
23 | select GIC_NON_BANKED if ARCH_EXYNOS4 | 27 | select GIC_NON_BANKED if ARCH_EXYNOS4 |
24 | select NO_IOPORT | 28 | select NO_IOPORT |
25 | select PLAT_SAMSUNG | 29 | select PLAT_SAMSUNG |
26 | select S3C_GPIO_TRACK | 30 | select S3C_GPIO_TRACK if PLAT_SAMSUNG_SINGLE |
27 | select S5P_GPIO_DRVSTR | 31 | select S5P_GPIO_DRVSTR |
28 | select SAMSUNG_CLKSRC | 32 | select SAMSUNG_CLKSRC |
29 | select SAMSUNG_GPIOLIB_4BIT | 33 | select SAMSUNG_GPIOLIB_4BIT |
@@ -178,6 +182,7 @@ config S5P_DEV_UART | |||
178 | 182 | ||
179 | config S3C_ADC | 183 | config S3C_ADC |
180 | bool "ADC common driver support" | 184 | bool "ADC common driver support" |
185 | depends on PLAT_SAMSUNG_SINGLE | ||
181 | help | 186 | help |
182 | Core support for the ADC block found in the Samsung SoC systems | 187 | Core support for the ADC block found in the Samsung SoC systems |
183 | for drivers such as the touchscreen and hwmon to use to share | 188 | for drivers such as the touchscreen and hwmon to use to share |
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile index 3a7c64d1814a..cf684b2eb6fc 100644 --- a/arch/arm/plat-samsung/Makefile +++ b/arch/arm/plat-samsung/Makefile | |||
@@ -4,6 +4,9 @@ | |||
4 | # | 4 | # |
5 | # Licensed under GPLv2 | 5 | # Licensed under GPLv2 |
6 | 6 | ||
7 | ccflags-$(CONFIG_ARCH_MULTI_V7) += -I$(srctree)/$(src)/include | ||
8 | ccflags-$(CONFIG_ARCH_EXYNOS) += -I$(srctree)/arch/arm/mach-exynos/include | ||
9 | |||
7 | obj-y := | 10 | obj-y := |
8 | obj-m := | 11 | obj-m := |
9 | obj-n := dummy.o | 12 | obj-n := dummy.o |
@@ -34,7 +37,7 @@ obj-$(CONFIG_S3C_ADC) += adc.o | |||
34 | 37 | ||
35 | obj-y += platformdata.o | 38 | obj-y += platformdata.o |
36 | 39 | ||
37 | obj-y += devs.o | 40 | obj-$(CONFIG_PLAT_SAMSUNG_SINGLE) += devs.o |
38 | obj-y += dev-uart.o | 41 | obj-y += dev-uart.o |
39 | obj-$(CONFIG_S5P_DEV_MFC) += s5p-dev-mfc.o | 42 | obj-$(CONFIG_S5P_DEV_MFC) += s5p-dev-mfc.o |
40 | obj-$(CONFIG_S5P_DEV_UART) += s5p-dev-uart.o | 43 | obj-$(CONFIG_S5P_DEV_UART) += s5p-dev-uart.o |
@@ -51,9 +54,10 @@ obj-$(CONFIG_S3C_DMA) += dma.o s3c-dma-ops.o | |||
51 | obj-$(CONFIG_SAMSUNG_DMADEV) += dma-ops.o | 54 | obj-$(CONFIG_SAMSUNG_DMADEV) += dma-ops.o |
52 | 55 | ||
53 | # PM support | 56 | # PM support |
54 | |||
55 | obj-$(CONFIG_PM) += pm.o | 57 | obj-$(CONFIG_PM) += pm.o |
58 | ifdef CONFIG_PLAT_SAMSUNG_SINGLE | ||
56 | obj-$(CONFIG_PM) += pm-gpio.o | 59 | obj-$(CONFIG_PM) += pm-gpio.o |
60 | endif | ||
57 | obj-$(CONFIG_SAMSUNG_PM_CHECK) += pm-check.o | 61 | obj-$(CONFIG_SAMSUNG_PM_CHECK) += pm-check.o |
58 | 62 | ||
59 | obj-$(CONFIG_SAMSUNG_WAKEMASK) += wakeup-mask.o | 63 | obj-$(CONFIG_SAMSUNG_WAKEMASK) += wakeup-mask.o |
diff --git a/arch/arm/plat-samsung/include/plat/pm.h b/arch/arm/plat-samsung/include/plat/pm.h index f6fcadeee969..266a4e3e2458 100644 --- a/arch/arm/plat-samsung/include/plat/pm.h +++ b/arch/arm/plat-samsung/include/plat/pm.h | |||
@@ -166,6 +166,7 @@ extern void s3c_pm_check_store(void); | |||
166 | */ | 166 | */ |
167 | extern void s3c_pm_configure_extint(void); | 167 | extern void s3c_pm_configure_extint(void); |
168 | 168 | ||
169 | #ifdef CONFIG_PLAT_SAMSUNG_SINGLE | ||
169 | /** | 170 | /** |
170 | * samsung_pm_restore_gpios() - restore the state of the gpios after sleep. | 171 | * samsung_pm_restore_gpios() - restore the state of the gpios after sleep. |
171 | * | 172 | * |
@@ -181,6 +182,10 @@ extern void samsung_pm_restore_gpios(void); | |||
181 | * Save the GPIO states for resotration on resume. See samsung_pm_restore_gpios(). | 182 | * Save the GPIO states for resotration on resume. See samsung_pm_restore_gpios(). |
182 | */ | 183 | */ |
183 | extern void samsung_pm_save_gpios(void); | 184 | extern void samsung_pm_save_gpios(void); |
185 | #else | ||
186 | #define samsung_pm_restore_gpios() do { } while(0) | ||
187 | #define samsung_pm_save_gpios() do { } while(0) | ||
188 | #endif | ||
184 | 189 | ||
185 | extern void s3c_pm_save_core(void); | 190 | extern void s3c_pm_save_core(void); |
186 | extern void s3c_pm_restore_core(void); | 191 | extern void s3c_pm_restore_core(void); |