Tactiliest/Drivers/AXS5106/include/esp_lcd_touch_axs5106.h
Ken Van Hoeylandt 980b115f1d
Add board: Waveshare S3 Touch LCD 1.47 (#328)
Touch isn't working yet.
Fixed a SPI lock issue.
2025-09-12 23:45:37 +02:00

60 lines
1.5 KiB
C

/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief ESP LCD touch: AXS5106
*/
#pragma once
#include "esp_lcd_touch.h"
#include "driver/i2c_master.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Create a new AXS5106 touch driver
*
* @note The I2C communication should be initialized before use this function.
*
* @param io LCD/Touch panel IO handle
* @param config: Touch configuration
* @param out_touch: Touch instance handle
* @return
* - ESP_OK on success
* - ESP_ERR_NO_MEM if there is no memory for allocating main structure
*/
esp_err_t esp_lcd_touch_new_i2c_axs5106(const esp_lcd_panel_io_handle_t io, const esp_lcd_touch_config_t *config, esp_lcd_touch_handle_t *out_touch);
/**
* @brief I2C address of the AXS5106 controller
*
*/
#define ESP_LCD_TOUCH_IO_I2C_AXS5106_ADDRESS (0x63)
/**
* @brief Touch IO configuration structure
*
*/
#define ESP_LCD_TOUCH_IO_I2C_AXS5106_CONFIG() \
{ \
.dev_addr = ESP_LCD_TOUCH_IO_I2C_AXS5106_ADDRESS, \
.control_phase_bytes = 1, \
.dc_bit_offset = 0, \
.lcd_cmd_bits = 8, \
.flags = \
{ \
.disable_control_phase = 1, \
} \
}
#ifdef __cplusplus
}
#endif