diff options
32 files changed, 122 insertions, 156 deletions
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index 06a84adfb13f..7047317ed7f4 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
@@ -153,7 +153,7 @@ static struct platform_device *amlm5900_devices[] __initdata = { | |||
153 | &s3c_device_adc, | 153 | &s3c_device_adc, |
154 | &s3c_device_wdt, | 154 | &s3c_device_wdt, |
155 | &s3c_device_i2c0, | 155 | &s3c_device_i2c0, |
156 | &s3c_device_usb, | 156 | &s3c_device_ohci, |
157 | &s3c_device_rtc, | 157 | &s3c_device_rtc, |
158 | &s3c_device_usbgadget, | 158 | &s3c_device_usbgadget, |
159 | &s3c_device_sdi, | 159 | &s3c_device_sdi, |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 97162fdd0590..02b1b6220cba 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -584,7 +584,7 @@ static struct s3c_hwmon_pdata bast_hwmon_info = { | |||
584 | // cat /sys/devices/platform/s3c24xx-adc/s3c-hwmon/in_0 | 584 | // cat /sys/devices/platform/s3c24xx-adc/s3c-hwmon/in_0 |
585 | 585 | ||
586 | static struct platform_device *bast_devices[] __initdata = { | 586 | static struct platform_device *bast_devices[] __initdata = { |
587 | &s3c_device_usb, | 587 | &s3c_device_ohci, |
588 | &s3c_device_lcd, | 588 | &s3c_device_lcd, |
589 | &s3c_device_wdt, | 589 | &s3c_device_wdt, |
590 | &s3c_device_i2c0, | 590 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 1e34abe1a19e..fbedd0760941 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -196,7 +196,7 @@ static struct platform_device h1940_device_bluetooth = { | |||
196 | .id = -1, | 196 | .id = -1, |
197 | }; | 197 | }; |
198 | 198 | ||
199 | static struct s3c24xx_mci_pdata h1940_mmc_cfg = { | 199 | static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = { |
200 | .gpio_detect = S3C2410_GPF(5), | 200 | .gpio_detect = S3C2410_GPF(5), |
201 | .gpio_wprotect = S3C2410_GPH(8), | 201 | .gpio_wprotect = S3C2410_GPH(8), |
202 | .set_power = NULL, | 202 | .set_power = NULL, |
@@ -272,7 +272,7 @@ static struct platform_device h1940_lcd_powerdev = { | |||
272 | 272 | ||
273 | static struct platform_device *h1940_devices[] __initdata = { | 273 | static struct platform_device *h1940_devices[] __initdata = { |
274 | &s3c_device_ts, | 274 | &s3c_device_ts, |
275 | &s3c_device_usb, | 275 | &s3c_device_ohci, |
276 | &s3c_device_lcd, | 276 | &s3c_device_lcd, |
277 | &s3c_device_wdt, | 277 | &s3c_device_wdt, |
278 | &s3c_device_i2c0, | 278 | &s3c_device_i2c0, |
@@ -311,12 +311,11 @@ static void __init h1940_init(void) | |||
311 | u32 tmp; | 311 | u32 tmp; |
312 | 312 | ||
313 | s3c24xx_fb_set_platdata(&h1940_fb_info); | 313 | s3c24xx_fb_set_platdata(&h1940_fb_info); |
314 | s3c24xx_mci_set_platdata(&h1940_mmc_cfg); | ||
314 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); | 315 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); |
315 | s3c24xx_ts_set_platdata(&h1940_ts_cfg); | 316 | s3c24xx_ts_set_platdata(&h1940_ts_cfg); |
316 | s3c_i2c0_set_platdata(NULL); | 317 | s3c_i2c0_set_platdata(NULL); |
317 | 318 | ||
318 | s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; | ||
319 | |||
320 | /* Turn off suspend on both USB ports, and switch the | 319 | /* Turn off suspend on both USB ports, and switch the |
321 | * selectable USB port to USB device mode. */ | 320 | * selectable USB port to USB device mode. */ |
322 | 321 | ||
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 0405712c2263..684710f88142 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -322,7 +322,7 @@ static struct platform_device *n30_devices[] __initdata = { | |||
322 | &s3c_device_wdt, | 322 | &s3c_device_wdt, |
323 | &s3c_device_i2c0, | 323 | &s3c_device_i2c0, |
324 | &s3c_device_iis, | 324 | &s3c_device_iis, |
325 | &s3c_device_usb, | 325 | &s3c_device_ohci, |
326 | &s3c_device_usbgadget, | 326 | &s3c_device_usbgadget, |
327 | &n30_button_device, | 327 | &n30_button_device, |
328 | &n30_blue_led, | 328 | &n30_blue_led, |
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c index f6c7261a4a12..d8c7f2efc1a7 100644 --- a/arch/arm/mach-s3c2410/mach-otom.c +++ b/arch/arm/mach-s3c2410/mach-otom.c | |||
@@ -92,7 +92,7 @@ static struct platform_device otom_device_nor = { | |||
92 | /* Standard OTOM devices */ | 92 | /* Standard OTOM devices */ |
93 | 93 | ||
94 | static struct platform_device *otom11_devices[] __initdata = { | 94 | static struct platform_device *otom11_devices[] __initdata = { |
95 | &s3c_device_usb, | 95 | &s3c_device_ohci, |
96 | &s3c_device_lcd, | 96 | &s3c_device_lcd, |
97 | &s3c_device_wdt, | 97 | &s3c_device_wdt, |
98 | &s3c_device_i2c0, | 98 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index ab092bcda393..92a4ec375d82 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
@@ -246,7 +246,7 @@ static struct platform_device qt2410_spi = { | |||
246 | /* Board devices */ | 246 | /* Board devices */ |
247 | 247 | ||
248 | static struct platform_device *qt2410_devices[] __initdata = { | 248 | static struct platform_device *qt2410_devices[] __initdata = { |
249 | &s3c_device_usb, | 249 | &s3c_device_ohci, |
250 | &s3c_device_lcd, | 250 | &s3c_device_lcd, |
251 | &s3c_device_wdt, | 251 | &s3c_device_wdt, |
252 | &s3c_device_i2c0, | 252 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c index c49126ccb1d5..452223042201 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2410.c +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c | |||
@@ -87,7 +87,7 @@ static struct s3c2410_uartcfg smdk2410_uartcfgs[] __initdata = { | |||
87 | }; | 87 | }; |
88 | 88 | ||
89 | static struct platform_device *smdk2410_devices[] __initdata = { | 89 | static struct platform_device *smdk2410_devices[] __initdata = { |
90 | &s3c_device_usb, | 90 | &s3c_device_ohci, |
91 | &s3c_device_lcd, | 91 | &s3c_device_lcd, |
92 | &s3c_device_wdt, | 92 | &s3c_device_wdt, |
93 | &s3c_device_i2c0, | 93 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c index 8fdb0430bd48..929164a8e9b1 100644 --- a/arch/arm/mach-s3c2410/mach-tct_hammer.c +++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c | |||
@@ -129,7 +129,7 @@ static struct platform_device *tct_hammer_devices[] __initdata = { | |||
129 | &s3c_device_adc, | 129 | &s3c_device_adc, |
130 | &s3c_device_wdt, | 130 | &s3c_device_wdt, |
131 | &s3c_device_i2c0, | 131 | &s3c_device_i2c0, |
132 | &s3c_device_usb, | 132 | &s3c_device_ohci, |
133 | &s3c_device_rtc, | 133 | &s3c_device_rtc, |
134 | &s3c_device_usbgadget, | 134 | &s3c_device_usbgadget, |
135 | &s3c_device_sdi, | 135 | &s3c_device_sdi, |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 0d61fb577170..9051f0d31123 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -334,7 +334,7 @@ static struct i2c_board_info vr1000_i2c_devs[] __initdata = { | |||
334 | /* devices for this board */ | 334 | /* devices for this board */ |
335 | 335 | ||
336 | static struct platform_device *vr1000_devices[] __initdata = { | 336 | static struct platform_device *vr1000_devices[] __initdata = { |
337 | &s3c_device_usb, | 337 | &s3c_device_ohci, |
338 | &s3c_device_lcd, | 338 | &s3c_device_lcd, |
339 | &s3c_device_wdt, | 339 | &s3c_device_wdt, |
340 | &s3c_device_i2c0, | 340 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c index 6b9d0d83a6f9..29bd3d987bec 100644 --- a/arch/arm/mach-s3c2410/usb-simtec.c +++ b/arch/arm/mach-s3c2410/usb-simtec.c | |||
@@ -91,7 +91,7 @@ static void usb_simtec_enableoc(struct s3c2410_hcd_info *info, int on) | |||
91 | } | 91 | } |
92 | } | 92 | } |
93 | 93 | ||
94 | static struct s3c2410_hcd_info usb_simtec_info = { | 94 | static struct s3c2410_hcd_info usb_simtec_info __initdata = { |
95 | .port[0] = { | 95 | .port[0] = { |
96 | .flags = S3C_HCDFLG_USED | 96 | .flags = S3C_HCDFLG_USED |
97 | }, | 97 | }, |
@@ -127,6 +127,6 @@ int usb_simtec_init(void) | |||
127 | gpio_direction_output(S3C2410_GPB(4), 1); | 127 | gpio_direction_output(S3C2410_GPB(4), 1); |
128 | gpio_direction_input(S3C2410_GPG(10)); | 128 | gpio_direction_input(S3C2410_GPG(10)); |
129 | 129 | ||
130 | s3c_device_usb.dev.platform_data = &usb_simtec_info; | 130 | s3c_ohci_set_platdata(&usb_simtec_info); |
131 | return 0; | 131 | return 0; |
132 | } | 132 | } |
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c index c9fa3fca486c..14f4798291aa 100644 --- a/arch/arm/mach-s3c2412/mach-jive.c +++ b/arch/arm/mach-s3c2412/mach-jive.c | |||
@@ -468,7 +468,7 @@ static struct i2c_board_info jive_i2c_devs[] __initdata = { | |||
468 | /* The platform devices being used. */ | 468 | /* The platform devices being used. */ |
469 | 469 | ||
470 | static struct platform_device *jive_devices[] __initdata = { | 470 | static struct platform_device *jive_devices[] __initdata = { |
471 | &s3c_device_usb, | 471 | &s3c_device_ohci, |
472 | &s3c_device_rtc, | 472 | &s3c_device_rtc, |
473 | &s3c_device_wdt, | 473 | &s3c_device_wdt, |
474 | &s3c_device_i2c0, | 474 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c index 9a5e43419722..0392065af1af 100644 --- a/arch/arm/mach-s3c2412/mach-smdk2413.c +++ b/arch/arm/mach-s3c2412/mach-smdk2413.c | |||
@@ -104,8 +104,7 @@ static struct s3c2410_udc_mach_info smdk2413_udc_cfg __initdata = { | |||
104 | 104 | ||
105 | 105 | ||
106 | static struct platform_device *smdk2413_devices[] __initdata = { | 106 | static struct platform_device *smdk2413_devices[] __initdata = { |
107 | &s3c_device_usb, | 107 | &s3c_device_ohci, |
108 | //&s3c_device_lcd, | ||
109 | &s3c_device_wdt, | 108 | &s3c_device_wdt, |
110 | &s3c_device_i2c0, | 109 | &s3c_device_i2c0, |
111 | &s3c_device_iis, | 110 | &s3c_device_iis, |
diff --git a/arch/arm/mach-s3c2412/mach-vstms.c b/arch/arm/mach-s3c2412/mach-vstms.c index a6ba591b26bb..3ca9265b6997 100644 --- a/arch/arm/mach-s3c2412/mach-vstms.c +++ b/arch/arm/mach-s3c2412/mach-vstms.c | |||
@@ -121,7 +121,7 @@ static struct s3c2410_platform_nand __initdata vstms_nand_info = { | |||
121 | }; | 121 | }; |
122 | 122 | ||
123 | static struct platform_device *vstms_devices[] __initdata = { | 123 | static struct platform_device *vstms_devices[] __initdata = { |
124 | &s3c_device_usb, | 124 | &s3c_device_ohci, |
125 | &s3c_device_wdt, | 125 | &s3c_device_wdt, |
126 | &s3c_device_i2c0, | 126 | &s3c_device_i2c0, |
127 | &s3c_device_iis, | 127 | &s3c_device_iis, |
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index 62a4c3eba97f..b73f78a9da5c 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
@@ -409,7 +409,7 @@ static struct platform_device anubis_device_sm501 = { | |||
409 | /* Standard Anubis devices */ | 409 | /* Standard Anubis devices */ |
410 | 410 | ||
411 | static struct platform_device *anubis_devices[] __initdata = { | 411 | static struct platform_device *anubis_devices[] __initdata = { |
412 | &s3c_device_usb, | 412 | &s3c_device_ohci, |
413 | &s3c_device_wdt, | 413 | &s3c_device_wdt, |
414 | &s3c_device_adc, | 414 | &s3c_device_adc, |
415 | &s3c_device_i2c0, | 415 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index aa69290e04c6..84725791e6bf 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c | |||
@@ -165,7 +165,7 @@ static struct platform_device at2440evb_device_eth = { | |||
165 | }, | 165 | }, |
166 | }; | 166 | }; |
167 | 167 | ||
168 | static struct s3c24xx_mci_pdata at2440evb_mci_pdata = { | 168 | static struct s3c24xx_mci_pdata at2440evb_mci_pdata __initdata = { |
169 | .gpio_detect = S3C2410_GPG(10), | 169 | .gpio_detect = S3C2410_GPG(10), |
170 | }; | 170 | }; |
171 | 171 | ||
@@ -203,7 +203,7 @@ static struct s3c2410fb_mach_info at2440evb_fb_info __initdata = { | |||
203 | }; | 203 | }; |
204 | 204 | ||
205 | static struct platform_device *at2440evb_devices[] __initdata = { | 205 | static struct platform_device *at2440evb_devices[] __initdata = { |
206 | &s3c_device_usb, | 206 | &s3c_device_ohci, |
207 | &s3c_device_wdt, | 207 | &s3c_device_wdt, |
208 | &s3c_device_adc, | 208 | &s3c_device_adc, |
209 | &s3c_device_i2c0, | 209 | &s3c_device_i2c0, |
@@ -216,8 +216,6 @@ static struct platform_device *at2440evb_devices[] __initdata = { | |||
216 | 216 | ||
217 | static void __init at2440evb_map_io(void) | 217 | static void __init at2440evb_map_io(void) |
218 | { | 218 | { |
219 | s3c_device_sdi.dev.platform_data = &at2440evb_mci_pdata; | ||
220 | |||
221 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); | 219 | s3c24xx_init_io(at2440evb_iodesc, ARRAY_SIZE(at2440evb_iodesc)); |
222 | s3c24xx_init_clocks(16934400); | 220 | s3c24xx_init_clocks(16934400); |
223 | s3c24xx_init_uarts(at2440evb_uartcfgs, ARRAY_SIZE(at2440evb_uartcfgs)); | 221 | s3c24xx_init_uarts(at2440evb_uartcfgs, ARRAY_SIZE(at2440evb_uartcfgs)); |
@@ -226,6 +224,7 @@ static void __init at2440evb_map_io(void) | |||
226 | static void __init at2440evb_init(void) | 224 | static void __init at2440evb_init(void) |
227 | { | 225 | { |
228 | s3c24xx_fb_set_platdata(&at2440evb_fb_info); | 226 | s3c24xx_fb_set_platdata(&at2440evb_fb_info); |
227 | s3c24xx_mci_set_platdata(&at2440evb_mci_pdata); | ||
229 | s3c_nand_set_platdata(&at2440evb_nand_info); | 228 | s3c_nand_set_platdata(&at2440evb_nand_info); |
230 | s3c_i2c0_set_platdata(NULL); | 229 | s3c_i2c0_set_platdata(NULL); |
231 | 230 | ||
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c index 2068e9096a43..571b17683d96 100644 --- a/arch/arm/mach-s3c2440/mach-mini2440.c +++ b/arch/arm/mach-s3c2440/mach-mini2440.c | |||
@@ -506,9 +506,8 @@ static struct i2c_board_info mini2440_i2c_devs[] __initdata = { | |||
506 | }; | 506 | }; |
507 | 507 | ||
508 | static struct platform_device *mini2440_devices[] __initdata = { | 508 | static struct platform_device *mini2440_devices[] __initdata = { |
509 | &s3c_device_usb, | 509 | &s3c_device_ohci, |
510 | &s3c_device_wdt, | 510 | &s3c_device_wdt, |
511 | /* &s3c_device_adc,*/ /* ADC doesn't like living with touchscreen ! */ | ||
512 | &s3c_device_i2c0, | 511 | &s3c_device_i2c0, |
513 | &s3c_device_rtc, | 512 | &s3c_device_rtc, |
514 | &s3c_device_usbgadget, | 513 | &s3c_device_usbgadget, |
@@ -522,8 +521,6 @@ static struct platform_device *mini2440_devices[] __initdata = { | |||
522 | &s3c_device_sdi, | 521 | &s3c_device_sdi, |
523 | &s3c_device_iis, | 522 | &s3c_device_iis, |
524 | &mini2440_audio, | 523 | &mini2440_audio, |
525 | /* &s3c_device_timer[0],*/ /* buzzer pwm, no API for it */ | ||
526 | /* remaining devices are optional */ | ||
527 | }; | 524 | }; |
528 | 525 | ||
529 | static void __init mini2440_map_io(void) | 526 | static void __init mini2440_map_io(void) |
@@ -531,8 +528,6 @@ static void __init mini2440_map_io(void) | |||
531 | s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc)); | 528 | s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc)); |
532 | s3c24xx_init_clocks(12000000); | 529 | s3c24xx_init_clocks(12000000); |
533 | s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs)); | 530 | s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs)); |
534 | |||
535 | s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg; | ||
536 | } | 531 | } |
537 | 532 | ||
538 | /* | 533 | /* |
@@ -678,6 +673,7 @@ static void __init mini2440_init(void) | |||
678 | } | 673 | } |
679 | 674 | ||
680 | s3c24xx_udc_set_platdata(&mini2440_udc_cfg); | 675 | s3c24xx_udc_set_platdata(&mini2440_udc_cfg); |
676 | s3c24xx_mci_set_platdata(&mini2440_mmc_cfg); | ||
681 | s3c_nand_set_platdata(&mini2440_nand_info); | 677 | s3c_nand_set_platdata(&mini2440_nand_info); |
682 | s3c_i2c0_set_platdata(NULL); | 678 | s3c_i2c0_set_platdata(NULL); |
683 | 679 | ||
diff --git a/arch/arm/mach-s3c2440/mach-nexcoder.c b/arch/arm/mach-s3c2440/mach-nexcoder.c index d43edede590e..86a243b3e37d 100644 --- a/arch/arm/mach-s3c2440/mach-nexcoder.c +++ b/arch/arm/mach-s3c2440/mach-nexcoder.c | |||
@@ -106,7 +106,7 @@ static struct platform_device nexcoder_device_nor = { | |||
106 | /* Standard Nexcoder devices */ | 106 | /* Standard Nexcoder devices */ |
107 | 107 | ||
108 | static struct platform_device *nexcoder_devices[] __initdata = { | 108 | static struct platform_device *nexcoder_devices[] __initdata = { |
109 | &s3c_device_usb, | 109 | &s3c_device_ohci, |
110 | &s3c_device_lcd, | 110 | &s3c_device_lcd, |
111 | &s3c_device_wdt, | 111 | &s3c_device_wdt, |
112 | &s3c_device_i2c0, | 112 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index a952a13afb1f..1e836e506f8b 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c | |||
@@ -176,7 +176,7 @@ static struct s3c2410_platform_nand __initdata rx3715_nand_info = { | |||
176 | }; | 176 | }; |
177 | 177 | ||
178 | static struct platform_device *rx3715_devices[] __initdata = { | 178 | static struct platform_device *rx3715_devices[] __initdata = { |
179 | &s3c_device_usb, | 179 | &s3c_device_ohci, |
180 | &s3c_device_lcd, | 180 | &s3c_device_lcd, |
181 | &s3c_device_wdt, | 181 | &s3c_device_wdt, |
182 | &s3c_device_i2c0, | 182 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c index ec13e748ccc5..df3e9a3be82f 100644 --- a/arch/arm/mach-s3c2440/mach-smdk2440.c +++ b/arch/arm/mach-s3c2440/mach-smdk2440.c | |||
@@ -150,7 +150,7 @@ static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = { | |||
150 | }; | 150 | }; |
151 | 151 | ||
152 | static struct platform_device *smdk2440_devices[] __initdata = { | 152 | static struct platform_device *smdk2440_devices[] __initdata = { |
153 | &s3c_device_usb, | 153 | &s3c_device_ohci, |
154 | &s3c_device_lcd, | 154 | &s3c_device_lcd, |
155 | &s3c_device_wdt, | 155 | &s3c_device_wdt, |
156 | &s3c_device_i2c0, | 156 | &s3c_device_i2c0, |
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c index 0b4a3a03071f..45799c608d8f 100644 --- a/arch/arm/mach-s3c2442/mach-gta02.c +++ b/arch/arm/mach-s3c2442/mach-gta02.c | |||
@@ -544,7 +544,7 @@ static struct platform_device gta02_bl_dev = { | |||
544 | 544 | ||
545 | 545 | ||
546 | /* USB */ | 546 | /* USB */ |
547 | static struct s3c2410_hcd_info gta02_usb_info = { | 547 | static struct s3c2410_hcd_info gta02_usb_info __initdata = { |
548 | .port[0] = { | 548 | .port[0] = { |
549 | .flags = S3C_HCDFLG_USED, | 549 | .flags = S3C_HCDFLG_USED, |
550 | }, | 550 | }, |
@@ -565,7 +565,7 @@ static void __init gta02_map_io(void) | |||
565 | /* These are the guys that don't need to be children of PMU. */ | 565 | /* These are the guys that don't need to be children of PMU. */ |
566 | 566 | ||
567 | static struct platform_device *gta02_devices[] __initdata = { | 567 | static struct platform_device *gta02_devices[] __initdata = { |
568 | &s3c_device_usb, | 568 | &s3c_device_ohci, |
569 | &s3c_device_wdt, | 569 | &s3c_device_wdt, |
570 | &s3c_device_sdi, | 570 | &s3c_device_sdi, |
571 | &s3c_device_usbgadget, | 571 | &s3c_device_usbgadget, |
@@ -623,9 +623,8 @@ static void __init gta02_machine_init(void) | |||
623 | INIT_DELAYED_WORK(>a02_charger_work, gta02_charger_worker); | 623 | INIT_DELAYED_WORK(>a02_charger_work, gta02_charger_worker); |
624 | #endif | 624 | #endif |
625 | 625 | ||
626 | s3c_device_usb.dev.platform_data = >a02_usb_info; | ||
627 | |||
628 | s3c24xx_udc_set_platdata(>a02_udc_cfg); | 626 | s3c24xx_udc_set_platdata(>a02_udc_cfg); |
627 | s3c_ohci_set_platdata(>a02_usb_info); | ||
629 | s3c_nand_set_platdata(>a02_nand_info); | 628 | s3c_nand_set_platdata(>a02_nand_info); |
630 | s3c_i2c0_set_platdata(NULL); | 629 | s3c_i2c0_set_platdata(NULL); |
631 | 630 | ||
diff --git a/arch/arm/mach-s3c6410/mach-hmt.c b/arch/arm/mach-s3c6410/mach-hmt.c index cdd4b5378552..284886c26a28 100644 --- a/arch/arm/mach-s3c6410/mach-hmt.c +++ b/arch/arm/mach-s3c6410/mach-hmt.c | |||
@@ -233,7 +233,7 @@ static struct platform_device *hmt_devices[] __initdata = { | |||
233 | &s3c_device_i2c0, | 233 | &s3c_device_i2c0, |
234 | &s3c_device_nand, | 234 | &s3c_device_nand, |
235 | &s3c_device_fb, | 235 | &s3c_device_fb, |
236 | &s3c_device_usb, | 236 | &s3c_device_ohci, |
237 | &s3c_device_timer[1], | 237 | &s3c_device_timer[1], |
238 | &hmt_backlight_device, | 238 | &hmt_backlight_device, |
239 | &hmt_leds_device, | 239 | &hmt_leds_device, |
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c index eb5de981c094..5376880cdd89 100644 --- a/arch/arm/mach-s3c6410/mach-smdk6410.c +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c | |||
@@ -246,7 +246,7 @@ static struct platform_device *smdk6410_devices[] __initdata = { | |||
246 | &s3c_device_i2c0, | 246 | &s3c_device_i2c0, |
247 | &s3c_device_i2c1, | 247 | &s3c_device_i2c1, |
248 | &s3c_device_fb, | 248 | &s3c_device_fb, |
249 | &s3c_device_usb, | 249 | &s3c_device_ohci, |
250 | &s3c_device_usb_hsotg, | 250 | &s3c_device_usb_hsotg, |
251 | 251 | ||
252 | #ifdef CONFIG_REGULATOR | 252 | #ifdef CONFIG_REGULATOR |
diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h index f4a7e57bab2b..c6f9b7310490 100644 --- a/arch/arm/plat-s3c/include/plat/devs.h +++ b/arch/arm/plat-s3c/include/plat/devs.h | |||
@@ -37,7 +37,7 @@ extern struct platform_device s3c64xx_device_pcm1; | |||
37 | 37 | ||
38 | extern struct platform_device s3c_device_ts; | 38 | extern struct platform_device s3c_device_ts; |
39 | extern struct platform_device s3c_device_fb; | 39 | extern struct platform_device s3c_device_fb; |
40 | extern struct platform_device s3c_device_usb; | 40 | extern struct platform_device s3c_device_ohci; |
41 | extern struct platform_device s3c_device_lcd; | 41 | extern struct platform_device s3c_device_lcd; |
42 | extern struct platform_device s3c_device_wdt; | 42 | extern struct platform_device s3c_device_wdt; |
43 | extern struct platform_device s3c_device_i2c0; | 43 | extern struct platform_device s3c_device_i2c0; |
diff --git a/arch/arm/plat-s3c/include/plat/usb-control.h b/arch/arm/plat-s3c/include/plat/usb-control.h index 822c87fe948e..a6a57bf796bd 100644 --- a/arch/arm/plat-s3c/include/plat/usb-control.h +++ b/arch/arm/plat-s3c/include/plat/usb-control.h | |||
@@ -38,4 +38,6 @@ static void inline s3c2410_usb_report_oc(struct s3c2410_hcd_info *info, int port | |||
38 | } | 38 | } |
39 | } | 39 | } |
40 | 40 | ||
41 | extern void s3c_ohci_set_platdata(struct s3c2410_hcd_info *info); | ||
42 | |||
41 | #endif /*__ASM_ARCH_USBCONTROL_H */ | 43 | #endif /*__ASM_ARCH_USBCONTROL_H */ |
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index 7f686a31e672..986d4e5408f5 100644 --- a/arch/arm/plat-s3c24xx/devs.c +++ b/arch/arm/plat-s3c24xx/devs.c | |||
@@ -32,6 +32,7 @@ | |||
32 | 32 | ||
33 | #include <plat/regs-serial.h> | 33 | #include <plat/regs-serial.h> |
34 | #include <plat/udc.h> | 34 | #include <plat/udc.h> |
35 | #include <plat/mci.h> | ||
35 | 36 | ||
36 | #include <plat/devs.h> | 37 | #include <plat/devs.h> |
37 | #include <plat/cpu.h> | 38 | #include <plat/cpu.h> |
@@ -112,34 +113,6 @@ struct s3c24xx_uart_resources s3c2410_uart_resources[] __initdata = { | |||
112 | }, | 113 | }, |
113 | }; | 114 | }; |
114 | 115 | ||
115 | /* yart devices */ | ||
116 | |||
117 | static struct platform_device s3c24xx_uart_device0 = { | ||
118 | .id = 0, | ||
119 | }; | ||
120 | |||
121 | static struct platform_device s3c24xx_uart_device1 = { | ||
122 | .id = 1, | ||
123 | }; | ||
124 | |||
125 | static struct platform_device s3c24xx_uart_device2 = { | ||
126 | .id = 2, | ||
127 | }; | ||
128 | |||
129 | static struct platform_device s3c24xx_uart_device3 = { | ||
130 | .id = 3, | ||
131 | }; | ||
132 | |||
133 | struct platform_device *s3c24xx_uart_src[4] = { | ||
134 | &s3c24xx_uart_device0, | ||
135 | &s3c24xx_uart_device1, | ||
136 | &s3c24xx_uart_device2, | ||
137 | &s3c24xx_uart_device3, | ||
138 | }; | ||
139 | |||
140 | struct platform_device *s3c24xx_uart_devs[4] = { | ||
141 | }; | ||
142 | |||
143 | /* LCD Controller */ | 116 | /* LCD Controller */ |
144 | 117 | ||
145 | static struct resource s3c_lcd_resource[] = { | 118 | static struct resource s3c_lcd_resource[] = { |
@@ -379,6 +352,18 @@ struct platform_device s3c_device_sdi = { | |||
379 | 352 | ||
380 | EXPORT_SYMBOL(s3c_device_sdi); | 353 | EXPORT_SYMBOL(s3c_device_sdi); |
381 | 354 | ||
355 | void s3c24xx_mci_set_platdata(struct s3c24xx_mci_pdata *pdata) | ||
356 | { | ||
357 | struct s3c24xx_mci_pdata *npd; | ||
358 | |||
359 | npd = kmemdup(pdata, sizeof(struct s3c24xx_mci_pdata), GFP_KERNEL); | ||
360 | if (!npd) | ||
361 | printk(KERN_ERR "%s: no memory to copy pdata", __func__); | ||
362 | |||
363 | s3c_device_sdi.dev.platform_data = npd; | ||
364 | } | ||
365 | |||
366 | |||
382 | /* SPI (0) */ | 367 | /* SPI (0) */ |
383 | 368 | ||
384 | static struct resource s3c_spi0_resource[] = { | 369 | static struct resource s3c_spi0_resource[] = { |
diff --git a/arch/arm/plat-s3c24xx/include/plat/mci.h b/arch/arm/plat-s3c24xx/include/plat/mci.h index 36aaa10fad06..2ac2b21ec490 100644 --- a/arch/arm/plat-s3c24xx/include/plat/mci.h +++ b/arch/arm/plat-s3c24xx/include/plat/mci.h | |||
@@ -40,4 +40,13 @@ struct s3c24xx_mci_pdata { | |||
40 | unsigned short vdd); | 40 | unsigned short vdd); |
41 | }; | 41 | }; |
42 | 42 | ||
43 | /** | ||
44 | * s3c24xx_mci_set_platdata - set platform data for mmc/sdi device | ||
45 | * @pdata: The platform data | ||
46 | * | ||
47 | * Copy the platform data supplied by @pdata so that this can be marked | ||
48 | * __initdata. | ||
49 | */ | ||
50 | extern void s3c24xx_mci_set_platdata(struct s3c24xx_mci_pdata *pdata); | ||
51 | |||
43 | #endif /* _ARCH_NCI_H */ | 52 | #endif /* _ARCH_NCI_H */ |
diff --git a/arch/arm/plat-s3c64xx/dev-uart.c b/arch/arm/plat-s3c64xx/dev-uart.c index 62c11a6fc7ba..f797f748b999 100644 --- a/arch/arm/plat-s3c64xx/dev-uart.c +++ b/arch/arm/plat-s3c64xx/dev-uart.c | |||
@@ -145,32 +145,3 @@ struct s3c24xx_uart_resources s3c64xx_uart_resources[] __initdata = { | |||
145 | .nr_resources = ARRAY_SIZE(s3c64xx_uart3_resource), | 145 | .nr_resources = ARRAY_SIZE(s3c64xx_uart3_resource), |
146 | }, | 146 | }, |
147 | }; | 147 | }; |
148 | |||
149 | /* uart devices */ | ||
150 | |||
151 | static struct platform_device s3c24xx_uart_device0 = { | ||
152 | .id = 0, | ||
153 | }; | ||
154 | |||
155 | static struct platform_device s3c24xx_uart_device1 = { | ||
156 | .id = 1, | ||
157 | }; | ||
158 | |||
159 | static struct platform_device s3c24xx_uart_device2 = { | ||
160 | .id = 2, | ||
161 | }; | ||
162 | |||
163 | static struct platform_device s3c24xx_uart_device3 = { | ||
164 | .id = 3, | ||
165 | }; | ||
166 | |||
167 | struct platform_device *s3c24xx_uart_src[4] = { | ||
168 | &s3c24xx_uart_device0, | ||
169 | &s3c24xx_uart_device1, | ||
170 | &s3c24xx_uart_device2, | ||
171 | &s3c24xx_uart_device3, | ||
172 | }; | ||
173 | |||
174 | struct platform_device *s3c24xx_uart_devs[4] = { | ||
175 | }; | ||
176 | |||
diff --git a/arch/arm/plat-s5p/dev-uart.c b/arch/arm/plat-s5p/dev-uart.c index af726f47385e..23c75316d491 100644 --- a/arch/arm/plat-s5p/dev-uart.c +++ b/arch/arm/plat-s5p/dev-uart.c | |||
@@ -135,31 +135,3 @@ struct s3c24xx_uart_resources s5p_uart_resources[] __initdata = { | |||
135 | .nr_resources = ARRAY_SIZE(s5p_uart3_resource), | 135 | .nr_resources = ARRAY_SIZE(s5p_uart3_resource), |
136 | }, | 136 | }, |
137 | }; | 137 | }; |
138 | |||
139 | /* uart devices */ | ||
140 | |||
141 | static struct platform_device s5p_uart_device0 = { | ||
142 | .id = 0, | ||
143 | }; | ||
144 | |||
145 | static struct platform_device s5p_uart_device1 = { | ||
146 | .id = 1, | ||
147 | }; | ||
148 | |||
149 | static struct platform_device s5p_uart_device2 = { | ||
150 | .id = 2, | ||
151 | }; | ||
152 | |||
153 | static struct platform_device s5p_uart_device3 = { | ||
154 | .id = 3, | ||
155 | }; | ||
156 | |||
157 | struct platform_device *s3c24xx_uart_src[4] = { | ||
158 | &s5p_uart_device0, | ||
159 | &s5p_uart_device1, | ||
160 | &s5p_uart_device2, | ||
161 | &s5p_uart_device3, | ||
162 | }; | ||
163 | |||
164 | struct platform_device *s3c24xx_uart_devs[4] = { | ||
165 | }; | ||
diff --git a/arch/arm/plat-s5pc1xx/dev-uart.c b/arch/arm/plat-s5pc1xx/dev-uart.c index f749bc5407b5..586c95c60bfe 100644 --- a/arch/arm/plat-s5pc1xx/dev-uart.c +++ b/arch/arm/plat-s5pc1xx/dev-uart.c | |||
@@ -143,32 +143,3 @@ struct s3c24xx_uart_resources s5pc1xx_uart_resources[] __initdata = { | |||
143 | .nr_resources = ARRAY_SIZE(s5pc1xx_uart3_resource), | 143 | .nr_resources = ARRAY_SIZE(s5pc1xx_uart3_resource), |
144 | }, | 144 | }, |
145 | }; | 145 | }; |
146 | |||
147 | /* uart devices */ | ||
148 | |||
149 | static struct platform_device s3c24xx_uart_device0 = { | ||
150 | .id = 0, | ||
151 | }; | ||
152 | |||
153 | static struct platform_device s3c24xx_uart_device1 = { | ||
154 | .id = 1, | ||
155 | }; | ||
156 | |||
157 | static struct platform_device s3c24xx_uart_device2 = { | ||
158 | .id = 2, | ||
159 | }; | ||
160 | |||
161 | static struct platform_device s3c24xx_uart_device3 = { | ||
162 | .id = 3, | ||
163 | }; | ||
164 | |||
165 | struct platform_device *s3c24xx_uart_src[4] = { | ||
166 | &s3c24xx_uart_device0, | ||
167 | &s3c24xx_uart_device1, | ||
168 | &s3c24xx_uart_device2, | ||
169 | &s3c24xx_uart_device3, | ||
170 | }; | ||
171 | |||
172 | struct platform_device *s3c24xx_uart_devs[4] = { | ||
173 | }; | ||
174 | |||
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile index ee310384b90f..ceac416d80b8 100644 --- a/arch/arm/plat-samsung/Makefile +++ b/arch/arm/plat-samsung/Makefile | |||
@@ -32,6 +32,7 @@ obj-$(CONFIG_S3C_DEV_HSMMC2) += dev-hsmmc2.o | |||
32 | obj-y += dev-i2c0.o | 32 | obj-y += dev-i2c0.o |
33 | obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o | 33 | obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o |
34 | obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o | 34 | obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o |
35 | obj-y += dev-uart.o | ||
35 | obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o | 36 | obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o |
36 | obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o | 37 | obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o |
37 | obj-$(CONFIG_S3C_DEV_NAND) += dev-nand.o | 38 | obj-$(CONFIG_S3C_DEV_NAND) += dev-nand.o |
diff --git a/arch/arm/plat-samsung/dev-uart.c b/arch/arm/plat-samsung/dev-uart.c new file mode 100644 index 000000000000..3776cd952450 --- /dev/null +++ b/arch/arm/plat-samsung/dev-uart.c | |||
@@ -0,0 +1,44 @@ | |||
1 | /* linux/arch/arm/plat-samsung/dev-uart.c | ||
2 | * originally from arch/arm/plat-s3c24xx/devs.c | ||
3 | *x | ||
4 | * Copyright (c) 2004 Simtec Electronics | ||
5 | * Ben Dooks <ben@simtec.co.uk> | ||
6 | * | ||
7 | * Base S3C24XX platform device definitions | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | |||
18 | /* uart devices */ | ||
19 | |||
20 | static struct platform_device s3c24xx_uart_device0 = { | ||
21 | .id = 0, | ||
22 | }; | ||
23 | |||
24 | static struct platform_device s3c24xx_uart_device1 = { | ||
25 | .id = 1, | ||
26 | }; | ||
27 | |||
28 | static struct platform_device s3c24xx_uart_device2 = { | ||
29 | .id = 2, | ||
30 | }; | ||
31 | |||
32 | static struct platform_device s3c24xx_uart_device3 = { | ||
33 | .id = 3, | ||
34 | }; | ||
35 | |||
36 | struct platform_device *s3c24xx_uart_src[4] = { | ||
37 | &s3c24xx_uart_device0, | ||
38 | &s3c24xx_uart_device1, | ||
39 | &s3c24xx_uart_device2, | ||
40 | &s3c24xx_uart_device3, | ||
41 | }; | ||
42 | |||
43 | struct platform_device *s3c24xx_uart_devs[4] = { | ||
44 | }; | ||
diff --git a/arch/arm/plat-samsung/dev-usb.c b/arch/arm/plat-samsung/dev-usb.c index 2ee85abed6d9..88165657fa53 100644 --- a/arch/arm/plat-samsung/dev-usb.c +++ b/arch/arm/plat-samsung/dev-usb.c | |||
@@ -19,7 +19,7 @@ | |||
19 | #include <mach/map.h> | 19 | #include <mach/map.h> |
20 | 20 | ||
21 | #include <plat/devs.h> | 21 | #include <plat/devs.h> |
22 | 22 | #include <plat/usb-control.h> | |
23 | 23 | ||
24 | static struct resource s3c_usb_resource[] = { | 24 | static struct resource s3c_usb_resource[] = { |
25 | [0] = { | 25 | [0] = { |
@@ -36,7 +36,7 @@ static struct resource s3c_usb_resource[] = { | |||
36 | 36 | ||
37 | static u64 s3c_device_usb_dmamask = 0xffffffffUL; | 37 | static u64 s3c_device_usb_dmamask = 0xffffffffUL; |
38 | 38 | ||
39 | struct platform_device s3c_device_usb = { | 39 | struct platform_device s3c_device_ohci = { |
40 | .name = "s3c2410-ohci", | 40 | .name = "s3c2410-ohci", |
41 | .id = -1, | 41 | .id = -1, |
42 | .num_resources = ARRAY_SIZE(s3c_usb_resource), | 42 | .num_resources = ARRAY_SIZE(s3c_usb_resource), |
@@ -47,4 +47,23 @@ struct platform_device s3c_device_usb = { | |||
47 | } | 47 | } |
48 | }; | 48 | }; |
49 | 49 | ||
50 | EXPORT_SYMBOL(s3c_device_usb); | 50 | EXPORT_SYMBOL(s3c_device_ohci); |
51 | |||
52 | /** | ||
53 | * s3c_ohci_set_platdata - initialise OHCI device platform data | ||
54 | * @info: The platform data. | ||
55 | * | ||
56 | * This call copies the @info passed in and sets the device .platform_data | ||
57 | * field to that copy. The @info is copied so that the original can be marked | ||
58 | * __initdata. | ||
59 | */ | ||
60 | void __init s3c_ohci_set_platdata(struct s3c2410_hcd_info *info) | ||
61 | { | ||
62 | struct s3c2410_hcd_info *npd; | ||
63 | |||
64 | npd = kmemdup(info, sizeof(struct s3c2410_hcd_info), GFP_KERNEL); | ||
65 | if (!npd) | ||
66 | printk(KERN_ERR "%s: no memory for platform data\n", __func__); | ||
67 | |||
68 | s3c_device_ohci.dev.platform_data = npd; | ||
69 | } | ||