diff options
author | Peter Robinson <pbrobinson@gmail.com> | 2013-08-15 17:22:58 +0100 |
---|---|---|
committer | Peter Robinson <pbrobinson@gmail.com> | 2013-08-15 17:22:58 +0100 |
commit | fe4e95043c34a4505388ec3b13264a4f22a47542 (patch) | |
tree | eb50caabecebe6264674ff1e90dd6a769068ab52 /arm-exynos-mp.patch | |
parent | 4c2389c30159c2525c5b6b87f25c7947a676c859 (diff) | |
download | kernel-fe4e95043c34a4505388ec3b13264a4f22a47542.tar.gz kernel-fe4e95043c34a4505388ec3b13264a4f22a47542.tar.xz kernel-fe4e95043c34a4505388ec3b13264a4f22a47542.zip |
- Major cleanup of arm64 config
- Add patch to enable build exynos5 as multi platform for lpae
- Minor cleanup of ARMv7 configs
Diffstat (limited to 'arm-exynos-mp.patch')
-rw-r--r-- | arm-exynos-mp.patch | 428 |
1 files changed, 428 insertions, 0 deletions
diff --git a/arm-exynos-mp.patch b/arm-exynos-mp.patch new file mode 100644 index 000000000..d037170e3 --- /dev/null +++ b/arm-exynos-mp.patch @@ -0,0 +1,428 @@ +commit 8b806e0201b97844d0eff4713eb88f0a6d0f689d +Author: Arnd Bergmann <arnd@arndb.de> +Date: Fri Jun 14 17:16:30 2013 +0200 + + ARM: exynos multiplatform, next try + + Signed-off-by: Arnd Bergmann <arnd@arndb.de> + +diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug +index e401a76..fad9324 100644 +--- a/arch/arm/Kconfig.debug ++++ b/arch/arm/Kconfig.debug +@@ -422,7 +422,7 @@ choice + + config DEBUG_S3C_UART0 + depends on PLAT_SAMSUNG +- select DEBUG_EXYNOS_UART if ARCH_EXYNOS ++ select DEBUG_EXYNOS_UART if ARCH_EXYNOS_COMMON + bool "Use S3C UART 0 for low-level debug" + help + Say Y here if you want the debug print routines to direct +@@ -434,7 +434,7 @@ choice + + config DEBUG_S3C_UART1 + depends on PLAT_SAMSUNG +- select DEBUG_EXYNOS_UART if ARCH_EXYNOS ++ select DEBUG_EXYNOS_UART if ARCH_EXYNOS_COMMON + bool "Use S3C UART 1 for low-level debug" + help + Say Y here if you want the debug print routines to direct +@@ -446,7 +446,7 @@ choice + + config DEBUG_S3C_UART2 + depends on PLAT_SAMSUNG +- select DEBUG_EXYNOS_UART if ARCH_EXYNOS ++ select DEBUG_EXYNOS_UART if ARCH_EXYNOS_COMMON + bool "Use S3C UART 2 for low-level debug" + help + Say Y here if you want the debug print routines to direct +@@ -457,7 +457,7 @@ choice + by CONFIG_S3C_LOWLEVEL_UART_PORT. + + config DEBUG_S3C_UART3 +- depends on PLAT_SAMSUNG && ARCH_EXYNOS ++ depends on PLAT_SAMSUNG && ARCH_EXYNOS_COMMON + select DEBUG_EXYNOS_UART + bool "Use S3C UART 3 for low-level debug" + help +diff --git a/arch/arm/include/debug/samsung.S b/arch/arm/include/debug/samsung.S +index f3a9cff..8d8d922 100644 +--- a/arch/arm/include/debug/samsung.S ++++ b/arch/arm/include/debug/samsung.S +@@ -9,7 +9,7 @@ + * published by the Free Software Foundation. + */ + +-#include <plat/regs-serial.h> ++#include <linux/serial_s3c.h> + + /* The S5PV210/S5PC110 implementations are as belows. */ + +diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig +index 855d4a7..8744890 100644 +--- a/arch/arm/mach-exynos/Kconfig ++++ b/arch/arm/mach-exynos/Kconfig +@@ -7,13 +7,24 @@ + + # Configuration options for the EXYNOS4 + +-if ARCH_EXYNOS ++config ARCH_EXYNOS_MULTI ++ bool "Samsung EXYNOS" if ARCH_MULTI_V7 ++ select ARCH_HAS_CPUFREQ ++ select CPU_V7 ++ select GENERIC_CLOCKEVENTS ++ select HAVE_CLK ++ select HAVE_S3C2410_I2C if I2C ++ select HAVE_S3C_RTC if RTC_CLASS ++ help ++ Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) ++ ++if ARCH_EXYNOS || ARCH_EXYNOS_MULTI + + menu "SAMSUNG EXYNOS SoCs Support" + + config ARCH_EXYNOS4 + bool "SAMSUNG EXYNOS4" +- default y ++ default ARCH_EXYNOS + select GIC_NON_BANKED + select HAVE_ARM_SCU if SMP + select HAVE_SMP +@@ -24,12 +35,16 @@ config ARCH_EXYNOS4 + + config ARCH_EXYNOS5 + bool "SAMSUNG EXYNOS5" ++ default ARCH_EXYNOS + select HAVE_ARM_SCU if SMP + select HAVE_SMP + select PINCTRL + help + Samsung EXYNOS5 (Cortex-A15) SoC based systems + ++config ARCH_EXYNOS_COMMON ++ def_bool ARCH_EXYNOS4 || ARCH_EXYNOS5 ++ + comment "EXYNOS SoCs" + + config CPU_EXYNOS4210 +@@ -41,7 +56,7 @@ config CPU_EXYNOS4210 + select PM_GENERIC_DOMAINS if PM + select S5P_PM if PM + select S5P_SLEEP if PM +- select SAMSUNG_DMADEV ++ select SAMSUNG_DMADEV if !ARCH_MULTIPLATFORM + help + Enable EXYNOS4210 CPU support + +@@ -49,10 +64,11 @@ config SOC_EXYNOS4212 + bool "SAMSUNG EXYNOS4212" + default y + depends on ARCH_EXYNOS4 ++ select MACH_EXYNOS4_DT + select PINCTRL_EXYNOS + select S5P_PM if PM + select S5P_SLEEP if PM +- select SAMSUNG_DMADEV ++ select SAMSUNG_DMADEV if !ARCH_MULTIPLATFORM + help + Enable EXYNOS4212 SoC support + +@@ -60,8 +76,9 @@ config SOC_EXYNOS4412 + bool "SAMSUNG EXYNOS4412" + default y + depends on ARCH_EXYNOS4 ++ select MACH_EXYNOS4_DT + select PINCTRL_EXYNOS +- select SAMSUNG_DMADEV ++ select SAMSUNG_DMADEV if !ARCH_MULTIPLATFORM + help + Enable EXYNOS4412 SoC support + +@@ -70,11 +87,12 @@ config SOC_EXYNOS5250 + default y + depends on ARCH_EXYNOS5 + select PINCTRL_EXYNOS ++ select MACH_EXYNOS5_DT + select PM_GENERIC_DOMAINS if PM + select S5P_PM if PM + select S5P_SLEEP if PM + select S5P_DEV_MFC +- select SAMSUNG_DMADEV ++ select SAMSUNG_DMADEV if !ARCH_MULTIPLATFORM + help + Enable EXYNOS5250 SoC support + +@@ -121,9 +139,7 @@ config MACH_EXYNOS4_DT + with this machine file. + + config MACH_EXYNOS5_DT +- bool "SAMSUNG EXYNOS5 Machine using device tree" +- default y +- depends on ARCH_EXYNOS5 ++ bool + select ARM_AMBA + select CLKSRC_OF + select USB_ARCH_HAS_XHCI +diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile +index e970a7a..ae397bb 100644 +--- a/arch/arm/mach-exynos/Makefile ++++ b/arch/arm/mach-exynos/Makefile +diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig +@@ -5,14 +5,11 @@ + # + # Licensed under GPLv2 + +-obj-y := +-obj-m := +-obj-n := +-obj- := ++ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung + +-# Core ++ifdef CONFIG_ARCH_EXYNOS_COMMON + +-obj-$(CONFIG_ARCH_EXYNOS) += common.o ++obj-y += pmu.o + + obj-$(CONFIG_S5P_PM) += pm.o + obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o +@@ -24,8 +21,8 @@ + + obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o + +-obj-$(CONFIG_ARCH_EXYNOS) += exynos-smc.o +-obj-$(CONFIG_ARCH_EXYNOS) += firmware.o +++obj-y += exynos-smc.o +++obj-y += firmware.o + + plus_sec := $(call as-instr,.arch_extension sec,+sec) + AFLAGS_exynos-smc.o :=-Wa,-march=armv7-a$(plus_sec) +@@ -34,3 +31,5 @@ + + obj-$(CONFIG_MACH_EXYNOS4_DT) += mach-exynos4-dt.o + obj-$(CONFIG_MACH_EXYNOS5_DT) += mach-exynos5-dt.o ++ ++endif +index 3dc5cbe..e61abdc 100644 +--- a/arch/arm/plat-samsung/Kconfig ++++ b/arch/arm/plat-samsung/Kconfig +@@ -6,7 +6,7 @@ + + config PLAT_SAMSUNG + bool +- depends on PLAT_S3C24XX || ARCH_S3C64XX || PLAT_S5P || ARCH_EXYNOS ++ depends on PLAT_S3C24XX || ARCH_S3C64XX || PLAT_S5P || ARCH_EXYNOS_COMMON + default y + select GENERIC_IRQ_CHIP + select NO_IOPORT +@@ -176,6 +176,7 @@ config S5P_DEV_UART + + 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 +@@ -396,6 +397,7 @@ config S5P_DEV_USB_EHCI + + config S3C24XX_PWM + bool "PWM device support" ++ depends on !ARCH_MULTIPLATFORM + select PWM + select PWM_SAMSUNG + help +@@ -453,7 +455,7 @@ comment "Power management" + config SAMSUNG_PM_DEBUG + bool "S3C2410 PM Suspend debug" + depends on PM +- select DEBUG_LL ++ depends on DEBUG_LL && SERIAL_SAMSUNG + help + Say Y here if you want verbose debugging from the PM Suspend and + Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt> +diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile +index 98d07d8..b458e7d 100644 +--- a/arch/arm/plat-samsung/Makefile ++++ b/arch/arm/plat-samsung/Makefile +@@ -4,6 +4,9 @@ + # + # Licensed under GPLv2 + ++ccflags-$(CONFIG_ARCH_MULTI_V7) += -I$(srctree)/$(src)/include ++ccflags-$(CONFIG_ARCH_EXYNOS_COMMON) += -I$(srctree)/arch/arm/mach-exynos/include ++ + obj-y := + obj-m := + obj-n := dummy.o +diff --git a/arch/arm/plat-samsung/s5p-irq-pm.c b/arch/arm/plat-samsung/s5p-irq-pm.c +index 7c1e3b7..dc66bb5 100644 +--- a/arch/arm/plat-samsung/s5p-irq-pm.c ++++ b/arch/arm/plat-samsung/s5p-irq-pm.c +@@ -40,7 +40,7 @@ int s3c_irq_wake(struct irq_data *data, unsigned int state) + unsigned long irqbit; + unsigned int irq_rtc_tic, irq_rtc_alarm; + +-#ifdef CONFIG_ARCH_EXYNOS ++#ifdef CONFIG_ARCH_EXYNOS_COMMON + if (soc_is_exynos5250()) { + irq_rtc_tic = EXYNOS5_IRQ_RTC_TIC; + irq_rtc_alarm = EXYNOS5_IRQ_RTC_ALARM; +diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig +index 81465c2..6bd8b5a 100644 +--- a/drivers/clocksource/Kconfig ++++ b/drivers/clocksource/Kconfig +@@ -75,7 +75,7 @@ config CLKSRC_METAG_GENERIC + This option enables support for the Meta per-thread timers. + + config CLKSRC_EXYNOS_MCT +- def_bool y if ARCH_EXYNOS ++ def_bool y if ARCH_EXYNOS_COMMON + help + Support for Multi Core Timer controller on Exynos SoCs. + +diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm +index de4d5d9..ffe9cb3 100644 +--- a/drivers/cpufreq/Kconfig.arm ++++ b/drivers/cpufreq/Kconfig.arm +@@ -27,6 +27,7 @@ config ARM_EXYNOS_CPUFREQ + + If in doubt, say N. + ++if ARM_EXYNOS_CPUFREQ + config ARM_EXYNOS4210_CPUFREQ + def_bool CPU_EXYNOS4210 + help +@@ -54,6 +55,7 @@ config ARM_EXYNOS5440_CPUFREQ + SoC. The nature of exynos5440 clock controller is + different than previous exynos controllers so not using + the common exynos framework. ++endif + + config ARM_HIGHBANK_CPUFREQ + tristate "Calxeda Highbank-based" +diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig +index 31f3adb..15454ad 100644 +--- a/drivers/devfreq/Kconfig ++++ b/drivers/devfreq/Kconfig +@@ -68,6 +68,7 @@ comment "DEVFREQ Drivers" + config ARM_EXYNOS4_BUS_DEVFREQ + bool "ARM Exynos4210/4212/4412 Memory Bus DEVFREQ Driver" + depends on CPU_EXYNOS4210 || SOC_EXYNOS4212 || SOC_EXYNOS4412 ++ depends on !ARCH_MULTIPLATFORM + select ARCH_HAS_OPP + select DEVFREQ_GOV_SIMPLE_ONDEMAND + help +diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig +index 6c6034e..d9ed7c0 100644 +--- a/drivers/iommu/Kconfig ++++ b/drivers/iommu/Kconfig +@@ -168,7 +168,7 @@ config TEGRA_IOMMU_SMMU + + config EXYNOS_IOMMU + bool "Exynos IOMMU Support" +- depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU ++ depends on ARCH_EXYNOS_COMMON && EXYNOS_DEV_SYSMMU + select IOMMU_API + help + Support for the IOMMU(System MMU) of Samsung Exynos application +diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig +index 5a8ad51..03688dd 100644 +--- a/drivers/pinctrl/Kconfig ++++ b/drivers/pinctrl/Kconfig +@@ -252,7 +252,7 @@ config PINCTRL_SAMSUNG + + config PINCTRL_EXYNOS + bool "Pinctrl driver data for Samsung EXYNOS SoCs other than 5440" +- depends on OF && GPIOLIB && ARCH_EXYNOS ++ depends on OF && GPIOLIB && ARCH_EXYNOS_COMMON + select PINCTRL_SAMSUNG + + config PINCTRL_EXYNOS5440 +diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig +index 75840b5..746a931 100644 +--- a/drivers/pwm/Kconfig ++++ b/drivers/pwm/Kconfig +@@ -140,7 +140,7 @@ config PWM_RENESAS_TPU + + config PWM_SAMSUNG + tristate "Samsung PWM support" +- depends on PLAT_SAMSUNG ++ depends on PLAT_SAMSUNG && !ARCH_MULTIPLATFORM + help + Generic PWM framework driver for Samsung. + +diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig +index 89cbbab..830b8e7 100644 +--- a/drivers/spi/Kconfig ++++ b/drivers/spi/Kconfig +@@ -365,7 +365,7 @@ config SPI_S3C24XX_FIQ + + config SPI_S3C64XX + tristate "Samsung S3C64XX series type SPI" +- depends on (ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5P64X0 || ARCH_EXYNOS) ++ depends on (ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5P64X0 || ARCH_EXYNOS_COMMON) + select S3C64XX_DMA if ARCH_S3C64XX + help + SPI driver for Samsung S3C64XX and newer SoCs. +diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig +index 4263d01..d7ad720 100644 +--- a/drivers/usb/host/Kconfig ++++ b/drivers/usb/host/Kconfig +@@ -462,7 +462,7 @@ config USB_OHCI_SH + + config USB_OHCI_EXYNOS + boolean "OHCI support for Samsung EXYNOS SoC Series" +- depends on ARCH_EXYNOS ++ depends on ARCH_EXYNOS_COMMON + help + Enable support for the Samsung Exynos SOC's on-chip OHCI controller. + +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 2c301f8..0ba3e03 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -2039,7 +2039,7 @@ config FB_TMIO_ACCELL + config FB_S3C + tristate "Samsung S3C framebuffer support" + depends on FB && (CPU_S3C2416 || ARCH_S3C64XX || ARCH_S5P64X0 || \ +- ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS) ++ ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS_COMMON) + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT +diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig +index b8abda5..216af14 100644 +--- a/drivers/video/exynos/Kconfig ++++ b/drivers/video/exynos/Kconfig +@@ -15,7 +15,7 @@ if EXYNOS_VIDEO + + config EXYNOS_MIPI_DSI + bool "EXYNOS MIPI DSI driver support." +- depends on ARCH_S5PV210 || ARCH_EXYNOS ++ depends on ARCH_S5PV210 || ARCH_EXYNOS_COMMON + help + This enables support for MIPI-DSI device. + +@@ -29,7 +29,7 @@ config EXYNOS_LCD_S6E8AX0 + + config EXYNOS_DP + bool "EXYNOS DP driver support" +- depends on ARCH_EXYNOS ++ depends on ARCH_EXYNOS_COMMON + default n + help + This enables support for DP device. +diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig +index 9855dfc..fcb2045 100644 +--- a/sound/soc/samsung/Kconfig ++++ b/sound/soc/samsung/Kconfig +@@ -1,6 +1,6 @@ + config SND_SOC_SAMSUNG + tristate "ASoC support for Samsung" +- depends on PLAT_SAMSUNG ++ depends on PLAT_SAMSUNG && !ARCH_MULTIPLATFORM + select S3C64XX_DMA if ARCH_S3C64XX + select S3C2410_DMA if ARCH_S3C24XX + help |