#ifndef __GOODIX_H__
#define __GOODIX_H__
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/input/touchscreen.h>
#include <linux/regulator/consumer.h>
#define GOODIX_REG_MISCTL_DSP_CTL …
#define GOODIX_REG_MISCTL_SRAM_BANK …
#define GOODIX_REG_MISCTL_MEM_CD_EN …
#define GOODIX_REG_MISCTL_CACHE_EN …
#define GOODIX_REG_MISCTL_TMR0_EN …
#define GOODIX_REG_MISCTL_SWRST …
#define GOODIX_REG_MISCTL_CPU_SWRST_PULSE …
#define GOODIX_REG_MISCTL_BOOTCTL …
#define GOODIX_REG_MISCTL_BOOT_OPT …
#define GOODIX_REG_MISCTL_BOOT_CTL …
#define GOODIX_REG_FW_SIG …
#define GOODIX_FW_SIG_LEN …
#define GOODIX_REG_MAIN_CLK …
#define GOODIX_MAIN_CLK_LEN …
#define GOODIX_REG_COMMAND …
#define GOODIX_CMD_SCREEN_OFF …
#define GOODIX_REG_SW_WDT …
#define GOODIX_REG_REQUEST …
#define GOODIX_RQST_RESPONDED …
#define GOODIX_RQST_CONFIG …
#define GOODIX_RQST_BAK_REF …
#define GOODIX_RQST_RESET …
#define GOODIX_RQST_MAIN_CLOCK …
#define GOODIX_RQST_UNKNOWN …
#define GOODIX_RQST_IDLE …
#define GOODIX_REG_STATUS …
#define GOODIX_GT1X_REG_CONFIG_DATA …
#define GOODIX_GT9X_REG_CONFIG_DATA …
#define GOODIX_REG_ID …
#define GOODIX_READ_COOR_ADDR …
#define GOODIX_REG_BAK_REF …
#define GOODIX_ID_MAX_LEN …
#define GOODIX_CONFIG_MAX_LENGTH …
#define GOODIX_MAX_KEYS …
enum goodix_irq_pin_access_method { … };
struct goodix_ts_data;
struct goodix_chip_data { … };
struct goodix_ts_data { … };
int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len);
int goodix_i2c_write(struct i2c_client *client, u16 reg, const u8 *buf, int len);
int goodix_i2c_write_u8(struct i2c_client *client, u16 reg, u8 value);
int goodix_send_cfg(struct goodix_ts_data *ts, const u8 *cfg, int len);
int goodix_int_sync(struct goodix_ts_data *ts);
int goodix_reset_no_int_sync(struct goodix_ts_data *ts);
int goodix_firmware_check(struct goodix_ts_data *ts);
bool goodix_handle_fw_request(struct goodix_ts_data *ts);
void goodix_save_bak_ref(struct goodix_ts_data *ts);
#endif