summaryrefslogtreecommitdiffstats
path: root/arm-exynos-mp.patch
diff options
context:
space:
mode:
authorPeter Robinson <pbrobinson@gmail.com>2013-08-15 17:22:58 +0100
committerPeter Robinson <pbrobinson@gmail.com>2013-08-15 17:22:58 +0100
commitfe4e95043c34a4505388ec3b13264a4f22a47542 (patch)
treeeb50caabecebe6264674ff1e90dd6a769068ab52 /arm-exynos-mp.patch
parent4c2389c30159c2525c5b6b87f25c7947a676c859 (diff)
downloadkernel-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.patch428
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