Skip to content

Commit

Permalink
Merge branch 'samsung/exynos-multiplatform' into next/drivers
Browse files Browse the repository at this point in the history
Merging this into the next/drivers branch avoids a number of
pointless conflicts with code changed here.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Arnd Bergmann committed Apr 19, 2013
2 parents c4c54da + bd51de5 commit 0dc488e
Show file tree
Hide file tree
Showing 42 changed files with 204 additions and 150 deletions.
10 changes: 1 addition & 9 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -860,19 +860,11 @@ config ARCH_S5PV210
help
Samsung S5PV210/S5PC110 series based systems

config ARCH_EXYNOS
config ARCH_EXYNOS_SINGLE
bool "Samsung EXYNOS"
select ARCH_HAS_CPUFREQ
select ARCH_HAS_HOLES_MEMORYMODEL
select ARCH_SPARSEMEM_ENABLE
select CLKDEV_LOOKUP
select COMMON_CLK
select CPU_V7
select GENERIC_CLOCKEVENTS
select HAVE_CLK
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select HAVE_S3C_RTC if RTC_CLASS
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
help
Expand Down
8 changes: 8 additions & 0 deletions arch/arm/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,7 @@ choice

config DEBUG_S3C_UART0
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
bool "Use S3C UART 0 for low-level debug"
help
Say Y here if you want the debug print routines to direct
Expand All @@ -341,6 +342,7 @@ choice

config DEBUG_S3C_UART1
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
bool "Use S3C UART 1 for low-level debug"
help
Say Y here if you want the debug print routines to direct
Expand All @@ -352,6 +354,7 @@ choice

config DEBUG_S3C_UART2
depends on PLAT_SAMSUNG
select DEBUG_EXYNOS_UART if ARCH_EXYNOS
bool "Use S3C UART 2 for low-level debug"
help
Say Y here if you want the debug print routines to direct
Expand All @@ -363,6 +366,7 @@ choice

config DEBUG_S3C_UART3
depends on PLAT_SAMSUNG && ARCH_EXYNOS
select DEBUG_EXYNOS_UART
bool "Use S3C UART 3 for low-level debug"
help
Say Y here if you want the debug print routines to direct
Expand Down Expand Up @@ -485,6 +489,9 @@ choice

endchoice

config DEBUG_EXYNOS_UART
bool

config DEBUG_IMX_UART_PORT
int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
Expand Down Expand Up @@ -580,6 +587,7 @@ endchoice

config DEBUG_LL_INCLUDE
string
default "debug/exynos.S" if DEBUG_EXYNOS_UART
default "debug/icedcc.S" if DEBUG_ICEDCC
default "debug/imx.S" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/configs/exynos4_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_EXYNOS_SINGLE=y
CONFIG_S3C_LOWLEVEL_UART_PORT=1
CONFIG_MACH_SMDKC210=y
CONFIG_MACH_ARMLEX4210=y
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
/* linux/arch/arm/mach-exynos4/include/mach/debug-macro.S
*
/*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/

/* pull in the relevant register and map files. */

#include <mach/map.h>
#define S3C_ADDR_BASE 0xF6000000
#define S3C_VA_UART S3C_ADDR_BASE + 0x01000000
#define EXYNOS4_PA_UART 0x13800000
#define EXYNOS5_PA_UART 0x12C00000

