diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-03-12 12:18:17 +0800 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-03-12 12:18:17 +0800 |
commit | 066222d4419761ce8c2a8f9ef6ecd0605ac3230c (patch) | |
tree | 974c56ec947bf0a1db024b11705f78375dd5204e /src/target/firmware/include/display.h | |
parent | a13a4fda926aa272e55964c8f86cb31fb4065995 (diff) |
Introduce LCD display_driver infrastructure
* introduce display_driver layer
* port st7558 and ssd1783 drivers to display_driver
* allow for run-time selection of display driver from board/init.c
* replace st7558_puts() calls with display_puts() calls
Diffstat (limited to 'src/target/firmware/include/display.h')
-rw-r--r-- | src/target/firmware/include/display.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/target/firmware/include/display.h b/src/target/firmware/include/display.h new file mode 100644 index 00000000..b49ae7bd --- /dev/null +++ b/src/target/firmware/include/display.h @@ -0,0 +1,47 @@ +#ifndef _DISPLAY_DRIVER_H +#define _DISPLAY_DRIVER_H + +enum display_attr { + DISP_ATTR_INVERT = 0x0001, +}; + +struct display_driver { + char *name; + void (*init)(void); + void (*set_attr)(unsigned long attr); + void (*unset_attr)(unsigned long attr); + void (*clrscr)(void); + void (*goto_xy)(int xpos, int ypos); + void (*set_color)(int fgcolor, int bgcolor); + int (*putc)(unsigned char c); + int (*puts)(const char *str); +}; + +extern struct display_driver *display; + +static inline void display_init(void) +{ + display->init(); +} +static inline void display_set_attr(unsigned long attr) +{ + display->set_attr(attr); +} +static inline void display_unset_attr(unsigned long attr) +{ + display->unset_attr(attr); +} +static inline void display_clrscr(void) +{ + display->clrscr(); +} +static inline int display_putchar(unsigned char c) +{ + return display->putc(c); +} +int display_puts(const char *s); + +extern const struct display_driver st7558_display; +extern const struct display_driver ssd1783_display; + +#endif |