diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 17:08:03 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 17:08:03 -0400 |
commit | d003e09891fdc0c170b99328eba7ed004809ef5a (patch) | |
tree | 9533ce675d55948b7b4599b0612c19fb58b19bd5 | |
parent | 608f593b1313080301b76875487af6da508f67a1 (diff) | |
parent | 29e7d58775373cb9f244fd0bc1a714643a498cbb (diff) |
Merge branch 'next/board-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/boards
From Kukjin Kim <kgene.kim@samsung.com>:
It is including several changes for samsung boards.
* 'next/board-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: EXYNOS: Add leds status1 and status2 on Origen board
ARM: S3C64XX: Mark most Cragganmore initdata devinitdata
ARM: EXYNOS: Add missing .reserve field to SMDKC210
ARM: EXYNOS: Add DRM device to SMDK4X12 board
ARM: S3C64XX: Clean up after SPI driver platform data updates
ARM: SAMSUNG: no need to set the value for clk_xusbxti when it is 24Mhz
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-nuri.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk4x12.c | 32 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdkv310.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-universal_c210.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410-module.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410.c | 68 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/mach-goni.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/mach-smdkv210.c | 3 |
10 files changed, 102 insertions, 50 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index e698ca016f77..b5b4c8c9db11 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -375,6 +375,7 @@ config MACH_SMDK4212 | |||
375 | select SAMSUNG_DEV_PWM | 375 | select SAMSUNG_DEV_PWM |
376 | select EXYNOS_DEV_SYSMMU | 376 | select EXYNOS_DEV_SYSMMU |
377 | select EXYNOS_DEV_DMA | 377 | select EXYNOS_DEV_DMA |
378 | select EXYNOS_DEV_DRM | ||
378 | select EXYNOS4_SETUP_FIMD0 | 379 | select EXYNOS4_SETUP_FIMD0 |
379 | select EXYNOS4_SETUP_I2C1 | 380 | select EXYNOS4_SETUP_I2C1 |
380 | select EXYNOS4_SETUP_I2C3 | 381 | select EXYNOS4_SETUP_I2C3 |
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c index 656f8fc9addd..129c4c762dec 100644 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c | |||
@@ -1342,9 +1342,8 @@ static struct platform_device *nuri_devices[] __initdata = { | |||
1342 | 1342 | ||
1343 | static void __init nuri_map_io(void) | 1343 | static void __init nuri_map_io(void) |
1344 | { | 1344 | { |
1345 | clk_xusbxti.rate = 24000000; | ||
1346 | exynos_init_io(NULL, 0); | 1345 | exynos_init_io(NULL, 0); |
1347 | s3c24xx_init_clocks(24000000); | 1346 | s3c24xx_init_clocks(clk_xusbxti.rate); |
1348 | s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs)); | 1347 | s3c24xx_init_uarts(nuri_uartcfgs, ARRAY_SIZE(nuri_uartcfgs)); |
1349 | } | 1348 | } |
1350 | 1349 | ||
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 9ed0229db8ae..b6d9a8876e45 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/serial_core.h> | 11 | #include <linux/serial_core.h> |
12 | #include <linux/leds.h> | ||
12 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
13 | #include <linux/mmc/host.h> | 14 | #include <linux/mmc/host.h> |
14 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
@@ -503,6 +504,34 @@ static void __init origen_ohci_init(void) | |||
503 | /* USB OTG */ | 504 | /* USB OTG */ |
504 | static struct s3c_hsotg_plat origen_hsotg_pdata; | 505 | static struct s3c_hsotg_plat origen_hsotg_pdata; |
505 | 506 | ||
507 | static struct gpio_led origen_gpio_leds[] = { | ||
508 | { | ||
509 | .name = "origen::status1", | ||
510 | .default_trigger = "heartbeat", | ||
511 | .gpio = EXYNOS4_GPX1(3), | ||
512 | .active_low = 1, | ||
513 | }, | ||
514 | { | ||
515 | .name = "origen::status2", | ||
516 | .default_trigger = "mmc0", | ||
517 | .gpio = EXYNOS4_GPX1(4), | ||
518 | .active_low = 1, | ||
519 | }, | ||
520 | }; | ||
521 | |||
522 | static struct gpio_led_platform_data origen_gpio_led_info = { | ||
523 | .leds = origen_gpio_leds, | ||
524 | .num_leds = ARRAY_SIZE(origen_gpio_leds), | ||
525 | }; | ||
526 | |||
527 | static struct platform_device origen_leds_gpio = { | ||
528 | .name = "leds-gpio", | ||
529 | .id = -1, | ||
530 | .dev = { | ||
531 | .platform_data = &origen_gpio_led_info, | ||
532 | }, | ||
533 | }; | ||
534 | |||
506 | static struct gpio_keys_button origen_gpio_keys_table[] = { | 535 | static struct gpio_keys_button origen_gpio_keys_table[] = { |
507 | { | 536 | { |
508 | .code = KEY_MENU, | 537 | .code = KEY_MENU, |
@@ -682,6 +711,7 @@ static struct platform_device *origen_devices[] __initdata = { | |||
682 | &exynos4_device_ohci, | 711 | &exynos4_device_ohci, |
683 | &origen_device_gpiokeys, | 712 | &origen_device_gpiokeys, |
684 | &origen_lcd_hv070wsa, | 713 | &origen_lcd_hv070wsa, |
714 | &origen_leds_gpio, | ||
685 | &origen_device_bluetooth, | 715 | &origen_device_bluetooth, |
686 | }; | 716 | }; |
687 | 717 | ||
@@ -717,7 +747,7 @@ static void s5p_tv_setup(void) | |||
717 | static void __init origen_map_io(void) | 747 | static void __init origen_map_io(void) |
718 | { | 748 | { |
719 | exynos_init_io(NULL, 0); | 749 | exynos_init_io(NULL, 0); |
720 | s3c24xx_init_clocks(24000000); | 750 | s3c24xx_init_clocks(clk_xusbxti.rate); |
721 | s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); | 751 | s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); |
722 | } | 752 | } |
723 | 753 | ||
@@ -750,7 +780,6 @@ static void __init origen_machine_init(void) | |||
750 | origen_ehci_init(); | 780 | origen_ehci_init(); |
751 | origen_ohci_init(); | 781 | origen_ohci_init(); |
752 | s3c_hsotg_set_platdata(&origen_hsotg_pdata); | 782 | s3c_hsotg_set_platdata(&origen_hsotg_pdata); |
753 | clk_xusbxti.rate = 24000000; | ||
754 | 783 | ||
755 | s5p_tv_setup(); | 784 | s5p_tv_setup(); |
756 | s5p_i2c_hdmiphy_set_platdata(NULL); | 785 | s5p_i2c_hdmiphy_set_platdata(NULL); |
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c index 2623f3bde3f9..b26beb13ebef 100644 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c | |||
@@ -41,6 +41,7 @@ | |||
41 | 41 | ||
42 | #include <mach/map.h> | 42 | #include <mach/map.h> |
43 | 43 | ||
44 | #include <drm/exynos_drm.h> | ||
44 | #include "common.h" | 45 | #include "common.h" |
45 | 46 | ||
46 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 47 | /* Following are default values for UCON, ULCON and UFCON UART registers */ |
@@ -240,6 +241,26 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = { | |||
240 | .cols = 8, | 241 | .cols = 8, |
241 | }; | 242 | }; |
242 | 243 | ||
244 | #ifdef CONFIG_DRM_EXYNOS | ||
245 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
246 | .panel = { | ||
247 | .timing = { | ||
248 | .left_margin = 8, | ||
249 | .right_margin = 8, | ||
250 | .upper_margin = 6, | ||
251 | .lower_margin = 6, | ||
252 | .hsync_len = 6, | ||
253 | .vsync_len = 4, | ||
254 | .xres = 480, | ||
255 | .yres = 800, | ||
256 | }, | ||
257 | }, | ||
258 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
259 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
260 | .default_win = 0, | ||
261 | .bpp = 32, | ||
262 | }; | ||
263 | #else | ||
243 | static struct s3c_fb_pd_win smdk4x12_fb_win0 = { | 264 | static struct s3c_fb_pd_win smdk4x12_fb_win0 = { |
244 | .xres = 480, | 265 | .xres = 480, |
245 | .yres = 800, | 266 | .yres = 800, |
@@ -267,6 +288,7 @@ static struct s3c_fb_platdata smdk4x12_lcd_pdata __initdata = { | |||
267 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 288 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, |
268 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 289 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
269 | }; | 290 | }; |
291 | #endif | ||
270 | 292 | ||
271 | /* USB OTG */ | 293 | /* USB OTG */ |
272 | static struct s3c_hsotg_plat smdk4x12_hsotg_pdata; | 294 | static struct s3c_hsotg_plat smdk4x12_hsotg_pdata; |
@@ -290,13 +312,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = { | |||
290 | &s5p_device_mfc, | 312 | &s5p_device_mfc, |
291 | &s5p_device_mfc_l, | 313 | &s5p_device_mfc_l, |
292 | &s5p_device_mfc_r, | 314 | &s5p_device_mfc_r, |
315 | #ifdef CONFIG_DRM_EXYNOS | ||
316 | &exynos_device_drm, | ||
317 | #endif | ||
293 | &samsung_device_keypad, | 318 | &samsung_device_keypad, |
294 | }; | 319 | }; |
295 | 320 | ||
296 | static void __init smdk4x12_map_io(void) | 321 | static void __init smdk4x12_map_io(void) |
297 | { | 322 | { |
298 | clk_xusbxti.rate = 24000000; | ||
299 | |||
300 | exynos_init_io(NULL, 0); | 323 | exynos_init_io(NULL, 0); |
301 | s3c24xx_init_clocks(clk_xusbxti.rate); | 324 | s3c24xx_init_clocks(clk_xusbxti.rate); |
302 | s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs)); | 325 | s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs)); |
@@ -334,7 +357,12 @@ static void __init smdk4x12_machine_init(void) | |||
334 | 357 | ||
335 | s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); | 358 | s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); |
336 | 359 | ||
360 | #ifdef CONFIG_DRM_EXYNOS | ||
361 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
362 | exynos4_fimd0_gpio_setup_24bpp(); | ||
363 | #else | ||
337 | s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata); | 364 | s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata); |
365 | #endif | ||
338 | 366 | ||
339 | platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices)); | 367 | platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices)); |
340 | } | 368 | } |
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c index 7464a45745d5..d5a172d8327d 100644 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c | |||
@@ -366,7 +366,7 @@ static void s5p_tv_setup(void) | |||
366 | static void __init smdkv310_map_io(void) | 366 | static void __init smdkv310_map_io(void) |
367 | { | 367 | { |
368 | exynos_init_io(NULL, 0); | 368 | exynos_init_io(NULL, 0); |
369 | s3c24xx_init_clocks(24000000); | 369 | s3c24xx_init_clocks(clk_xusbxti.rate); |
370 | s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); | 370 | s3c24xx_init_uarts(smdkv310_uartcfgs, ARRAY_SIZE(smdkv310_uartcfgs)); |
371 | } | 371 | } |
372 | 372 | ||
@@ -403,7 +403,6 @@ static void __init smdkv310_machine_init(void) | |||
403 | smdkv310_ehci_init(); | 403 | smdkv310_ehci_init(); |
404 | smdkv310_ohci_init(); | 404 | smdkv310_ohci_init(); |
405 | s3c_hsotg_set_platdata(&smdkv310_hsotg_pdata); | 405 | s3c_hsotg_set_platdata(&smdkv310_hsotg_pdata); |
406 | clk_xusbxti.rate = 24000000; | ||
407 | 406 | ||
408 | platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); | 407 | platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); |
409 | } | 408 | } |
@@ -430,5 +429,6 @@ MACHINE_START(SMDKC210, "SMDKC210") | |||
430 | .init_machine = smdkv310_machine_init, | 429 | .init_machine = smdkv310_machine_init, |
431 | .init_late = exynos_init_late, | 430 | .init_late = exynos_init_late, |
432 | .timer = &exynos4_timer, | 431 | .timer = &exynos4_timer, |
432 | .reserve = &smdkv310_reserve, | ||
433 | .restart = exynos4_restart, | 433 | .restart = exynos4_restart, |
434 | MACHINE_END | 434 | MACHINE_END |
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c index cd92fa86ba41..e7ba7ec1ca34 100644 --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c | |||
@@ -1100,9 +1100,8 @@ static struct platform_device *universal_devices[] __initdata = { | |||
1100 | 1100 | ||
1101 | static void __init universal_map_io(void) | 1101 | static void __init universal_map_io(void) |
1102 | { | 1102 | { |
1103 | clk_xusbxti.rate = 24000000; | ||
1104 | exynos_init_io(NULL, 0); | 1103 | exynos_init_io(NULL, 0); |
1105 | s3c24xx_init_clocks(24000000); | 1104 | s3c24xx_init_clocks(clk_xusbxti.rate); |
1106 | s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); | 1105 | s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); |
1107 | s5p_set_timer_source(S5P_PWM2, S5P_PWM4); | 1106 | s5p_set_timer_source(S5P_PWM2, S5P_PWM4); |
1108 | } | 1107 | } |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 4645aa15c82a..9e382e7c77cb 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <mach/crag6410.h> | 29 | #include <mach/crag6410.h> |
30 | 30 | ||
31 | static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { | 31 | static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { |
32 | .set_level = gpio_set_value, | ||
33 | .line = S3C64XX_GPC(3), | 32 | .line = S3C64XX_GPC(3), |
34 | }; | 33 | }; |
35 | 34 | ||
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 161c3b6218a2..7eb586515fb7 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -171,7 +171,7 @@ static struct fb_videomode crag6410_lcd_timing = { | |||
171 | }; | 171 | }; |
172 | 172 | ||
173 | /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ | 173 | /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ |
174 | static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { | 174 | static struct s3c_fb_platdata crag6410_lcd_pdata __devinitdata = { |
175 | .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, | 175 | .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, |
176 | .vtiming = &crag6410_lcd_timing, | 176 | .vtiming = &crag6410_lcd_timing, |
177 | .win[0] = &crag6410_fb_win0, | 177 | .win[0] = &crag6410_fb_win0, |
@@ -181,7 +181,7 @@ static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { | |||
181 | 181 | ||
182 | /* 2x6 keypad */ | 182 | /* 2x6 keypad */ |
183 | 183 | ||
184 | static uint32_t crag6410_keymap[] __initdata = { | 184 | static uint32_t crag6410_keymap[] __devinitdata = { |
185 | /* KEY(row, col, keycode) */ | 185 | /* KEY(row, col, keycode) */ |
186 | KEY(0, 0, KEY_VOLUMEUP), | 186 | KEY(0, 0, KEY_VOLUMEUP), |
187 | KEY(0, 1, KEY_HOME), | 187 | KEY(0, 1, KEY_HOME), |
@@ -197,12 +197,12 @@ static uint32_t crag6410_keymap[] __initdata = { | |||
197 | KEY(1, 5, KEY_CAMERA), | 197 | KEY(1, 5, KEY_CAMERA), |
198 | }; | 198 | }; |
199 | 199 | ||
200 | static struct matrix_keymap_data crag6410_keymap_data __initdata = { | 200 | static struct matrix_keymap_data crag6410_keymap_data __devinitdata = { |
201 | .keymap = crag6410_keymap, | 201 | .keymap = crag6410_keymap, |
202 | .keymap_size = ARRAY_SIZE(crag6410_keymap), | 202 | .keymap_size = ARRAY_SIZE(crag6410_keymap), |
203 | }; | 203 | }; |
204 | 204 | ||
205 | static struct samsung_keypad_platdata crag6410_keypad_data __initdata = { | 205 | static struct samsung_keypad_platdata crag6410_keypad_data __devinitdata = { |
206 | .keymap_data = &crag6410_keymap_data, | 206 | .keymap_data = &crag6410_keymap_data, |
207 | .rows = 2, | 207 | .rows = 2, |
208 | .cols = 6, | 208 | .cols = 6, |
@@ -373,11 +373,11 @@ static struct wm831x_buckv_pdata vddarm_pdata = { | |||
373 | .dvs_gpio = S3C64XX_GPK(0), | 373 | .dvs_gpio = S3C64XX_GPK(0), |
374 | }; | 374 | }; |
375 | 375 | ||
376 | static struct regulator_consumer_supply vddarm_consumers[] __initdata = { | 376 | static struct regulator_consumer_supply vddarm_consumers[] __devinitdata = { |
377 | REGULATOR_SUPPLY("vddarm", NULL), | 377 | REGULATOR_SUPPLY("vddarm", NULL), |
378 | }; | 378 | }; |
379 | 379 | ||
380 | static struct regulator_init_data vddarm __initdata = { | 380 | static struct regulator_init_data vddarm __devinitdata = { |
381 | .constraints = { | 381 | .constraints = { |
382 | .name = "VDDARM", | 382 | .name = "VDDARM", |
383 | .min_uV = 1000000, | 383 | .min_uV = 1000000, |
@@ -391,11 +391,11 @@ static struct regulator_init_data vddarm __initdata = { | |||
391 | .driver_data = &vddarm_pdata, | 391 | .driver_data = &vddarm_pdata, |
392 | }; | 392 | }; |
393 | 393 | ||
394 | static struct regulator_consumer_supply vddint_consumers[] __initdata = { | 394 | static struct regulator_consumer_supply vddint_consumers[] __devinitdata = { |
395 | REGULATOR_SUPPLY("vddint", NULL), | 395 | REGULATOR_SUPPLY("vddint", NULL), |
396 | }; | 396 | }; |
397 | 397 | ||
398 | static struct regulator_init_data vddint __initdata = { | 398 | static struct regulator_init_data vddint __devinitdata = { |
399 | .constraints = { | 399 | .constraints = { |
400 | .name = "VDDINT", | 400 | .name = "VDDINT", |
401 | .min_uV = 1000000, | 401 | .min_uV = 1000000, |
@@ -408,27 +408,27 @@ static struct regulator_init_data vddint __initdata = { | |||
408 | .supply_regulator = "WALLVDD", | 408 | .supply_regulator = "WALLVDD", |
409 | }; | 409 | }; |
410 | 410 | ||
411 | static struct regulator_init_data vddmem __initdata = { | 411 | static struct regulator_init_data vddmem __devinitdata = { |
412 | .constraints = { | 412 | .constraints = { |
413 | .name = "VDDMEM", | 413 | .name = "VDDMEM", |
414 | .always_on = 1, | 414 | .always_on = 1, |
415 | }, | 415 | }, |
416 | }; | 416 | }; |
417 | 417 | ||
418 | static struct regulator_init_data vddsys __initdata = { | 418 | static struct regulator_init_data vddsys __devinitdata = { |
419 | .constraints = { | 419 | .constraints = { |
420 | .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", | 420 | .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", |
421 | .always_on = 1, | 421 | .always_on = 1, |
422 | }, | 422 | }, |
423 | }; | 423 | }; |
424 | 424 | ||
425 | static struct regulator_consumer_supply vddmmc_consumers[] __initdata = { | 425 | static struct regulator_consumer_supply vddmmc_consumers[] __devinitdata = { |
426 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), | 426 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), |
427 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), | 427 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), |
428 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), | 428 | REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), |
429 | }; | 429 | }; |
430 | 430 | ||
431 | static struct regulator_init_data vddmmc __initdata = { | 431 | static struct regulator_init_data vddmmc __devinitdata = { |
432 | .constraints = { | 432 | .constraints = { |
433 | .name = "VDDMMC,UH", | 433 | .name = "VDDMMC,UH", |
434 | .always_on = 1, | 434 | .always_on = 1, |
@@ -438,7 +438,7 @@ static struct regulator_init_data vddmmc __initdata = { | |||
438 | .supply_regulator = "WALLVDD", | 438 | .supply_regulator = "WALLVDD", |
439 | }; | 439 | }; |
440 | 440 | ||
441 | static struct regulator_init_data vddotgi __initdata = { | 441 | static struct regulator_init_data vddotgi __devinitdata = { |
442 | .constraints = { | 442 | .constraints = { |
443 | .name = "VDDOTGi", | 443 | .name = "VDDOTGi", |
444 | .always_on = 1, | 444 | .always_on = 1, |
@@ -446,7 +446,7 @@ static struct regulator_init_data vddotgi __initdata = { | |||
446 | .supply_regulator = "WALLVDD", | 446 | .supply_regulator = "WALLVDD", |
447 | }; | 447 | }; |
448 | 448 | ||
449 | static struct regulator_init_data vddotg __initdata = { | 449 | static struct regulator_init_data vddotg __devinitdata = { |
450 | .constraints = { | 450 | .constraints = { |
451 | .name = "VDDOTG", | 451 | .name = "VDDOTG", |
452 | .always_on = 1, | 452 | .always_on = 1, |
@@ -454,7 +454,7 @@ static struct regulator_init_data vddotg __initdata = { | |||
454 | .supply_regulator = "WALLVDD", | 454 | .supply_regulator = "WALLVDD", |
455 | }; | 455 | }; |
456 | 456 | ||
457 | static struct regulator_init_data vddhi __initdata = { | 457 | static struct regulator_init_data vddhi __devinitdata = { |
458 | .constraints = { | 458 | .constraints = { |
459 | .name = "VDDHI", | 459 | .name = "VDDHI", |
460 | .always_on = 1, | 460 | .always_on = 1, |
@@ -462,7 +462,7 @@ static struct regulator_init_data vddhi __initdata = { | |||
462 | .supply_regulator = "WALLVDD", | 462 | .supply_regulator = "WALLVDD", |
463 | }; | 463 | }; |
464 | 464 | ||
465 | static struct regulator_init_data vddadc __initdata = { | 465 | static struct regulator_init_data vddadc __devinitdata = { |
466 | .constraints = { | 466 | .constraints = { |
467 | .name = "VDDADC,VDDDAC", | 467 | .name = "VDDADC,VDDDAC", |
468 | .always_on = 1, | 468 | .always_on = 1, |
@@ -470,7 +470,7 @@ static struct regulator_init_data vddadc __initdata = { | |||
470 | .supply_regulator = "WALLVDD", | 470 | .supply_regulator = "WALLVDD", |
471 | }; | 471 | }; |
472 | 472 | ||
473 | static struct regulator_init_data vddmem0 __initdata = { | 473 | static struct regulator_init_data vddmem0 __devinitdata = { |
474 | .constraints = { | 474 | .constraints = { |
475 | .name = "VDDMEM0", | 475 | .name = "VDDMEM0", |
476 | .always_on = 1, | 476 | .always_on = 1, |
@@ -478,7 +478,7 @@ static struct regulator_init_data vddmem0 __initdata = { | |||
478 | .supply_regulator = "WALLVDD", | 478 | .supply_regulator = "WALLVDD", |
479 | }; | 479 | }; |
480 | 480 | ||
481 | static struct regulator_init_data vddpll __initdata = { | 481 | static struct regulator_init_data vddpll __devinitdata = { |
482 | .constraints = { | 482 | .constraints = { |
483 | .name = "VDDPLL", | 483 | .name = "VDDPLL", |
484 | .always_on = 1, | 484 | .always_on = 1, |
@@ -486,7 +486,7 @@ static struct regulator_init_data vddpll __initdata = { | |||
486 | .supply_regulator = "WALLVDD", | 486 | .supply_regulator = "WALLVDD", |
487 | }; | 487 | }; |
488 | 488 | ||
489 | static struct regulator_init_data vddlcd __initdata = { | 489 | static struct regulator_init_data vddlcd __devinitdata = { |
490 | .constraints = { | 490 | .constraints = { |
491 | .name = "VDDLCD", | 491 | .name = "VDDLCD", |
492 | .always_on = 1, | 492 | .always_on = 1, |
@@ -494,7 +494,7 @@ static struct regulator_init_data vddlcd __initdata = { | |||
494 | .supply_regulator = "WALLVDD", | 494 | .supply_regulator = "WALLVDD", |
495 | }; | 495 | }; |
496 | 496 | ||
497 | static struct regulator_init_data vddalive __initdata = { | 497 | static struct regulator_init_data vddalive __devinitdata = { |
498 | .constraints = { | 498 | .constraints = { |
499 | .name = "VDDALIVE", | 499 | .name = "VDDALIVE", |
500 | .always_on = 1, | 500 | .always_on = 1, |
@@ -502,28 +502,28 @@ static struct regulator_init_data vddalive __initdata = { | |||
502 | .supply_regulator = "WALLVDD", | 502 | .supply_regulator = "WALLVDD", |
503 | }; | 503 | }; |
504 | 504 | ||
505 | static struct wm831x_backup_pdata banff_backup_pdata __initdata = { | 505 | static struct wm831x_backup_pdata banff_backup_pdata __devinitdata = { |
506 | .charger_enable = 1, | 506 | .charger_enable = 1, |
507 | .vlim = 2500, /* mV */ | 507 | .vlim = 2500, /* mV */ |
508 | .ilim = 200, /* uA */ | 508 | .ilim = 200, /* uA */ |
509 | }; | 509 | }; |
510 | 510 | ||
511 | static struct wm831x_status_pdata banff_red_led __initdata = { | 511 | static struct wm831x_status_pdata banff_red_led __devinitdata = { |
512 | .name = "banff:red:", | 512 | .name = "banff:red:", |
513 | .default_src = WM831X_STATUS_MANUAL, | 513 | .default_src = WM831X_STATUS_MANUAL, |
514 | }; | 514 | }; |
515 | 515 | ||
516 | static struct wm831x_status_pdata banff_green_led __initdata = { | 516 | static struct wm831x_status_pdata banff_green_led __devinitdata = { |
517 | .name = "banff:green:", | 517 | .name = "banff:green:", |
518 | .default_src = WM831X_STATUS_MANUAL, | 518 | .default_src = WM831X_STATUS_MANUAL, |
519 | }; | 519 | }; |
520 | 520 | ||
521 | static struct wm831x_touch_pdata touch_pdata __initdata = { | 521 | static struct wm831x_touch_pdata touch_pdata __devinitdata = { |
522 | .data_irq = S3C_EINT(26), | 522 | .data_irq = S3C_EINT(26), |
523 | .pd_irq = S3C_EINT(27), | 523 | .pd_irq = S3C_EINT(27), |
524 | }; | 524 | }; |
525 | 525 | ||
526 | static struct wm831x_pdata crag_pmic_pdata __initdata = { | 526 | static struct wm831x_pdata crag_pmic_pdata __devinitdata = { |
527 | .wm831x_num = 1, | 527 | .wm831x_num = 1, |
528 | .gpio_base = BANFF_PMIC_GPIO_BASE, | 528 | .gpio_base = BANFF_PMIC_GPIO_BASE, |
529 | .soft_shutdown = true, | 529 | .soft_shutdown = true, |
@@ -567,7 +567,7 @@ static struct wm831x_pdata crag_pmic_pdata __initdata = { | |||
567 | .touch = &touch_pdata, | 567 | .touch = &touch_pdata, |
568 | }; | 568 | }; |
569 | 569 | ||
570 | static struct i2c_board_info i2c_devs0[] __initdata = { | 570 | static struct i2c_board_info i2c_devs0[] __devinitdata = { |
571 | { I2C_BOARD_INFO("24c08", 0x50), }, | 571 | { I2C_BOARD_INFO("24c08", 0x50), }, |
572 | { I2C_BOARD_INFO("tca6408", 0x20), | 572 | { I2C_BOARD_INFO("tca6408", 0x20), |
573 | .platform_data = &crag6410_pca_data, | 573 | .platform_data = &crag6410_pca_data, |
@@ -582,12 +582,12 @@ static struct s3c2410_platform_i2c i2c0_pdata = { | |||
582 | .frequency = 400000, | 582 | .frequency = 400000, |
583 | }; | 583 | }; |
584 | 584 | ||
585 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __initdata = { | 585 | static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { |
586 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), | 586 | REGULATOR_SUPPLY("DCVDD", "spi0.0"), |
587 | REGULATOR_SUPPLY("AVDD", "spi0.0"), | 587 | REGULATOR_SUPPLY("AVDD", "spi0.0"), |
588 | }; | 588 | }; |
589 | 589 | ||
590 | static struct regulator_init_data pvdd_1v2 __initdata = { | 590 | static struct regulator_init_data pvdd_1v2 __devinitdata = { |
591 | .constraints = { | 591 | .constraints = { |
592 | .name = "PVDD_1V2", | 592 | .name = "PVDD_1V2", |
593 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | 593 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
@@ -597,7 +597,7 @@ static struct regulator_init_data pvdd_1v2 __initdata = { | |||
597 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), | 597 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), |
598 | }; | 598 | }; |
599 | 599 | ||
600 | static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { | 600 | static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { |
601 | REGULATOR_SUPPLY("LDOVDD", "1-001a"), | 601 | REGULATOR_SUPPLY("LDOVDD", "1-001a"), |
602 | REGULATOR_SUPPLY("PLLVDD", "1-001a"), | 602 | REGULATOR_SUPPLY("PLLVDD", "1-001a"), |
603 | REGULATOR_SUPPLY("DBVDD", "1-001a"), | 603 | REGULATOR_SUPPLY("DBVDD", "1-001a"), |
@@ -611,7 +611,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { | |||
611 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), | 611 | REGULATOR_SUPPLY("DBVDD", "spi0.0"), |
612 | }; | 612 | }; |
613 | 613 | ||
614 | static struct regulator_init_data pvdd_1v8 __initdata = { | 614 | static struct regulator_init_data pvdd_1v8 __devinitdata = { |
615 | .constraints = { | 615 | .constraints = { |
616 | .name = "PVDD_1V8", | 616 | .name = "PVDD_1V8", |
617 | .always_on = 1, | 617 | .always_on = 1, |
@@ -621,12 +621,12 @@ static struct regulator_init_data pvdd_1v8 __initdata = { | |||
621 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), | 621 | .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), |
622 | }; | 622 | }; |
623 | 623 | ||
624 | static struct regulator_consumer_supply pvdd_3v3_consumers[] __initdata = { | 624 | static struct regulator_consumer_supply pvdd_3v3_consumers[] __devinitdata = { |
625 | REGULATOR_SUPPLY("MICVDD", "1-001a"), | 625 | REGULATOR_SUPPLY("MICVDD", "1-001a"), |
626 | REGULATOR_SUPPLY("AVDD1", "1-001a"), | 626 | REGULATOR_SUPPLY("AVDD1", "1-001a"), |
627 | }; | 627 | }; |
628 | 628 | ||
629 | static struct regulator_init_data pvdd_3v3 __initdata = { | 629 | static struct regulator_init_data pvdd_3v3 __devinitdata = { |
630 | .constraints = { | 630 | .constraints = { |
631 | .name = "PVDD_3V3", | 631 | .name = "PVDD_3V3", |
632 | .always_on = 1, | 632 | .always_on = 1, |
@@ -636,7 +636,7 @@ static struct regulator_init_data pvdd_3v3 __initdata = { | |||
636 | .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), | 636 | .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), |
637 | }; | 637 | }; |
638 | 638 | ||
639 | static struct wm831x_pdata glenfarclas_pmic_pdata __initdata = { | 639 | static struct wm831x_pdata glenfarclas_pmic_pdata __devinitdata = { |
640 | .wm831x_num = 2, | 640 | .wm831x_num = 2, |
641 | .irq_base = GLENFARCLAS_PMIC_IRQ_BASE, | 641 | .irq_base = GLENFARCLAS_PMIC_IRQ_BASE, |
642 | .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, | 642 | .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, |
@@ -668,7 +668,7 @@ static struct wm1250_ev1_pdata wm1250_ev1_pdata = { | |||
668 | }, | 668 | }, |
669 | }; | 669 | }; |
670 | 670 | ||
671 | static struct i2c_board_info i2c_devs1[] __initdata = { | 671 | static struct i2c_board_info i2c_devs1[] __devinitdata = { |
672 | { I2C_BOARD_INFO("wm8311", 0x34), | 672 | { I2C_BOARD_INFO("wm8311", 0x34), |
673 | .irq = S3C_EINT(0), | 673 | .irq = S3C_EINT(0), |
674 | .platform_data = &glenfarclas_pmic_pdata }, | 674 | .platform_data = &glenfarclas_pmic_pdata }, |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index b2cae1387869..822a55950685 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
@@ -908,7 +908,7 @@ static void __init goni_sound_init(void) | |||
908 | static void __init goni_map_io(void) | 908 | static void __init goni_map_io(void) |
909 | { | 909 | { |
910 | s5pv210_init_io(NULL, 0); | 910 | s5pv210_init_io(NULL, 0); |
911 | s3c24xx_init_clocks(24000000); | 911 | s3c24xx_init_clocks(clk_xusbxti.rate); |
912 | s3c24xx_init_uarts(goni_uartcfgs, ARRAY_SIZE(goni_uartcfgs)); | 912 | s3c24xx_init_uarts(goni_uartcfgs, ARRAY_SIZE(goni_uartcfgs)); |
913 | s5p_set_timer_source(S5P_PWM3, S5P_PWM4); | 913 | s5p_set_timer_source(S5P_PWM3, S5P_PWM4); |
914 | } | 914 | } |
@@ -966,8 +966,6 @@ static void __init goni_machine_init(void) | |||
966 | /* KEYPAD */ | 966 | /* KEYPAD */ |
967 | samsung_keypad_set_platdata(&keypad_data); | 967 | samsung_keypad_set_platdata(&keypad_data); |
968 | 968 | ||
969 | clk_xusbxti.rate = 24000000; | ||
970 | |||
971 | platform_add_devices(goni_devices, ARRAY_SIZE(goni_devices)); | 969 | platform_add_devices(goni_devices, ARRAY_SIZE(goni_devices)); |
972 | } | 970 | } |
973 | 971 | ||
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index c8997bce642d..918b23d71fdf 100644 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c | |||
@@ -285,7 +285,7 @@ static struct platform_pwm_backlight_data smdkv210_bl_data = { | |||
285 | static void __init smdkv210_map_io(void) | 285 | static void __init smdkv210_map_io(void) |
286 | { | 286 | { |
287 | s5pv210_init_io(NULL, 0); | 287 | s5pv210_init_io(NULL, 0); |
288 | s3c24xx_init_clocks(24000000); | 288 | s3c24xx_init_clocks(clk_xusbxti.rate); |
289 | s3c24xx_init_uarts(smdkv210_uartcfgs, ARRAY_SIZE(smdkv210_uartcfgs)); | 289 | s3c24xx_init_uarts(smdkv210_uartcfgs, ARRAY_SIZE(smdkv210_uartcfgs)); |
290 | s5p_set_timer_source(S5P_PWM2, S5P_PWM4); | 290 | s5p_set_timer_source(S5P_PWM2, S5P_PWM4); |
291 | } | 291 | } |
@@ -321,7 +321,6 @@ static void __init smdkv210_machine_init(void) | |||
321 | samsung_bl_set(&smdkv210_bl_gpio_info, &smdkv210_bl_data); | 321 | samsung_bl_set(&smdkv210_bl_gpio_info, &smdkv210_bl_data); |
322 | 322 | ||
323 | s3c_hsotg_set_platdata(&smdkv210_hsotg_pdata); | 323 | s3c_hsotg_set_platdata(&smdkv210_hsotg_pdata); |
324 | clk_xusbxti.rate = 24000000; | ||
325 | 324 | ||
326 | platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices)); | 325 | platform_add_devices(smdkv210_devices, ARRAY_SIZE(smdkv210_devices)); |
327 | } | 326 | } |