diff options
Diffstat (limited to 'drivers/video/omap2/dss/dss.h')
| -rw-r--r-- | drivers/video/omap2/dss/dss.h | 98 |
1 files changed, 61 insertions, 37 deletions
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h index c2f582bb19c..8ab6d43329b 100644 --- a/drivers/video/omap2/dss/dss.h +++ b/drivers/video/omap2/dss/dss.h | |||
| @@ -117,15 +117,6 @@ enum dss_clock { | |||
| 117 | DSS_CLK_VIDFCK = 1 << 4, /* DSS_96M_FCLK*/ | 117 | DSS_CLK_VIDFCK = 1 << 4, /* DSS_96M_FCLK*/ |
| 118 | }; | 118 | }; |
| 119 | 119 | ||
| 120 | enum dss_clk_source { | ||
| 121 | DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC, /* OMAP3: DSI1_PLL_FCLK | ||
| 122 | * OMAP4: PLL1_CLK1 */ | ||
| 123 | DSS_CLK_SRC_DSI_PLL_HSDIV_DSI, /* OMAP3: DSI2_PLL_FCLK | ||
| 124 | * OMAP4: PLL1_CLK2 */ | ||
| 125 | DSS_CLK_SRC_FCK, /* OMAP2/3: DSS1_ALWON_FCLK | ||
| 126 | * OMAP4: DSS_FCLK */ | ||
| 127 | }; | ||
| 128 | |||
| 129 | enum dss_hdmi_venc_clk_source_select { | 120 | enum dss_hdmi_venc_clk_source_select { |
| 130 | DSS_VENC_TV_CLK = 0, | 121 | DSS_VENC_TV_CLK = 0, |
| 131 | DSS_HDMI_M_PCLK = 1, | 122 | DSS_HDMI_M_PCLK = 1, |
| @@ -236,7 +227,7 @@ void dss_clk_enable(enum dss_clock clks); | |||
| 236 | void dss_clk_disable(enum dss_clock clks); | 227 | void dss_clk_disable(enum dss_clock clks); |
| 237 | unsigned long dss_clk_get_rate(enum dss_clock clk); | 228 | unsigned long dss_clk_get_rate(enum dss_clock clk); |
| 238 | int dss_need_ctx_restore(void); | 229 | int dss_need_ctx_restore(void); |
| 239 | const char *dss_get_generic_clk_source_name(enum dss_clk_source clk_src); | 230 | const char *dss_get_generic_clk_source_name(enum omap_dss_clk_source clk_src); |
| 240 | void dss_dump_clocks(struct seq_file *s); | 231 | void dss_dump_clocks(struct seq_file *s); |
| 241 | 232 | ||
| 242 | void dss_dump_regs(struct seq_file *s); | 233 | void dss_dump_regs(struct seq_file *s); |
| @@ -248,13 +239,14 @@ void dss_sdi_init(u8 datapairs); | |||
| 248 | int dss_sdi_enable(void); | 239 | int dss_sdi_enable(void); |
| 249 | void dss_sdi_disable(void); | 240 | void dss_sdi_disable(void); |
| 250 | 241 | ||
| 251 | void dss_select_dispc_clk_source(enum dss_clk_source clk_src); | 242 | void dss_select_dispc_clk_source(enum omap_dss_clk_source clk_src); |
| 252 | void dss_select_dsi_clk_source(enum dss_clk_source clk_src); | 243 | void dss_select_dsi_clk_source(int dsi_module, |
| 244 | enum omap_dss_clk_source clk_src); | ||
| 253 | void dss_select_lcd_clk_source(enum omap_channel channel, | 245 | void dss_select_lcd_clk_source(enum omap_channel channel, |
| 254 | enum dss_clk_source clk_src); | 246 | enum omap_dss_clk_source clk_src); |
| 255 | enum dss_clk_source dss_get_dispc_clk_source(void); | 247 | enum omap_dss_clk_source dss_get_dispc_clk_source(void); |
| 256 | enum dss_clk_source dss_get_dsi_clk_source(void); | 248 | enum omap_dss_clk_source dss_get_dsi_clk_source(int dsi_module); |
| 257 | enum dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel); | 249 | enum omap_dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel); |
| 258 | 250 | ||
| 259 | void dss_set_venc_output(enum omap_dss_venc_type type); | 251 | void dss_set_venc_output(enum omap_dss_venc_type type); |
| 260 | void dss_set_dac_pwrdn_bgz(bool enable); | 252 | void dss_set_dac_pwrdn_bgz(bool enable); |
| @@ -284,31 +276,39 @@ static inline void sdi_exit(void) | |||
| 284 | 276 | ||
| 285 | /* DSI */ | 277 | /* DSI */ |
| 286 | #ifdef CONFIG_OMAP2_DSS_DSI | 278 | #ifdef CONFIG_OMAP2_DSS_DSI |
| 279 | |||
| 280 | struct dentry; | ||
| 281 | struct file_operations; | ||
| 282 | |||
| 287 | int dsi_init_platform_driver(void); | 283 | int dsi_init_platform_driver(void); |
| 288 | void dsi_uninit_platform_driver(void); | 284 | void dsi_uninit_platform_driver(void); |
| 289 | 285 | ||
| 290 | void dsi_dump_clocks(struct seq_file *s); | 286 | void dsi_dump_clocks(struct seq_file *s); |
| 291 | void dsi_dump_irqs(struct seq_file *s); | 287 | void dsi_create_debugfs_files_irq(struct dentry *debugfs_dir, |
| 292 | void dsi_dump_regs(struct seq_file *s); | 288 | const struct file_operations *debug_fops); |
| 289 | void dsi_create_debugfs_files_reg(struct dentry *debugfs_dir, | ||
| 290 | const struct file_operations *debug_fops); | ||
| 293 | 291 | ||
| 294 | void dsi_save_context(void); | 292 | void dsi_save_context(void); |
| 295 | void dsi_restore_context(void); | 293 | void dsi_restore_context(void); |
| 296 | 294 | ||
| 297 | int dsi_init_display(struct omap_dss_device *display); | 295 | int dsi_init_display(struct omap_dss_device *display); |
| 298 | void dsi_irq_handler(void); | 296 | void dsi_irq_handler(void); |
| 299 | unsigned long dsi_get_pll_hsdiv_dispc_rate(void); | 297 | unsigned long dsi_get_pll_hsdiv_dispc_rate(struct platform_device *dsidev); |
| 300 | int dsi_pll_set_clock_div(struct dsi_clock_info *cinfo); | 298 | int dsi_pll_set_clock_div(struct platform_device *dsidev, |
| 301 | int dsi_pll_calc_clock_div_pck(bool is_tft, unsigned long req_pck, | 299 | struct dsi_clock_info *cinfo); |
| 302 | struct dsi_clock_info *cinfo, | 300 | int dsi_pll_calc_clock_div_pck(struct platform_device *dsidev, bool is_tft, |
| 301 | unsigned long req_pck, struct dsi_clock_info *cinfo, | ||
| 303 | struct dispc_clock_info *dispc_cinfo); | 302 | struct dispc_clock_info *dispc_cinfo); |
| 304 | int dsi_pll_init(struct omap_dss_device *dssdev, bool enable_hsclk, | 303 | int dsi_pll_init(struct platform_device *dsidev, bool enable_hsclk, |
| 305 | bool enable_hsdiv); | 304 | bool enable_hsdiv); |
| 306 | void dsi_pll_uninit(void); | 305 | void dsi_pll_uninit(struct platform_device *dsidev, bool disconnect_lanes); |
| 307 | void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, | 306 | void dsi_get_overlay_fifo_thresholds(enum omap_plane plane, |
| 308 | u32 fifo_size, enum omap_burst_size *burst_size, | 307 | u32 fifo_size, enum omap_burst_size *burst_size, |
| 309 | u32 *fifo_low, u32 *fifo_high); | 308 | u32 *fifo_low, u32 *fifo_high); |
| 310 | void dsi_wait_pll_hsdiv_dispc_active(void); | 309 | void dsi_wait_pll_hsdiv_dispc_active(struct platform_device *dsidev); |
| 311 | void dsi_wait_pll_hsdiv_dsi_active(void); | 310 | void dsi_wait_pll_hsdiv_dsi_active(struct platform_device *dsidev); |
| 311 | struct platform_device *dsi_get_dsidev_from_id(int module); | ||
| 312 | #else | 312 | #else |
| 313 | static inline int dsi_init_platform_driver(void) | 313 | static inline int dsi_init_platform_driver(void) |
| 314 | { | 314 | { |
| @@ -317,17 +317,47 @@ static inline int dsi_init_platform_driver(void) | |||
| 317 | static inline void dsi_uninit_platform_driver(void) | 317 | static inline void dsi_uninit_platform_driver(void) |
| 318 | { | 318 | { |
| 319 | } | 319 | } |
| 320 | static inline unsigned long dsi_get_pll_hsdiv_dispc_rate(void) | 320 | static inline unsigned long dsi_get_pll_hsdiv_dispc_rate(struct platform_device *dsidev) |
| 321 | { | 321 | { |
| 322 | WARN("%s: DSI not compiled in, returning rate as 0\n", __func__); | 322 | WARN("%s: DSI not compiled in, returning rate as 0\n", __func__); |
| 323 | return 0; | 323 | return 0; |
| 324 | } | 324 | } |
| 325 | static inline void dsi_wait_pll_hsdiv_dispc_active(void) | 325 | static inline int dsi_pll_set_clock_div(struct platform_device *dsidev, |
| 326 | struct dsi_clock_info *cinfo) | ||
| 327 | { | ||
| 328 | WARN("%s: DSI not compiled in\n", __func__); | ||
| 329 | return -ENODEV; | ||
| 330 | } | ||
| 331 | static inline int dsi_pll_calc_clock_div_pck(struct platform_device *dsidev, | ||
| 332 | bool is_tft, unsigned long req_pck, | ||
| 333 | struct dsi_clock_info *dsi_cinfo, | ||
| 334 | struct dispc_clock_info *dispc_cinfo) | ||
| 335 | { | ||
| 336 | WARN("%s: DSI not compiled in\n", __func__); | ||
| 337 | return -ENODEV; | ||
| 338 | } | ||
| 339 | static inline int dsi_pll_init(struct platform_device *dsidev, | ||
| 340 | bool enable_hsclk, bool enable_hsdiv) | ||
| 326 | { | 341 | { |
| 342 | WARN("%s: DSI not compiled in\n", __func__); | ||
| 343 | return -ENODEV; | ||
| 327 | } | 344 | } |
| 328 | static inline void dsi_wait_pll_hsdiv_dsi_active(void) | 345 | static inline void dsi_pll_uninit(struct platform_device *dsidev, |
| 346 | bool disconnect_lanes) | ||
| 329 | { | 347 | { |
| 330 | } | 348 | } |
| 349 | static inline void dsi_wait_pll_hsdiv_dispc_active(struct platform_device *dsidev) | ||
| 350 | { | ||
| 351 | } | ||
| 352 | static inline void dsi_wait_pll_hsdiv_dsi_active(struct platform_device *dsidev) | ||
| 353 | { | ||
| 354 | } | ||
| 355 | static inline struct platform_device *dsi_get_dsidev_from_id(int module) | ||
| 356 | { | ||
| 357 | WARN("%s: DSI not compiled in, returning platform device as NULL\n", | ||
| 358 | __func__); | ||
| 359 | return NULL; | ||
| 360 | } | ||
| 331 | #endif | 361 | #endif |
| 332 | 362 | ||
| 333 | /* DPI */ | 363 | /* DPI */ |
| @@ -391,7 +421,8 @@ int dispc_setup_plane(enum omap_plane plane, | |||
| 391 | enum omap_dss_rotation_type rotation_type, | 421 | enum omap_dss_rotation_type rotation_type, |
| 392 | u8 rotation, bool mirror, | 422 | u8 rotation, bool mirror, |
| 393 | u8 global_alpha, u8 pre_mult_alpha, | 423 | u8 global_alpha, u8 pre_mult_alpha, |
| 394 | enum omap_channel channel); | 424 | enum omap_channel channel, |
| 425 | u32 puv_addr); | ||
| 395 | 426 | ||
| 396 | bool dispc_go_busy(enum omap_channel channel); | 427 | bool dispc_go_busy(enum omap_channel channel); |
| 397 | void dispc_go(enum omap_channel channel); | 428 | void dispc_go(enum omap_channel channel); |
| @@ -485,13 +516,6 @@ void hdmi_panel_exit(void); | |||
| 485 | int rfbi_init_platform_driver(void); | 516 | int rfbi_init_platform_driver(void); |
| 486 | void rfbi_uninit_platform_driver(void); | 517 | void rfbi_uninit_platform_driver(void); |
| 487 | void rfbi_dump_regs(struct seq_file *s); | 518 | void rfbi_dump_regs(struct seq_file *s); |
| 488 | |||
| 489 | int rfbi_configure(int rfbi_module, int bpp, int lines); | ||
| 490 | void rfbi_enable_rfbi(bool enable); | ||
| 491 | void rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width, | ||
| 492 | u16 height, void (callback)(void *data), void *data); | ||
| 493 | void rfbi_set_timings(int rfbi_module, struct rfbi_timings *t); | ||
| 494 | unsigned long rfbi_get_max_tx_rate(void); | ||
| 495 | int rfbi_init_display(struct omap_dss_device *display); | 519 | int rfbi_init_display(struct omap_dss_device *display); |
| 496 | #else | 520 | #else |
| 497 | static inline int rfbi_init_platform_driver(void) | 521 | static inline int rfbi_init_platform_driver(void) |
