diff options
author | Ye Li <ye.li@nxp.com> | 2020-11-02 22:10:49 -0800 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2020-11-03 00:48:50 -0800 |
commit | b561b31da6aeafd189f0fa29d8d6b8c3fe28d1c9 (patch) | |
tree | 87d8c7e183674fd42fd272b9c2a0c877c1156b73 /board/freescale | |
parent | 39840421d4e2d805df1420658629e78925f41490 (diff) |
MLK-24958-5 imx8dxl_evk: Enable LCDIF splash screen
Use a dedicated defconfig for LCDIF splash screen to resolve conflict.
Update board codes to add relevant configs and control mux for LCDIF pins.
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'board/freescale')
-rw-r--r-- | board/freescale/imx8dxl_evk/imx8dxl_evk.c | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/board/freescale/imx8dxl_evk/imx8dxl_evk.c b/board/freescale/imx8dxl_evk/imx8dxl_evk.c index e6e4fe1604..923409d608 100644 --- a/board/freescale/imx8dxl_evk/imx8dxl_evk.c +++ b/board/freescale/imx8dxl_evk/imx8dxl_evk.c @@ -118,6 +118,115 @@ int board_early_init_f(void) #if CONFIG_IS_ENABLED(DM_GPIO) static void board_gpio_init(void) { +#if defined(CONFIG_DM_VIDEO) + int ret; + struct gpio_desc desc; + + /* M40_DEBUG_UART_SEL */ + ret = dm_gpio_lookup_name("gpio@20_3", &desc); + if (ret) { + printf("%s lookup gpio@20_3 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "M40_DEBUG_UART_SEL"); + if (ret) { + printf("%s request M40_DEBUG_UART_SEL failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* SPI0_SEL */ + ret = dm_gpio_lookup_name("gpio@20_8", &desc); + if (ret) { + printf("%s lookup gpio@20_8 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "SPI0_SEL"); + if (ret) { + printf("%s request SPI0_SEL failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* UART1_SEL */ + ret = dm_gpio_lookup_name("gpio@20_6", &desc); + if (ret) { + printf("%s lookup gpio@20_6 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "UART1_SEL"); + if (ret) { + printf("%s request UART1_SEL failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* MUX3_EN */ + ret = dm_gpio_lookup_name("gpio@21_8", &desc); + if (ret) { + printf("%s lookup gpio@21_8 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "MUX3_EN"); + if (ret) { + printf("%s request MUX3_EN failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* SPI3_CS0_SEL */ + ret = dm_gpio_lookup_name("gpio@20_4", &desc); + if (ret) { + printf("%s lookup gpio@20_4 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "SPI3_CS0_SEL"); + if (ret) { + printf("%s request SPI3_CS0_SEL failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* SPI3_SEL */ + ret = dm_gpio_lookup_name("gpio@20_7", &desc); + if (ret) { + printf("%s lookup gpio@20_7 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "SPI3_SEL"); + if (ret) { + printf("%s request SPI3_SEL failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE | GPIOD_ACTIVE_LOW); + + /* BL_CTR */ + ret = dm_gpio_lookup_name("gpio@20_5", &desc); + if (ret) { + printf("%s lookup gpio@20_5 failed ret = %d\n", __func__, ret); + return; + } + + ret = dm_gpio_request(&desc, "BL_CTR"); + if (ret) { + printf("%s request BL_CTR failed ret = %d\n", __func__, ret); + return; + } + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); +#endif } #else static inline void board_gpio_init(void) {} |