Commit a8d5e41c authored by Archit Taneja's avatar Archit Taneja Committed by Tomi Valkeinen

OMAPDSS: Add some new fields to omap_video_timings

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: default avatarArchit Taneja <archit@ti.com>
parent a9105cb5
...@@ -487,6 +487,13 @@ static struct omap_video_timings acx_panel_timings = { ...@@ -487,6 +487,13 @@ static struct omap_video_timings acx_panel_timings = {
.vfp = 3, .vfp = 3,
.vsw = 3, .vsw = 3,
.vbp = 4, .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) static int acx_panel_probe(struct omap_dss_device *dssdev)
......
...@@ -69,6 +69,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -69,6 +69,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 11, .vsw = 11,
.vfp = 3, .vfp = 3,
.vbp = 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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IEO, OMAP_DSS_LCD_IEO,
...@@ -92,6 +98,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -92,6 +98,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 1, .vsw = 1,
.vfp = 1, .vfp = 1,
.vbp = 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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.power_on_delay = 50, .power_on_delay = 50,
...@@ -114,6 +126,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -114,6 +126,12 @@ static struct panel_config generic_dpi_panels[] = {
.vfp = 4, .vfp = 4,
.vsw = 2, .vsw = 2,
.vbp = 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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IPC | OMAP_DSS_LCD_IPC |
...@@ -138,6 +156,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -138,6 +156,12 @@ static struct panel_config generic_dpi_panels[] = {
.vfp = 4, .vfp = 4,
.vsw = 10, .vsw = 10,
.vbp = 12 - 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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.power_on_delay = 0, .power_on_delay = 0,
...@@ -160,6 +184,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -160,6 +184,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 2, .vsw = 2,
.vfp = 4, .vfp = 4,
.vbp = 11, .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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.power_on_delay = 0, .power_on_delay = 0,
...@@ -182,6 +212,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -182,6 +212,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 10, .vsw = 10,
.vfp = 2, .vfp = 2,
.vbp = 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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IEO, OMAP_DSS_LCD_IEO,
...@@ -205,6 +241,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -205,6 +241,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 3, .vsw = 3,
.vfp = 12, .vfp = 12,
.vbp = 25, .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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.power_on_delay = 0, .power_on_delay = 0,
...@@ -227,6 +269,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -227,6 +269,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 1, .vsw = 1,
.vfp = 2, .vfp = 2,
.vbp = 7, .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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.name = "nec_nl2432dr22-11b", .name = "nec_nl2432dr22-11b",
...@@ -247,6 +295,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -247,6 +295,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 1, .vsw = 1,
.vfp = 1, .vfp = 1,
.vbp = 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", .name = "h4",
}, },
...@@ -266,6 +320,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -266,6 +320,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 10, .vsw = 10,
.vfp = 2, .vfp = 2,
.vbp = 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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
...@@ -286,6 +346,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -286,6 +346,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 3, .vsw = 3,
.vfp = 13, .vfp = 13,
.vbp = 29, .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, .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
.name = "focaltech_etm070003dh6", .name = "focaltech_etm070003dh6",
...@@ -306,6 +372,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -306,6 +372,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 23, .vsw = 23,
.vfp = 1, .vfp = 1,
.vbp = 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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IPC, OMAP_DSS_LCD_IPC,
...@@ -329,6 +401,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -329,6 +401,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 10, .vsw = 10,
.vfp = 4, .vfp = 4,
.vbp = 2, .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", .name = "ortustech_com43h4m10xtc",
}, },
...@@ -348,6 +426,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -348,6 +426,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 10, .vsw = 10,
.vfp = 12, .vfp = 12,
.vbp = 23, .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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IEO, OMAP_DSS_LCD_IEO,
...@@ -369,6 +453,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -369,6 +453,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 1, .vsw = 1,
.vfp = 26, .vfp = 26,
.vbp = 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 = "mitsubishi_aa084sb01", .name = "mitsubishi_aa084sb01",
}, },
...@@ -386,6 +476,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -386,6 +476,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 2, .vsw = 2,
.vfp = 35, .vfp = 35,
.vbp = 10, .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", .name = "edt_et0500g0dh6",
}, },
...@@ -405,6 +501,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -405,6 +501,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 2, .vsw = 2,
.vfp = 10, .vfp = 10,
.vbp = 33, .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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IPC, OMAP_DSS_LCD_IPC,
...@@ -426,6 +528,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -426,6 +528,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 2, .vsw = 2,
.vfp = 10, .vfp = 10,
.vbp = 33, .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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IPC, OMAP_DSS_LCD_IPC,
...@@ -447,6 +555,12 @@ static struct panel_config generic_dpi_panels[] = { ...@@ -447,6 +555,12 @@ static struct panel_config generic_dpi_panels[] = {
.vsw = 4, .vsw = 4,
.vfp = 1, .vfp = 1,
.vbp = 23, .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 | .config = OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS |
OMAP_DSS_LCD_IPC, OMAP_DSS_LCD_IPC,
......
...@@ -40,6 +40,12 @@ static struct omap_video_timings lb035q02_timings = { ...@@ -40,6 +40,12 @@ static struct omap_video_timings lb035q02_timings = {
.vsw = 2, .vsw = 2,
.vfp = 4, .vfp = 4,
.vbp = 18, .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) static int lb035q02_panel_power_on(struct omap_dss_device *dssdev)
......
...@@ -76,6 +76,12 @@ static struct omap_video_timings nec_8048_panel_timings = { ...@@ -76,6 +76,12 @@ static struct omap_video_timings nec_8048_panel_timings = {
.vfp = 3, .vfp = 3,
.vsw = 1, .vsw = 1,
.vbp = 4, .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) static int nec_8048_bl_update_status(struct backlight_device *bl)
......
...@@ -69,6 +69,12 @@ static struct omap_video_timings pico_ls_timings = { ...@@ -69,6 +69,12 @@ static struct omap_video_timings pico_ls_timings = {
.vsw = 2, .vsw = 2,
.vfp = 3, .vfp = 3,
.vbp = 14, .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 static inline struct picodlp_panel_data
......
...@@ -44,6 +44,12 @@ static struct omap_video_timings sharp_ls_timings = { ...@@ -44,6 +44,12 @@ static struct omap_video_timings sharp_ls_timings = {
.vsw = 1, .vsw = 1,
.vfp = 1, .vfp = 1,
.vbp = 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) static int sharp_ls_bl_update_status(struct backlight_device *bl)
......
...@@ -39,6 +39,12 @@ static const struct omap_video_timings tfp410_default_timings = { ...@@ -39,6 +39,12 @@ static const struct omap_video_timings tfp410_default_timings = {
.vfp = 3, .vfp = 3,
.vsw = 4, .vsw = 4,
.vbp = 7, .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 { struct panel_drv_data {
......
...@@ -267,6 +267,12 @@ static const struct omap_video_timings tpo_td043_timings = { ...@@ -267,6 +267,12 @@ static const struct omap_video_timings tpo_td043_timings = {
.vsw = 1, .vsw = 1,
.vfp = 39, .vfp = 39,
.vbp = 34, .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) static int tpo_td043_power_on(struct tpo_td043_device *tpo_td043)
......
...@@ -45,7 +45,10 @@ static int hdmi_panel_probe(struct omap_dss_device *dssdev) ...@@ -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.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", DSSDBG("hdmi_panel_probe x_res= %d y_res = %d\n",
dssdev->panel.timings.x_res, dssdev->panel.timings.x_res,
......
...@@ -80,6 +80,9 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev) ...@@ -80,6 +80,9 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev)
/* 15.5.9.1.2 */ /* 15.5.9.1.2 */
dssdev->panel.config |= OMAP_DSS_LCD_RF | OMAP_DSS_LCD_ONOFF; 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); dispc_mgr_set_pol_freq(dssdev->manager->id, dssdev->panel.config);
r = dss_calc_clock_div(t->pixel_clock * 1000, &dss_cinfo, &dispc_cinfo); r = dss_calc_clock_div(t->pixel_clock * 1000, &dss_cinfo, &dispc_cinfo);
......
...@@ -130,6 +130,17 @@ enum omap_panel_config { ...@@ -130,6 +130,17 @@ enum omap_panel_config {
OMAP_DSS_LCD_ONOFF = 1<<5, 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 { enum omap_dss_venc_type {
OMAP_DSS_VENC_TYPE_COMPOSITE, OMAP_DSS_VENC_TYPE_COMPOSITE,
OMAP_DSS_VENC_TYPE_SVIDEO, OMAP_DSS_VENC_TYPE_SVIDEO,
...@@ -337,6 +348,17 @@ struct omap_video_timings { ...@@ -337,6 +348,17 @@ struct omap_video_timings {
u16 vfp; /* Vertical front porch */ u16 vfp; /* Vertical front porch */
/* Unit: line clocks */ /* Unit: line clocks */
u16 vbp; /* Vertical back porch */ 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 #ifdef CONFIG_OMAP2_DSS_VENC
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment