aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pv210
diff options
context:
space:
mode:
authorKukjin Kim <kgene.kim@samsung.com>2010-08-06 08:49:18 -0400
committerKukjin Kim <kgene.kim@samsung.com>2010-08-06 08:49:18 -0400
commitd61bd77ff1e7c7a0a381c6e656dbc07b37510f37 (patch)
tree838f7b1c4d931814fbbc30643bb423f409e6daba /arch/arm/mach-s5pv210
parentf2b7e3c54a304677a1142829fb5913595885379f (diff)
parent1c739c7f374f77c5a355273c0c1d9345ed08c0ce (diff)
Merge branch 'next-samsung' into for-next
Conflicts: arch/arm/mach-s5p6440/Kconfig arch/arm/mach-s5p6442/Kconfig arch/arm/mach-s5pc100/Kconfig arch/arm/mach-s5pv210/Kconfig arch/arm/mach-s5pv210/cpu.c arch/arm/plat-samsung/include/plat/sdhci.h
Diffstat (limited to 'arch/arm/mach-s5pv210')
-rw-r--r--arch/arm/mach-s5pv210/Kconfig34
-rw-r--r--arch/arm/mach-s5pv210/cpu.c11
-rw-r--r--arch/arm/mach-s5pv210/dev-audio.c2
-rw-r--r--arch/arm/mach-s5pv210/dev-spi.c2
-rw-r--r--arch/arm/mach-s5pv210/include/mach/map.h7
-rw-r--r--arch/arm/mach-s5pv210/setup-fb-24bpp.c2
-rw-r--r--arch/arm/mach-s5pv210/setup-i2c0.c2
-rw-r--r--arch/arm/mach-s5pv210/setup-i2c1.c2
-rw-r--r--arch/arm/mach-s5pv210/setup-i2c2.c2
-rw-r--r--arch/arm/mach-s5pv210/setup-sdhci-gpio.c24
10 files changed, 53 insertions, 35 deletions
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig
index 9b84abf1a822..ea9d147d4585 100644
--- a/arch/arm/mach-s5pv210/Kconfig
+++ b/arch/arm/mach-s5pv210/Kconfig
@@ -53,19 +53,24 @@ config S5PV210_SETUP_SDHCI_GPIO
53 help 53 help
54 Common setup code for SDHCI gpio. 54 Common setup code for SDHCI gpio.
55 55
56config S5PC110_DEV_ONENAND
57 bool
58 help
59 Compile in platform device definition for OneNAND1 controller
60
56menu "S5PC110 Machines" 61menu "S5PC110 Machines"
57 62
58config MACH_AQUILA 63config MACH_AQUILA
59 bool "Aquila" 64 bool "Aquila"
60 select CPU_S5PV210 65 select CPU_S5PV210
61 select ARCH_SPARSEMEM_ENABLE 66 select ARCH_SPARSEMEM_ENABLE
62 select S5PV210_SETUP_FB_24BPP
63 select S5PV210_SETUP_SDHCI
64 select S3C_DEV_FB 67 select S3C_DEV_FB
65 select S5PC110_DEV_ONENAND
66 select S3C_DEV_HSMMC 68 select S3C_DEV_HSMMC
67 select S3C_DEV_HSMMC1 69 select S3C_DEV_HSMMC1
68 select S3C_DEV_HSMMC2 70 select S3C_DEV_HSMMC2
71 select S5PC110_DEV_ONENAND
72 select S5PV210_SETUP_FB_24BPP
73 select S5PV210_SETUP_SDHCI
69 help 74 help
70 Machine support for the Samsung Aquila target based on S5PC110 SoC 75 Machine support for the Samsung Aquila target based on S5PC110 SoC
71 76
@@ -73,13 +78,13 @@ config MACH_GONI
73 bool "GONI" 78 bool "GONI"
74 select CPU_S5PV210 79 select CPU_S5PV210
75 select ARCH_SPARSEMEM_ENABLE 80 select ARCH_SPARSEMEM_ENABLE
76 select S5PV210_SETUP_FB_24BPP
77 select S5PV210_SETUP_SDHCI
78 select S3C_DEV_FB 81 select S3C_DEV_FB
79 select S5PC110_DEV_ONENAND
80 select S3C_DEV_HSMMC 82 select S3C_DEV_HSMMC
81 select S3C_DEV_HSMMC1 83 select S3C_DEV_HSMMC1
82 select S3C_DEV_HSMMC2 84 select S3C_DEV_HSMMC2
85 select S5PC110_DEV_ONENAND
86 select S5PV210_SETUP_FB_24BPP
87 select S5PV210_SETUP_SDHCI
83 help 88 help
84 Machine support for Samsung GONI board 89 Machine support for Samsung GONI board
85 S5PC110(MCP) is one of package option of S5PV210 90 S5PC110(MCP) is one of package option of S5PV210
@@ -90,11 +95,9 @@ config MACH_SMDKC110
90 select ARCH_SPARSEMEM_ENABLE 95 select ARCH_SPARSEMEM_ENABLE
91 select S3C_DEV_I2C1 96 select S3C_DEV_I2C1
92 select S3C_DEV_I2C2 97 select S3C_DEV_I2C2
93 select SAMSUNG_DEV_IDE
94 select S3C_DEV_RTC 98 select S3C_DEV_RTC
95 select S3C_DEV_WDT 99 select S3C_DEV_WDT
96 select HAVE_S3C_RTC 100 select SAMSUNG_DEV_IDE
97 select HAVE_S3C2410_WATCHDOG
98 select S5PV210_SETUP_I2C1 101 select S5PV210_SETUP_I2C1
99 select S5PV210_SETUP_I2C2 102 select S5PV210_SETUP_I2C2
100 select S5PV210_SETUP_IDE 103 select S5PV210_SETUP_IDE
@@ -104,31 +107,24 @@ config MACH_SMDKC110
104 107
105endmenu 108endmenu
106 109
107config S5PC110_DEV_ONENAND
108 bool
109 help
110 Compile in platform device definition for OneNAND1 controller
111
112menu "S5PV210 Machines" 110menu "S5PV210 Machines"
113 111
114config MACH_SMDKV210 112config MACH_SMDKV210
115 bool "SMDKV210" 113 bool "SMDKV210"
116 select CPU_S5PV210 114 select CPU_S5PV210
117 select ARCH_SPARSEMEM_ENABLE 115 select ARCH_SPARSEMEM_ENABLE
118 select SAMSUNG_DEV_ADC
119 select S3C_DEV_HSMMC 116 select S3C_DEV_HSMMC
120 select S3C_DEV_HSMMC1 117 select S3C_DEV_HSMMC1
121 select S3C_DEV_HSMMC2 118 select S3C_DEV_HSMMC2
122 select S3C_DEV_HSMMC3 119 select S3C_DEV_HSMMC3
123 select S3C_DEV_I2C1 120 select S3C_DEV_I2C1
124 select S3C_DEV_I2C2 121 select S3C_DEV_I2C2
122 select S3C_DEV_RTC
123 select S3C_DEV_WDT
124 select SAMSUNG_DEV_ADC
125 select SAMSUNG_DEV_IDE 125 select SAMSUNG_DEV_IDE
126 select SAMSUNG_DEV_KEYPAD 126 select SAMSUNG_DEV_KEYPAD
127 select SAMSUNG_DEV_TS 127 select SAMSUNG_DEV_TS
128 select S3C_DEV_RTC
129 select S3C_DEV_WDT
130 select HAVE_S3C_RTC
131 select HAVE_S3C2410_WATCHDOG
132 select S5PV210_SETUP_I2C1 128 select S5PV210_SETUP_I2C1
133 select S5PV210_SETUP_I2C2 129 select S5PV210_SETUP_I2C2
134 select S5PV210_SETUP_IDE 130 select S5PV210_SETUP_IDE
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c
index ede163707db1..c7e0b8a65c4a 100644
--- a/arch/arm/mach-s5pv210/cpu.c
+++ b/arch/arm/mach-s5pv210/cpu.c
@@ -32,7 +32,9 @@
32#include <plat/devs.h> 32#include <plat/devs.h>
33#include <plat/clock.h> 33#include <plat/clock.h>
34#include <plat/s5pv210.h> 34#include <plat/s5pv210.h>
35#include <plat/adc-core.h>
35#include <plat/ata-core.h> 36#include <plat/ata-core.h>
37#include <plat/fimc-core.h>
36#include <plat/iic-core.h> 38#include <plat/iic-core.h>
37#include <plat/keypad-core.h> 39#include <plat/keypad-core.h>
38#include <plat/sdhci.h> 40#include <plat/sdhci.h>
@@ -84,9 +86,6 @@ static void s5pv210_sw_reset(void)
84 86
85void __init s5pv210_map_io(void) 87void __init s5pv210_map_io(void)
86{ 88{
87#ifdef CONFIG_S3C_DEV_ADC
88 s3c_device_adc.name = "s3c64xx-adc";
89#endif
90 iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); 89 iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc));
91 90
92 /* initialise device information early */ 91 /* initialise device information early */
@@ -95,8 +94,14 @@ void __init s5pv210_map_io(void)
95 s5pv210_default_sdhci2(); 94 s5pv210_default_sdhci2();
96 s5pv210_default_sdhci3(); 95 s5pv210_default_sdhci3();
97 96
97 s3c_adc_setname("s3c64xx-adc");
98
98 s3c_cfcon_setname("s5pv210-pata"); 99 s3c_cfcon_setname("s5pv210-pata");
99 100
101 s3c_fimc_setname(0, "s5pv210-fimc");
102 s3c_fimc_setname(1, "s5pv210-fimc");
103 s3c_fimc_setname(2, "s5pv210-fimc");
104
100 /* the i2c devices are directly compatible with s3c2440 */ 105 /* the i2c devices are directly compatible with s3c2440 */
101 s3c_i2c0_setname("s3c2440-i2c"); 106 s3c_i2c0_setname("s3c2440-i2c");
102 s3c_i2c1_setname("s3c2440-i2c"); 107 s3c_i2c1_setname("s3c2440-i2c");
diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c
index 6e215330a1be..21dc6cf955c3 100644
--- a/arch/arm/mach-s5pv210/dev-audio.c
+++ b/arch/arm/mach-s5pv210/dev-audio.c
@@ -10,11 +10,11 @@
10 10
11#include <linux/platform_device.h> 11#include <linux/platform_device.h>
12#include <linux/dma-mapping.h> 12#include <linux/dma-mapping.h>
13#include <linux/gpio.h>
13 14
14#include <plat/gpio-cfg.h> 15#include <plat/gpio-cfg.h>
15#include <plat/audio.h> 16#include <plat/audio.h>
16 17
17#include <mach/gpio.h>
18#include <mach/map.h> 18#include <mach/map.h>
19#include <mach/dma.h> 19#include <mach/dma.h>
20#include <mach/irqs.h> 20#include <mach/irqs.h>
diff --git a/arch/arm/mach-s5pv210/dev-spi.c b/arch/arm/mach-s5pv210/dev-spi.c
index 337a62b57a0b..826cdbc43e20 100644
--- a/arch/arm/mach-s5pv210/dev-spi.c
+++ b/arch/arm/mach-s5pv210/dev-spi.c
@@ -10,11 +10,11 @@
10 10
11#include <linux/platform_device.h> 11#include <linux/platform_device.h>
12#include <linux/dma-mapping.h> 12#include <linux/dma-mapping.h>
13#include <linux/gpio.h>
13 14
14#include <mach/dma.h> 15#include <mach/dma.h>
15#include <mach/map.h> 16#include <mach/map.h>
16#include <mach/irqs.h> 17#include <mach/irqs.h>
17#include <mach/gpio.h>
18#include <mach/spi-clocks.h> 18#include <mach/spi-clocks.h>
19 19
20#include <plat/s3c64xx-spi.h> 20#include <plat/s3c64xx-spi.h>
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h
index 986b285fa578..dd4fb6bf14b5 100644
--- a/arch/arm/mach-s5pv210/include/mach/map.h
+++ b/arch/arm/mach-s5pv210/include/mach/map.h
@@ -65,6 +65,10 @@
65 65
66#define S5PV210_PA_FB (0xF8000000) 66#define S5PV210_PA_FB (0xF8000000)
67 67
68#define S5PV210_PA_FIMC0 (0xFB200000)
69#define S5PV210_PA_FIMC1 (0xFB300000)
70#define S5PV210_PA_FIMC2 (0xFB400000)
71
68#define S5PV210_PA_HSMMC(x) (0xEB000000 + ((x) * 0x100000)) 72#define S5PV210_PA_HSMMC(x) (0xEB000000 + ((x) * 0x100000))
69 73
70#define S5PV210_PA_VIC0 (0xF2000000) 74#define S5PV210_PA_VIC0 (0xF2000000)
@@ -109,6 +113,9 @@
109#define S3C_PA_FB S5PV210_PA_FB 113#define S3C_PA_FB S5PV210_PA_FB
110#define S3C_PA_RTC S5PV210_PA_RTC 114#define S3C_PA_RTC S5PV210_PA_RTC
111#define S3C_PA_WDT S5PV210_PA_WATCHDOG 115#define S3C_PA_WDT S5PV210_PA_WATCHDOG
116#define S5P_PA_FIMC0 S5PV210_PA_FIMC0
117#define S5P_PA_FIMC1 S5PV210_PA_FIMC1
118#define S5P_PA_FIMC2 S5PV210_PA_FIMC2
112 119
113#define SAMSUNG_PA_ADC S5PV210_PA_ADC 120#define SAMSUNG_PA_ADC S5PV210_PA_ADC
114#define SAMSUNG_PA_CFCON S5PV210_PA_CFCON 121#define SAMSUNG_PA_CFCON S5PV210_PA_CFCON
diff --git a/arch/arm/mach-s5pv210/setup-fb-24bpp.c b/arch/arm/mach-s5pv210/setup-fb-24bpp.c
index a50cbac8720d..928cf1f125fa 100644
--- a/arch/arm/mach-s5pv210/setup-fb-24bpp.c
+++ b/arch/arm/mach-s5pv210/setup-fb-24bpp.c
@@ -13,9 +13,9 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/fb.h> 15#include <linux/fb.h>
16#include <linux/gpio.h>
16 17
17#include <mach/regs-fb.h> 18#include <mach/regs-fb.h>
18#include <mach/gpio.h>
19#include <mach/map.h> 19#include <mach/map.h>
20#include <plat/fb.h> 20#include <plat/fb.h>
21#include <mach/regs-clock.h> 21#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s5pv210/setup-i2c0.c b/arch/arm/mach-s5pv210/setup-i2c0.c
index c718253c70b8..d38f7cb7e662 100644
--- a/arch/arm/mach-s5pv210/setup-i2c0.c
+++ b/arch/arm/mach-s5pv210/setup-i2c0.c
@@ -14,10 +14,10 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/gpio.h>
17 18
18struct platform_device; /* don't need the contents */ 19struct platform_device; /* don't need the contents */
19 20
20#include <mach/gpio.h>
21#include <plat/iic.h> 21#include <plat/iic.h>
22#include <plat/gpio-cfg.h> 22#include <plat/gpio-cfg.h>
23 23
diff --git a/arch/arm/mach-s5pv210/setup-i2c1.c b/arch/arm/mach-s5pv210/setup-i2c1.c
index 45e0e6ed2ed0..148bb7857d89 100644
--- a/arch/arm/mach-s5pv210/setup-i2c1.c
+++ b/arch/arm/mach-s5pv210/setup-i2c1.c
@@ -14,10 +14,10 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/gpio.h>
17 18
18struct platform_device; /* don't need the contents */ 19struct platform_device; /* don't need the contents */
19 20
20#include <mach/gpio.h>
21#include <plat/iic.h> 21#include <plat/iic.h>
22#include <plat/gpio-cfg.h> 22#include <plat/gpio-cfg.h>
23 23
diff --git a/arch/arm/mach-s5pv210/setup-i2c2.c b/arch/arm/mach-s5pv210/setup-i2c2.c
index b11b4bff69ac..2396cb8c373e 100644
--- a/arch/arm/mach-s5pv210/setup-i2c2.c
+++ b/arch/arm/mach-s5pv210/setup-i2c2.c
@@ -14,10 +14,10 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/gpio.h>
17 18
18struct platform_device; /* don't need the contents */ 19struct platform_device; /* don't need the contents */
19 20
20#include <mach/gpio.h>
21#include <plat/iic.h> 21#include <plat/iic.h>
22#include <plat/gpio-cfg.h> 22#include <plat/gpio-cfg.h>
23 23
diff --git a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
index 143bfec1e05f..9f0f63ddd66a 100644
--- a/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
+++ b/arch/arm/mach-s5pv210/setup-sdhci-gpio.c
@@ -15,15 +15,17 @@
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/gpio.h>
18#include <linux/mmc/host.h> 19#include <linux/mmc/host.h>
19#include <linux/mmc/card.h> 20#include <linux/mmc/card.h>
20 21
21#include <mach/gpio.h>
22#include <plat/gpio-cfg.h> 22#include <plat/gpio-cfg.h>
23#include <plat/regs-sdhci.h> 23#include <plat/regs-sdhci.h>
24#include <plat/sdhci.h>
24 25
25void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width) 26void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
26{ 27{
28 struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
27 unsigned int gpio; 29 unsigned int gpio;
28 30
29 /* Set all the necessary GPG0/GPG1 pins to special-function 2 */ 31 /* Set all the necessary GPG0/GPG1 pins to special-function 2 */
@@ -48,12 +50,15 @@ void s5pv210_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
48 break; 50 break;
49 } 51 }
50 52
51 s3c_gpio_setpull(S5PV210_GPG0(2), S3C_GPIO_PULL_UP); 53 if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
52 s3c_gpio_cfgpin(S5PV210_GPG0(2), S3C_GPIO_SFN(2)); 54 s3c_gpio_setpull(S5PV210_GPG0(2), S3C_GPIO_PULL_UP);
55 s3c_gpio_cfgpin(S5PV210_GPG0(2), S3C_GPIO_SFN(2));
56 }
53} 57}
54 58
55void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width) 59void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
56{ 60{
61 struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
57 unsigned int gpio; 62 unsigned int gpio;
58 63
59 /* Set all the necessary GPG1[0:1] pins to special-function 2 */ 64 /* Set all the necessary GPG1[0:1] pins to special-function 2 */
@@ -68,12 +73,15 @@ void s5pv210_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width)
68 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); 73 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
69 } 74 }
70 75
71 s3c_gpio_setpull(S5PV210_GPG1(2), S3C_GPIO_PULL_UP); 76 if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
72 s3c_gpio_cfgpin(S5PV210_GPG1(2), S3C_GPIO_SFN(2)); 77 s3c_gpio_setpull(S5PV210_GPG1(2), S3C_GPIO_PULL_UP);
78 s3c_gpio_cfgpin(S5PV210_GPG1(2), S3C_GPIO_SFN(2));
79 }
73} 80}
74 81
75void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width) 82void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
76{ 83{
84 struct s3c_sdhci_platdata *pdata = dev->dev.platform_data;
77 unsigned int gpio; 85 unsigned int gpio;
78 86
79 /* Set all the necessary GPG2[0:1] pins to special-function 2 */ 87 /* Set all the necessary GPG2[0:1] pins to special-function 2 */
@@ -99,8 +107,10 @@ void s5pv210_setup_sdhci2_cfg_gpio(struct platform_device *dev, int width)
99 break; 107 break;
100 } 108 }
101 109
102 s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP); 110 if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL) {
103 s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2)); 111 s3c_gpio_setpull(S5PV210_GPG2(2), S3C_GPIO_PULL_UP);
112 s3c_gpio_cfgpin(S5PV210_GPG2(2), S3C_GPIO_SFN(2));
113 }
104} 114}
105 115
106void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width) 116void s5pv210_setup_sdhci3_cfg_gpio(struct platform_device *dev, int width)