summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/display.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-03-12 12:18:17 +0800
committerHarald Welte <laforge@gnumonks.org>2010-03-12 12:18:17 +0800
commit066222d4419761ce8c2a8f9ef6ecd0605ac3230c (patch)
tree974c56ec947bf0a1db024b11705f78375dd5204e /src/target/firmware/include/display.h
parenta13a4fda926aa272e55964c8f86cb31fb4065995 (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.h47
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