diff options
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 9 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-nuri.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk4x12.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdkv310.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-universal_c210.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410.c | 18 |
7 files changed, 173 insertions, 1 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index e81c35f936b5..366daff79458 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -200,6 +200,7 @@ config MACH_SMDKV310 | |||
200 | select S3C_DEV_HSMMC2 | 200 | select S3C_DEV_HSMMC2 |
201 | select S3C_DEV_HSMMC3 | 201 | select S3C_DEV_HSMMC3 |
202 | select SAMSUNG_DEV_BACKLIGHT | 202 | select SAMSUNG_DEV_BACKLIGHT |
203 | select EXYNOS_DEV_DRM | ||
203 | select EXYNOS4_DEV_AHCI | 204 | select EXYNOS4_DEV_AHCI |
204 | select SAMSUNG_DEV_KEYPAD | 205 | select SAMSUNG_DEV_KEYPAD |
205 | select EXYNOS4_DEV_DMA | 206 | select EXYNOS4_DEV_DMA |
@@ -252,6 +253,7 @@ config MACH_UNIVERSAL_C210 | |||
252 | select S5P_DEV_ONENAND | 253 | select S5P_DEV_ONENAND |
253 | select S5P_DEV_TV | 254 | select S5P_DEV_TV |
254 | select EXYNOS4_DEV_DMA | 255 | select EXYNOS4_DEV_DMA |
256 | select EXYNOS_DEV_DRM | ||
255 | select EXYNOS4_SETUP_FIMD0 | 257 | select EXYNOS4_SETUP_FIMD0 |
256 | select EXYNOS4_SETUP_I2C1 | 258 | select EXYNOS4_SETUP_I2C1 |
257 | select EXYNOS4_SETUP_I2C3 | 259 | select EXYNOS4_SETUP_I2C3 |
@@ -288,6 +290,7 @@ config MACH_NURI | |||
288 | select S5P_DEV_USB_EHCI | 290 | select S5P_DEV_USB_EHCI |
289 | select S5P_SETUP_MIPIPHY | 291 | select S5P_SETUP_MIPIPHY |
290 | select EXYNOS4_DEV_DMA | 292 | select EXYNOS4_DEV_DMA |
293 | select EXYNOS_DEV_DRM | ||
291 | select EXYNOS4_SETUP_FIMC | 294 | select EXYNOS4_SETUP_FIMC |
292 | select EXYNOS4_SETUP_FIMD0 | 295 | select EXYNOS4_SETUP_FIMD0 |
293 | select EXYNOS4_SETUP_I2C1 | 296 | select EXYNOS4_SETUP_I2C1 |
@@ -322,6 +325,7 @@ config MACH_ORIGEN | |||
322 | select S5P_DEV_USB_EHCI | 325 | select S5P_DEV_USB_EHCI |
323 | select SAMSUNG_DEV_BACKLIGHT | 326 | select SAMSUNG_DEV_BACKLIGHT |
324 | select SAMSUNG_DEV_PWM | 327 | select SAMSUNG_DEV_PWM |
328 | select EXYNOS_DEV_DRM | ||
325 | select EXYNOS4_DEV_DMA | 329 | select EXYNOS4_DEV_DMA |
326 | select EXYNOS4_DEV_USB_OHCI | 330 | select EXYNOS4_DEV_USB_OHCI |
327 | select EXYNOS4_SETUP_FIMD0 | 331 | select EXYNOS4_SETUP_FIMD0 |
@@ -342,6 +346,11 @@ config MACH_SMDK4212 | |||
342 | select S3C_DEV_I2C7 | 346 | select S3C_DEV_I2C7 |
343 | select S3C_DEV_RTC | 347 | select S3C_DEV_RTC |
344 | select S3C_DEV_WDT | 348 | select S3C_DEV_WDT |
349 | select S5P_DEV_FIMC0 | ||
350 | select S5P_DEV_FIMC1 | ||
351 | select S5P_DEV_FIMC2 | ||
352 | select S5P_DEV_FIMC3 | ||
353 | select S5P_DEV_MFC | ||
345 | select SAMSUNG_DEV_BACKLIGHT | 354 | select SAMSUNG_DEV_BACKLIGHT |
346 | select SAMSUNG_DEV_KEYPAD | 355 | select SAMSUNG_DEV_KEYPAD |
347 | select SAMSUNG_DEV_PWM | 356 | select SAMSUNG_DEV_PWM |
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c index ed90aef404c3..0fcbb2e162e3 100644 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/mmc/host.h> | 25 | #include <linux/mmc/host.h> |
26 | #include <linux/fb.h> | 26 | #include <linux/fb.h> |
27 | #include <linux/pwm_backlight.h> | 27 | #include <linux/pwm_backlight.h> |
28 | #include <drm/exynos_drm.h> | ||
28 | 29 | ||
29 | #include <video/platform_lcd.h> | 30 | #include <video/platform_lcd.h> |
30 | #include <media/m5mols.h> | 31 | #include <media/m5mols.h> |
@@ -213,6 +214,29 @@ static struct platform_device nuri_gpio_keys = { | |||
213 | }, | 214 | }, |
214 | }; | 215 | }; |
215 | 216 | ||
217 | #ifdef CONFIG_DRM_EXYNOS | ||
218 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
219 | .panel = { | ||
220 | .timing = { | ||
221 | .xres = 1024, | ||
222 | .yres = 600, | ||
223 | .hsync_len = 40, | ||
224 | .left_margin = 79, | ||
225 | .right_margin = 200, | ||
226 | .vsync_len = 10, | ||
227 | .upper_margin = 10, | ||
228 | .lower_margin = 11, | ||
229 | .refresh = 60, | ||
230 | }, | ||
231 | }, | ||
232 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | | ||
233 | VIDCON0_CLKSEL_LCD, | ||
234 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
235 | .default_win = 3, | ||
236 | .bpp = 32, | ||
237 | }; | ||
238 | |||
239 | #else | ||
216 | /* Frame Buffer */ | 240 | /* Frame Buffer */ |
217 | static struct s3c_fb_pd_win nuri_fb_win0 = { | 241 | static struct s3c_fb_pd_win nuri_fb_win0 = { |
218 | .win_mode = { | 242 | .win_mode = { |
@@ -239,6 +263,7 @@ static struct s3c_fb_platdata nuri_fb_pdata __initdata = { | |||
239 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 263 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, |
240 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 264 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
241 | }; | 265 | }; |
266 | #endif | ||
242 | 267 | ||
243 | static void nuri_lcd_power_on(struct plat_lcd_data *pd, unsigned int power) | 268 | static void nuri_lcd_power_on(struct plat_lcd_data *pd, unsigned int power) |
244 | { | 269 | { |
@@ -1302,6 +1327,9 @@ static struct platform_device *nuri_devices[] __initdata = { | |||
1302 | &cam_vdda_fixed_rdev, | 1327 | &cam_vdda_fixed_rdev, |
1303 | &cam_8m_12v_fixed_rdev, | 1328 | &cam_8m_12v_fixed_rdev, |
1304 | &exynos4_bus_devfreq, | 1329 | &exynos4_bus_devfreq, |
1330 | #ifdef CONFIG_DRM_EXYNOS | ||
1331 | &exynos_device_drm, | ||
1332 | #endif | ||
1305 | }; | 1333 | }; |
1306 | 1334 | ||
1307 | static void __init nuri_map_io(void) | 1335 | static void __init nuri_map_io(void) |
@@ -1334,7 +1362,12 @@ static void __init nuri_machine_init(void) | |||
1334 | i2c_register_board_info(9, i2c9_devs, ARRAY_SIZE(i2c9_devs)); | 1362 | i2c_register_board_info(9, i2c9_devs, ARRAY_SIZE(i2c9_devs)); |
1335 | s3c_i2c6_set_platdata(&nuri_i2c6_platdata); | 1363 | s3c_i2c6_set_platdata(&nuri_i2c6_platdata); |
1336 | 1364 | ||
1365 | #ifdef CONFIG_DRM_EXYNOS | ||
1366 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
1367 | exynos4_fimd0_gpio_setup_24bpp(); | ||
1368 | #else | ||
1337 | s5p_fimd0_set_platdata(&nuri_fb_pdata); | 1369 | s5p_fimd0_set_platdata(&nuri_fb_pdata); |
1370 | #endif | ||
1338 | 1371 | ||
1339 | nuri_camera_init(); | 1372 | nuri_camera_init(); |
1340 | 1373 | ||
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 878d4c99142d..fe9627925846 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <mach/ohci.h> | 45 | #include <mach/ohci.h> |
46 | #include <mach/map.h> | 46 | #include <mach/map.h> |
47 | 47 | ||
48 | #include <drm/exynos_drm.h> | ||
48 | #include "common.h" | 49 | #include "common.h" |
49 | 50 | ||
50 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 51 | /* Following are default values for UCON, ULCON and UFCON UART registers */ |
@@ -583,6 +584,27 @@ static struct platform_device origen_lcd_hv070wsa = { | |||
583 | .dev.platform_data = &origen_lcd_hv070wsa_data, | 584 | .dev.platform_data = &origen_lcd_hv070wsa_data, |
584 | }; | 585 | }; |
585 | 586 | ||
587 | #ifdef CONFIG_DRM_EXYNOS | ||
588 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
589 | .panel = { | ||
590 | .timing = { | ||
591 | .left_margin = 64, | ||
592 | .right_margin = 16, | ||
593 | .upper_margin = 64, | ||
594 | .lower_margin = 16, | ||
595 | .hsync_len = 48, | ||
596 | .vsync_len = 3, | ||
597 | .xres = 1024, | ||
598 | .yres = 600, | ||
599 | }, | ||
600 | }, | ||
601 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
602 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | | ||
603 | VIDCON1_INV_VCLK, | ||
604 | .default_win = 0, | ||
605 | .bpp = 32, | ||
606 | }; | ||
607 | #else | ||
586 | static struct s3c_fb_pd_win origen_fb_win0 = { | 608 | static struct s3c_fb_pd_win origen_fb_win0 = { |
587 | .win_mode = { | 609 | .win_mode = { |
588 | .left_margin = 64, | 610 | .left_margin = 64, |
@@ -596,6 +618,8 @@ static struct s3c_fb_pd_win origen_fb_win0 = { | |||
596 | }, | 618 | }, |
597 | .max_bpp = 32, | 619 | .max_bpp = 32, |
598 | .default_bpp = 24, | 620 | .default_bpp = 24, |
621 | .virtual_x = 1024, | ||
622 | .virtual_y = 2 * 600, | ||
599 | }; | 623 | }; |
600 | 624 | ||
601 | static struct s3c_fb_platdata origen_lcd_pdata __initdata = { | 625 | static struct s3c_fb_platdata origen_lcd_pdata __initdata = { |
@@ -605,9 +629,10 @@ static struct s3c_fb_platdata origen_lcd_pdata __initdata = { | |||
605 | VIDCON1_INV_VCLK, | 629 | VIDCON1_INV_VCLK, |
606 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 630 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
607 | }; | 631 | }; |
632 | #endif | ||
608 | 633 | ||
609 | /* Bluetooth rfkill gpio platform data */ | 634 | /* Bluetooth rfkill gpio platform data */ |
610 | struct rfkill_gpio_platform_data origen_bt_pdata = { | 635 | static struct rfkill_gpio_platform_data origen_bt_pdata = { |
611 | .reset_gpio = EXYNOS4_GPX2(2), | 636 | .reset_gpio = EXYNOS4_GPX2(2), |
612 | .shutdown_gpio = -1, | 637 | .shutdown_gpio = -1, |
613 | .type = RFKILL_TYPE_BLUETOOTH, | 638 | .type = RFKILL_TYPE_BLUETOOTH, |
@@ -644,6 +669,9 @@ static struct platform_device *origen_devices[] __initdata = { | |||
644 | &s5p_device_mfc_l, | 669 | &s5p_device_mfc_l, |
645 | &s5p_device_mfc_r, | 670 | &s5p_device_mfc_r, |
646 | &s5p_device_mixer, | 671 | &s5p_device_mixer, |
672 | #ifdef CONFIG_DRM_EXYNOS | ||
673 | &exynos_device_drm, | ||
674 | #endif | ||
647 | &exynos4_device_ohci, | 675 | &exynos4_device_ohci, |
648 | &origen_device_gpiokeys, | 676 | &origen_device_gpiokeys, |
649 | &origen_lcd_hv070wsa, | 677 | &origen_lcd_hv070wsa, |
@@ -719,7 +747,12 @@ static void __init origen_machine_init(void) | |||
719 | s5p_tv_setup(); | 747 | s5p_tv_setup(); |
720 | s5p_i2c_hdmiphy_set_platdata(NULL); | 748 | s5p_i2c_hdmiphy_set_platdata(NULL); |
721 | 749 | ||
750 | #ifdef CONFIG_DRM_EXYNOS | ||
751 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
752 | exynos4_fimd0_gpio_setup_24bpp(); | ||
753 | #else | ||
722 | s5p_fimd0_set_platdata(&origen_lcd_pdata); | 754 | s5p_fimd0_set_platdata(&origen_lcd_pdata); |
755 | #endif | ||
723 | 756 | ||
724 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); | 757 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); |
725 | 758 | ||
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c index d00e4f016a68..7fca248efd32 100644 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <plat/gpio-cfg.h> | 31 | #include <plat/gpio-cfg.h> |
32 | #include <plat/iic.h> | 32 | #include <plat/iic.h> |
33 | #include <plat/keypad.h> | 33 | #include <plat/keypad.h> |
34 | #include <plat/mfc.h> | ||
34 | #include <plat/regs-serial.h> | 35 | #include <plat/regs-serial.h> |
35 | #include <plat/sdhci.h> | 36 | #include <plat/sdhci.h> |
36 | 37 | ||
@@ -244,6 +245,14 @@ static struct platform_device *smdk4x12_devices[] __initdata = { | |||
244 | &s3c_device_i2c7, | 245 | &s3c_device_i2c7, |
245 | &s3c_device_rtc, | 246 | &s3c_device_rtc, |
246 | &s3c_device_wdt, | 247 | &s3c_device_wdt, |
248 | &s5p_device_fimc0, | ||
249 | &s5p_device_fimc1, | ||
250 | &s5p_device_fimc2, | ||
251 | &s5p_device_fimc3, | ||
252 | &s5p_device_fimc_md, | ||
253 | &s5p_device_mfc, | ||
254 | &s5p_device_mfc_l, | ||
255 | &s5p_device_mfc_r, | ||
247 | &samsung_device_keypad, | 256 | &samsung_device_keypad, |
248 | }; | 257 | }; |
249 | 258 | ||
@@ -256,6 +265,11 @@ static void __init smdk4x12_map_io(void) | |||
256 | s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs)); | 265 | s3c24xx_init_uarts(smdk4x12_uartcfgs, ARRAY_SIZE(smdk4x12_uartcfgs)); |
257 | } | 266 | } |
258 | 267 | ||
268 | static void __init smdk4x12_reserve(void) | ||
269 | { | ||
270 | s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20); | ||
271 | } | ||
272 | |||
259 | static void __init smdk4x12_machine_init(void) | 273 | static void __init smdk4x12_machine_init(void) |
260 | { | 274 | { |
261 | s3c_i2c0_set_platdata(NULL); | 275 | s3c_i2c0_set_platdata(NULL); |
@@ -293,6 +307,7 @@ MACHINE_START(SMDK4212, "SMDK4212") | |||
293 | .init_machine = smdk4x12_machine_init, | 307 | .init_machine = smdk4x12_machine_init, |
294 | .timer = &exynos4_timer, | 308 | .timer = &exynos4_timer, |
295 | .restart = exynos4_restart, | 309 | .restart = exynos4_restart, |
310 | .reserve = &smdk4x12_reserve, | ||
296 | MACHINE_END | 311 | MACHINE_END |
297 | 312 | ||
298 | MACHINE_START(SMDK4412, "SMDK4412") | 313 | MACHINE_START(SMDK4412, "SMDK4412") |
@@ -305,4 +320,5 @@ MACHINE_START(SMDK4412, "SMDK4412") | |||
305 | .init_machine = smdk4x12_machine_init, | 320 | .init_machine = smdk4x12_machine_init, |
306 | .timer = &exynos4_timer, | 321 | .timer = &exynos4_timer, |
307 | .restart = exynos4_restart, | 322 | .restart = exynos4_restart, |
323 | .reserve = &smdk4x12_reserve, | ||
308 | MACHINE_END | 324 | MACHINE_END |
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c index 83b91fa777c1..afe7554d4ef5 100644 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <mach/map.h> | 44 | #include <mach/map.h> |
45 | #include <mach/ohci.h> | 45 | #include <mach/ohci.h> |
46 | 46 | ||
47 | #include <drm/exynos_drm.h> | ||
47 | #include "common.h" | 48 | #include "common.h" |
48 | 49 | ||
49 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | 50 | /* Following are default values for UCON, ULCON and UFCON UART registers */ |
@@ -160,6 +161,26 @@ static struct platform_device smdkv310_lcd_lte480wv = { | |||
160 | .dev.platform_data = &smdkv310_lcd_lte480wv_data, | 161 | .dev.platform_data = &smdkv310_lcd_lte480wv_data, |
161 | }; | 162 | }; |
162 | 163 | ||
164 | #ifdef CONFIG_DRM_EXYNOS | ||
165 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
166 | .panel = { | ||
167 | .timing = { | ||
168 | .left_margin = 13, | ||
169 | .right_margin = 8, | ||
170 | .upper_margin = 7, | ||
171 | .lower_margin = 5, | ||
172 | .hsync_len = 3, | ||
173 | .vsync_len = 1, | ||
174 | .xres = 800, | ||
175 | .yres = 480, | ||
176 | }, | ||
177 | }, | ||
178 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
179 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
180 | .default_win = 0, | ||
181 | .bpp = 32, | ||
182 | }; | ||
183 | #else | ||
163 | static struct s3c_fb_pd_win smdkv310_fb_win0 = { | 184 | static struct s3c_fb_pd_win smdkv310_fb_win0 = { |
164 | .win_mode = { | 185 | .win_mode = { |
165 | .left_margin = 13, | 186 | .left_margin = 13, |
@@ -181,6 +202,7 @@ static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = { | |||
181 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 202 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, |
182 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 203 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
183 | }; | 204 | }; |
205 | #endif | ||
184 | 206 | ||
185 | static struct resource smdkv310_smsc911x_resources[] = { | 207 | static struct resource smdkv310_smsc911x_resources[] = { |
186 | [0] = { | 208 | [0] = { |
@@ -273,6 +295,9 @@ static struct platform_device *smdkv310_devices[] __initdata = { | |||
273 | &s5p_device_fimc_md, | 295 | &s5p_device_fimc_md, |
274 | &s5p_device_g2d, | 296 | &s5p_device_g2d, |
275 | &s5p_device_jpeg, | 297 | &s5p_device_jpeg, |
298 | #ifdef CONFIG_DRM_EXYNOS | ||
299 | &exynos_device_drm, | ||
300 | #endif | ||
276 | &exynos4_device_ac97, | 301 | &exynos4_device_ac97, |
277 | &exynos4_device_i2s0, | 302 | &exynos4_device_i2s0, |
278 | &exynos4_device_ohci, | 303 | &exynos4_device_ohci, |
@@ -364,7 +389,12 @@ static void __init smdkv310_machine_init(void) | |||
364 | samsung_keypad_set_platdata(&smdkv310_keypad_data); | 389 | samsung_keypad_set_platdata(&smdkv310_keypad_data); |
365 | 390 | ||
366 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); | 391 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); |
392 | #ifdef CONFIG_DRM_EXYNOS | ||
393 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
394 | exynos4_fimd0_gpio_setup_24bpp(); | ||
395 | #else | ||
367 | s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata); | 396 | s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata); |
397 | #endif | ||
368 | 398 | ||
369 | smdkv310_ehci_init(); | 399 | smdkv310_ehci_init(); |
370 | smdkv310_ohci_init(); | 400 | smdkv310_ohci_init(); |
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c index cb2b027f09a6..a6959bbfef89 100644 --- a/arch/arm/mach-exynos/mach-universal_c210.c +++ b/arch/arm/mach-exynos/mach-universal_c210.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/i2c-gpio.h> | 23 | #include <linux/i2c-gpio.h> |
24 | #include <linux/i2c/mcs.h> | 24 | #include <linux/i2c/mcs.h> |
25 | #include <linux/i2c/atmel_mxt_ts.h> | 25 | #include <linux/i2c/atmel_mxt_ts.h> |
26 | #include <drm/exynos_drm.h> | ||
26 | 27 | ||
27 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
28 | #include <asm/hardware/gic.h> | 29 | #include <asm/hardware/gic.h> |
@@ -812,6 +813,29 @@ static struct i2c_board_info i2c1_devs[] __initdata = { | |||
812 | /* Gyro, To be updated */ | 813 | /* Gyro, To be updated */ |
813 | }; | 814 | }; |
814 | 815 | ||
816 | #ifdef CONFIG_DRM_EXYNOS | ||
817 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | ||
818 | .panel = { | ||
819 | .timing = { | ||
820 | .left_margin = 16, | ||
821 | .right_margin = 16, | ||
822 | .upper_margin = 2, | ||
823 | .lower_margin = 28, | ||
824 | .hsync_len = 2, | ||
825 | .vsync_len = 1, | ||
826 | .xres = 480, | ||
827 | .yres = 800, | ||
828 | .refresh = 55, | ||
829 | }, | ||
830 | }, | ||
831 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | | ||
832 | VIDCON0_CLKSEL_LCD, | ||
833 | .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN | ||
834 | | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
835 | .default_win = 3, | ||
836 | .bpp = 32, | ||
837 | }; | ||
838 | #else | ||
815 | /* Frame Buffer */ | 839 | /* Frame Buffer */ |
816 | static struct s3c_fb_pd_win universal_fb_win0 = { | 840 | static struct s3c_fb_pd_win universal_fb_win0 = { |
817 | .win_mode = { | 841 | .win_mode = { |
@@ -839,6 +863,7 @@ static struct s3c_fb_platdata universal_lcd_pdata __initdata = { | |||
839 | | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | 863 | | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, |
840 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | 864 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, |
841 | }; | 865 | }; |
866 | #endif | ||
842 | 867 | ||
843 | static struct regulator_consumer_supply cam_vt_dio_supply = | 868 | static struct regulator_consumer_supply cam_vt_dio_supply = |
844 | REGULATOR_SUPPLY("vdd_core", "0-003c"); | 869 | REGULATOR_SUPPLY("vdd_core", "0-003c"); |
@@ -1048,6 +1073,9 @@ static struct platform_device *universal_devices[] __initdata = { | |||
1048 | &s5p_device_onenand, | 1073 | &s5p_device_onenand, |
1049 | &s5p_device_fimd0, | 1074 | &s5p_device_fimd0, |
1050 | &s5p_device_jpeg, | 1075 | &s5p_device_jpeg, |
1076 | #ifdef CONFIG_DRM_EXYNOS | ||
1077 | &exynos_device_drm, | ||
1078 | #endif | ||
1051 | &s5p_device_mfc, | 1079 | &s5p_device_mfc, |
1052 | &s5p_device_mfc_l, | 1080 | &s5p_device_mfc_l, |
1053 | &s5p_device_mfc_r, | 1081 | &s5p_device_mfc_r, |
@@ -1094,7 +1122,12 @@ static void __init universal_machine_init(void) | |||
1094 | s5p_i2c_hdmiphy_set_platdata(NULL); | 1122 | s5p_i2c_hdmiphy_set_platdata(NULL); |
1095 | i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs)); | 1123 | i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs)); |
1096 | 1124 | ||
1125 | #ifdef CONFIG_DRM_EXYNOS | ||
1126 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | ||
1127 | exynos4_fimd0_gpio_setup_24bpp(); | ||
1128 | #else | ||
1097 | s5p_fimd0_set_platdata(&universal_lcd_pdata); | 1129 | s5p_fimd0_set_platdata(&universal_lcd_pdata); |
1130 | #endif | ||
1098 | 1131 | ||
1099 | universal_touchkey_init(); | 1132 | universal_touchkey_init(); |
1100 | i2c_register_board_info(I2C_GPIO_BUS_12, i2c_gpio12_devs, | 1133 | i2c_register_board_info(I2C_GPIO_BUS_12, i2c_gpio12_devs, |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index e20bf5835365..7dce84b61a27 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -306,6 +306,24 @@ static struct regulator_consumer_supply wallvdd_consumers[] = { | |||
306 | REGULATOR_SUPPLY("SPKVDD2", "1-001a"), | 306 | REGULATOR_SUPPLY("SPKVDD2", "1-001a"), |
307 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), | 307 | REGULATOR_SUPPLY("SPKVDDL", "1-001a"), |
308 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), | 308 | REGULATOR_SUPPLY("SPKVDDR", "1-001a"), |
309 | |||
310 | REGULATOR_SUPPLY("DC1VDD", "0-0034"), | ||
311 | REGULATOR_SUPPLY("DC2VDD", "0-0034"), | ||
312 | REGULATOR_SUPPLY("DC3VDD", "0-0034"), | ||
313 | REGULATOR_SUPPLY("LDO1VDD", "0-0034"), | ||
314 | REGULATOR_SUPPLY("LDO2VDD", "0-0034"), | ||
315 | REGULATOR_SUPPLY("LDO4VDD", "0-0034"), | ||
316 | REGULATOR_SUPPLY("LDO5VDD", "0-0034"), | ||
317 | REGULATOR_SUPPLY("LDO6VDD", "0-0034"), | ||
318 | REGULATOR_SUPPLY("LDO7VDD", "0-0034"), | ||
319 | REGULATOR_SUPPLY("LDO8VDD", "0-0034"), | ||
320 | REGULATOR_SUPPLY("LDO9VDD", "0-0034"), | ||
321 | REGULATOR_SUPPLY("LDO10VDD", "0-0034"), | ||
322 | REGULATOR_SUPPLY("LDO11VDD", "0-0034"), | ||
323 | |||
324 | REGULATOR_SUPPLY("DC1VDD", "1-0034"), | ||
325 | REGULATOR_SUPPLY("DC2VDD", "1-0034"), | ||
326 | REGULATOR_SUPPLY("DC3VDD", "1-0034"), | ||
309 | }; | 327 | }; |
310 | 328 | ||
311 | static struct regulator_init_data wallvdd_data = { | 329 | static struct regulator_init_data wallvdd_data = { |