summaryrefslogtreecommitdiff
path: root/firmware/drivers/lcd-16bit.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/lcd-16bit.c')
-rw-r--r--firmware/drivers/lcd-16bit.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c
index c3e076b392..0aa62f66b4 100644
--- a/firmware/drivers/lcd-16bit.c
+++ b/firmware/drivers/lcd-16bit.c
@@ -51,10 +51,6 @@ fb_data lcd_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH]
51static fb_data* lcd_backdrop = NULL; 51static fb_data* lcd_backdrop = NULL;
52static long lcd_backdrop_offset IDATA_ATTR = 0; 52static long lcd_backdrop_offset IDATA_ATTR = 0;
53 53
54#ifdef HAVE_LCD_ENABLE
55static void (*lcd_enable_hook)(void) = NULL;
56#endif
57
58static struct viewport default_vp = 54static struct viewport default_vp =
59{ 55{
60 .x = 0, 56 .x = 0,
@@ -78,33 +74,36 @@ static struct viewport* current_vp IDATA_ATTR = &default_vp;
78struct viewport* current_vp IDATA_ATTR = &default_vp; 74struct viewport* current_vp IDATA_ATTR = &default_vp;
79#endif 75#endif
80 76
81/* LCD init */
82void lcd_init(void)
83{
84 lcd_clear_display();
85
86 /* Call device specific init */
87 lcd_init_device();
88 scroll_init();
89}
90 77
91/*** Helpers - consolidate optional code ***/ 78/*** Helpers - consolidate optional code ***/
92#ifdef HAVE_LCD_ENABLE 79#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
93void lcd_set_enable_hook(void (*enable_hook)(void)) 80static void (*lcd_activation_hook)(void) = NULL;
81
82void lcd_activation_set_hook(void (*func)(void))
94{ 83{
95 lcd_enable_hook = enable_hook; 84 lcd_activation_hook = func;
96} 85}
97 86
98/* To be called by target driver after enabling display and refreshing it */ 87/* To be called by target driver after enabling display and refreshing it */
99void lcd_call_enable_hook(void) 88void lcd_activation_call_hook(void)
100{ 89{
101 void (*enable_hook)(void) = lcd_enable_hook; 90 void (*func)(void) = lcd_activation_hook;
102 91
103 if (enable_hook != NULL) 92 if (func != NULL)
104 enable_hook(); 93 func();
105} 94}
95
106#endif 96#endif
107 97
98/* LCD init */
99void lcd_init(void)
100{
101 lcd_clear_display();
102
103 /* Call device specific init */
104 lcd_init_device();
105 scroll_init();
106}
108/*** Viewports ***/ 107/*** Viewports ***/
109 108
110void lcd_set_viewport(struct viewport* vp) 109void lcd_set_viewport(struct viewport* vp)