aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-10-26 08:45:06 -0400
committerArnd Bergmann <arnd@arndb.de>2012-10-26 08:45:06 -0400
commit389a84d2c1c62f0232b5239017c81ee88b2613ae (patch)
treea03ca8c6bb5c772b2da5214717a3adf0fad05835 /arch/arm
parentef3f94412a4d7e107392e7c7cfc3e2d0668aa1aa (diff)
parent61ef3c0bd3ccc9552ea4e54f5003a21ba45ceb44 (diff)
Merge branch 'v3.7-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
From Kukjin Kim <kgene.kim@samsung.com>: One is spi stuff for fix the device names for the different subtypes of the spi controller. And the other is adding missing .smp field for exynos4-dt and fixing memory sections for exynos4210-trats board. * 'v3.7-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: Set .smp field of machine descriptor for exynos4-dt ARM: dts: Split memory into 4 sections for exynos4210-trats ARM: SAMSUNG: Add naming of s3c64xx-spi devices Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/exynos4210-trats.dts6
-rw-r--r--arch/arm/mach-exynos/common.c5
-rw-r--r--arch/arm/mach-exynos/mach-exynos4-dt.c1
-rw-r--r--arch/arm/mach-s3c24xx/s3c2416.c2
-rw-r--r--arch/arm/mach-s3c24xx/s3c2443.c4
-rw-r--r--arch/arm/mach-s5p64x0/common.c3
-rw-r--r--arch/arm/mach-s5pc100/common.c3
-rw-r--r--arch/arm/mach-s5pv210/common.c3
-rw-r--r--arch/arm/plat-samsung/include/plat/spi-core.h30
9 files changed, 55 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 73567b843e72..a21511c14071 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -20,8 +20,10 @@
20 compatible = "samsung,trats", "samsung,exynos4210"; 20 compatible = "samsung,trats", "samsung,exynos4210";
21 21
22 memory { 22 memory {
23 reg = <0x40000000 0x20000000 23 reg = <0x40000000 0x10000000
24 0x60000000 0x20000000>; 24 0x50000000 0x10000000
25 0x60000000 0x10000000
26 0x70000000 0x10000000>;
25 }; 27 };
26 28
27 chosen { 29 chosen {
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index 715b690e5009..1947be8e5f5b 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -47,6 +47,7 @@
47#include <plat/fimc-core.h> 47#include <plat/fimc-core.h>
48#include <plat/iic-core.h> 48#include <plat/iic-core.h>
49#include <plat/tv-core.h> 49#include <plat/tv-core.h>
50#include <plat/spi-core.h>
50#include <plat/regs-serial.h> 51#include <plat/regs-serial.h>
51 52
52#include "common.h" 53#include "common.h"
@@ -346,6 +347,8 @@ static void __init exynos4_map_io(void)
346 347
347 s5p_fb_setname(0, "exynos4-fb"); 348 s5p_fb_setname(0, "exynos4-fb");
348 s5p_hdmi_setname("exynos4-hdmi"); 349 s5p_hdmi_setname("exynos4-hdmi");
350
351 s3c64xx_spi_setname("exynos4210-spi");
349} 352}
350 353
351static void __init exynos5_map_io(void) 354static void __init exynos5_map_io(void)
@@ -366,6 +369,8 @@ static void __init exynos5_map_io(void)
366 s3c_i2c0_setname("s3c2440-i2c"); 369 s3c_i2c0_setname("s3c2440-i2c");
367 s3c_i2c1_setname("s3c2440-i2c"); 370 s3c_i2c1_setname("s3c2440-i2c");
368 s3c_i2c2_setname("s3c2440-i2c"); 371 s3c_i2c2_setname("s3c2440-i2c");
372
373 s3c64xx_spi_setname("exynos4210-spi");
369} 374}
370 375
371static void __init exynos4_init_clocks(int xtal) 376static void __init exynos4_init_clocks(int xtal)
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c
index e58d786faf78..eadf4b59e7d2 100644
--- a/arch/arm/mach-exynos/mach-exynos4-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos4-dt.c
@@ -99,6 +99,7 @@ static char const *exynos4_dt_compat[] __initdata = {
99 99
100DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") 100DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
101 /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */ 101 /* Maintainer: Thomas Abraham <thomas.abraham@linaro.org> */
102 .smp = smp_ops(exynos_smp_ops),
102 .init_irq = exynos4_init_irq, 103 .init_irq = exynos4_init_irq,
103 .map_io = exynos4_dt_map_io, 104 .map_io = exynos4_dt_map_io,
104 .handle_irq = gic_handle_irq, 105 .handle_irq = gic_handle_irq,
diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c
index ed5a95ece9eb..77ee0b732237 100644
--- a/arch/arm/mach-s3c24xx/s3c2416.c
+++ b/arch/arm/mach-s3c24xx/s3c2416.c
@@ -61,6 +61,7 @@
61#include <plat/nand-core.h> 61#include <plat/nand-core.h>
62#include <plat/adc-core.h> 62#include <plat/adc-core.h>
63#include <plat/rtc-core.h> 63#include <plat/rtc-core.h>
64#include <plat/spi-core.h>
64 65
65static struct map_desc s3c2416_iodesc[] __initdata = { 66static struct map_desc s3c2416_iodesc[] __initdata = {
66 IODESC_ENT(WATCHDOG), 67 IODESC_ENT(WATCHDOG),
@@ -132,6 +133,7 @@ void __init s3c2416_map_io(void)
132 /* initialize device information early */ 133 /* initialize device information early */
133 s3c2416_default_sdhci0(); 134 s3c2416_default_sdhci0();
134 s3c2416_default_sdhci1(); 135 s3c2416_default_sdhci1();
136 s3c64xx_spi_setname("s3c2443-spi");
135 137
136 iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc)); 138 iotable_init(s3c2416_iodesc, ARRAY_SIZE(s3c2416_iodesc));
137} 139}
diff --git a/arch/arm/mach-s3c24xx/s3c2443.c b/arch/arm/mach-s3c24xx/s3c2443.c
index ab648ad8fa50..165b6a6b3daa 100644
--- a/arch/arm/mach-s3c24xx/s3c2443.c
+++ b/arch/arm/mach-s3c24xx/s3c2443.c
@@ -43,6 +43,7 @@
43#include <plat/nand-core.h> 43#include <plat/nand-core.h>
44#include <plat/adc-core.h> 44#include <plat/adc-core.h>
45#include <plat/rtc-core.h> 45#include <plat/rtc-core.h>
46#include <plat/spi-core.h>
46 47
47static struct map_desc s3c2443_iodesc[] __initdata = { 48static struct map_desc s3c2443_iodesc[] __initdata = {
48 IODESC_ENT(WATCHDOG), 49 IODESC_ENT(WATCHDOG),
@@ -100,6 +101,9 @@ void __init s3c2443_map_io(void)
100 s3c24xx_gpiocfg_default.set_pull = s3c2443_gpio_setpull; 101 s3c24xx_gpiocfg_default.set_pull = s3c2443_gpio_setpull;
101 s3c24xx_gpiocfg_default.get_pull = s3c2443_gpio_getpull; 102 s3c24xx_gpiocfg_default.get_pull = s3c2443_gpio_getpull;
102 103
104 /* initialize device information early */
105 s3c64xx_spi_setname("s3c2443-spi");
106
103 iotable_init(s3c2443_iodesc, ARRAY_SIZE(s3c2443_iodesc)); 107 iotable_init(s3c2443_iodesc, ARRAY_SIZE(s3c2443_iodesc));
104} 108}
105 109
diff --git a/arch/arm/mach-s5p64x0/common.c b/arch/arm/mach-s5p64x0/common.c
index 6e6a0a9d6778..111e404a81fd 100644
--- a/arch/arm/mach-s5p64x0/common.c
+++ b/arch/arm/mach-s5p64x0/common.c
@@ -44,6 +44,7 @@
44#include <plat/sdhci.h> 44#include <plat/sdhci.h>
45#include <plat/adc-core.h> 45#include <plat/adc-core.h>
46#include <plat/fb-core.h> 46#include <plat/fb-core.h>
47#include <plat/spi-core.h>
47#include <plat/gpio-cfg.h> 48#include <plat/gpio-cfg.h>
48#include <plat/regs-irqtype.h> 49#include <plat/regs-irqtype.h>
49#include <plat/regs-serial.h> 50#include <plat/regs-serial.h>
@@ -179,6 +180,7 @@ void __init s5p6440_map_io(void)
179 /* initialize any device information early */ 180 /* initialize any device information early */
180 s3c_adc_setname("s3c64xx-adc"); 181 s3c_adc_setname("s3c64xx-adc");
181 s3c_fb_setname("s5p64x0-fb"); 182 s3c_fb_setname("s5p64x0-fb");
183 s3c64xx_spi_setname("s5p64x0-spi");
182 184
183 s5p64x0_default_sdhci0(); 185 s5p64x0_default_sdhci0();
184 s5p64x0_default_sdhci1(); 186 s5p64x0_default_sdhci1();
@@ -193,6 +195,7 @@ void __init s5p6450_map_io(void)
193 /* initialize any device information early */ 195 /* initialize any device information early */
194 s3c_adc_setname("s3c64xx-adc"); 196 s3c_adc_setname("s3c64xx-adc");
195 s3c_fb_setname("s5p64x0-fb"); 197 s3c_fb_setname("s5p64x0-fb");
198 s3c64xx_spi_setname("s5p64x0-spi");
196 199
197 s5p64x0_default_sdhci0(); 200 s5p64x0_default_sdhci0();
198 s5p64x0_default_sdhci1(); 201 s5p64x0_default_sdhci1();
diff --git a/arch/arm/mach-s5pc100/common.c b/arch/arm/mach-s5pc100/common.c
index 621908658861..cc6e561c9958 100644
--- a/arch/arm/mach-s5pc100/common.c
+++ b/arch/arm/mach-s5pc100/common.c
@@ -45,6 +45,7 @@
45#include <plat/fb-core.h> 45#include <plat/fb-core.h>
46#include <plat/iic-core.h> 46#include <plat/iic-core.h>
47#include <plat/onenand-core.h> 47#include <plat/onenand-core.h>
48#include <plat/spi-core.h>
48#include <plat/regs-serial.h> 49#include <plat/regs-serial.h>
49#include <plat/watchdog-reset.h> 50#include <plat/watchdog-reset.h>
50 51
@@ -165,6 +166,8 @@ void __init s5pc100_map_io(void)
165 s3c_onenand_setname("s5pc100-onenand"); 166 s3c_onenand_setname("s5pc100-onenand");
166 s3c_fb_setname("s5pc100-fb"); 167 s3c_fb_setname("s5pc100-fb");
167 s3c_cfcon_setname("s5pc100-pata"); 168 s3c_cfcon_setname("s5pc100-pata");
169
170 s3c64xx_spi_setname("s5pc100-spi");
168} 171}
169 172
170void __init s5pc100_init_clocks(int xtal) 173void __init s5pc100_init_clocks(int xtal)
diff --git a/arch/arm/mach-s5pv210/common.c b/arch/arm/mach-s5pv210/common.c
index 4c9e9027df9a..a0c50efe8145 100644
--- a/arch/arm/mach-s5pv210/common.c
+++ b/arch/arm/mach-s5pv210/common.c
@@ -43,6 +43,7 @@
43#include <plat/iic-core.h> 43#include <plat/iic-core.h>
44#include <plat/keypad-core.h> 44#include <plat/keypad-core.h>
45#include <plat/tv-core.h> 45#include <plat/tv-core.h>
46#include <plat/spi-core.h>
46#include <plat/regs-serial.h> 47#include <plat/regs-serial.h>
47 48
48#include "common.h" 49#include "common.h"
@@ -196,6 +197,8 @@ void __init s5pv210_map_io(void)
196 197
197 /* setup TV devices */ 198 /* setup TV devices */
198 s5p_hdmi_setname("s5pv210-hdmi"); 199 s5p_hdmi_setname("s5pv210-hdmi");
200
201 s3c64xx_spi_setname("s5pv210-spi");
199} 202}
200 203
201void __init s5pv210_init_clocks(int xtal) 204void __init s5pv210_init_clocks(int xtal)
diff --git a/arch/arm/plat-samsung/include/plat/spi-core.h b/arch/arm/plat-samsung/include/plat/spi-core.h
new file mode 100644
index 000000000000..0b9428ab3fc3
--- /dev/null
+++ b/arch/arm/plat-samsung/include/plat/spi-core.h
@@ -0,0 +1,30 @@
1/*
2 * Copyright (C) 2012 Heiko Stuebner <heiko@sntech.de>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#ifndef __PLAT_S3C_SPI_CORE_H
10#define __PLAT_S3C_SPI_CORE_H
11
12/* These functions are only for use with the core support code, such as
13 * the cpu specific initialisation code
14 */
15
16/* re-define device name depending on support. */
17static inline void s3c64xx_spi_setname(char *name)
18{
19#ifdef CONFIG_S3C64XX_DEV_SPI0
20 s3c64xx_device_spi0.name = name;
21#endif
22#ifdef CONFIG_S3C64XX_DEV_SPI1
23 s3c64xx_device_spi1.name = name;
24#endif
25#ifdef CONFIG_S3C64XX_DEV_SPI2
26 s3c64xx_device_spi2.name = name;
27#endif
28}
29
30#endif /* __PLAT_S3C_SPI_CORE_H */