board: ge: bx50v3: enable backlight on demand
authorIan Ray <ian.ray@ge.com>
Wed, 4 Apr 2018 08:50:17 +0000 (10:50 +0200)
committerStefano Babic <sbabic@denx.de>
Sun, 15 Apr 2018 09:46:20 +0000 (11:46 +0200)
Enable display backlight only if a message needs to be displayed.
The kernel re-initializes the backlight, which results in some
unwanted artifacts.

Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
board/ge/bx50v3/bx50v3.c
include/configs/ge_bx50v3.h

index c7a29185bf499f11dcc35a4fcf4eee0280bcfcb3..46321ae666f1b5a1b47333d0b65bbd085c2fe955 100644 (file)
@@ -786,23 +786,6 @@ int board_late_init(void)
        add_board_boot_modes(board_boot_modes);
 #endif
 
-#ifdef CONFIG_VIDEO_IPUV3
-       /* We need at least 200ms between power on and backlight on
-        * as per specifications from CHI MEI */
-       mdelay(250);
-
-       /* enable backlight PWM 1 */
-       pwm_init(0, 0, 0);
-
-       /* duty cycle 5000000ns, period: 5000000ns */
-       pwm_config(0, 5000000, 5000000);
-
-       /* Backlight Power */
-       gpio_direction_output(LVDS_BACKLIGHT_GP, 1);
-
-       pwm_enable(0);
-#endif
-
        /* board specific pmic init */
        pmic_init();
 
@@ -843,3 +826,31 @@ int checkboard(void)
        printf("BOARD: %s\n", CONFIG_BOARD_NAME);
        return 0;
 }
+
+static int do_backlight_enable(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+#ifdef CONFIG_VIDEO_IPUV3
+       /* We need at least 200ms between power on and backlight on
+        * as per specifications from CHI MEI */
+       mdelay(250);
+
+       /* enable backlight PWM 1 */
+       pwm_init(0, 0, 0);
+
+       /* duty cycle 5000000ns, period: 5000000ns */
+       pwm_config(0, 5000000, 5000000);
+
+       /* Backlight Power */
+       gpio_direction_output(LVDS_BACKLIGHT_GP, 1);
+
+       pwm_enable(0);
+#endif
+
+       return 0;
+}
+
+U_BOOT_CMD(
+       bx50_backlight_enable, 1,      1,      do_backlight_enable,
+       "enable Bx50 backlight",
+       ""
+);
index cbfe30d536d0b88f002a511ae1fc00203b0848d3..925507fe81f1337b10ac204b66f8f8ff97c25c5d 100644 (file)
        "swappartitions=" \
                "setexpr partnum 3 - ${partnum}\0" \
        "failbootcmd=" \
+               "bx50_backlight_enable; " \
                "msg=\"Monitor failed to start.  Try again, or contact GE Service for support.\"; " \
                "echo $msg; " \
                "setenv stdout vga; " \