summaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2020-11-02 22:10:49 -0800
committerYe Li <ye.li@nxp.com>2020-11-03 00:48:50 -0800
commitb561b31da6aeafd189f0fa29d8d6b8c3fe28d1c9 (patch)
tree87d8c7e183674fd42fd272b9c2a0c877c1156b73 /board/freescale
parent39840421d4e2d805df1420658629e78925f41490 (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.c109
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) {}