#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/pm.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <linux/i2c.h>
#include <linux/timer.h>
#define EVENT_PENDOWN …
#define EVENT_REPEAT …
#define EVENT_PENUP …
struct migor_ts_priv { … };
static const u_int8_t migor_ts_ena_seq[17] = …;
static const u_int8_t migor_ts_dis_seq[17] = …;
static irqreturn_t migor_ts_isr(int irq, void *dev_id)
{ … }
static int migor_ts_open(struct input_dev *dev)
{ … }
static void migor_ts_close(struct input_dev *dev)
{ … }
static int migor_ts_probe(struct i2c_client *client)
{ … }
static void migor_ts_remove(struct i2c_client *client)
{ … }
static int migor_ts_suspend(struct device *dev)
{ … }
static int migor_ts_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(migor_ts_pm, migor_ts_suspend, migor_ts_resume);
static const struct i2c_device_id migor_ts_id[] = …;
MODULE_DEVICE_TABLE(i2c, migor_ts_id);
static struct i2c_driver migor_ts_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;