diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2012-05-11 23:41:00 +0200 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2012-05-11 23:41:00 +0200 |
commit | 6dafa4aead1b9e5f79fd789f10bc15a9149b916a (patch) | |
tree | a38f8aed5028c86333e7297dda2089e5a4b3f535 /arch/arm/mach-exynos | |
parent | ARM: EXYNOS: Increase framebuffer virtual size for origen (diff) | |
download | linux-6dafa4aead1b9e5f79fd789f10bc15a9149b916a.tar.xz linux-6dafa4aead1b9e5f79fd789f10bc15a9149b916a.zip |
ARM: EXYNOS: Add DRM core device support for Universal C210 board
Add core DRM device and alternative platform device data
for FIMD DRM subdriver. Based on the initial patch by
Joonyoung Shim <jy0922.shim@samsung.com>.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-universal_c210.c | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index e81c35f936b5..20077add2764 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig @@ -252,6 +252,7 @@ config MACH_UNIVERSAL_C210 select S5P_DEV_ONENAND select S5P_DEV_TV select EXYNOS4_DEV_DMA + select EXYNOS_DEV_DRM select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_I2C1 select EXYNOS4_SETUP_I2C3 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 @@ #include <linux/i2c-gpio.h> #include <linux/i2c/mcs.h> #include <linux/i2c/atmel_mxt_ts.h> +#include <drm/exynos_drm.h> #include <asm/mach/arch.h> #include <asm/hardware/gic.h> @@ -812,6 +813,29 @@ static struct i2c_board_info i2c1_devs[] __initdata = { /* Gyro, To be updated */ }; +#ifdef CONFIG_DRM_EXYNOS +static struct exynos_drm_fimd_pdata drm_fimd_pdata = { + .panel = { + .timing = { + .left_margin = 16, + .right_margin = 16, + .upper_margin = 2, + .lower_margin = 28, + .hsync_len = 2, + .vsync_len = 1, + .xres = 480, + .yres = 800, + .refresh = 55, + }, + }, + .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | + VIDCON0_CLKSEL_LCD, + .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN + | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, + .default_win = 3, + .bpp = 32, +}; +#else /* Frame Buffer */ static struct s3c_fb_pd_win universal_fb_win0 = { .win_mode = { @@ -839,6 +863,7 @@ static struct s3c_fb_platdata universal_lcd_pdata __initdata = { | VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, }; +#endif static struct regulator_consumer_supply cam_vt_dio_supply = REGULATOR_SUPPLY("vdd_core", "0-003c"); @@ -1048,6 +1073,9 @@ static struct platform_device *universal_devices[] __initdata = { &s5p_device_onenand, &s5p_device_fimd0, &s5p_device_jpeg, +#ifdef CONFIG_DRM_EXYNOS + &exynos_device_drm, +#endif &s5p_device_mfc, &s5p_device_mfc_l, &s5p_device_mfc_r, @@ -1094,7 +1122,12 @@ static void __init universal_machine_init(void) s5p_i2c_hdmiphy_set_platdata(NULL); i2c_register_board_info(5, i2c5_devs, ARRAY_SIZE(i2c5_devs)); +#ifdef CONFIG_DRM_EXYNOS + s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; + exynos4_fimd0_gpio_setup_24bpp(); +#else s5p_fimd0_set_platdata(&universal_lcd_pdata); +#endif universal_touchkey_init(); i2c_register_board_info(I2C_GPIO_BUS_12, i2c_gpio12_devs, |