Add GT911 using esp_lcd_touch_gt911
This commit is contained in:
parent
9445dab325
commit
5ffb67f193
|
@ -69,6 +69,8 @@ if(CONFIG_LV_TOUCH_CONTROLLER)
|
||||||
list(APPEND SOURCES "lvgl_touch/ft6x36.c")
|
list(APPEND SOURCES "lvgl_touch/ft6x36.c")
|
||||||
elseif(CONFIG_LV_TOUCH_CONTROLLER_L58)
|
elseif(CONFIG_LV_TOUCH_CONTROLLER_L58)
|
||||||
list(APPEND SOURCES "lvgl_touch/l58.cpp")
|
list(APPEND SOURCES "lvgl_touch/l58.cpp")
|
||||||
|
elseif(CONFIG_LV_TOUCH_CONTROLLER_GT911)
|
||||||
|
list(APPEND SOURCES "lvgl_touch/gt911.c")
|
||||||
elseif(CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
elseif(CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
||||||
list(APPEND SOURCES "lvgl_touch/stmpe610.c")
|
list(APPEND SOURCES "lvgl_touch/stmpe610.c")
|
||||||
elseif(CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
elseif(CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
||||||
|
@ -89,7 +91,7 @@ endif()
|
||||||
idf_component_register(SRCS ${SOURCES}
|
idf_component_register(SRCS ${SOURCES}
|
||||||
INCLUDE_DIRS ${LVGL_INCLUDE_DIRS}
|
INCLUDE_DIRS ${LVGL_INCLUDE_DIRS}
|
||||||
REQUIRES epdiy
|
REQUIRES epdiy
|
||||||
lvgl CalEPD sharp-lcd
|
lvgl CalEPD sharp-lcd espressif__esp_lcd_touch_gt911
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_LVGL_H_INCLUDE_SIMPLE")
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC "-DLV_LVGL_H_INCLUDE_SIMPLE")
|
||||||
|
|
|
@ -148,9 +148,7 @@ void lvgl_driver_init(void)
|
||||||
touch_driver_init();
|
touch_driver_init();
|
||||||
#elif defined (CONFIG_LV_TOUCH_DRIVER_PROTOCOL_I2C)
|
#elif defined (CONFIG_LV_TOUCH_DRIVER_PROTOCOL_I2C)
|
||||||
ESP_LOGI(TAG, "Initializing I2C master for touch");
|
ESP_LOGI(TAG, "Initializing I2C master for touch");
|
||||||
lvgl_i2c_driver_init(TOUCH_I2C_PORT,
|
//lvgl_i2c_driver_init(TOUCH_I2C_PORT, TOUCH_I2C_SDA, TOUCH_I2C_SCL, TOUCH_I2C_SPEED_HZ);
|
||||||
TOUCH_I2C_SDA, TOUCH_I2C_SCL,
|
|
||||||
TOUCH_I2C_SPEED_HZ);
|
|
||||||
|
|
||||||
touch_driver_init();
|
touch_driver_init();
|
||||||
#elif defined (CONFIG_LV_TOUCH_DRIVER_ADC)
|
#elif defined (CONFIG_LV_TOUCH_DRIVER_ADC)
|
||||||
|
@ -197,7 +195,7 @@ bool lvgl_i2c_driver_init(int port, int sda_pin, int scl_pin, int speed_hz)
|
||||||
I2C_MODE_MASTER,
|
I2C_MODE_MASTER,
|
||||||
0, 0 /*I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE */,
|
0, 0 /*I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE */,
|
||||||
0 /* intr_alloc_flags */);
|
0 /* intr_alloc_flags */);
|
||||||
assert(ESP_OK == err);
|
//assert(ESP_OK == err);
|
||||||
|
|
||||||
return ESP_OK != err;
|
return ESP_OK != err;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,10 +84,10 @@ void epdiy_flush(lv_disp_drv_t *drv, const lv_area_t *area, lv_color_t *color_ma
|
||||||
printf("%x ", buf[index]);
|
printf("%x ", buf[index]);
|
||||||
} */
|
} */
|
||||||
// This is the slower version that works good without leaving any white line
|
// This is the slower version that works good without leaving any white line
|
||||||
//buf_copy_to_framebuffer(update_area, buf);
|
buf_copy_to_framebuffer(update_area, buf);
|
||||||
|
|
||||||
//Faster mode suggested in LVGL forum (Leaves ghosting&prints bad sections / experimental) NOTE: Do NOT use in production
|
//Faster mode suggested in LVGL forum (Leaves ghosting&prints bad sections / experimental) NOTE: Do NOT use in production
|
||||||
buf_area_to_framebuffer(area, buf);
|
//buf_area_to_framebuffer(area, buf);
|
||||||
|
|
||||||
epd_hl_update_area(&hl, updateMode, temperature, update_area); //update_area
|
epd_hl_update_area(&hl, updateMode, temperature, update_area); //update_area
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ menu "LVGL Touch controller"
|
||||||
default 5 if LV_TOUCH_CONTROLLER_FT81X
|
default 5 if LV_TOUCH_CONTROLLER_FT81X
|
||||||
default 6 if LV_TOUCH_CONTROLLER_RA8875
|
default 6 if LV_TOUCH_CONTROLLER_RA8875
|
||||||
default 7 if LV_TOUCH_CONTROLLER_L58
|
default 7 if LV_TOUCH_CONTROLLER_L58
|
||||||
|
default 8 if LV_TOUCH_CONTROLLER_GT911
|
||||||
choice
|
choice
|
||||||
prompt "Select a touch panel controller model."
|
prompt "Select a touch panel controller model."
|
||||||
default LV_TOUCH_CONTROLLER_NONE
|
default LV_TOUCH_CONTROLLER_NONE
|
||||||
|
@ -29,7 +30,9 @@ menu "LVGL Touch controller"
|
||||||
# Start only touch without protocol:
|
# Start only touch without protocol:
|
||||||
select CONFIG_LV_TOUCH_DRIVER_DISPLAY
|
select CONFIG_LV_TOUCH_DRIVER_DISPLAY
|
||||||
bool "L58"
|
bool "L58"
|
||||||
|
config LV_TOUCH_CONTROLLER_GT911
|
||||||
|
select LV_TOUCH_DRIVER_PROTOCOL_I2C
|
||||||
|
bool "GT911"
|
||||||
config LV_TOUCH_CONTROLLER_STMPE610
|
config LV_TOUCH_CONTROLLER_STMPE610
|
||||||
select LV_TOUCH_DRIVER_PROTOCOL_SPI
|
select LV_TOUCH_DRIVER_PROTOCOL_SPI
|
||||||
bool "STMPE610"
|
bool "STMPE610"
|
||||||
|
@ -522,7 +525,27 @@ menu "LVGL Touch controller"
|
||||||
bool
|
bool
|
||||||
prompt "De-bounce Circuit Enable for Touch Panel Interrupt"
|
prompt "De-bounce Circuit Enable for Touch Panel Interrupt"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
menu "Touchpanel GT911 Pin Assignments"
|
||||||
|
depends on LV_TOUCH_CONTROLLER_GT911
|
||||||
|
|
||||||
|
config LV_TOUCH_I2C_SDA
|
||||||
|
int
|
||||||
|
prompt "GPIO for SDA (I2C)"
|
||||||
|
range 0 39 if IDF_TARGET_ESP32
|
||||||
|
range 0 43 if IDF_TARGET_ESP32S3
|
||||||
|
|
||||||
|
default 39
|
||||||
|
help
|
||||||
|
Configure the I2C touchpanel SDA pin here.
|
||||||
|
|
||||||
|
config LV_TOUCH_I2C_SCL
|
||||||
|
int "GPIO for clock signal SCL (I2C)"
|
||||||
|
range 0 39 if IDF_TARGET_ESP32
|
||||||
|
range 0 43 if IDF_TARGET_ESP32S3
|
||||||
|
|
||||||
|
default 40
|
||||||
|
help
|
||||||
|
Configure the I2C touchpanel SCL pin here.
|
||||||
|
endmenu
|
||||||
endmenu
|
endmenu
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2021 Sturnus Inc.
|
* Copyright © 2023 Fasani Corp.
|
||||||
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||||
* software and associated documentation files (the “Software”), to deal in the Software
|
* software and associated documentation files (the “Software”), to deal in the Software
|
||||||
|
@ -17,8 +17,12 @@
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
* SOFTWARE.
|
* SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
|
#include "esp_lcd_touch_gt911.h"
|
||||||
#include <esp_log.h>
|
#include <esp_log.h>
|
||||||
|
#include "driver/i2c.h"
|
||||||
|
|
||||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||||
#include <lvgl.h>
|
#include <lvgl.h>
|
||||||
#else
|
#else
|
||||||
|
@ -26,62 +30,46 @@
|
||||||
#endif
|
#endif
|
||||||
#include "gt911.h"
|
#include "gt911.h"
|
||||||
|
|
||||||
#include "lvgl_i2c/i2c_manager.h"
|
|
||||||
|
|
||||||
#define TAG "GT911"
|
#define TAG "GT911"
|
||||||
|
|
||||||
gt911_status_t gt911_status;
|
#ifdef CONFIG_LV_TOUCH_I2C_PORT_0
|
||||||
|
#define I2C_PORT I2C_NUM_0
|
||||||
//TODO: handle multibyte read and refactor to just one read transaction
|
#endif
|
||||||
esp_err_t gt911_i2c_read(uint8_t slave_addr, uint16_t register_addr, uint8_t *data_buf, uint8_t len) {
|
#ifdef CONFIG_LV_TOUCH_I2C_PORT_1
|
||||||
return lvgl_i2c_read(CONFIG_LV_I2C_TOUCH_PORT, slave_addr, register_addr | I2C_REG_16, data_buf, len);
|
#define I2C_PORT I2C_NUM_1
|
||||||
}
|
#endif
|
||||||
|
// When the touch panel has different pixels definition
|
||||||
esp_err_t gt911_i2c_write8(uint8_t slave_addr, uint16_t register_addr, uint8_t data) {
|
float x_adjust = 1.55;
|
||||||
uint8_t buffer = data;
|
float y_adjust = 0.8;
|
||||||
return lvgl_i2c_write(CONFIG_LV_I2C_TOUCH_PORT, slave_addr, register_addr | I2C_REG_16, &buffer, 1);
|
esp_lcd_touch_handle_t tp;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize for GT911 communication via I2C
|
* @brief Initialize for GT911 communication via I2C
|
||||||
* @param dev_addr: Device address on communication Bus (I2C slave address of GT911).
|
|
||||||
* @retval None
|
* @retval None
|
||||||
*/
|
*/
|
||||||
void gt911_init(uint8_t dev_addr) {
|
void gt911_init(uint8_t dev_addr) {
|
||||||
if (!gt911_status.inited) {
|
esp_lcd_panel_io_handle_t tp_io_handle = NULL;
|
||||||
gt911_status.i2c_dev_addr = dev_addr;
|
esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_GT911_CONFIG();
|
||||||
uint8_t data_buf;
|
|
||||||
esp_err_t ret;
|
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Checking for GT911 Touch Controller");
|
esp_lcd_touch_config_t tp_cfg = {
|
||||||
if ((ret = gt911_i2c_read(dev_addr, GT911_PRODUCT_ID1, &data_buf, 1) != ESP_OK)) {
|
.x_max = 1025,
|
||||||
ESP_LOGE(TAG, "Error reading from device: %s",
|
.y_max = 770,
|
||||||
esp_err_to_name(ret)); // Only show error the first time
|
.rst_gpio_num = -1,
|
||||||
return;
|
.int_gpio_num = -1,
|
||||||
}
|
.levels = {
|
||||||
|
.reset = 0,
|
||||||
|
.interrupt = 0,
|
||||||
|
},
|
||||||
|
.flags = {
|
||||||
|
.swap_xy = 1,
|
||||||
|
.mirror_x = 1,
|
||||||
|
.mirror_y = 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
// Read 4 bytes for Product ID in ASCII
|
esp_lcd_new_panel_io_i2c((esp_lcd_i2c_bus_handle_t)I2C_PORT, &tp_io_config, &tp_io_handle);
|
||||||
for (int i = 0; i < GT911_PRODUCT_ID_LEN; i++) {
|
|
||||||
gt911_i2c_read(dev_addr, (GT911_PRODUCT_ID1 + i), (uint8_t *)&(gt911_status.product_id[i]), 1);
|
|
||||||
}
|
|
||||||
ESP_LOGI(TAG, "\tProduct ID: %s", gt911_status.product_id);
|
|
||||||
|
|
||||||
gt911_i2c_read(dev_addr, GT911_VENDOR_ID, &data_buf, 1);
|
esp_lcd_touch_new_i2c_gt911(tp_io_handle, &tp_cfg, &tp);
|
||||||
ESP_LOGI(TAG, "\tVendor ID: 0x%02x", data_buf);
|
|
||||||
|
|
||||||
gt911_i2c_read(dev_addr, GT911_X_COORD_RES_L, &data_buf, 1);
|
|
||||||
gt911_status.max_x_coord = data_buf;
|
|
||||||
gt911_i2c_read(dev_addr, GT911_X_COORD_RES_H, &data_buf, 1);
|
|
||||||
gt911_status.max_x_coord |= ((uint16_t)data_buf << 8);
|
|
||||||
ESP_LOGI(TAG, "\tX Resolution: %d", gt911_status.max_x_coord);
|
|
||||||
|
|
||||||
gt911_i2c_read(dev_addr, GT911_Y_COORD_RES_L, &data_buf, 1);
|
|
||||||
gt911_status.max_y_coord = data_buf;
|
|
||||||
gt911_i2c_read(dev_addr, GT911_Y_COORD_RES_H, &data_buf, 1);
|
|
||||||
gt911_status.max_y_coord |= ((uint16_t)data_buf << 8);
|
|
||||||
ESP_LOGI(TAG, "\tY Resolution: %d", gt911_status.max_y_coord);
|
|
||||||
gt911_status.inited = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,54 +79,22 @@ void gt911_init(uint8_t dev_addr) {
|
||||||
* @retval Always false
|
* @retval Always false
|
||||||
*/
|
*/
|
||||||
bool gt911_read(lv_indev_drv_t *drv, lv_indev_data_t *data) {
|
bool gt911_read(lv_indev_drv_t *drv, lv_indev_data_t *data) {
|
||||||
uint8_t touch_pnt_cnt; // Number of detected touch points
|
esp_lcd_touch_read_data(tp);
|
||||||
static int16_t last_x = 0; // 12bit pixel value
|
|
||||||
static int16_t last_y = 0; // 12bit pixel value
|
|
||||||
uint8_t data_buf;
|
|
||||||
uint8_t status_reg;
|
|
||||||
|
|
||||||
gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_STATUS_REG, &status_reg, 1);
|
uint16_t touch_x[2];
|
||||||
// ESP_LOGI(TAG, "\tstatus: 0x%02x", status_reg);
|
uint16_t touch_y[2];
|
||||||
touch_pnt_cnt = status_reg & 0x0F;
|
uint16_t touch_strength[2];
|
||||||
if ((status_reg & 0x80) || (touch_pnt_cnt < 6)) {
|
uint8_t touch_cnt = 0;
|
||||||
//Reset Status Reg Value
|
bool touchpad_pressed = esp_lcd_touch_get_coordinates(tp, touch_x, touch_y, touch_strength, &touch_cnt, 2);
|
||||||
gt911_i2c_write8(gt911_status.i2c_dev_addr, GT911_STATUS_REG, 0x00);
|
if (touchpad_pressed) {
|
||||||
}
|
|
||||||
if (touch_pnt_cnt != 1) { // ignore no touch & multi touch
|
|
||||||
data->point.x = last_x;
|
|
||||||
data->point.y = last_y;
|
|
||||||
data->state = LV_INDEV_STATE_REL;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_TRACK_ID1, &data_buf, 1);
|
|
||||||
// ESP_LOGI(TAG, "\ttrack_id: %d", data_buf);
|
|
||||||
|
|
||||||
gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_PT1_X_COORD_L, &data_buf, 1);
|
|
||||||
last_x = data_buf;
|
|
||||||
gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_PT1_X_COORD_H, &data_buf, 1);
|
|
||||||
last_x |= ((uint16_t)data_buf << 8);
|
|
||||||
|
|
||||||
gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_PT1_Y_COORD_L, &data_buf, 1);
|
|
||||||
last_y = data_buf;
|
|
||||||
gt911_i2c_read(gt911_status.i2c_dev_addr, GT911_PT1_Y_COORD_H, &data_buf, 1);
|
|
||||||
last_y |= ((uint16_t)data_buf << 8);
|
|
||||||
|
|
||||||
#if CONFIG_LV_GT911_INVERT_X
|
|
||||||
last_x = gt911_status.max_x_coord - last_x;
|
|
||||||
#endif
|
|
||||||
#if CONFIG_LV_GT911_INVERT_Y
|
|
||||||
last_y = gt911_status.max_y_coord - last_y;
|
|
||||||
#endif
|
|
||||||
#if CONFIG_LV_GT911_SWAPXY
|
|
||||||
int16_t swap_buf = last_x;
|
|
||||||
last_x = last_y;
|
|
||||||
last_y = swap_buf;
|
|
||||||
#endif
|
|
||||||
data->point.x = last_x;
|
|
||||||
data->point.y = last_y;
|
|
||||||
data->state = LV_INDEV_STATE_PR;
|
data->state = LV_INDEV_STATE_PR;
|
||||||
ESP_LOGI(TAG, "X=%u Y=%u", data->point.x, data->point.y);
|
data->point.x = (int)(touch_x[0]*x_adjust);
|
||||||
ESP_LOGV(TAG, "X=%u Y=%u", data->point.x, data->point.y);
|
data->point.y = (int)(touch_y[0]*y_adjust);
|
||||||
|
ESP_LOGI(TAG, "X=%d Y=%d", (int)data->point.x, (int)data->point.y);
|
||||||
|
} else {
|
||||||
|
data->state = LV_INDEV_STATE_REL;
|
||||||
|
data->point.x = -1;
|
||||||
|
data->point.y = -1;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#define __GT911_H
|
#define __GT911_H
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
|
||||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||||
#include "lvgl.h"
|
#include "lvgl.h"
|
||||||
#else
|
#else
|
||||||
|
@ -33,46 +32,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GT911_I2C_SLAVE_ADDR 0x5D
|
|
||||||
|
|
||||||
#define GT911_PRODUCT_ID_LEN 4
|
|
||||||
|
|
||||||
/* Register Map of GT911 */
|
|
||||||
#define GT911_PRODUCT_ID1 0x8140
|
|
||||||
#define GT911_PRODUCT_ID2 0x8141
|
|
||||||
#define GT911_PRODUCT_ID3 0x8142
|
|
||||||
#define GT911_PRODUCT_ID4 0x8143
|
|
||||||
#define GT911_FIRMWARE_VER_L 0x8144
|
|
||||||
#define GT911_FIRMWARE_VER_H 0x8145
|
|
||||||
#define GT911_X_COORD_RES_L 0x8146
|
|
||||||
#define GT911_X_COORD_RES_H 0x8147
|
|
||||||
#define GT911_Y_COORD_RES_L 0x8148
|
|
||||||
#define GT911_Y_COORD_RES_H 0x8149
|
|
||||||
#define GT911_VENDOR_ID 0x814A
|
|
||||||
|
|
||||||
#define GT911_STATUS_REG 0x814E
|
|
||||||
#define GT911_STATUS_REG_BUF 0x80
|
|
||||||
#define GT911_STATUS_REG_LARGE 0x40
|
|
||||||
#define GT911_STATUS_REG_PROX_VALID 0x20
|
|
||||||
#define GT911_STATUS_REG_HAVEKEY 0x10
|
|
||||||
#define GT911_STATUS_REG_PT_MASK 0x0F
|
|
||||||
|
|
||||||
#define GT911_TRACK_ID1 0x814F
|
|
||||||
#define GT911_PT1_X_COORD_L 0x8150
|
|
||||||
#define GT911_PT1_X_COORD_H 0x8151
|
|
||||||
#define GT911_PT1_Y_COORD_L 0x8152
|
|
||||||
#define GT911_PT1_Y_COORD_H 0x8153
|
|
||||||
#define GT911_PT1_X_SIZE_L 0x8154
|
|
||||||
#define GT911_PT1_X_SIZE_H 0x8155
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
bool inited;
|
|
||||||
char product_id[GT911_PRODUCT_ID_LEN];
|
|
||||||
uint16_t max_x_coord;
|
|
||||||
uint16_t max_y_coord;
|
|
||||||
uint8_t i2c_dev_addr;
|
|
||||||
} gt911_status_t;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize for GT911 communication via I2C
|
* @brief Initialize for GT911 communication via I2C
|
||||||
* @param dev_addr: Device address on communication Bus (I2C slave address of GT911).
|
* @param dev_addr: Device address on communication Bus (I2C slave address of GT911).
|
||||||
|
|
|
@ -16,6 +16,8 @@ void touch_driver_init(void)
|
||||||
ft6x06_init(FT6236_I2C_SLAVE_ADDR);
|
ft6x06_init(FT6236_I2C_SLAVE_ADDR);
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_L58)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_L58)
|
||||||
l58_init();
|
l58_init();
|
||||||
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
|
||||||
|
gt911_init(0x5d);
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
||||||
stmpe610_init();
|
stmpe610_init();
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
||||||
|
@ -37,7 +39,8 @@ bool touch_driver_read(lv_indev_drv_t *drv, lv_indev_data_t *data)
|
||||||
res = ft6x36_read(drv, data);
|
res = ft6x36_read(drv, data);
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_L58)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_L58)
|
||||||
res = l58_read(drv, data);
|
res = l58_read(drv, data);
|
||||||
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
|
||||||
|
res = gt911_read(drv, data);
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_STMPE610)
|
||||||
res = stmpe610_read(drv, data);
|
res = stmpe610_read(drv, data);
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_ADCRAW)
|
||||||
|
|
|
@ -32,6 +32,8 @@ extern "C" {
|
||||||
#include "FT81x.h"
|
#include "FT81x.h"
|
||||||
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_RA8875)
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_RA8875)
|
||||||
#include "ra8875_touch.h"
|
#include "ra8875_touch.h"
|
||||||
|
#elif defined (CONFIG_LV_TOUCH_CONTROLLER_GT911)
|
||||||
|
#include "gt911.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*********************
|
/*********************
|
||||||
|
|
Loading…
Reference in a new issue