summaryrefslogtreecommitdiff
path: root/arch/arm/mach-exynos/mach-universal_c210.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-05-14 21:54:27 +0200
committerArnd Bergmann <arnd@arndb.de>2012-05-14 21:54:27 +0200
commit98a5f124b69c259b0698a3f8e8720c87df3b15ad (patch)
tree41947672d6d01b65acabbb50343c93e1c3607818 /arch/arm/mach-exynos/mach-universal_c210.c
parent81f96172d609bea39dcbe9fa010978caa81e58f7 (diff)
parent8e84e7d5be8f166694b1a919760a855c62d8444d (diff)
Merge branch 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/boards
Kukjin Kim <kgene.kim@samsung.com> writes: As there were discussions, some exynos4 boards have been updated because current dt cannot support all features for current board files on exynos4. Note, this should be merged after next/devel-samsung because some platform devices are defined in that. * 'next/board-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: EXYNOS: Add FIMC device to SMDK4X12 ARM: EXYNOS: Add MFC device to SMDK4X12 ARM: EXYNOS: Add DRM device to SMDKV310 ARM: EXYNOS: Add DRM device to Origen ARM: EXYNOS: Make BT platform data structure static in mach-origen.c file ARM: EXYNOS: Add DRM core support for NURI board ARM: EXYNOS: Add DRM core device support for Universal C210 board ARM: EXYNOS: Increase framebuffer virtual size for origen ARM: S3C64XX: Hook up new style regulator-regulator supplies on Cragganmore Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-exynos/mach-universal_c210.c')
-rw-r--r--arch/arm/mach-exynos/mach-universal_c210.c33
1 files changed, 33 insertions, 0 deletions
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,