summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2017-08-30 05:18:37 -0500
committerYe Li <ye.li@nxp.com>2017-08-30 22:31:48 -0500
commit603b764ad5c7b0bd7f0db62608573974592be832 (patch)
tree536bbd5f140783827059ef03f5a28212c79677e7
parent651da95b3dab3cccb81d2905552b837f157b941e (diff)
MLK-16326 imx8qxp_mek: Add LVDS0 display support for splash screen
The MEK board has two display ports, we enable the LVDS0 as default display. User needs to connect miniSAS LVDS to HDMI card on the CPU board and set "panel" env variable to "IT6263" to enable the display. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
-rw-r--r--board/freescale/imx8qxp_mek/imx8qxp_mek.c48
-rw-r--r--configs/imx8qxp_mek_defconfig2
-rw-r--r--include/configs/imx8qxp_mek.h12
3 files changed, 62 insertions, 0 deletions
diff --git a/board/freescale/imx8qxp_mek/imx8qxp_mek.c b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
index 85dc2a0b79..3da4571999 100644
--- a/board/freescale/imx8qxp_mek/imx8qxp_mek.c
+++ b/board/freescale/imx8qxp_mek/imx8qxp_mek.c
@@ -496,3 +496,51 @@ int is_recovery_key_pressing(void)
}
#endif /*CONFIG_ANDROID_RECOVERY*/
#endif /*CONFIG_FSL_FASTBOOT*/
+
+#if defined(CONFIG_VIDEO_IMXDPUV1)
+static void enable_lvds(struct display_info_t const *dev)
+{
+ struct gpio_desc desc;
+ int ret;
+
+ /* MIPI_DSI0_EN on IOEXP 0x1a port 6, MIPI_DSI1_EN on IOEXP 0x1d port 7 */
+ ret = dm_gpio_lookup_name("gpio@1a_6", &desc);
+ if (ret)
+ return;
+
+ ret = dm_gpio_request(&desc, "lvds0_en");
+ if (ret)
+ return;
+
+ dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
+
+ display_controller_setup((PS2KHZ(dev->mode.pixclock) * 1000));
+ lvds_soc_setup(dev->bus, (PS2KHZ(dev->mode.pixclock) * 1000));
+ lvds_configure(dev->bus);
+ lvds2hdmi_setup(13);
+}
+
+struct display_info_t const displays[] = {{
+ .bus = 0, /* LVDS0 */
+ .addr = 0, /* LVDS0 */
+ .pixfmt = IMXDPUV1_PIX_FMT_BGRA32,
+ .detect = NULL,
+ .enable = enable_lvds,
+ .mode = {
+ .name = "IT6263", /* 720P60 */
+ .refresh = 60,
+ .xres = 1280,
+ .yres = 720,
+ .pixclock = 13468, /* 74250000 */
+ .left_margin = 110,
+ .right_margin = 220,
+ .upper_margin = 5,
+ .lower_margin = 20,
+ .hsync_len = 40,
+ .vsync_len = 5,
+ .sync = FB_SYNC_EXT,
+ .vmode = FB_VMODE_NONINTERLACED
+} } };
+size_t display_count = ARRAY_SIZE(displays);
+
+#endif /* CONFIG_VIDEO_IMXDPUV1 */
diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
index 6bdaed1dac..0cdbe607c9 100644
--- a/configs/imx8qxp_mek_defconfig
+++ b/configs/imx8qxp_mek_defconfig
@@ -59,6 +59,8 @@ CONFIG_DM_REGULATOR=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_VIDEO=y
+
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX8=y
diff --git a/include/configs/imx8qxp_mek.h b/include/configs/imx8qxp_mek.h
index 6accac976e..f81096618f 100644
--- a/include/configs/imx8qxp_mek.h
+++ b/include/configs/imx8qxp_mek.h
@@ -268,6 +268,18 @@
#define CONFIG_USB_FUNCTION_MASS_STORAGE
#endif
+/* Framebuffer */
+#ifdef CONFIG_VIDEO
+#define CONFIG_VIDEO_IMXDPUV1
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_BMP_16BPP
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+#define CONFIG_IMX_VIDEO_SKIP
+#endif
+
#define CONFIG_OF_SYSTEM_SETUP
#define BOOTAUX_RESERVED_MEM_BASE 0x88000000
#define BOOTAUX_RESERVED_MEM_SIZE 0x08000000 /* Reserve from second 128MB */