aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-02 13:41:26 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-02 13:41:26 -0500
commit3a5b27bf6f29574d667230c7e76e4b83fe3014e0 (patch)
treea80892424269083c292d3eee29c4b3e6289d588b /arch/arm/plat-omap
parent5057bfaff82e12f01a2ffd58f55535cbd7c5c3a2 (diff)
parent21df20fcfb4e88f4cd4991e9e67de549e6480adf (diff)
Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux
* 'for-linus' of git://gitorious.org/linux-omap-dss2/linux: (49 commits) OMAP: DSS2: Taal: Fix TE when resuming OMAP: DSS2: Taal: Fix ESD check OMAP: DSS2: OMAPFB: Constify some function parameters OMAP: DSS2: OMAPFB: install omapfb.h OMAP: DSS2: DSI: add error prints OMAP: DSS2: TPO-TD03MTEA1: fix function names OMAP: DSS2: DSI: add dsi_vc_dcs_read_2() helper OMAP: DSS2: OMAPFB: Remove FB_OMAP2_FORCE_AUTO_UPDATE OMAP: DSS2: DSI: remove external TE support OMAP: DSS2: move timing functions OMAP: DSS2: move set/get_wss() OMAP: DSS2: move enable/disable/suspend/resume OMAP: DSS2: move update() and sync() OMAP: DSS2: move set/get_update_mode() OMAP: DSS2: move enable/get_te() OMAP: DSS2: move get_recommended_bpp() OMAP: DSS2: move get_resolution() OMAP: DSS2: move enable/disable_channel to overlay manager OMAP: DSS2: move wait_vsync() OMAP: DSS2: move get/set_rotate() ...
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/include/plat/display.h117
1 files changed, 66 insertions, 51 deletions
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index c66e464732df..1c529ce9dc11 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -233,8 +233,12 @@ int omap_rfbi_setup_te(enum omap_rfbi_te_mode mode,
233void dsi_bus_lock(void); 233void dsi_bus_lock(void);
234void dsi_bus_unlock(void); 234void dsi_bus_unlock(void);
235int dsi_vc_dcs_write(int channel, u8 *data, int len); 235int dsi_vc_dcs_write(int channel, u8 *data, int len);
236int dsi_vc_dcs_write_0(int channel, u8 dcs_cmd);
237int dsi_vc_dcs_write_1(int channel, u8 dcs_cmd, u8 param);
236int dsi_vc_dcs_write_nosync(int channel, u8 *data, int len); 238int dsi_vc_dcs_write_nosync(int channel, u8 *data, int len);
237int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen); 239int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen);
240int dsi_vc_dcs_read_1(int channel, u8 dcs_cmd, u8 *data);
241int dsi_vc_dcs_read_2(int channel, u8 dcs_cmd, u16 *data);
238int dsi_vc_set_max_rx_packet_size(int channel, u16 len); 242int dsi_vc_set_max_rx_packet_size(int channel, u16 len);
239int dsi_vc_send_null(int channel); 243int dsi_vc_send_null(int channel);
240int dsi_vc_send_bta_sync(int channel); 244int dsi_vc_send_bta_sync(int channel);
@@ -367,6 +371,10 @@ struct omap_overlay_manager {
367 371
368 int (*apply)(struct omap_overlay_manager *mgr); 372 int (*apply)(struct omap_overlay_manager *mgr);
369 int (*wait_for_go)(struct omap_overlay_manager *mgr); 373 int (*wait_for_go)(struct omap_overlay_manager *mgr);
374 int (*wait_for_vsync)(struct omap_overlay_manager *mgr);
375
376 int (*enable)(struct omap_overlay_manager *mgr);
377 int (*disable)(struct omap_overlay_manager *mgr);
370}; 378};
371 379
372struct omap_dss_device { 380struct omap_dss_device {
@@ -426,16 +434,11 @@ struct omap_dss_device {
426 int acb; /* ac-bias pin frequency */ 434 int acb; /* ac-bias pin frequency */
427 435
428 enum omap_panel_config config; 436 enum omap_panel_config config;
429
430 u8 recommended_bpp;
431
432 struct omap_dss_device *ctrl;
433 } panel; 437 } panel;
434 438
435 struct { 439 struct {
436 u8 pixel_size; 440 u8 pixel_size;
437 struct rfbi_timings rfbi_timings; 441 struct rfbi_timings rfbi_timings;
438 struct omap_dss_device *panel;
439 } ctrl; 442 } ctrl;
440 443
441 int reset_gpio; 444 int reset_gpio;
@@ -460,49 +463,6 @@ struct omap_dss_device {
460 463
461 enum omap_dss_display_state state; 464 enum omap_dss_display_state state;
462 465
463 int (*enable)(struct omap_dss_device *dssdev);
464 void (*disable)(struct omap_dss_device *dssdev);
465
466 int (*suspend)(struct omap_dss_device *dssdev);
467 int (*resume)(struct omap_dss_device *dssdev);
468
469 void (*get_resolution)(struct omap_dss_device *dssdev,
470 u16 *xres, u16 *yres);
471 int (*get_recommended_bpp)(struct omap_dss_device *dssdev);
472
473 int (*check_timings)(struct omap_dss_device *dssdev,
474 struct omap_video_timings *timings);
475 void (*set_timings)(struct omap_dss_device *dssdev,
476 struct omap_video_timings *timings);
477 void (*get_timings)(struct omap_dss_device *dssdev,
478 struct omap_video_timings *timings);
479 int (*update)(struct omap_dss_device *dssdev,
480 u16 x, u16 y, u16 w, u16 h);
481 int (*sync)(struct omap_dss_device *dssdev);
482 int (*wait_vsync)(struct omap_dss_device *dssdev);
483
484 int (*set_update_mode)(struct omap_dss_device *dssdev,
485 enum omap_dss_update_mode);
486 enum omap_dss_update_mode (*get_update_mode)
487 (struct omap_dss_device *dssdev);
488
489 int (*enable_te)(struct omap_dss_device *dssdev, bool enable);
490 int (*get_te)(struct omap_dss_device *dssdev);
491
492 u8 (*get_rotate)(struct omap_dss_device *dssdev);
493 int (*set_rotate)(struct omap_dss_device *dssdev, u8 rotate);
494
495 bool (*get_mirror)(struct omap_dss_device *dssdev);
496 int (*set_mirror)(struct omap_dss_device *dssdev, bool enable);
497
498 int (*run_test)(struct omap_dss_device *dssdev, int test);
499 int (*memory_read)(struct omap_dss_device *dssdev,
500 void *buf, size_t size,
501 u16 x, u16 y, u16 w, u16 h);
502
503 int (*set_wss)(struct omap_dss_device *dssdev, u32 wss);
504 u32 (*get_wss)(struct omap_dss_device *dssdev);
505
506 /* platform specific */ 466 /* platform specific */
507 int (*platform_enable)(struct omap_dss_device *dssdev); 467 int (*platform_enable)(struct omap_dss_device *dssdev);
508 void (*platform_disable)(struct omap_dss_device *dssdev); 468 void (*platform_disable)(struct omap_dss_device *dssdev);
@@ -522,11 +482,17 @@ struct omap_dss_driver {
522 int (*resume)(struct omap_dss_device *display); 482 int (*resume)(struct omap_dss_device *display);
523 int (*run_test)(struct omap_dss_device *display, int test); 483 int (*run_test)(struct omap_dss_device *display, int test);
524 484
525 void (*setup_update)(struct omap_dss_device *dssdev, 485 int (*set_update_mode)(struct omap_dss_device *dssdev,
526 u16 x, u16 y, u16 w, u16 h); 486 enum omap_dss_update_mode);
487 enum omap_dss_update_mode (*get_update_mode)(
488 struct omap_dss_device *dssdev);
489
490 int (*update)(struct omap_dss_device *dssdev,
491 u16 x, u16 y, u16 w, u16 h);
492 int (*sync)(struct omap_dss_device *dssdev);
527 493
528 int (*enable_te)(struct omap_dss_device *dssdev, bool enable); 494 int (*enable_te)(struct omap_dss_device *dssdev, bool enable);
529 int (*wait_for_te)(struct omap_dss_device *dssdev); 495 int (*get_te)(struct omap_dss_device *dssdev);
530 496
531 u8 (*get_rotate)(struct omap_dss_device *dssdev); 497 u8 (*get_rotate)(struct omap_dss_device *dssdev);
532 int (*set_rotate)(struct omap_dss_device *dssdev, u8 rotate); 498 int (*set_rotate)(struct omap_dss_device *dssdev, u8 rotate);
@@ -537,6 +503,20 @@ struct omap_dss_driver {
537 int (*memory_read)(struct omap_dss_device *dssdev, 503 int (*memory_read)(struct omap_dss_device *dssdev,
538 void *buf, size_t size, 504 void *buf, size_t size,
539 u16 x, u16 y, u16 w, u16 h); 505 u16 x, u16 y, u16 w, u16 h);
506
507 void (*get_resolution)(struct omap_dss_device *dssdev,
508 u16 *xres, u16 *yres);
509 int (*get_recommended_bpp)(struct omap_dss_device *dssdev);
510
511 int (*check_timings)(struct omap_dss_device *dssdev,
512 struct omap_video_timings *timings);
513 void (*set_timings)(struct omap_dss_device *dssdev,
514 struct omap_video_timings *timings);
515 void (*get_timings)(struct omap_dss_device *dssdev,
516 struct omap_video_timings *timings);
517
518 int (*set_wss)(struct omap_dss_device *dssdev, u32 wss);
519 u32 (*get_wss)(struct omap_dss_device *dssdev);
540}; 520};
541 521
542int omap_dss_register_driver(struct omap_dss_driver *); 522int omap_dss_register_driver(struct omap_dss_driver *);
@@ -561,6 +541,10 @@ struct omap_overlay_manager *omap_dss_get_overlay_manager(int num);
561int omap_dss_get_num_overlays(void); 541int omap_dss_get_num_overlays(void);
562struct omap_overlay *omap_dss_get_overlay(int num); 542struct omap_overlay *omap_dss_get_overlay(int num);
563 543
544void omapdss_default_get_resolution(struct omap_dss_device *dssdev,
545 u16 *xres, u16 *yres);
546int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev);
547
564typedef void (*omap_dispc_isr_t) (void *arg, u32 mask); 548typedef void (*omap_dispc_isr_t) (void *arg, u32 mask);
565int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask); 549int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
566int omap_dispc_unregister_isr(omap_dispc_isr_t isr, void *arg, u32 mask); 550int omap_dispc_unregister_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
@@ -572,4 +556,35 @@ int omap_dispc_wait_for_irq_interruptible_timeout(u32 irqmask,
572#define to_dss_driver(x) container_of((x), struct omap_dss_driver, driver) 556#define to_dss_driver(x) container_of((x), struct omap_dss_driver, driver)
573#define to_dss_device(x) container_of((x), struct omap_dss_device, dev) 557#define to_dss_device(x) container_of((x), struct omap_dss_device, dev)
574 558
559void omapdss_dsi_vc_enable_hs(int channel, bool enable);
560int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable);
561
562int omap_dsi_prepare_update(struct omap_dss_device *dssdev,
563 u16 *x, u16 *y, u16 *w, u16 *h);
564int omap_dsi_update(struct omap_dss_device *dssdev,
565 int channel,
566 u16 x, u16 y, u16 w, u16 h,
567 void (*callback)(int, void *), void *data);
568
569int omapdss_dsi_display_enable(struct omap_dss_device *dssdev);
570void omapdss_dsi_display_disable(struct omap_dss_device *dssdev);
571
572int omapdss_dpi_display_enable(struct omap_dss_device *dssdev);
573void omapdss_dpi_display_disable(struct omap_dss_device *dssdev);
574void dpi_set_timings(struct omap_dss_device *dssdev,
575 struct omap_video_timings *timings);
576int dpi_check_timings(struct omap_dss_device *dssdev,
577 struct omap_video_timings *timings);
578
579int omapdss_sdi_display_enable(struct omap_dss_device *dssdev);
580void omapdss_sdi_display_disable(struct omap_dss_device *dssdev);
581
582int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev);
583void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev);
584int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
585 u16 *x, u16 *y, u16 *w, u16 *h);
586int omap_rfbi_update(struct omap_dss_device *dssdev,
587 u16 x, u16 y, u16 w, u16 h,
588 void (*callback)(void *), void *data);
589
575#endif 590#endif