summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-16bit.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index c91d222830..020d6bf63a 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -49,6 +49,10 @@ fb_data lcd_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH]
49static fb_data* lcd_backdrop = NULL; 49static fb_data* lcd_backdrop = NULL;
50static long lcd_backdrop_offset IDATA_ATTR = 0; 50static long lcd_backdrop_offset IDATA_ATTR = 0;
51 51
52#ifdef HAVE_LCD_ENABLE
53static void (*lcd_enable_hook)(void) = NULL;
54#endif
55
52static struct viewport default_vp = 56static struct viewport default_vp =
53{ 57{
54 .x = 0, 58 .x = 0,
@@ -84,6 +88,23 @@ void lcd_init(void)
84 scroll_init(); 88 scroll_init();
85} 89}
86 90
91/*** Helpers - consolidate optional code ***/
92#ifdef HAVE_LCD_ENABLE
93void lcd_set_enable_hook(void (*enable_hook)(void))
94{
95 lcd_enable_hook = enable_hook;
96}
97
98/* To be called by target driver after enabling display and refreshing it */
99void lcd_call_enable_hook(void)
100{
101 void (*enable_hook)(void) = lcd_enable_hook;
102
103 if (enable_hook != NULL)
104 enable_hook();
105}
106#endif
107
87/*** Viewports ***/ 108/*** Viewports ***/
88 109
89void lcd_set_viewport(struct viewport* vp) 110void lcd_set_viewport(struct viewport* vp)