409 lines
12 KiB
Diff
409 lines
12 KiB
Diff
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/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 || ARCH_S5PV210)
|
|
+ depends on OF && GPIOLIB && (ARCH_EXYNOS_COMMON || ARCH_S5PV210)
|
|
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
|