MLK-23964-25 imx6sll_evk: Enable splash screen
authorYe Li <ye.li@nxp.com>
Sun, 10 May 2020 13:50:28 +0000 (06:50 -0700)
committerYe Li <ye.li@nxp.com>
Thu, 29 Apr 2021 10:26:06 +0000 (03:26 -0700)
Enable the splash screen basing on video link
Update the DTS to fix the bpp in lcdif node and add alias

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 93a53c60a73dab539fdf98542a367e83820df775)
(cherry picked from commit d10851677db691b5769acd66d9e67fa987dbe655)

arch/arm/dts/imx6sll-evk.dts
arch/arm/dts/imx6sll.dtsi
board/freescale/mx6sllevk/mx6sllevk.c
configs/mx6sllevk_defconfig
configs/mx6sllevk_epdc_defconfig
configs/mx6sllevk_optee_defconfig
configs/mx6sllevk_plugin_defconfig
include/configs/mx6sllevk.h

index 30da62e..b5f06c8 100644 (file)
@@ -98,7 +98,7 @@
                        compatible = "regulator-fixed";
                        reg = <4>;
                        regulator-name = "lcd-pwr";
-                       gpio = <&gpio4 8 0>;
+                       gpio = <&gpio4 3 0>;
                        enable-active-high;
                };
 
                                MX6SLL_PAD_LCD_ENABLE__LCD_ENABLE       0x79
                                MX6SLL_PAD_LCD_HSYNC__LCD_HSYNC         0x79
                                MX6SLL_PAD_LCD_VSYNC__LCD_VSYNC         0x79
-                               MX6SLL_PAD_LCD_RESET__LCD_RESET         0x79
-                               MX6SLL_PAD_ECSPI1_SCLK__GPIO4_IO08      0x79
+                               MX6SLL_PAD_LCD_RESET__GPIO2_IO19                0x17059
+                               MX6SLL_PAD_KEY_ROW5__GPIO4_IO03 0x17059
                        >;
                };
 
        status = "okay";
 
        display0: display@0 {
-               bits-per-pixel = <16>;
+               bits-per-pixel = <24>;
                bus-width = <24>;
 
                display-timings {
index 0b97c29..f05fe3e 100644 (file)
@@ -42,6 +42,7 @@
                usb1 = &usbotg2;
                usbgadget0 = &usbg1;
                usbgadget1 = &usbg2;
+               video0 = &lcdif;
        };
 
        cpus {
index ee29673..22e43df 100644 (file)
@@ -108,36 +108,8 @@ int power_init_board(void)
 }
 #endif
 
-#ifdef CONFIG_VIDEO_MXS
+#ifdef CONFIG_DM_VIDEO
 static iomux_v3_cfg_t const lcd_pads[] = {
-       MX6_PAD_LCD_CLK__LCD_CLK | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_ENABLE__LCD_ENABLE | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_HSYNC__LCD_HSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_VSYNC__LCD_VSYNC | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA00__LCD_DATA00 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA01__LCD_DATA01 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA02__LCD_DATA02 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA03__LCD_DATA03 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA04__LCD_DATA04 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA05__LCD_DATA05 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA06__LCD_DATA06 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA07__LCD_DATA07 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA08__LCD_DATA08 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA09__LCD_DATA09 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA10__LCD_DATA10 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA11__LCD_DATA11 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA12__LCD_DATA12 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA13__LCD_DATA13 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA14__LCD_DATA14 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA15__LCD_DATA15 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA16__LCD_DATA16 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA17__LCD_DATA17 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA18__LCD_DATA18 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA19__LCD_DATA19 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA20__LCD_DATA20 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA21__LCD_DATA21 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA22__LCD_DATA22 | MUX_PAD_CTRL(LCD_PAD_CTRL),
-       MX6_PAD_LCD_DATA23__LCD_DATA23 | MUX_PAD_CTRL(LCD_PAD_CTRL),
        MX6_PAD_KEY_ROW5__GPIO4_IO03 | MUX_PAD_CTRL(NO_PAD_CTRL),
        MX6_PAD_LCD_RESET__GPIO2_IO19 | MUX_PAD_CTRL(NO_PAD_CTRL),
 
@@ -145,15 +117,14 @@ static iomux_v3_cfg_t const lcd_pads[] = {
        MX6_PAD_PWM1__GPIO3_IO23 | MUX_PAD_CTRL(NO_PAD_CTRL),
 };
 
-void do_enable_parallel_lcd(struct display_info_t const *dev)
-
+static int setup_lcd(void)
 {
        int ret;
 
-       ret = enable_lcdif_clock(dev->bus, 1);
+       ret = enable_lcdif_clock(MX6SLL_LCDIF_BASE_ADDR, 1);
        if (ret) {
                printf("Enable LCDIF clock failed, %d\n", ret);
-               return;
+               return -EPERM;
        }
 
        imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads));
@@ -170,29 +141,11 @@ void do_enable_parallel_lcd(struct display_info_t const *dev)
        /* Set Brightness to high */
        gpio_request(IMX_GPIO_NR(3, 23), "backlight");
        gpio_direction_output(IMX_GPIO_NR(3, 23) , 1);
-}
 
