diff --git a/src/drv/touch/touch_driver_gt911.cpp b/src/drv/touch/touch_driver_gt911.cpp index 090dab63..c3da9ef0 100644 --- a/src/drv/touch/touch_driver_gt911.cpp +++ b/src/drv/touch/touch_driver_gt911.cpp @@ -102,23 +102,14 @@ void TouchGt911::init(int w, int h) info = touch.readInfo(); if(info->xResolution > 0 && info->yResolution > 0) goto found; } + #if TOUCH_IRQ == -1 - if(touch.begin(TOUCH_IRQ, TOUCH_RST, 0x5d)) { - info = touch.readInfo(); - if(info->xResolution > 0 && info->yResolution > 0) goto found; - } - if(touch.begin(TOUCH_IRQ, TOUCH_RST, 0x5d)) { - info = touch.readInfo(); - if(info->xResolution > 0 && info->yResolution > 0) goto found; - } - if(touch.begin(TOUCH_IRQ, TOUCH_RST, 0x14)) { - info = touch.readInfo(); - if(info->xResolution > 0 && info->yResolution > 0) goto found; - } - if(touch.begin(TOUCH_IRQ, TOUCH_RST, 0x14)) { - info = touch.readInfo(); - if(info->xResolution > 0 && info->yResolution > 0) goto found; - } + // Probe both addresses if IRQ is not connected + for(uint8_t i = 0; i < 4; i++) + if(touch.begin(TOUCH_IRQ, TOUCH_RST, i < 2 ? 0x5d : 0x14)) { + info = touch.readInfo(); + if(info->xResolution > 0 && info->yResolution > 0) goto found; + } #endif found: diff --git a/user_setups/esp32s3/gs-t3e.ini b/user_setups/esp32s3/gs-t3e.ini index 78bcdef9..2ba0eeca 100644 --- a/user_setups/esp32s3/gs-t3e.ini +++ b/user_setups/esp32s3/gs-t3e.ini @@ -46,6 +46,7 @@ build_flags = -D TOUCH_SDA=40 -D TOUCH_SCL=41 -D TOUCH_RST=-1 + -D TOUCH_IRQ=-1 -D TFT_AUTO_FLUSH=1 -D TFT_HSYNC_POLARITY=1 -D TFT_HSYNC_FRONT_PORCH=10