diff options
author | Arnd Bergmann <arnd@arndb.de> | 2013-04-19 08:34:05 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2013-04-19 10:50:56 -0400 |
commit | 0dc488e778069b208d09516c5f0793dc37023c8e (patch) | |
tree | 704ad7fa4d8202f1933297e4dd348128a2b9f702 /arch/arm/mach-exynos | |
parent | c4c54da24b8ae12abb2034edaf08021894caf0d0 (diff) | |
parent | bd51de53e1be9896d815bbea30560262216d4616 (diff) |
Merge branch 'samsung/exynos-multiplatform' into next/drivers
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>
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 41 | ||||
-rw-r--r-- | arch/arm/mach-exynos/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/mach-exynos/common.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/dev-uart.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/debug-macro.S | 39 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/irqs.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-armlex4210.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-nuri.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk4x12.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdkv310.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/setup-sdhci-gpio.c | 2 |
12 files changed, 57 insertions, 47 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index ef3b69a6277c..a77db362a888 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -7,6 +7,21 @@ | |||
7 | 7 | ||
8 | # Configuration options for the EXYNOS4 | 8 | # Configuration options for the EXYNOS4 |
9 | 9 | ||
10 | config ARCH_EXYNOS | ||
11 | # TODO: make this visible after all drivers are converted | ||
12 | bool "Samsung EXYNOS" if ARCH_MULTI_V7 && BROKEN | ||
13 | default ARCH_EXYNOS_SINGLE | ||
14 | select ARCH_HAS_CPUFREQ | ||
15 | select CLKDEV_LOOKUP | ||
16 | select COMMON_CLK | ||
17 | select CPU_V7 | ||
18 | select GENERIC_CLOCKEVENTS | ||
19 | select HAVE_CLK | ||
20 | select HAVE_S3C2410_I2C if I2C | ||
21 | select HAVE_S3C_RTC if RTC_CLASS | ||
22 | help | ||
23 | Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) | ||
24 | |||
10 | if ARCH_EXYNOS | 25 | if ARCH_EXYNOS |
11 | 26 | ||
12 | menu "SAMSUNG EXYNOS SoCs Support" | 27 | menu "SAMSUNG EXYNOS SoCs Support" |
@@ -19,6 +34,9 @@ config ARCH_EXYNOS4 | |||
19 | help | 34 | help |
20 | Samsung EXYNOS4 SoCs based systems | 35 | Samsung EXYNOS4 SoCs based systems |
21 | 36 | ||
37 | config ARCH_EXYNOS4_SINGLE | ||
38 | def_bool ARCH_EXYNOS4 && ARCH_EXYNOS_SINGLE | ||
39 | |||
22 | config ARCH_EXYNOS5 | 40 | config ARCH_EXYNOS5 |
23 | bool "SAMSUNG EXYNOS5" | 41 | bool "SAMSUNG EXYNOS5" |
24 | select HAVE_SMP | 42 | select HAVE_SMP |
@@ -35,7 +53,7 @@ config CPU_EXYNOS4210 | |||
35 | select PM_GENERIC_DOMAINS | 53 | select PM_GENERIC_DOMAINS |
36 | select S5P_PM if PM | 54 | select S5P_PM if PM |
37 | select S5P_SLEEP if PM | 55 | select S5P_SLEEP if PM |
38 | select SAMSUNG_DMADEV | 56 | select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE |
39 | help | 57 | help |
40 | Enable EXYNOS4210 CPU support | 58 | Enable EXYNOS4210 CPU support |
41 | 59 | ||
@@ -45,7 +63,7 @@ config SOC_EXYNOS4212 | |||
45 | depends on ARCH_EXYNOS4 | 63 | depends on ARCH_EXYNOS4 |
46 | select S5P_PM if PM | 64 | select S5P_PM if PM |
47 | select S5P_SLEEP if PM | 65 | select S5P_SLEEP if PM |
48 | select SAMSUNG_DMADEV | 66 | select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE |
49 | help | 67 | help |
50 | Enable EXYNOS4212 SoC support | 68 | Enable EXYNOS4212 SoC support |
51 | 69 | ||
@@ -53,7 +71,7 @@ config SOC_EXYNOS4412 | |||
53 | bool "SAMSUNG EXYNOS4412" | 71 | bool "SAMSUNG EXYNOS4412" |
54 | default y | 72 | default y |
55 | depends on ARCH_EXYNOS4 | 73 | depends on ARCH_EXYNOS4 |
56 | select SAMSUNG_DMADEV | 74 | select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE |
57 | help | 75 | help |
58 | Enable EXYNOS4412 SoC support | 76 | Enable EXYNOS4412 SoC support |
59 | 77 | ||
@@ -65,7 +83,7 @@ config SOC_EXYNOS5250 | |||
65 | select S5P_PM if PM | 83 | select S5P_PM if PM |
66 | select S5P_SLEEP if PM | 84 | select S5P_SLEEP if PM |
67 | select S5P_DEV_MFC | 85 | select S5P_DEV_MFC |
68 | select SAMSUNG_DMADEV | 86 | select SAMSUNG_DMADEV if ARCH_EXYNOS_SINGLE |
69 | help | 87 | help |
70 | Enable EXYNOS5250 SoC support | 88 | Enable EXYNOS5250 SoC support |
71 | 89 | ||
@@ -80,6 +98,19 @@ config SOC_EXYNOS5440 | |||
80 | help | 98 | help |
81 | Enable EXYNOS5440 SoC support | 99 | Enable EXYNOS5440 SoC support |
82 | 100 | ||
101 | config EXYNOS_ATAGS | ||
102 | bool "ATAGS based boot for EXYNOS (deprecated)" | ||
103 | depends on !ARCH_MULTIPLATFORM | ||
104 | depends on ATAGS | ||
105 | default y | ||
106 | help | ||
107 | The EXYNOS platform is moving towards being completely probed | ||
108 | through device tree. This enables support for board files using | ||
109 | the traditional ATAGS boot format. | ||
110 | Note that this option is not available for multiplatform builds. | ||
111 | |||
112 | if EXYNOS_ATAGS | ||
113 | |||
83 | config EXYNOS_DEV_DMA | 114 | config EXYNOS_DEV_DMA |
84 | bool | 115 | bool |
85 | help | 116 | help |
@@ -395,6 +426,8 @@ config MACH_SMDK4412 | |||
395 | Machine support for Samsung SMDK4412 | 426 | Machine support for Samsung SMDK4412 |
396 | endif | 427 | endif |
397 | 428 | ||
429 | endif | ||
430 | |||
398 | comment "Flattened Device Tree based board for EXYNOS SoCs" | 431 | comment "Flattened Device Tree based board for EXYNOS SoCs" |
399 | 432 | ||
400 | config MACH_EXYNOS4_DT | 433 | config MACH_EXYNOS4_DT |
diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile index d2f6b362b6dd..e26d05c5249f 100644 --- a/arch/arm/mach-exynos/Makefile +++ b/arch/arm/mach-exynos/Makefile | |||
@@ -4,6 +4,7 @@ | |||
4 | # http://www.samsung.com/ | 4 | # http://www.samsung.com/ |
5 | # | 5 | # |
6 | # Licensed under GPLv2 | 6 | # Licensed under GPLv2 |
7 | ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include | ||
7 | 8 | ||
8 | obj-y := | 9 | obj-y := |
9 | obj-m := | 10 | obj-m := |
@@ -42,12 +43,12 @@ obj-$(CONFIG_MACH_EXYNOS5_DT) += mach-exynos5-dt.o | |||
42 | # device support | 43 | # device support |
43 | 44 | ||
44 | obj-y += dev-uart.o | 45 | obj-y += dev-uart.o |
45 | obj-$(CONFIG_ARCH_EXYNOS4) += dev-audio.o | 46 | obj-$(CONFIG_ARCH_EXYNOS4_SINGLE) += dev-audio.o |
46 | obj-$(CONFIG_EXYNOS4_DEV_AHCI) += dev-ahci.o | 47 | obj-$(CONFIG_EXYNOS4_DEV_AHCI) += dev-ahci.o |
47 | obj-$(CONFIG_EXYNOS_DEV_DMA) += dma.o | 48 | obj-$(CONFIG_EXYNOS_DEV_DMA) += dma.o |
48 | obj-$(CONFIG_EXYNOS4_DEV_USB_OHCI) += dev-ohci.o | 49 | obj-$(CONFIG_EXYNOS4_DEV_USB_OHCI) += dev-ohci.o |
49 | 50 | ||
50 | obj-$(CONFIG_ARCH_EXYNOS) += setup-i2c0.o | 51 | obj-$(CONFIG_ARCH_EXYNOS_SINGLE) += setup-i2c0.o |
51 | obj-$(CONFIG_EXYNOS4_SETUP_FIMC) += setup-fimc.o | 52 | obj-$(CONFIG_EXYNOS4_SETUP_FIMC) += setup-fimc.o |
52 | obj-$(CONFIG_EXYNOS4_SETUP_FIMD0) += setup-fimd0.o | 53 | obj-$(CONFIG_EXYNOS4_SETUP_FIMD0) += setup-fimd0.o |
53 | obj-$(CONFIG_EXYNOS4_SETUP_I2C1) += setup-i2c1.o | 54 | obj-$(CONFIG_EXYNOS4_SETUP_I2C1) += setup-i2c1.o |
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 939bda77defa..a3ab0ecc7c6a 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -361,6 +361,9 @@ static void __init exynos4_map_io(void) | |||
361 | else | 361 | else |
362 | iotable_init(exynos4_iodesc1, ARRAY_SIZE(exynos4_iodesc1)); | 362 | iotable_init(exynos4_iodesc1, ARRAY_SIZE(exynos4_iodesc1)); |
363 | 363 | ||
364 | if (!IS_ENABLED(CONFIG_EXYNOS_ATAGS)) | ||
365 | return | ||
366 | |||
364 | /* initialize device information early */ | 367 | /* initialize device information early */ |
365 | exynos4_default_sdhci0(); | 368 | exynos4_default_sdhci0(); |
366 | exynos4_default_sdhci1(); | 369 | exynos4_default_sdhci1(); |
@@ -546,6 +549,8 @@ static void __init exynos4_init_uarts(struct s3c2410_uartcfg *cfg, int no) | |||
546 | s3c24xx_init_uartdevs("exynos4210-uart", exynos4_uart_resources, cfg, no); | 549 | s3c24xx_init_uartdevs("exynos4210-uart", exynos4_uart_resources, cfg, no); |
547 | } | 550 | } |
548 | 551 | ||
552 | |||
553 | #ifdef CONFIG_EXYNOS_ATAGS | ||
549 | static void __iomem *exynos_eint_base; | 554 | static void __iomem *exynos_eint_base; |
550 | 555 | ||
551 | static DEFINE_SPINLOCK(eint_lock); | 556 | static DEFINE_SPINLOCK(eint_lock); |
@@ -852,6 +857,7 @@ static int __init exynos_init_irq_eint(void) | |||
852 | return 0; | 857 | return 0; |
853 | } | 858 | } |
854 | arch_initcall(exynos_init_irq_eint); | 859 | arch_initcall(exynos_init_irq_eint); |
860 | #endif | ||
855 | 861 | ||
856 | static struct resource exynos4_pmu_resource[] = { | 862 | static struct resource exynos4_pmu_resource[] = { |
857 | DEFINE_RES_IRQ(EXYNOS4_IRQ_PMU), | 863 | DEFINE_RES_IRQ(EXYNOS4_IRQ_PMU), |
diff --git a/arch/arm/mach-exynos/dev-uart.c b/arch/arm/mach-exynos/dev-uart.c index 7c42f4b7c8be..c48aff02c786 100644 --- a/arch/arm/mach-exynos/dev-uart.c +++ b/arch/arm/mach-exynos/dev-uart.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <asm/mach/irq.h> | 20 | #include <asm/mach/irq.h> |
21 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
22 | #include <mach/map.h> | 22 | #include <mach/map.h> |
23 | #include <mach/irqs.h> | ||
23 | 24 | ||
24 | #include <plat/devs.h> | 25 | #include <plat/devs.h> |
25 | 26 | ||
diff --git a/arch/arm/mach-exynos/include/mach/debug-macro.S b/arch/arm/mach-exynos/include/mach/debug-macro.S deleted file mode 100644 index e0c86ea475e7..000000000000 --- a/arch/arm/mach-exynos/include/mach/debug-macro.S +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/debug-macro.S | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | /* pull in the relevant register and map files. */ | ||
14 | |||
15 | #include <mach/map.h> | ||
16 | |||
17 | /* note, for the boot process to work we have to keep the UART | ||
18 | * virtual address aligned to an 1MiB boundary for the L1 | ||
19 | * mapping the head code makes. We keep the UART virtual address | ||
20 | * aligned and add in the offset when we load the value here. | ||
21 | */ | ||
22 | |||
23 | .macro addruart, rp, rv, tmp | ||
24 | mrc p15, 0, \tmp, c0, c0, 0 | ||
25 | and \tmp, \tmp, #0xf0 | ||
26 | teq \tmp, #0xf0 @@ A15 | ||
27 | ldreq \rp, =EXYNOS5_PA_UART | ||
28 | movne \rp, #EXYNOS4_PA_UART @@ EXYNOS4 | ||
29 | ldr \rv, =S3C_VA_UART | ||
30 | #if CONFIG_DEBUG_S3C_UART != 0 | ||
31 | add \rp, \rp, #(0x10000 * CONFIG_DEBUG_S3C_UART) | ||
32 | add \rv, \rv, #(0x10000 * CONFIG_DEBUG_S3C_UART) | ||
33 | #endif | ||
34 | .endm | ||
35 | |||
36 | #define fifo_full fifo_full_s5pv210 | ||
37 | #define fifo_level fifo_level_s5pv210 | ||
38 | |||
39 | #include <plat/debug-macro.S> | ||
diff --git a/arch/arm/mach-exynos/include/mach/irqs.h b/arch/arm/mach-exynos/include/mach/irqs.h index 35fe6d52d230..c72f59d91fce 100644 --- a/arch/arm/mach-exynos/include/mach/irqs.h +++ b/arch/arm/mach-exynos/include/mach/irqs.h | |||
@@ -467,7 +467,10 @@ | |||
467 | #define IRQ_TIMER_BASE (IRQ_GPIO_END + 64) | 467 | #define IRQ_TIMER_BASE (IRQ_GPIO_END + 64) |
468 | 468 | ||
469 | /* Set the default NR_IRQS */ | 469 | /* Set the default NR_IRQS */ |
470 | #define EXYNOS_NR_IRQS (IRQ_TIMER_BASE + IRQ_TIMER_COUNT) | ||
470 | 471 | ||
471 | #define NR_IRQS (IRQ_TIMER_BASE + IRQ_TIMER_COUNT) | 472 | #ifndef CONFIG_SPARSE_IRQ |
473 | #define NR_IRQS EXYNOS_NR_IRQS | ||
474 | #endif | ||
472 | 475 | ||
473 | #endif /* __ASM_ARCH_IRQS_H */ | 476 | #endif /* __ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-exynos/mach-armlex4210.c b/arch/arm/mach-exynos/mach-armlex4210.c index 2c23b659ae3e..5f0f55701374 100644 --- a/arch/arm/mach-exynos/mach-armlex4210.c +++ b/arch/arm/mach-exynos/mach-armlex4210.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <plat/regs-srom.h> | 25 | #include <plat/regs-srom.h> |
26 | #include <plat/sdhci.h> | 26 | #include <plat/sdhci.h> |
27 | 27 | ||
28 | #include <mach/irqs.h> | ||
28 | #include <mach/map.h> | 29 | #include <mach/map.h> |
29 | 30 | ||
30 | #include "common.h" | 31 | #include "common.h" |
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c index 0c10852423c3..081a5baadd8b 100644 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c | |||
@@ -53,6 +53,7 @@ | |||
53 | #include <plat/fimc-core.h> | 53 | #include <plat/fimc-core.h> |
54 | #include <plat/camport.h> | 54 | #include <plat/camport.h> |
55 | 55 | ||
56 | #include <mach/irqs.h> | ||
56 | #include <mach/map.h> | 57 | #include <mach/map.h> |
57 | 58 | ||
58 | #include "common.h" | 59 | #include "common.h" |
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index a9aa5c034b23..27ebe44785f0 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <plat/hdmi.h> | 46 | #include <plat/hdmi.h> |
47 | 47 | ||
48 | #include <mach/map.h> | 48 | #include <mach/map.h> |
49 | #include <mach/irqs.h> | ||
49 | 50 | ||
50 | #include <drm/exynos_drm.h> | 51 | #include <drm/exynos_drm.h> |
51 | #include "common.h" | 52 | #include "common.h" |
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c index 184faa3bd93a..2c8af9617920 100644 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <plat/regs-serial.h> | 39 | #include <plat/regs-serial.h> |
40 | #include <plat/sdhci.h> | 40 | #include <plat/sdhci.h> |
41 | 41 | ||
42 | #include <mach/irqs.h> | ||
42 | #include <mach/map.h> | 43 | #include <mach/map.h> |
43 | 44 | ||
44 | #include <drm/exynos_drm.h> | 45 | #include <drm/exynos_drm.h> |
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c index 75eca7d4e128..ee312b676772 100644 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <plat/clock.h> | 43 | #include <plat/clock.h> |
44 | #include <plat/hdmi.h> | 44 | #include <plat/hdmi.h> |
45 | 45 | ||
46 | #include <mach/irqs.h> | ||
46 | #include <mach/map.h> | 47 | #include <mach/map.h> |
47 | 48 | ||
48 | #include <drm/exynos_drm.h> | 49 | #include <drm/exynos_drm.h> |
diff --git a/arch/arm/mach-exynos/setup-sdhci-gpio.c b/arch/arm/mach-exynos/setup-sdhci-gpio.c index e8d08bf8965a..d5b98c866738 100644 --- a/arch/arm/mach-exynos/setup-sdhci-gpio.c +++ b/arch/arm/mach-exynos/setup-sdhci-gpio.c | |||
@@ -19,8 +19,8 @@ | |||
19 | #include <linux/mmc/host.h> | 19 | #include <linux/mmc/host.h> |
20 | #include <linux/mmc/card.h> | 20 | #include <linux/mmc/card.h> |
21 | 21 | ||
22 | #include <mach/gpio.h> | ||
22 | #include <plat/gpio-cfg.h> | 23 | #include <plat/gpio-cfg.h> |
23 | #include <plat/regs-sdhci.h> | ||
24 | #include <plat/sdhci.h> | 24 | #include <plat/sdhci.h> |
25 | 25 | ||
26 | void exynos4_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) | 26 | void exynos4_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) |