aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/midas-lcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/midas-lcd.c')
-rw-r--r--arch/arm/mach-exynos/midas-lcd.c75
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,