diff --git a/configs/stm32f429i-disco/src/stm32_lcd.c b/configs/stm32f429i-disco/src/stm32_lcd.c index 8ef3495f584..96b47e38119 100644 --- a/configs/stm32f429i-disco/src/stm32_lcd.c +++ b/configs/stm32f429i-disco/src/stm32_lcd.c @@ -39,6 +39,7 @@ #include +#include #include #include @@ -528,25 +529,30 @@ int board_lcd_initialize(void) int up_fbinitialize(int display) { -#ifdef CONFIG_STM32F429I_DISCO_ILI9341_FBIFACE + static bool initialized = false; int ret; - /* Initialize the ili9341 LCD controller */ - - ret = stm32_ili9341_initialize(); - - if (ret == OK) + if (!initialized) { +#ifdef CONFIG_STM32F429I_DISCO_ILI9341_FBIFACE + /* Initialize the ili9341 LCD controller */ + + ret = stm32_ili9341_initialize(); + if (ret >= OK) + { + ret = stm32_ltdcinitialize(); + } + +#else + /* Custom LCD display with RGB interface */ + ret = stm32_ltdcinitialize(); +#endif + + initialized = (ret >= OK); } return ret; - -#else - /* Custom LCD display with RGB interface */ - - return stm32_ltdcinitialize(); -#endif } /**************************************************************************** diff --git a/configs/stm32f746g-disco/src/stm32_lcd.c b/configs/stm32f746g-disco/src/stm32_lcd.c index 7c3651b306c..89cebbb5370 100644 --- a/configs/stm32f746g-disco/src/stm32_lcd.c +++ b/configs/stm32f746g-disco/src/stm32_lcd.c @@ -73,6 +73,7 @@ int up_fbinitialize(int display) { /* Custom LCD display with RGB interface */ + stm32_configgpio(GPIO_LCD_DISP); stm32_configgpio(GPIO_LCD_BL);