aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r--arch/arm/mach-exynos/Kconfig1
-rw-r--r--arch/arm/mach-exynos/mach-smdk4x12.c30
2 files changed, 31 insertions, 0 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-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c
index 737905941e85..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
245static 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
243static struct s3c_fb_pd_win smdk4x12_fb_win0 = { 264static 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 */
272static struct s3c_hsotg_plat smdk4x12_hsotg_pdata; 294static struct s3c_hsotg_plat smdk4x12_hsotg_pdata;
@@ -290,6 +312,9 @@ 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
@@ -332,7 +357,12 @@ static void __init smdk4x12_machine_init(void)
332 357
333 s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); 358 s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata);
334 359
360#ifdef CONFIG_DRM_EXYNOS
361 s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
362 exynos4_fimd0_gpio_setup_24bpp();
363#else
335 s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata); 364 s5p_fimd0_set_platdata(&smdk4x12_lcd_pdata);
365#endif
336 366
337 platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices)); 367 platform_add_devices(smdk4x12_devices, ARRAY_SIZE(smdk4x12_devices));
338} 368}