Initially we need to confirm that GT911 is in the bus. It can be on address 0x14 or 0x5d.
In my case it is on 0x14:
nsh> i2c bus
BUS EXISTS?
Bus 0: YES
nsh> i2c dev -b 0 0x00 0x7f
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- 14 -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
nsh>
Initially I configured to use GT9XX driver from NuttX (used on PinePhone smartphone) but it failed:
nsh> tc
tc_main: nsamples: 0
gt9xx_open:
esp32_gt9xx_set_power: on=1
tc_main: Opening /dev/touch0
gt9xx_i2c_read: reg=0x8140, buflen=4
gt9xx_i2c_read (0x3ffe0ad0):
0000 39 31 31 00 911.
gt9xx_probe_device (0x3ffe0ad0):
0000 39 31 31 00 911.
esp32_gt9xx_irq_enable: enable=1
tc_main: Reading...
gt9xx_read: buflen=32
gt9xx_read_touch_data:
gt9xx_i2c_read: reg=0x814e, buflen=1
gt9xx_i2c_read (0x3ffe0b39):
0000 80 .
gt9xx_set_status: status=0
gt9xx_i2c_write: reg=0x814e, val=0
gt9xx_i2c_write: I2C Write failed: -110
gt9xx_set_status: Set Status failed: -110
gt9xx_read_touch_data: Set Touch Panel Status failed: -110
tc_main: Bytes read: -1
tgt9xx_close:
esp32_gt9xx_irq_enable: enable=0
esp32_gt9xx_set_power: on=0
c_main: read /dev/touch0 failed: 110
Terminating!
nsh>
As you can see I ran the touchscreen test (tc command) and the gt9xx driver already read some useful information from the chip. Note it read the device name correctly.
Now I need to figure out the differences between GT917 (that was used for this gt9xx driver) and the GT911 and modify the driver to work with both, or create a different driver case the differences are irreconcilable.