#include <linux/module.h>
#include <linux/fs.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/pm.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/input.h>
#include <linux/mfd/ezx-pcap.h>
struct pcap_ts { … };
#define SAMPLE_DELAY …
#define X_AXIS_MIN …
#define X_AXIS_MAX …
#define Y_AXIS_MAX …
#define Y_AXIS_MIN …
#define PRESSURE_MAX …
#define PRESSURE_MIN …
static void pcap_ts_read_xy(void *data, u16 res[2])
{ … }
static void pcap_ts_work(struct work_struct *work)
{ … }
static irqreturn_t pcap_ts_event_touch(int pirq, void *data)
{ … }
static int pcap_ts_open(struct input_dev *dev)
{ … }
static void pcap_ts_close(struct input_dev *dev)
{ … }
static int pcap_ts_probe(struct platform_device *pdev)
{ … }
static void pcap_ts_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM
static int pcap_ts_suspend(struct device *dev)
{ … }
static int pcap_ts_resume(struct device *dev)
{ … }
static const struct dev_pm_ops pcap_ts_pm_ops = …;
#define PCAP_TS_PM_OPS …
#else
#define PCAP_TS_PM_OPS …
#endif
static struct platform_driver pcap_ts_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;