Skip to content

Commit f726311

Browse files
committed
Indev: Add support for GT911 touch driver by @dastarling
1 parent d379a4e commit f726311

File tree

4 files changed

+57
-0
lines changed

4 files changed

+57
-0
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ if(CONFIG_LV_TOUCH_CONTROLLER)
7070
list(APPEND SOURCES "lvgl_touch/FT81x.c")
7171
elseif(CONFIG_LV_TOUCH_CONTROLLER_RA8875)
7272
list(APPEND SOURCES "lvgl_touch/ra8875_touch.c")
73+
elseif(CONFIG_LV_TOUCH_CONTROLLER_GT911)
74+
list(APPEND SOURCES "lvgl_touch/gt911.c")
7375
endif()
7476

7577
if(CONFIG_LV_TOUCH_DRIVER_PROTOCOL_SPI)

lvgl_touch/Kconfig

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ menu "LVGL Touch controller"
99
default 4 if LV_TOUCH_CONTROLLER_ADCRAW
1010
default 5 if LV_TOUCH_CONTROLLER_FT81X
1111
default 6 if LV_TOUCH_CONTROLLER_RA8875
12+
default 7 if LV_TOUCH_CONTROLLER_GT911
1213

1314
choice
1415
prompt "Select a touch panel controller model."
@@ -36,6 +37,9 @@ menu "LVGL Touch controller"
3637
config LV_TOUCH_CONTROLLER_RA8875
3738
select LV_TOUCH_DRIVER_DISPLAY
3839
bool "RA8875"
40+
config LV_TOUCH_CONTROLLER_GT911
41+
select LV_TOUCH_DRIVER_PROTOCOL_I2C
42+
bool "GT911"
3943
endchoice
4044

4145
config LV_TOUCH_DRIVER_PROTOCOL_SPI
@@ -498,5 +502,50 @@ menu "LVGL Touch controller"
498502
default y
499503

500504
endmenu
505+
506+
menu "Touchpanel (GT911) Pin Assignments"
507+
depends on LV_TOUCH_CONTROLLER_GT911
508+
509+
config LV_TOUCH_I2C_SDA
510+
int
511+
prompt "GPIO for SDA (I2C)"
512+
range 0 39 if IDF_TARGET_ESP32
513+
range 0 43 if IDF_TARGET_ESP32S2
514+
range 0 21 if IDF_TARGET_ESP32C3
515+
516+
default 2
517+
help
518+
Configure the I2C touchpanel SDA pin here.
519+
520+
config LV_TOUCH_I2C_SCL
521+
int "GPIO for clock signal SCL (I2C)"
522+
range 0 39 if IDF_TARGET_ESP32
523+
range 0 43 if IDF_TARGET_ESP32S2
524+
range 0 21 if IDF_TARGET_ESP32C3
525+
526+
default 3
527+
help
528+
Configure the I2C touchpanel SCL pin here.
529+
endmenu
530+
531+
menu "Touchpanel Configuration (GT911)"
532+
depends on LV_TOUCH_CONTROLLER_GT911
533+
534+
config LV_GT911_SWAPXY
535+
bool
536+
prompt "Swap X with Y coordinate."
537+
default y
538+
539+
config LV_GT911_INVERT_X
540+
bool
541+
prompt "Invert X coordinate value."
542+
default n
543+
544+
config LV_GT911_INVERT_Y
545+
bool
546+
prompt "Invert Y coordinate value."
547+
default y
548+
549+
endmenu
501550

502551
endmenu

lvgl_touch/touch_driver.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ void touch_driver_init(void)
2121
/* nothing to do */
2222
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_RA8875)
2323
ra8875_touch_init();
24+
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
25+
gt911_init(GT911_I2C_SLAVE_ADDR);
2426
#endif
2527
}
2628

@@ -40,6 +42,8 @@ bool touch_driver_read(lv_indev_drv_t *drv, lv_indev_data_t *data)
4042
res = FT81x_read(drv, data);
4143
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_RA8875)
4244
res = ra8875_touch_read(drv, data);
45+
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
46+
res = gt911_read(drv, data);
4347
#endif
4448

4549
return res;

lvgl_touch/touch_driver.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ extern "C" {
3232
#include "FT81x.h"
3333
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_RA8875)
3434
#include "ra8875_touch.h"
35+
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
36+
#include "gt911.h"
3537
#endif
3638

3739
/*********************

0 commit comments

Comments
 (0)