summaryrefslogtreecommitdiffstats
path: root/include/video
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2012-06-25 08:56:38 +0200
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-06-29 09:15:49 +0200
commita8d5e41cef43bd740ca7c56ff316bdee30040a91 (patch)
tree13c8290cc97bd6a0c3437765d5fc2ea8d412498a /include/video
parentOMAPDSS: Remove passive matrix LCD support (part 4) (diff)
downloadlinux-a8d5e41cef43bd740ca7c56ff316bdee30040a91.tar.xz
linux-a8d5e41cef43bd740ca7c56ff316bdee30040a91.zip
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: Archit Taneja <archit@ti.com>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/omapdss.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 115bbd849806..be6590dc66a5 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -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