Files
AC707N/SDK/apps/common/device/touch_panel/ft3x68/ft3x68.h
T
2025-12-03 11:12:34 +08:00

117 lines
3.9 KiB
C

/*
* Privileged & confidential All Rights/Copyright Reserved by FocalTech.
* ** Source code released bellows and hereby must be retained as
* FocalTech's copyright and with the following disclaimer accepted by
* Receiver.
*
* "THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
* EVENT SHALL THE FOCALTECH'S AND ITS AFFILIATES'DIRECTORS AND OFFICERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
*/
#ifndef __FOCALTECH_CORE_H__
#define __FOCALTECH_CORE_H__
/*****************************************************************************
* Included header files
*****************************************************************************/
#include "app_config.h"
#include "system/includes.h"
#include "asm/iic_hw.h"
// #include "asm/iic_soft.h"
// #include "asm/gpio.h"
// #include "ui/ui.h"
#include "ui/ui_api.h"
/*****************************************************************************
* Private constant and macro definitions using #define
*****************************************************************************/
#define HOST_MCU_DRIVER_VERSION "FocalTech MCU V1.0 20220316"
#define FTS_INFO(fmt, ...) printf("[FTS/I]%s:"fmt"\n", __func__, ##__VA_ARGS__)
#define FTS_ERROR(fmt, ...) printf("[FTS/E]%s:"fmt"\n", __func__, ##__VA_ARGS__)
#define FTS_DEBUG(fmt, ...) printf("[FTS/D]%s:"fmt"\n", __func__, ##__VA_ARGS__)
#define INTERVAL_READ_REG 200 /* unit:ms */
#define FTS_CMD_READ_ID 0x90
/* chip id */
#define FTS_CHIP_IDH 0x64
#define FTS_CHIP_IDL 0x56
/* register address */
#define FTS_REG_CHIP_ID 0xA3
#define FTS_REG_CHIP_ID2 0x9F
#define FTS_REG_FW_VER 0xA6
#define FTS_REG_UPGRADE 0xFC
/*
* Gesture function enable
* default: disable
*/
#define FTS_GESTURE_EN 0
/*****************************************************************************
* Private enumerations, structures and unions using typedef
*****************************************************************************/
/*
* Structures of point information
*
* @x: X coordinate of this point
* @y: Y coordinate of this point
* @p: pressure value of this point
* @type: event type of this point, 0 means down event,
* 1 means up event, 2 means contact event
* @id: ID of this point
* @area: touch area of this point
*/
struct fts_ts_event {
int x; /*x coordinate */
int y; /*y coordinate */
int p; /* pressure */
int type; /* touch event flag: 0 -- down; 1-- up; 2 -- contact */
int id; /*touch ID */
int area; /*touch area*/
};
struct fts_ts_data {
int suspended: 1; /* suspended state, 1: suspended mode, 0:not suspended mode */
int esd_support: 1; /* esd enable or disable, default: disable */
int gesture_support: 1; /* gesture enable or disable, default: disable */
int int_io_init: 1;
int iic_delay: 8;
int iic_hdl: 8;
};
/*****************************************************************************
* Global variable or extern global variabls/functions
*****************************************************************************/
extern struct fts_ts_data *fts_data;
void fts_msleep(unsigned long msec);
/* communication interface */
int fts_read(uint8_t addr, uint8_t *data, uint16_t datalen);
int fts_read_reg(uint8_t addr, uint8_t *value);
int fts_write(uint8_t addr, uint8_t *data, uint16_t datalen);
int fts_write_reg(uint8_t addr, uint8_t value);
void fts_ts_init(void);
int fts_ts_suspend(void);
int fts_ts_resume(void);
#endif /* __FOCALTECH_CORE_H__ */