Skip to content

Commit

Permalink
ARM: EXYNOS: Add DRM core support for NURI board
Browse files Browse the repository at this point in the history
Add core DRM device and alternative platform device data
for FIMD DRM subdriver. Based on the initial patch by
Joonyoung Shim <[email protected]>.

Signed-off-by: Marek Szyprowski <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
Signed-off-by: Kukjin Kim <[email protected]>
  • Loading branch information
mszyprow authored and kgene committed May 11, 2012
1 parent 6dafa4a commit db6856e
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/mach-exynos/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ config MACH_NURI
select S5P_DEV_USB_EHCI
select S5P_SETUP_MIPIPHY
select EXYNOS4_DEV_DMA
select EXYNOS_DEV_DRM
select EXYNOS4_SETUP_FIMC
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_I2C1
Expand Down
33 changes: 33 additions & 0 deletions arch/arm/mach-exynos/mach-nuri.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <linux/mmc/host.h>
#include <linux/fb.h>
#include <linux/pwm_backlight.h>
#include <drm/exynos_drm.h>

#include <video/platform_lcd.h>
#include <media/m5mols.h>
Expand Down Expand Up @@ -213,6 +214,29 @@ static struct platform_device nuri_gpio_keys = {
},
};

#ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
.panel = {
.timing = {
.xres = 1024,
.yres = 600,
.hsync_len = 40,
.left_margin = 79,
.right_margin = 200,
.vsync_len = 10,
.upper_margin = 10,
.lower_margin = 11,
.refresh = 60,
},
},
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
VIDCON0_CLKSEL_LCD,
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
.default_win = 3,
.bpp = 32,
};

#else
/* Frame Buffer */
static struct s3c_fb_pd_win nuri_fb_win0 = {
.win_mode = {
Expand All @@ -239,6 +263,7 @@ static struct s3c_fb_platdata nuri_fb_pdata __initdata = {
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
.setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
};
#endif

static void nuri_lcd_power_on(struct plat_lcd_data *pd, unsigned int power)
{
Expand Down Expand Up @@ -1302,6 +1327,9 @@ static struct platform_device *nuri_devices[] __initdata = {
&cam_vdda_fixed_rdev,
&cam_8m_12v_fixed_rdev,
&exynos4_bus_devfreq,
#ifdef CONFIG_DRM_EXYNOS
&exynos_device_drm,
#endif
};

static void __init nuri_map_io(void)
Expand Down Expand Up @@ -1334,7 +1362,12 @@ static void __init nuri_machine_init(void)
i2c_register_board_info(9, i2c9_devs, ARRAY_SIZE(i2c9_devs));
s3c_i2c6_set_platdata(&nuri_i2c6_platdata);

#ifdef CONFIG_DRM_EXYNOS
s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
exynos4_fimd0_gpio_setup_24bpp();
#else
s5p_fimd0_set_platdata(&nuri_fb_pdata);
#endif

nuri_camera_init();

Expand Down

0 comments on commit db6856e

Please sign in to comment.