-struct display_info_t const displays[] = {{
-       .bus = MX6SLL_LCDIF_BASE_ADDR,
-       .addr = 0,
-       .pixfmt = 24,
-       .detect = NULL,
-       .enable = do_enable_parallel_lcd,
-       .mode   = {
-               .name           = "MCIMX28LCD",
-               .xres           = 800,
-               .yres           = 480,
-               .pixclock       = 29850,
-               .left_margin    = 89,
-               .right_margin   = 164,
-               .upper_margin   = 23,
-               .lower_margin   = 10,
-               .hsync_len      = 10,
-               .vsync_len      = 10,
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED
-} } };
-size_t display_count = ARRAY_SIZE(displays);
+       return 0;
+}
+#else
+static inline int setup_lcd(void) { return 0; }
 #endif
 
 #ifdef CONFIG_MXC_EPDC
@@ -440,6 +393,8 @@ int board_late_init(void)
        board_late_mmc_env_init();
 #endif
 
+       setup_lcd();
+
        imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads));
 
        set_wdog_reset((struct wdog_regs *)WDOG1_BASE_ADDR);
index 4152852..7c1068e 100644 (file)
@@ -11,7 +11,6 @@ CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6sll-evk"
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sllevk/imximage.cfg"
-CONFIG_VIDEO=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
@@ -24,6 +23,7 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_EXT2=y
@@ -60,6 +60,11 @@ CONFIG_USB_ETHER_RTL8152=y
 CONFIG_DM_ETH=y
 CONFIG_PHYLIB=y
 
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_GADGET_MANUFACTURER="FSL"
index bc788e1..6ecd351 100644 (file)
@@ -11,9 +11,11 @@ CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6sll-evk"
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sllevk/imximage.cfg"
-CONFIG_VIDEO=y
 CONFIG_MXC_EPDC=y
 CONFIG_LCD=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+CONFIG_CMD_BMP=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
index 93ab374..2c9f04d 100644 (file)
@@ -11,7 +11,6 @@ CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6sll-evk"
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sllevk/imximage.cfg"
-CONFIG_VIDEO=y
 CONFIG_IMX_OPTEE=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
@@ -25,6 +24,7 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_EXT2=y
@@ -61,6 +61,11 @@ CONFIG_USB_ETHER_RTL8152=y
 CONFIG_DM_ETH=y
 CONFIG_PHYLIB=y
 
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_GADGET_MANUFACTURER="FSL"
index fee3f18..16fae55 100644 (file)
@@ -12,7 +12,6 @@ CONFIG_USE_IMXIMG_PLUGIN=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6sll-evk"
 CONFIG_SUPPORT_RAW_INITRD=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6sllevk/imximage.cfg"
-CONFIG_VIDEO=y
 CONFIG_BOOTDELAY=3
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_HUSH_PARSER=y
@@ -25,6 +24,7 @@ CONFIG_CMD_MMC=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
+CONFIG_CMD_BMP=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_EXT2=y
@@ -60,6 +60,11 @@ CONFIG_USB_ETHER_RTL8152=y
 CONFIG_DM_ETH=y
 CONFIG_PHYLIB=y
 
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
+
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_DOWNLOAD=y
 CONFIG_USB_GADGET_MANUFACTURER="FSL"
index bf9ecfc..7ec1ea8 100644 (file)
@@ -52,6 +52,7 @@
        "tee_file=uTee-6sllevk\0" \
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
+       "splashimage=0x8c000000\0" \
        "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
        "mmcpart=1\0" \
        "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
 #define CONFIG_MXC_USB_PORTSC          (PORT_PTS_UTMI | PORT_PTS_PTW)
 #endif
 
-#ifdef CONFIG_VIDEO
+#ifdef CONFIG_DM_VIDEO
 #define CONFIG_VIDEO_MXS
+#define CONFIG_VIDEO_LINK
 #define CONFIG_VIDEO_LOGO
-#define CONFIG_SPLASH_SCREEN
-#define CONFIG_SPLASH_SCREEN_ALIGN
-#define CONFIG_CMD_BMP
 #define CONFIG_BMP_16BPP
 #define CONFIG_VIDEO_BMP_RLE8
 #define CONFIG_VIDEO_BMP_LOGO
-#define CONFIG_IMX_VIDEO_SKIP
 #endif
 
 /*
        /*
         * Framebuffer and LCD
         */
-       #define CONFIG_SPLASH_SCREEN
-       #define CONFIG_CMD_BMP
        #undef LCD_TEST_PATTERN
        #define LCD_BPP                                 LCD_MONOCHROME