#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/input.h>
#include <linux/input/touchscreen.h>
#include <linux/interrupt.h>
#include <linux/i2c.h>
#include <linux/timer.h>
#include <linux/gpio/consumer.h>
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/unaligned.h>
struct eeti_ts { … };
#define EETI_TS_BITDEPTH …
#define EETI_MAXVAL …
#define REPORT_BIT_PRESSED …
#define REPORT_BIT_AD0 …
#define REPORT_BIT_AD1 …
#define REPORT_BIT_HAS_PRESSURE …
#define REPORT_RES_BITS(v) …
static void eeti_ts_report_event(struct eeti_ts *eeti, u8 *buf)
{ … }
static int eeti_ts_read(struct eeti_ts *eeti)
{ … }
static irqreturn_t eeti_ts_isr(int irq, void *dev_id)
{ … }
static void eeti_ts_start(struct eeti_ts *eeti)
{ … }
static void eeti_ts_stop(struct eeti_ts *eeti)
{ … }
static int eeti_ts_open(struct input_dev *dev)
{ … }
static void eeti_ts_close(struct input_dev *dev)
{ … }
static int eeti_ts_probe(struct i2c_client *client)
{ … }
static int eeti_ts_suspend(struct device *dev)
{ … }
static int eeti_ts_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(eeti_ts_pm, eeti_ts_suspend, eeti_ts_resume);
static const struct i2c_device_id eeti_ts_id[] = …;
MODULE_DEVICE_TABLE(i2c, eeti_ts_id);
#ifdef CONFIG_OF
static const struct of_device_id of_eeti_ts_match[] = …;
#endif
static struct i2c_driver eeti_ts_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;