aboutsummaryrefslogtreecommitdiffstats
path: root/include/video/omapdss.h
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2011-09-05 07:18:27 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-09-30 09:16:30 -0400
commit8af6ff0107f0720b8fbf4feca7031d3e36c2fa11 (patch)
tree7051173d9638281697aaa695fb9e51e0b898f7c5 /include/video/omapdss.h
parent18b7d09908fdef8755d934a0c37d709e94e8461a (diff)
OMAP: DSS2: DSI Video mode support
Add initial support for DSI video mode panels: - Add a new structure omap_dss_dsi_videomode_data in the member "panel" in omap_dss_device struct. This allows panel driver to configure dsi video_mode specific parameters. - Configure basic DSI video mode timing parameters: HBP, HFP, HSA, VBP, VFP, VSA, TL and VACT. - Configure DSI protocol engine registers for video_mode support. - Introduce functions dsi_video_mode_enable() and dsi_video_mode_disable() which enable/disable video mode for a given virtual channel and a given pixel format type. Things left for later - Add functions to check for errors in video mode timings provided by panel. - Configure timing registers required for command mode interleaving. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'include/video/omapdss.h')
-rw-r--r--include/video/omapdss.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 89a9c290cf5d..44f423ff64bd 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -228,6 +228,35 @@ void rfbi_bus_lock(void);
228void rfbi_bus_unlock(void); 228void rfbi_bus_unlock(void);
229 229
230/* DSI */ 230/* DSI */
231
232struct omap_dss_dsi_videomode_data {
233 /* DSI video mode blanking data */
234 /* Unit: byte clock cycles */
235 u16 hsa;
236 u16 hfp;
237 u16 hbp;
238 /* Unit: line clocks */
239 u16 vsa;
240 u16 vfp;
241 u16 vbp;
242
243 /* DSI blanking modes */
244 int blanking_mode;
245 int hsa_blanking_mode;
246 int hbp_blanking_mode;
247 int hfp_blanking_mode;
248
249 /* Video port sync events */
250 int vp_de_pol;
251 int vp_hsync_pol;
252 int vp_vsync_pol;
253 bool vp_vsync_end;
254 bool vp_hsync_end;
255
256 bool ddr_clk_always_on;
257 int window_sync;
258};
259
231void dsi_bus_lock(struct omap_dss_device *dssdev); 260void dsi_bus_lock(struct omap_dss_device *dssdev);
232void dsi_bus_unlock(struct omap_dss_device *dssdev); 261void dsi_bus_unlock(struct omap_dss_device *dssdev);
233int dsi_vc_dcs_write(struct omap_dss_device *dssdev, int channel, u8 *data, 262int dsi_vc_dcs_write(struct omap_dss_device *dssdev, int channel, u8 *data,
@@ -258,6 +287,8 @@ int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int channel,
258 u16 len); 287 u16 len);
259int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); 288int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel);
260int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); 289int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
290int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel);
291void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel);
261 292
262/* Board specific data */ 293/* Board specific data */
263struct omap_dss_board_info { 294struct omap_dss_board_info {
@@ -505,6 +536,7 @@ struct omap_dss_device {
505 536
506 enum omap_dss_dsi_pixel_format dsi_pix_fmt; 537 enum omap_dss_dsi_pixel_format dsi_pix_fmt;
507 enum omap_dss_dsi_mode dsi_mode; 538 enum omap_dss_dsi_mode dsi_mode;
539 struct omap_dss_dsi_videomode_data dsi_vm_data;
508 } panel; 540 } panel;
509 541
510 struct { 542 struct {