diff options
Diffstat (limited to 'arch/arm/mach-exynos/midas-lcd.c')
-rw-r--r-- | arch/arm/mach-exynos/midas-lcd.c | 75 |
1 files changed, 67 insertions, 8 deletions
diff --git a/arch/arm/mach-exynos/midas-lcd.c b/arch/arm/mach-exynos/midas-lcd.c index 549a742c1a4..68125e2da29 100644 --- a/arch/arm/mach-exynos/midas-lcd.c +++ b/arch/arm/mach-exynos/midas-lcd.c @@ -232,11 +232,7 @@ static struct lcd_platform_data ld9040_platform_data = { .gpio_cfg_earlysuspend = lcd_gpio_cfg_earlysuspend, .gpio_cfg_lateresume = lcd_gpio_cfg_lateresume, /* it indicates whether lcd panel is enabled from u-boot. */ -#if defined(CONFIG_MACH_S2PLUS) - .lcd_enabled = 1, -#else .lcd_enabled = 0, -#endif .reset_delay = 20, /* 20ms */ .power_on_delay = 20, /* 20ms */ .power_off_delay = 200, /* 200ms */ @@ -467,9 +463,14 @@ static struct platform_device s3c_device_spi_gpio = { /* for Geminus based on MIPI-DSI interface */ static struct s3cfb_lcd s6e8aa0 = { .name = "s6e8aa0", - .width = 720, .height = 1280, +#if defined(CONFIG_S6E8AA0_AMS529HA01) + .width = 800, + .p_width = 64, +#else + .width = 720, .p_width = 60, /* 59.76 mm */ +#endif .p_height = 106, /* 106.24 mm */ .bpp = 24, @@ -505,6 +506,48 @@ static struct s3cfb_lcd s6e8aa0 = { }; #endif +#ifdef CONFIG_FB_S5P_S6E63M0 +/* for Geminus based on MIPI-DSI interface */ +static struct s3cfb_lcd s6e63m0 = { + .name = "s6e63m0", + .width = 480, + .height = 800, + .p_width = 60, /* 59.76 mm */ + .p_height = 106, /* 106.24 mm */ + .bpp = 24, + + .freq = 56, + + /* minumun value is 0 except for wr_act time. */ + .cpu_timing = { + .cs_setup = 0, + .wr_setup = 0, + .wr_act = 1, + .wr_hold = 0, + }, + + .timing = { + .h_fp = 16, + .h_bp = 14, + .h_sw = 2, + .v_fp = 28, + .v_fpe = 1, + .v_bp = 1, + .v_bpe = 1, + .v_sw = 2, + .cmd_allow_len = 11, /* v_fp=stable_vfp + cmd_allow_len */ + .stable_vfp = 2, + }, + + .polarity = { + .rise_vclk = 1, + .inv_hsync = 0, + .inv_vsync = 0, + .inv_vden = 0, + }, +}; +#endif + #ifdef CONFIG_FB_S5P_S6E39A0 static struct s3cfb_lcd s6e39a0 = { .name = "s6e8aa0", @@ -727,9 +770,6 @@ void __init mipi_fb_init(void) printk(KERN_INFO "%s :: fb_platform_data.hw_ver = 0x%x\n", __func__, fb_platform_data.hw_ver); - fb_platform_data.mipi_is_enabled = 1; - fb_platform_data.interface_mode = FIMD_CPU_INTERFACE; - dsim_pd = (struct s5p_platform_dsim *) s5p_device_dsim.dev.platform_data; @@ -745,10 +785,19 @@ void __init mipi_fb_init(void) dsim_lcd_info->lcd_panel_info = (void *)&s6d6aa1; #endif +#ifdef CONFIG_FB_S5P_S6E63M0 + dsim_lcd_info->lcd_panel_info = (void *)&s6e63m0; + dsim_pd->dsim_info->e_no_data_lane = DSIM_DATA_LANE_2; + /* 320Mbps */ + dsim_pd->dsim_info->p = 3; + dsim_pd->dsim_info->m = 80; + dsim_pd->dsim_info->s = 1; +#else /* 500Mbps */ dsim_pd->dsim_info->p = 3; dsim_pd->dsim_info->m = 125; dsim_pd->dsim_info->s = 1; +#endif mipi_ddi_pd = (struct mipi_ddi_platform_data *) dsim_lcd_info->mipi_ddi_pd; @@ -775,6 +824,9 @@ struct s3c_platform_fb fb_platform_data __initdata = { #if defined(CONFIG_FB_S5P_S6E8AA0) .lcd = &s6e8aa0 #endif +#if defined(CONFIG_FB_S5P_S6E63M0) + .lcd = &s6e63m0 +#endif #if defined(CONFIG_FB_S5P_S6E39A0) .lcd = &s6e39a0 #endif @@ -798,6 +850,13 @@ static struct platform_mdnie_data mdnie_data = { }; #endif +#if defined(CONFIG_FB_S5P_S6C1372) +void check_lcd_type(void) +{ + mdnie_data.display_type = lcdtype; +} +#endif + struct platform_device mdnie_device = { .name = "mdnie", .id = -1, |