/* note, for the boot process to work we have to keep the UART
* virtual address aligned to an 1MiB boundary for the L1
Expand All @@ -36,4 +36,4 @@
#define fifo_full fifo_full_s5pv210
#define fifo_level fifo_level_s5pv210

#include <plat/debug-macro.S>
#include <debug/samsung.S>
File renamed without changes.
41 changes: 37 additions & 4 deletions arch/arm/mach-exynos/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@

# Configuration options for the EXYNOS4

config ARCH_EXYNOS
# TODO: make this visible after all drivers are converted
bool "Samsung EXYNOS" if ARCH_MULTI_V7 && BROKEN
default ARCH_EXYNOS_SINGLE
select ARCH_HAS_CPUFREQ
select CLKDEV_LOOKUP
select COMMON_CLK
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

menu "SAMSUNG EXYNOS SoCs Support"
Expand All @@ -19,6 +34,9 @@ config ARCH_EXYNOS4
help
Samsung EXYNOS4 SoCs based systems

config ARCH_EXYNOS4_SINGLE
def_bool ARCH_EXYNOS4 && ARCH_EXYNOS_SINGLE

config ARCH_EXYNOS5
bool "SAMSUNG EXYNOS5"
select HAVE_SMP
Expand All @@ -35,7 +53,7 @@ config CPU_EXYNOS4210
select PM_GENERIC_DOMAINS
select S5P_PM if PM
select S5P_SLEEP if PM
select SAMSUNG_DMADEV
select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE
help
Enable EXYNOS4210 CPU support

Expand All @@ -45,15 +63,15 @@ config SOC_EXYNOS4212
depends on ARCH_EXYNOS4
select S5P_PM if PM
select S5P_SLEEP if PM
select SAMSUNG_DMADEV
select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE
help
Enable EXYNOS4212 SoC support

config SOC_EXYNOS4412
bool "SAMSUNG EXYNOS4412"
default y
depends on ARCH_EXYNOS4
select SAMSUNG_DMADEV
select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE
help
Enable EXYNOS4412 SoC support

Expand All @@ -65,7 +83,7 @@ config SOC_EXYNOS5250
select S5P_PM if PM
select S5P_SLEEP if PM
select S5P_DEV_MFC
select SAMSUNG_DMADEV
select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE
help
Enable EXYNOS5250 SoC support

Expand All @@ -80,6 +98,19 @@ config SOC_EXYNOS5440
help
Enable EXYNOS5440 SoC support

config EXYNOS_ATAGS
bool "ATAGS based boot for EXYNOS (deprecated)"
depends on !ARCH_MULTIPLATFORM
depends on ATAGS
default y
help
The EXYNOS platform is moving towards being completely probed
through device tree. This enables support for board files using
the traditional ATAGS boot format.
Note that this option is not available for multiplatform builds.

if EXYNOS_ATAGS

config EXYNOS_DEV_DMA
bool
help
Expand Down Expand Up @@ -395,6 +426,8 @@ config MACH_SMDK4412
Machine support for Samsung SMDK4412
endif

endif

comment "Flattened Device Tree based board for EXYNOS SoCs"

config MACH_EXYNOS4_DT
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-exynos/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# http://www.samsung.com/
#
# Licensed under GPLv2
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include

obj-y :=
obj-m :=
Expand Down Expand Up @@ -42,12 +43,12 @@ obj-$(CONFIG_MACH_EXYNOS5_DT) += mach-exynos5-dt.o
# device support

obj-y += dev-uart.o
obj-$(CONFIG_ARCH_EXYNOS4) += dev-audio.o
obj-$(CONFIG_ARCH_EXYNOS4_SINGLE) += dev-audio.o
obj-$(CONFIG_EXYNOS4_DEV_AHCI) += dev-ahci.o
obj-$(CONFIG_EXYNOS_DEV_DMA) += dma.o
obj-$(CONFIG_EXYNOS4_DEV_USB_OHCI) += dev-ohci.o

obj-$(CONFIG_ARCH_EXYNOS) += setup-i2c0.o
obj-$(CONFIG_ARCH_EXYNOS_SINGLE) += setup-i2c0.o
obj-$(CONFIG_EXYNOS4_SETUP_FIMC) += setup-fimc.o
obj-$(CONFIG_EXYNOS4_SETUP_FIMD0) += setup-fimd0.o
obj-$(CONFIG_EXYNOS4_SETUP_I2C1) += setup-i2c1.o
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-exynos/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,9 @@ static void __init exynos4_map_io(void)
else
iotable_init(exynos4_iodesc1, ARRAY_SIZE(exynos4_iodesc1));

if (!IS_ENABLED(CONFIG_EXYNOS_ATAGS))
return

/* initialize device information early */
exynos4_default_sdhci0();
exynos4_default_sdhci1();
Expand Down Expand Up @@ -546,6 +549,8 @@ static void __init exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no)
s3c24xx_init_uartdevs("exynos4210-uart", exynos4_uart_resources, cfg, no);
}


