linux/drivers/input/touchscreen/goodix.h

/* SPDX-License-Identifier: GPL-2.0-only */
#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>

/* Register defines */
#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
/*
 * Unknown request which gets send by the controller aprox.
 * every 34 seconds once it is up and running.
 */
#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