#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/proc_fs.h>
#include <linux/pm.h>
#include <linux/interrupt.h>
#include <linux/bitops.h>
#include <linux/mfd/wm97xx.h>
#include <linux/workqueue.h>
#include <linux/wm97xx.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/slab.h>
#define TS_NAME …
#define WM_CORE_VERSION …
#define DEFAULT_PRESSURE …
static int abs_x[3] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static int abs_y[3] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
static int abs_p[3] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
int wm97xx_reg_read(struct wm97xx *wm, u16 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val)
{ … }
EXPORT_SYMBOL_GPL(…);
int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel)
{ … }
EXPORT_SYMBOL_GPL(…);
enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio)
{ … }
EXPORT_SYMBOL_GPL(…);
void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
enum wm97xx_gpio_status status)
{ … }
EXPORT_SYMBOL_GPL(…);
void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio, enum wm97xx_gpio_dir dir,
enum wm97xx_gpio_pol pol, enum wm97xx_gpio_sticky sticky,
enum wm97xx_gpio_wake wake)
{ … }
EXPORT_SYMBOL_GPL(…);
void wm97xx_set_suspend_mode(struct wm97xx *wm, u16 mode)
{ … }
EXPORT_SYMBOL_GPL(…);
static irqreturn_t wm97xx_pen_interrupt(int irq, void *dev_id)
{ … }
static int wm97xx_init_pen_irq(struct wm97xx *wm)
{ … }
static int wm97xx_read_samples(struct wm97xx *wm)
{ … }
static void wm97xx_ts_reader(struct work_struct *work)
{ … }
static int wm97xx_ts_input_open(struct input_dev *idev)
{ … }
static void wm97xx_ts_input_close(struct input_dev *idev)
{ … }
static int wm97xx_register_touch(struct wm97xx *wm)
{ … }
static void wm97xx_unregister_touch(struct wm97xx *wm)
{ … }
static int _wm97xx_probe(struct wm97xx *wm)
{ … }
static void wm97xx_remove_battery(struct wm97xx *wm)
{ … }
static int wm97xx_add_battery(struct wm97xx *wm,
struct wm97xx_batt_pdata *pdata)
{ … }
static int wm97xx_probe(struct device *dev)
{ … }
static int wm97xx_remove(struct device *dev)
{ … }
static int wm97xx_mfd_probe(struct platform_device *pdev)
{ … }
static void wm97xx_mfd_remove(struct platform_device *pdev)
{ … }
static int wm97xx_suspend(struct device *dev)
{ … }
static int wm97xx_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(wm97xx_pm_ops, wm97xx_suspend, wm97xx_resume);
int wm97xx_register_mach_ops(struct wm97xx *wm,
struct wm97xx_mach_ops *mach_ops)
{ … }
EXPORT_SYMBOL_GPL(…);
void wm97xx_unregister_mach_ops(struct wm97xx *wm)
{ … }
EXPORT_SYMBOL_GPL(…);
static struct device_driver wm97xx_driver = …;
static struct platform_driver wm97xx_mfd_driver = …;
static int __init wm97xx_init(void)
{ … }
static void __exit wm97xx_exit(void)
{ … }
module_init(…) …;
module_exit(wm97xx_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;