diff options
| author | Jaya Kumar <jayakumar.lkml@gmail.com> | 2010-03-10 18:21:41 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-12 18:52:34 -0500 |
| commit | 2afb18981739a1426af2a6c952e03c5966b3dfc6 (patch) | |
| tree | fb1feeb9e7882a4810bf9088959e33a1148bc090 /include/video | |
| parent | e17cea3cece6d3ec47a5b358821505943abe6541 (diff) | |
broadsheetfb: add MMIO hooks
Allow boards with GP-MMIO controllers to provide hooks to broadsheetfb in
order to offload cmd/data writes and data reads instead of relying only on
host based GPIO wiggling.
Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/video')
| -rw-r--r-- | include/video/broadsheetfb.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/include/video/broadsheetfb.h b/include/video/broadsheetfb.h index a2c2829ceb38..d65b6689e92c 100644 --- a/include/video/broadsheetfb.h +++ b/include/video/broadsheetfb.h | |||
| @@ -34,6 +34,10 @@ | |||
| 34 | #define BS_DC 0x02 | 34 | #define BS_DC 0x02 |
| 35 | #define BS_WR 0x03 | 35 | #define BS_WR 0x03 |
| 36 | 36 | ||
| 37 | /* Broadsheet IO interface specific defines */ | ||
| 38 | #define BS_MMIO_CMD 0x01 | ||
| 39 | #define BS_MMIO_DATA 0x02 | ||
| 40 | |||
| 37 | /* struct used by broadsheet. board specific stuff comes from *board */ | 41 | /* struct used by broadsheet. board specific stuff comes from *board */ |
| 38 | struct broadsheetfb_par { | 42 | struct broadsheetfb_par { |
| 39 | struct fb_info *info; | 43 | struct fb_info *info; |
| @@ -49,12 +53,17 @@ struct broadsheet_board { | |||
| 49 | struct module *owner; | 53 | struct module *owner; |
| 50 | int (*init)(struct broadsheetfb_par *); | 54 | int (*init)(struct broadsheetfb_par *); |
| 51 | int (*wait_for_rdy)(struct broadsheetfb_par *); | 55 | int (*wait_for_rdy)(struct broadsheetfb_par *); |
| 52 | void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8); | ||
| 53 | void (*set_hdb)(struct broadsheetfb_par *, u16); | ||
| 54 | u16 (*get_hdb)(struct broadsheetfb_par *); | ||
| 55 | void (*cleanup)(struct broadsheetfb_par *); | 56 | void (*cleanup)(struct broadsheetfb_par *); |
| 56 | int (*get_panel_type)(void); | 57 | int (*get_panel_type)(void); |
| 57 | int (*setup_irq)(struct fb_info *); | 58 | int (*setup_irq)(struct fb_info *); |
| 58 | }; | ||
| 59 | 59 | ||
| 60 | /* Functions for boards that use GPIO */ | ||
| 61 | void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8); | ||
| 62 | void (*set_hdb)(struct broadsheetfb_par *, u16); | ||
| 63 | u16 (*get_hdb)(struct broadsheetfb_par *); | ||
| 64 | |||
| 65 | /* Functions for boards that have specialized MMIO */ | ||
| 66 | void (*mmio_write)(struct broadsheetfb_par *, int type, u16); | ||
| 67 | u16 (*mmio_read)(struct broadsheetfb_par *); | ||
| 68 | }; | ||
| 60 | #endif | 69 | #endif |
