OMAPDSS: Add some new fields to omap_video_timings
authorArchit Taneja <archit@ti.com>
Mon, 25 Jun 2012 06:56:38 +0000 (12:26 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 29 Jun 2012 07:15:49 +0000 (10:15 +0300)
Some panel timing related fields are contained in omap_panel_config in the form
of flags. The fields are:

- Hsync logic level
- Vsync logic level
- Data driven on rising/falling edge of pixel clock
- Output enable/Data enable logic level
- HSYNC/VSYNC driven on rising/falling edge of pixel clock

Out of these parameters, Hsync and Vsync logic levels are a part of the timings
in the Xorg modeline configuration. So it makes sense to move the to
omap_video_timings. The rest aren't a part of modeline, but it still makes
sense to move these since they are related to panel timings.

These fields stored in omap_panel_config in dssdev are configured for LCD
panels, and the corresponding LCD managers in the DISPC_POL_FREQo registers.

Add the above fields in omap_video_timings. Represent their state via new enums.

Add these parameters to the omap_video_timings instances in the panel drivers.
Keep the corresponding IVS, IHS, IPC, IEO, RF and ONOFF flags in
omap_panel_config for now. The struct will be removed later.

Signed-off-by: Archit Taneja <archit@ti.com>
drivers/video/omap2/displays/panel-acx565akm.c
drivers/video/omap2/displays/panel-generic-dpi.c
drivers/video/omap2/displays/panel-lgphilips-lb035q02.c
drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c
drivers/video/omap2/displays/panel-picodlp.c
drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
drivers/video/omap2/displays/panel-tfp410.c
drivers/video/omap2/displays/panel-tpo-td043mtea1.c
drivers/video/omap2/dss/hdmi_panel.c
drivers/video/omap2/dss/sdi.c
include/video/omapdss.h

index 9dc21ddc93dae5f3f9f796f0211157017a3f2802..acfaa40b932ed3bafc307883cb64c6f64b56d600 100644 (file)
@@ -487,6 +487,13 @@ static struct omap_video_timings acx_panel_timings = {
        .vfp            = 3,
        .vsw            = 3,
        .vbp            = 4,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
 };
 
 static int acx_panel_probe(struct omap_dss_device *dssdev)
index 0534926dfc748562fad1dbe84d0510e8d768d145..6cdd97c64330a987aba30f7588b24fa16d2c3ac3 100644 (file)
@@ -69,6 +69,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 11,
                        .vfp            = 3,
                        .vbp            = 2,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_LOW,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IEO,
@@ -92,6 +98,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 1,
                        .vfp            = 1,
                        .vbp            = 1,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .power_on_delay         = 50,
@@ -114,6 +126,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vfp            = 4,
                        .vsw            = 2,
                        .vbp            = 2,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IPC |
@@ -138,6 +156,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vfp            = 4,
                        .vsw            = 10,
                        .vbp            = 12 - 10,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .power_on_delay         = 0,
@@ -160,6 +184,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 2,
                        .vfp            = 4,
                        .vbp            = 11,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .power_on_delay         = 0,
@@ -182,6 +212,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 10,
                        .vfp            = 2,
                        .vbp            = 2,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_LOW,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IEO,
@@ -205,6 +241,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 3,
                        .vfp            = 12,
                        .vbp            = 25,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .power_on_delay         = 0,
@@ -227,6 +269,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 1,
                        .vfp            = 2,
                        .vbp            = 7,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .name                   = "nec_nl2432dr22-11b",
@@ -247,6 +295,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 1,
                        .vfp            = 1,
                        .vbp            = 1,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .name                   = "h4",
        },
@@ -266,6 +320,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 10,
                        .vfp            = 2,
                        .vbp            = 2,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
 
@@ -286,6 +346,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 3,
                        .vfp            = 13,
                        .vbp            = 29,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
                .name                   = "focaltech_etm070003dh6",
@@ -306,6 +372,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 23,
                        .vfp            = 1,
                        .vbp            = 1,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IPC,
@@ -329,6 +401,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 10,
                        .vfp            = 4,
                        .vbp            = 2,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .name                   = "ortustech_com43h4m10xtc",
        },
@@ -348,6 +426,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 10,
                        .vfp            = 12,
                        .vbp            = 23,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_LOW,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IEO,
@@ -369,6 +453,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 1,
                        .vfp            = 26,
                        .vbp            = 1,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .name                   = "mitsubishi_aa084sb01",
        },
@@ -386,6 +476,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 2,
                        .vfp            = 35,
                        .vbp            = 10,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .name                   = "edt_et0500g0dh6",
        },
@@ -405,6 +501,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 2,
                        .vfp            = 10,
                        .vbp            = 33,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IPC,
@@ -426,6 +528,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 2,
                        .vfp            = 10,
                        .vbp            = 33,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IPC,
@@ -447,6 +555,12 @@ static struct panel_config generic_dpi_panels[] = {
                        .vsw            = 4,
                        .vfp            = 1,
                        .vbp            = 23,
+
+                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
                },
                .config                 = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
                                                OMAP_DSS_LCD_IPC,
index 3b1877ce79830dfb154915012fc095a5ed3134a6..fc57ed63b08b32068d72f00e22e23309004dfc30 100644 (file)
@@ -40,6 +40,12 @@ static struct omap_video_timings lb035q02_timings = {
        .vsw            = 2,
        .vfp            = 4,
        .vbp            = 18,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
 };
 
 static int lb035q02_panel_power_on(struct omap_dss_device *dssdev)
