diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bc9e0f..b849c3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,4 @@ idf_component_register(SRCS "TFT_eSPI.cpp" INCLUDE_DIRS "." - PRIV_REQUIRES arduino) - -add_definitions(-DTFT_eSPI_COMPONENT) \ No newline at end of file + PRIV_REQUIRES arduino) \ No newline at end of file diff --git a/Kconfig b/Kconfig index 5c86f8a..b4efe20 100644 --- a/Kconfig +++ b/Kconfig @@ -1,4 +1,12 @@ menu "TFT_eSPI" + + menu "Hidden menu" + visible if false + + config TFT_eSPI_ESPIDF + bool "Enable Configuration" + default y + endmenu choice TFT_DRIVER prompt "Select TFT driver" @@ -145,11 +153,12 @@ menu "TFT_eSPI" config TFT_PARALLEL_8_BIT bool "Enable 8-bit parallel mode (otherwise SPI is assumed)" default "n" + depends on IDF_TARGET_ESP32 help Use 8-bit parallel bus to send data to the LCD. If not set SPI will be used. menu "Display Data pins" - visible if TFT_PARALLEL_8_BIT + depends on TFT_PARALLEL_8_BIT config TFT_D0 int "Data 0 pin" default -1 @@ -202,11 +211,12 @@ menu "TFT_eSPI" endmenu menu "Display SPI config" - visible if !TFT_PARALLEL_8_BIT + depends on !TFT_PARALLEL_8_BIT config TFT_MISO int "TFT MISO pin" default -1 - range -1 32 + range -1 32 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 help Master In Slave Out pin. Can be labelled as SDO in some displays @@ -214,7 +224,8 @@ menu "TFT_eSPI" config TFT_MOSI int "TFT MOSI pin" default -1 - range -1 32 + range -1 32 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 help Master Out Slave In pin. Can be labelled as SDA or SDI in some displays @@ -222,7 +233,8 @@ menu "TFT_eSPI" config TFT_SCLK int "TFT Clock pin" default -1 - range -1 32 + range -1 32 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 help Labelled in some displays as WR @@ -258,7 +270,8 @@ menu "TFT_eSPI" config TFT_CS int "TFT Chip Select pin" default -1 - range -1 33 + range -1 33 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 config TFT_DC int "TFT Data/Command pin" @@ -270,17 +283,22 @@ menu "TFT_eSPI" config TFT_RST int "TFT Reset pin" default -1 - range -1 33 + range -1 33 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 + + config ENABLE_BL + bool "Enable backlight control" + default y + + if ENABLE_BL + config TFT_BL + int "TFT Backlight pin" + default -1 + range -1 33 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 + help + Pin for the backlight control signal - config TFT_BL - int "TFT Backlight pin" - default -1 - range -1 33 - help - Pin for the backlight control signal - Set to -1 to disable - - if TFT_BL >= 0 choice TFT_BACKLIGHT_ON bool "Pin state to activate backlight" default TFT_BACKLIGHT_ON_HIGH @@ -336,15 +354,22 @@ menu "TFT_eSPI" endmenu menu "Touch screen configuration" - config TOUCH_CS - int "Touch chip select pin" - default -1 - range -1 33 + config ENABLE_TOUCH + bool "Enable Touch" + default n - config SPI_TOUCH_FREQUENCY - int "SPI frequency for XPT2046 chip (Hz)" - default 2500000 - range 1 80000000 + if ENABLE_TOUCH + config TOUCH_CS + int "Touch chip select pin" + default -1 + range -1 33 if IDF_TARGET_ESP32 + range -1 45 if IDF_TARGET_ESP32S2 + + config SPI_TOUCH_FREQUENCY + int "SPI frequency for XPT2046 chip (Hz)" + default 2500000 + range 1 80000000 + endif endmenu endmenu diff --git a/TFT_config.h b/TFT_config.h index 8cab8de..76aff1e 100644 --- a/TFT_config.h +++ b/TFT_config.h @@ -12,7 +12,7 @@ * @author Ricard Bitriá Ribes (https://github.com/dracir9) * Created Date: 22-01-2022 * ----- - * Last Modified: 11-04-2022 + * Last Modified: 14-04-2022 * Modified By: Ricard Bitriá Ribes * ----- * @copyright (c) 2022 Ricard Bitriá Ribes @@ -143,8 +143,13 @@ #endif // Backlight config -#if CONFIG_TFT_BL != -1 - #define TFT_BL CONFIG_TFT_BL +#ifdef CONFIG_ENABLE_BL + #if CONFIG_TFT_BL == -1 + #error "Invalid backlight control pin. Check TFT_eSPI configuration" + #else + #define TFT_BL CONFIG_TFT_BL + #endif + #define TFT_BACKLIGHT_ON CONFIG_TFT_BACKLIGHT_ON #endif @@ -218,7 +223,6 @@ // SPI BUS #else - #if CONFIG_TFT_MISO == -1 #error "Invalid MISO pin. Check TFT_eSPI configuration" #else @@ -289,8 +293,14 @@ ** Section 5: Touchscreen configuration ***************************************************************************************/ -#define TOUCH_CS CONFIG_TOUCH_CS +#ifdef CONFIG_ENABLE_TOUCH + #if CONFIG_TOUCH_CS == -1 + #error "Invalid Touch Chip Select pin. Check TFT_eSPI configuration" + #else + #define TOUCH_CS CONFIG_TOUCH_CS + #endif -#define SPI_TOUCH_FREQUENCY CONFIG_SPI_TOUCH_FREQUENCY + #define SPI_TOUCH_FREQUENCY CONFIG_SPI_TOUCH_FREQUENCY +#endif #endif // TFT_CONFIG_H diff --git a/TFT_eSPI.h b/TFT_eSPI.h index a03a24d..06df531 100644 --- a/TFT_eSPI.h +++ b/TFT_eSPI.h @@ -27,10 +27,6 @@ ***************************************************************************************/ //Standard support -#ifdef TFT_eSPI_COMPONENT - #include "TFT_config.h" -#endif - #include #include #include @@ -40,6 +36,9 @@ ***************************************************************************************/ // Include header file that defines the fonts loaded, the TFT drivers // available and the pins to be used, etc, etc +#ifdef CONFIG_TFT_eSPI_ESPIDF +#include "TFT_config.h" +#endif #include // Handle FLASH based storage e.g. PROGMEM