ARM: s3c64xx: multiplatform support
authorArnd Bergmann <arnd@arndb.de>
Mon, 7 Jul 2014 12:25:15 +0000 (14:25 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 1 Dec 2015 20:50:26 +0000 (21:50 +0100)
After all preparation work is done, we can finally move the Kconfig
option for s3c64xx into ARCH_MULTIPLATFORM. This implies allowing
SAMSUNG_ATAGS for multiplatform again, but now disallowing the
ADC driver below it, as that still has dependencies on header files.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/Kconfig
arch/arm/configs/multi_v7_defconfig
arch/arm/configs/s3c6400_defconfig
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/Makefile
arch/arm/plat-samsung/Kconfig
arch/arm/plat-samsung/Makefile

index 1b729cc15985203c25a66461ca8269b3bc0a23ea..97adb5eda7bb378ab053ee4504e83b83c4fd152f 100644 (file)
@@ -682,33 +682,6 @@ config ARCH_S3C24XX
          (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
          Samsung SMDK2410 development board (and derivatives).
 
-config ARCH_S3C64XX
-       bool "Samsung S3C64XX"
-       select ARCH_REQUIRE_GPIOLIB
-       select ARM_AMBA
-       select ARM_VIC
-       select ATAGS
-       select CLKDEV_LOOKUP
-       select CLKSRC_SAMSUNG_PWM
-       select COMMON_CLK_SAMSUNG
-       select CPU_V6K
-       select GENERIC_CLOCKEVENTS
-       select GPIO_SAMSUNG
-       select HAVE_S3C2410_I2C if I2C
-       select HAVE_S3C2410_WATCHDOG if WATCHDOG
-       select HAVE_TCM
-       select NO_IOPORT_MAP
-       select PLAT_SAMSUNG
-       select PM_GENERIC_DOMAINS if PM
-       select S3C_DEV_NAND
-       select S3C_GPIO_TRACK
-       select SAMSUNG_ATAGS
-       select SAMSUNG_WAKEMASK
-       select SAMSUNG_WDT_RESET
-       select SPARSE_IRQ
-       help
-         Samsung S3C64XX series based systems
-
 config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
index 69a22fdb52a5a49ecb26760ed4163989e2f735e4..181f269c7f3bba55e4179380506d7baae9756332 100644 (file)
@@ -11,6 +11,9 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
 CONFIG_CMDLINE_PARTITION=y
+CONFIG_ARCH_MULTI_V7=y
+# CONFIG_ARCH_MULTI_V5 is not set
+# CONFIG_ARCH_MULTI_V4 is not set
 CONFIG_ARCH_VIRT=y
 CONFIG_ARCH_ALPINE=y
 CONFIG_ARCH_MVEBU=y
index e2f9fa5bb54be194b43c04ba777225f8e76badb3..e0f66936ae020acd84696a134666a9560dd48218 100644 (file)
@@ -5,6 +5,8 @@ CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
+CONFIG_ARCH_MULTI_V6=y
+# CONFIG_ARCH_MULTI_V7 is not set
 CONFIG_ARCH_S3C64XX=y
 CONFIG_S3C_BOOT_ERROR_RESET=y
 CONFIG_MACH_SMDK6400=y
index 28c7097e85066f5780c1f9b55492cfad5cd86c1d..caf71a99389e20f5c8274c3ffb3e371f5a9749e7 100644 (file)
@@ -2,6 +2,27 @@
 #      Simtec Electronics, Ben Dooks <ben@simtec.co.uk>
 #
 # Licensed under GPLv2
+menuconfig ARCH_S3C64XX
+       bool "Samsung S3C64XX" if ARCH_MULTI_V6
+       select ARCH_REQUIRE_GPIOLIB
+       select ARM_AMBA
+       select ARM_VIC
+       select ATAGS
+       select CLKSRC_SAMSUNG_PWM
+       select COMMON_CLK_SAMSUNG
+       select GPIO_SAMSUNG
+       select HAVE_S3C2410_I2C if I2C
+       select HAVE_S3C2410_WATCHDOG if WATCHDOG
+       select HAVE_TCM
+       select PLAT_SAMSUNG
+       select PM_GENERIC_DOMAINS if PM
+       select S3C_DEV_NAND
+       select S3C_GPIO_TRACK
+       select SAMSUNG_ATAGS
+       select SAMSUNG_WAKEMASK if PM
+       select SAMSUNG_WDT_RESET
+       help
+         Samsung S3C64XX series based systems
 
 if ARCH_S3C64XX
 
@@ -310,7 +331,6 @@ config MACH_S3C64XX_DT
        select CPU_S3C6410
        select PINCTRL
        select PINCTRL_S3C64XX
-       select USE_OF
        help
          Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
          enabled.
index bb233f342f31d92e109a9c62b0a31b68ce3f2fff..04cdcd40e23c1864d32dcd6b7bfc151fd2b4fad9 100644 (file)
@@ -5,6 +5,9 @@
 #
 # Licensed under GPLv2
 
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
+asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
+
 # Core
 
 obj-y                          += common.o
index 1a1ba83e7da639b665d8b667cc591d3ed7595872..e8229b9fee4a107a8ea180420df98141910b1879 100644 (file)
@@ -39,7 +39,6 @@ config S3C_LOWLEVEL_UART_PORT
 
 config SAMSUNG_ATAGS
        def_bool n
-       depends on !ARCH_MULTIPLATFORM
        depends on ATAGS
        help
           This option enables ATAGS based boot support code for
@@ -70,6 +69,7 @@ config S3C_GPIO_TRACK
 
 config S3C_ADC
        bool "ADC common driver support"
+       depends on !ARCH_MULTIPLATFORM
        help
          Core support for the ADC block found in the Samsung SoC systems
          for drivers such as the touchscreen and hwmon to use to share
index aeb19e3288b91832d81e9e164692b0b3cf2d303d..be172efec15c5594033cddfb6623a0df75d7b863 100644 (file)
@@ -4,7 +4,8 @@
 #
 # Licensed under GPLv2
 
-ccflags-$(CONFIG_ARCH_MULTI_V7) += -I$(srctree)/$(src)/include
+ccflags-$(CONFIG_ARCH_S3C64XX) := -I$(srctree)/arch/arm/mach-s3c64xx/include
+ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include
 
 # Objects we always build independent of SoC choice