index 53144087505443c5845747b207e5ae99241d5838..9eab0dda2f3395b2d55ce38af9707eebe7d1d21e 100644 (file)
@@ -76,6 +76,12 @@ static struct omap_video_timings nec_8048_panel_timings = {
        .vfp            = 3,
        .vsw            = 1,
        .vbp            = 4,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
 };
 
 static int nec_8048_bl_update_status(struct backlight_device *bl)
index 118e76b7b440e64d8e578d54b0024398aedacb41..9363cf4ab74007a453c04ab3e7630acefdea154b 100644 (file)
@@ -69,6 +69,12 @@ static struct omap_video_timings pico_ls_timings = {
        .vsw            = 2,
        .vfp            = 3,
        .vbp            = 14,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
 };
 
 static inline struct picodlp_panel_data
index 4285849d27b3af9eab4b88142c61b09163390486..6b7b43c808e28d6d36be380da750e433c8b16fbe 100644 (file)
@@ -44,6 +44,12 @@ static struct omap_video_timings sharp_ls_timings = {
        .vsw            = 1,
        .vfp            = 1,
        .vbp            = 1,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
 };
 
 static int sharp_ls_bl_update_status(struct backlight_device *bl)
index ab5b1d43ca1043e87f7ffe028e1671fed76ffcea..40cc0cfa5d179c77ce8c4bcf0282391162140766 100644 (file)
@@ -39,6 +39,12 @@ static const struct omap_video_timings tfp410_default_timings = {
        .vfp            = 3,
        .vsw            = 4,
        .vbp            = 7,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_HIGH,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
 };
 
 struct panel_drv_data {
index d9585c8950529d254b1961ed50e36128c7ab02dd..e627c6c5c5517fe7409dfb2f4796f51e5e15b174 100644 (file)
@@ -267,6 +267,12 @@ static const struct omap_video_timings tpo_td043_timings = {
        .vsw            = 1,
        .vfp            = 39,
        .vbp            = 34,
+
+       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
+       .data_pclk_edge = OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
+       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
 };
 
 static int tpo_td043_power_on(struct tpo_td043_device *tpo_td043)
index 788ebf001cb05ae7aa1aa189fdd3d98f666c7e71..5bf3a84d89cd8ff73aa43b935ab2f3769eea0f2a 100644 (file)
@@ -45,7 +45,10 @@ static int hdmi_panel_probe(struct omap_dss_device *dssdev)
 
        dssdev->panel.config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS;
 
-       dssdev->panel.timings = (struct omap_video_timings){640, 480, 25175, 96, 16, 48, 2 , 11, 31};
+       dssdev->panel.timings = (struct omap_video_timings)
+                       { 640, 480, 25175, 96, 16, 48, 2, 11, 31,
+                               OMAPDSS_SIG_ACTIVE_LOW, OMAPDSS_SIG_ACTIVE_LOW,
+                       };
 
        DSSDBG("hdmi_panel_probe x_res= %d y_res = %d\n",
                dssdev->panel.timings.x_res,
index 5268fdba955dfcae60801ae49f3020c7cb27dc66..4f43537d021447a9b0e74f92706aba3e018e0aaa 100644 (file)
@@ -80,6 +80,9 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev)
        /* 15.5.9.1.2 */
        dssdev->panel.config |= OMAP_DSS_LCD_RF | OMAP_DSS_LCD_ONOFF;
 
+       dssdev->panel.timings.data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
+       dssdev->panel.timings.sync_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE;
+
        dispc_mgr_set_pol_freq(dssdev->manager->id, dssdev->panel.config);
 
        r = dss_calc_clock_div(t->pixel_clock * 1000, &dss_cinfo, &dispc_cinfo);
index 115bbd8498062ae13266ad1632031e2462ea1129..be6590dc66a53c2e665c2f6a90a9598c167e7e3a 100644 (file)
@@ -130,6 +130,17 @@ enum omap_panel_config {
        OMAP_DSS_LCD_ONOFF              = 1<<5,
 };
 
+enum omap_dss_signal_level {
+       OMAPDSS_SIG_ACTIVE_HIGH = 0,
+       OMAPDSS_SIG_ACTIVE_LOW  = 1,
+};
+
+enum omap_dss_signal_edge {
+       OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
+       OMAPDSS_DRIVE_SIG_RISING_EDGE,
+       OMAPDSS_DRIVE_SIG_FALLING_EDGE,
+};
+
 enum omap_dss_venc_type {
        OMAP_DSS_VENC_TYPE_COMPOSITE,
        OMAP_DSS_VENC_TYPE_SVIDEO,
@@ -337,6 +348,17 @@ struct omap_video_timings {
        u16 vfp;        /* Vertical front porch */
        /* Unit: line clocks */
        u16 vbp;        /* Vertical back porch */
+
+       /* Vsync logic level */
+       enum omap_dss_signal_level vsync_level;
+       /* Hsync logic level */
+       enum omap_dss_signal_level hsync_level;
+       /* Pixel clock edge to drive LCD data */
+       enum omap_dss_signal_edge data_pclk_edge;
+       /* Data enable logic level */
+       enum omap_dss_signal_level de_level;
+       /* Pixel clock edges to drive HSYNC and VSYNC signals */
+       enum omap_dss_signal_edge sync_pclk_edge;
 };
 
 #ifdef CONFIG_OMAP2_DSS_VENC