From c70dfe6d424ef0c5b433a4446304f2cd0db7f278 Mon Sep 17 00:00:00 2001 From: FreeBear Date: Mon, 20 May 2024 15:03:19 +0100 Subject: [PATCH 1/2] Add list of TFT gpio pins so that they can not be selected for IO. --- src/drv/tft/tft_driver_arduinogfx.cpp | 98 +++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/src/drv/tft/tft_driver_arduinogfx.cpp b/src/drv/tft/tft_driver_arduinogfx.cpp index c946120a..e050059c 100644 --- a/src/drv/tft/tft_driver_arduinogfx.cpp +++ b/src/drv/tft/tft_driver_arduinogfx.cpp @@ -262,6 +262,104 @@ void IRAM_ATTR ArduinoGfx::flush_pixels(lv_disp_drv_t* disp, const lv_area_t* ar bool ArduinoGfx::is_driver_pin(uint8_t pin) { + if(false // start condition is always needed + +// Use individual checks instead of switch statement, as some case labels could be duplicated +#ifdef TFT_MOSI + || (pin == TFT_MOSI) +#endif +#ifdef TFT_MISO + || (pin == TFT_MISO) +#endif +#ifdef TFT_SCLK + || (pin == TFT_SCLK) +#endif +#ifdef TFT_CS + || (pin == TFT_CS) +#endif +#ifdef TFT_DC + || (pin == TFT_DC) +#endif +#ifdef TFT_DE + || (pin == TFT_DE) +#endif +#ifdef TFT_PCLK + || (pin == TFT_PCLK) +#endif +#ifdef TFT_VSYNC + || (pin == TFT_VSYNC) +#endif +#ifdef TFT_HSYNC + || (pin == TFT_HSYNC) +#endif +#ifdef TFT_BCKL + || (pin == TFT_BCKL) +#endif +#ifdef TFT_RST + || (pin == TFT_RST) +#endif +#ifdef TFT_BUSY + || (pin == TFT_BUSY) +#endif +#ifdef TFT_RD + || (pin == TFT_RD) +#endif +#ifdef TFT_R0 + || (pin == TFT_R0) +#endif +#ifdef TFT_R1 + || (pin == TFT_R1) +#endif +#ifdef TFT_R2 + || (pin == TFT_R2) +#endif +#ifdef TFT_R3 + || (pin == TFT_R3) +#endif +#ifdef TFT_R4 + || (pin == TFT_R4) +#endif +#ifdef TFT_G0 + || (pin == TFT_G0) +#endif +#ifdef TFT_G1 + || (pin == TFT_G1) +#endif +#ifdef TFT_G2 + || (pin == TFT_G2) +#endif +#ifdef TFT_G3 + || (pin == TFT_G3) +#endif +#ifdef TFT_G4 + || (pin == TFT_G4) +#endif +#ifdef TFT_B0 + || (pin == TFT_B0) +#endif +#ifdef TFT_B1 + || (pin == TFT_B1) +#endif +#ifdef TFT_B2 + || (pin == TFT_B2) +#endif +#ifdef TFT_B3 + || (pin == TFT_B3) +#endif +#ifdef TFT_B4 + || (pin == TFT_B4) +#endif + ) { + return true; + } + +#ifdef ARDUINO_ARCH_ESP8266 +#ifndef TFT_SPI_OVERLAP + if((pin >= 12) && (pin <= 14)) return true; // HSPI +#endif +#endif + + return false; return false; } From 7a3b8d0997fe8367ad27f755f4f07df0a4ea77b4 Mon Sep 17 00:00:00 2001 From: FreeBear Date: Mon, 20 May 2024 15:30:15 +0100 Subject: [PATCH 2/2] Add the touch gpio pins to the list so that they are hidden from IO selection. --- src/drv/tft/tft_driver_arduinogfx.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/drv/tft/tft_driver_arduinogfx.cpp b/src/drv/tft/tft_driver_arduinogfx.cpp index e050059c..00847ca3 100644 --- a/src/drv/tft/tft_driver_arduinogfx.cpp +++ b/src/drv/tft/tft_driver_arduinogfx.cpp @@ -348,6 +348,18 @@ bool ArduinoGfx::is_driver_pin(uint8_t pin) #endif #ifdef TFT_B4 || (pin == TFT_B4) +#endif +#ifdef TOUCH_SDA + || (pin == TOUCH_SDA) +#endif +#ifdef TOUCH_SCL + || (pin == TOUCH_SCL) +#endif +#ifdef TOUCH_RST + || (pin == TOUCH_RST) +#endif +#ifdef TOUCH_IRQ + || (pin == TOUCH_IRQ) #endif ) { return true;