From 260cf74e1b7fc57440c2271d293fba9ffffebebd Mon Sep 17 00:00:00 2001 From: cranial-smoke Date: Wed, 10 Feb 2021 17:50:51 -0500 Subject: [PATCH 1/2] Adds soft reset option to ST7789 driver --- lvgl_tft/Kconfig | 13 +++++++++++++ lvgl_tft/st7789.c | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/lvgl_tft/Kconfig b/lvgl_tft/Kconfig index f37adb9..c553e53 100644 --- a/lvgl_tft/Kconfig +++ b/lvgl_tft/Kconfig @@ -734,6 +734,19 @@ menu "LVGL TFT Display controller" endmenu + # menu will be visible only when LV_PREDEFINED_DISPLAY_NONE is y + menu "Display ST7789 Configuration" + visible if LV_TFT_DISPLAY_CONTROLLER_ST7789 + + config LV_DISP_ST7789_SOFT_RESET + bool "Soft reset - use software reset instead of reset pin" + depends on LV_TFT_DISPLAY_CONTROLLER_ST7789 + default n + help + Use software reset and ignores configured reset pin (some hardware does not use a reset pin). + + endmenu + # menu will be visible only when LV_PREDEFINED_DISPLAY_NONE is y menu "Display Pin Assignments" visible if LV_PREDEFINED_DISPLAY_NONE || LV_PREDEFINED_DISPLAY_RPI_MPI3501 || LV_PREDEFINED_PINS_TKOALA diff --git a/lvgl_tft/st7789.c b/lvgl_tft/st7789.c index 206a622..b6fc086 100644 --- a/lvgl_tft/st7789.c +++ b/lvgl_tft/st7789.c @@ -84,8 +84,11 @@ void st7789_init(void) //Initialize non-SPI GPIOs gpio_pad_select_gpio(ST7789_DC); gpio_set_direction(ST7789_DC, GPIO_MODE_OUTPUT); + +#if !defined(CONFIG_LV_DISP_ST7789_SOFT_RESET) gpio_pad_select_gpio(ST7789_RST); gpio_set_direction(ST7789_RST, GPIO_MODE_OUTPUT); +#endif #if ST7789_ENABLE_BACKLIGHT_CONTROL gpio_pad_select_gpio(ST7789_BCKL); @@ -93,10 +96,14 @@ void st7789_init(void) #endif //Reset the display +#if !defined(CONFIG_LV_DISP_ST7789_SOFT_RESET) gpio_set_level(ST7789_RST, 0); vTaskDelay(100 / portTICK_RATE_MS); gpio_set_level(ST7789_RST, 1); vTaskDelay(100 / portTICK_RATE_MS); +#else + st7789_send_cmd(ST7789_SWRESET); +#endif printf("ST7789 initialization.\n"); From 3a34055cad1bee9183fa9202e299a9e5c7a9842f Mon Sep 17 00:00:00 2001 From: cranial-smoke Date: Thu, 11 Feb 2021 10:11:48 -0500 Subject: [PATCH 2/2] Hides reset pin config if ST7789 soft reset is enabled --- lvgl_tft/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lvgl_tft/Kconfig b/lvgl_tft/Kconfig index c553e53..c3efd5e 100644 --- a/lvgl_tft/Kconfig +++ b/lvgl_tft/Kconfig @@ -897,7 +897,7 @@ menu "LVGL TFT Display controller" Configure the display DC pin here. config LV_DISP_PIN_RST - int "GPIO for Reset" if LV_TFT_DISPLAY_PROTOCOL_SPI + int "GPIO for Reset" if LV_TFT_DISPLAY_PROTOCOL_SPI && !LV_DISP_ST7789_SOFT_RESET range 0 39 if IDF_TARGET_ESP32 range 0 43 if IDF_TARGET_ESP32S2