#ifdef CONFIG_EXYNOS_ATAGS
static void __iomem *exynos_eint_base;

static DEFINE_SPINLOCK(eint_lock);
Expand Down Expand Up @@ -852,6 +857,7 @@ static int __init exynos_init_irq_eint(void)
return 0;
}
arch_initcall(exynos_init_irq_eint);
#endif

static struct resource exynos4_pmu_resource[] = {
DEFINE_RES_IRQ(EXYNOS4_IRQ_PMU),
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/dev-uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <asm/mach/irq.h>
#include <mach/hardware.h>
#include <mach/map.h>
#include <mach/irqs.h>

#include <plat/devs.h>

Expand Down
5 changes: 4 additions & 1 deletion arch/arm/mach-exynos/include/mach/irqs.h
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,10 @@
#define IRQ_TIMER_BASE (IRQ_GPIO_END + 64)

/* Set the default NR_IRQS */
#define EXYNOS_NR_IRQS (IRQ_TIMER_BASE + IRQ_TIMER_COUNT)

#define NR_IRQS (IRQ_TIMER_BASE + IRQ_TIMER_COUNT)
#ifndef CONFIG_SPARSE_IRQ
#define NR_IRQS EXYNOS_NR_IRQS
#endif

#endif /* __ASM_ARCH_IRQS_H */
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/mach-armlex4210.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <plat/regs-srom.h>
#include <plat/sdhci.h>

#include <mach/irqs.h>
#include <mach/map.h>

#include "common.h"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/mach-nuri.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#include <plat/fimc-core.h>
#include <plat/camport.h>

#include <mach/irqs.h>
#include <mach/map.h>

#include "common.h"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/mach-origen.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
#include <plat/hdmi.h>

#include <mach/map.h>
#include <mach/irqs.h>

#include <drm/exynos_drm.h>
#include "common.h"
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/mach-smdk4x12.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
#include <plat/regs-serial.h>
#include <plat/sdhci.h>

#include <mach/irqs.h>
#include <mach/map.h>

#include <drm/exynos_drm.h>
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/mach-smdkv310.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#include <plat/clock.h>
#include <plat/hdmi.h>

#include <mach/irqs.h>
#include <mach/map.h>

#include <drm/exynos_drm.h>
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-exynos/setup-sdhci-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
#include <linux/mmc/host.h>
#include <linux/mmc/card.h>

#include <mach/gpio.h>
#include <plat/gpio-cfg.h>
#include <plat/regs-sdhci.h>
#include <plat/sdhci.h>

void exynos4_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c24xx/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,4 @@

/* include the reset of the code which will do the work */

#include <plat/debug-macro.S>
#include <debug/samsung.S>
2 changes: 1 addition & 1 deletion arch/arm/mach-s3c64xx/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@
* will be fine with us.
*/

#include <plat/debug-macro.S>
#include <debug/samsung.S>
2 changes: 1 addition & 1 deletion arch/arm/mach-s5p64x0/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@
#endif
.endm

#include <plat/debug-macro.S>
#include <debug/samsung.S>
2 changes: 1 addition & 1 deletion arch/arm/mach-s5pc100/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@
* will be fine with us.
*/

#include <plat/debug-macro.S>
#include <debug/samsung.S>
1 change: 0 additions & 1 deletion arch/arm/mach-s5pc100/setup-sdhci-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#include <linux/mmc/card.h>

#include <plat/gpio-cfg.h>
#include <plat/regs-sdhci.h>
#include <plat/sdhci.h>

void s5pc100_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-s5pv210/include/mach/debug-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@
* will be fine with us.
*/

#include <plat/debug-macro.S>
#include <debug/samsung.S>
1 change: 0 additions & 1 deletion arch/arm/mach-s5pv210/setup-sdhci-gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
#include <linux/mmc/card.h>

#include <plat/gpio-cfg.h>
#include <plat/regs-sdhci.h>
#include <plat/sdhci.h>

void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
Expand Down
Loading

0 comments on commit 0dc488e

Please sign in to comment.