#include <linux/delay.h>
#include <linux/err.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/mod_devicetable.h>
#include <linux/module.h>
#include <linux/property.h>
#include <linux/unaligned.h>
struct hynitron_ts_chip_data { … };
struct hynitron_ts_data { … };
#define CST3XX_FIRMWARE_INFO_START_CMD …
#define CST3XX_FIRMWARE_INFO_END_CMD …
#define CST3XX_FIRMWARE_CHK_CODE_REG …
#define CST3XX_FIRMWARE_VERSION_REG …
#define CST3XX_FIRMWARE_VER_INVALID_VAL …
#define CST3XX_BOOTLDR_PROG_CMD …
#define CST3XX_BOOTLDR_PROG_CHK_REG …
#define CST3XX_BOOTLDR_CHK_VAL …
#define CST3XX_TOUCH_DATA_PART_REG …
#define CST3XX_TOUCH_DATA_FULL_REG …
#define CST3XX_TOUCH_DATA_CHK_VAL …
#define CST3XX_TOUCH_DATA_TOUCH_VAL …
#define CST3XX_TOUCH_DATA_STOP_CMD …
#define CST3XX_TOUCH_COUNT_MASK …
static void hyn_reset_proc(struct i2c_client *client, int delay)
{ … }
static irqreturn_t hyn_interrupt_handler(int irq, void *dev_id)
{ … }
static int cst3xx_i2c_write(struct i2c_client *client,
unsigned char *buf, int len)
{ … }
static int cst3xx_i2c_read_register(struct i2c_client *client, u16 reg,
u8 *val, u16 len)
{ … }
static int cst3xx_firmware_info(struct i2c_client *client)
{ … }
static int cst3xx_bootloader_enter(struct i2c_client *client)
{ … }
static void cst3xx_report_contact(struct hynitron_ts_data *ts_data,
u8 id, unsigned int x, unsigned int y, u8 w)
{ … }
static int cst3xx_finish_touch_read(struct i2c_client *client)
{ … }
static void cst3xx_touch_report(struct i2c_client *client)
{ … }
static int cst3xx_input_dev_int(struct i2c_client *client)
{ … }
static int hyn_probe(struct i2c_client *client)
{ … }
static const struct hynitron_ts_chip_data cst3xx_data = …;
static const struct i2c_device_id hyn_tpd_id[] = …;
MODULE_DEVICE_TABLE(i2c, hyn_tpd_id);
static const struct of_device_id hyn_dt_match[] = …;
MODULE_DEVICE_TABLE(of, hyn_dt_match);
static struct i2c_driver hynitron_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;