diff options
| author | Archit Taneja <archit@ti.com> | 2011-09-05 07:18:27 -0400 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2011-09-30 09:16:30 -0400 |
| commit | 8af6ff0107f0720b8fbf4feca7031d3e36c2fa11 (patch) | |
| tree | 7051173d9638281697aaa695fb9e51e0b898f7c5 /include/video | |
| parent | 18b7d09908fdef8755d934a0c37d709e94e8461a (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')
| -rw-r--r-- | include/video/omapdss.h | 32 |
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); | |||
| 228 | void rfbi_bus_unlock(void); | 228 | void rfbi_bus_unlock(void); |
| 229 | 229 | ||
| 230 | /* DSI */ | 230 | /* DSI */ |
| 231 | |||
| 232 | struct 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 | |||
| 231 | void dsi_bus_lock(struct omap_dss_device *dssdev); | 260 | void dsi_bus_lock(struct omap_dss_device *dssdev); |
| 232 | void dsi_bus_unlock(struct omap_dss_device *dssdev); | 261 | void dsi_bus_unlock(struct omap_dss_device *dssdev); |
| 233 | int dsi_vc_dcs_write(struct omap_dss_device *dssdev, int channel, u8 *data, | 262 | int 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); |
| 259 | int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); | 288 | int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); |
| 260 | int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); | 289 | int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); |
| 290 | int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel); | ||
| 291 | void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel); | ||
| 261 | 292 | ||
| 262 | /* Board specific data */ | 293 | /* Board specific data */ |
| 263 | struct omap_dss_board_info { | 294 | struct 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 { |
