Commit cc5d04d8 authored by Mans Rullgard's avatar Mans Rullgard Committed by Miguel Ojeda

auxdisplay: charlcd: make backlight initial state configurable

The charlcd driver currently flashes the backlight once on init.
This may not be desirable.  Thus, add options for turning the
backlight off or on as well.
Signed-off-by: default avatarMans Rullgard <mans@mansr.com>
Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
parent c9171722
...@@ -445,6 +445,27 @@ config PANEL_BOOT_MESSAGE ...@@ -445,6 +445,27 @@ config PANEL_BOOT_MESSAGE
An empty message will only clear the display at driver init time. Any other An empty message will only clear the display at driver init time. Any other
printf()-formatted message is valid with newline and escape codes. printf()-formatted message is valid with newline and escape codes.
choice
prompt "Backlight initial state"
default CHARLCD_BL_FLASH
config CHARLCD_BL_OFF
bool "Off"
help
Backlight is initially turned off
config CHARLCD_BL_ON
bool "On"
help
Backlight is initially turned on
config CHARLCD_BL_FLASH
bool "Flash"
help
Backlight is flashed briefly on init
endchoice
endif # AUXDISPLAY endif # AUXDISPLAY
config PANEL config PANEL
......
...@@ -769,6 +769,14 @@ static void charlcd_puts(struct charlcd *lcd, const char *s) ...@@ -769,6 +769,14 @@ static void charlcd_puts(struct charlcd *lcd, const char *s)
#define LCD_INIT_TEXT "Linux-" UTS_RELEASE "\n" #define LCD_INIT_TEXT "Linux-" UTS_RELEASE "\n"
#endif #endif
#ifdef CONFIG_CHARLCD_BL_ON
#define LCD_INIT_BL "\x1b[L+"
#elif defined(CONFIG_CHARLCD_BL_FLASH)
#define LCD_INIT_BL "\x1b[L*"
#else
#define LCD_INIT_BL "\x1b[L-"
#endif
/* initialize the LCD driver */ /* initialize the LCD driver */
static int charlcd_init(struct charlcd *lcd) static int charlcd_init(struct charlcd *lcd)
{ {
...@@ -790,7 +798,7 @@ static int charlcd_init(struct charlcd *lcd) ...@@ -790,7 +798,7 @@ static int charlcd_init(struct charlcd *lcd)
return ret; return ret;
/* display a short message */ /* display a short message */
charlcd_puts(lcd, "\x1b[Lc\x1b[Lb\x1b[L*" LCD_INIT_TEXT); charlcd_puts(lcd, "\x1b[Lc\x1b[Lb" LCD_INIT_BL LCD_INIT_TEXT);
/* clear the display on the next device opening */ /* clear the display on the next device opening */
priv->must_clear = true; priv->must_clear = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment