#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>
#define ELE_TOUCH_STATUS_0_ADDR …
#define ELE_TOUCH_STATUS_1_ADDR …
#define MHD_RISING_ADDR …
#define NHD_RISING_ADDR …
#define NCL_RISING_ADDR …
#define FDL_RISING_ADDR …
#define MHD_FALLING_ADDR …
#define NHD_FALLING_ADDR …
#define NCL_FALLING_ADDR …
#define FDL_FALLING_ADDR …
#define ELE0_TOUCH_THRESHOLD_ADDR …
#define ELE0_RELEASE_THRESHOLD_ADDR …
#define AFE_CONF_ADDR …
#define FILTER_CONF_ADDR …
#define ELECTRODE_CONF_ADDR …
#define ELECTRODE_CONF_QUICK_CHARGE …
#define AUTO_CONFIG_CTRL_ADDR …
#define AUTO_CONFIG_USL_ADDR …
#define AUTO_CONFIG_LSL_ADDR …
#define AUTO_CONFIG_TL_ADDR …
#define TOUCH_THRESHOLD …
#define RELEASE_THRESHOLD …
#define TOUCH_STATUS_MASK …
#define MPR121_MAX_KEY_COUNT …
#define MPR121_MIN_POLL_INTERVAL …
#define MPR121_MAX_POLL_INTERVAL …
struct mpr121_touchkey { … };
struct mpr121_init_register { … };
static const struct mpr121_init_register init_reg_table[] = …;
static void mpr121_vdd_supply_disable(void *data)
{ … }
static struct regulator *mpr121_vdd_supply_init(struct device *dev)
{ … }
static void mpr_touchkey_report(struct input_dev *dev)
{ … }
static irqreturn_t mpr_touchkey_interrupt(int irq, void *dev_id)
{ … }
static int mpr121_phys_init(struct mpr121_touchkey *mpr121,
struct i2c_client *client, int vdd_uv)
{ … }
static int mpr_touchkey_probe(struct i2c_client *client)
{ … }
static int mpr_suspend(struct device *dev)
{ … }
static int mpr_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(mpr121_touchkey_pm_ops, mpr_suspend, mpr_resume);
static const struct i2c_device_id mpr121_id[] = …;
MODULE_DEVICE_TABLE(i2c, mpr121_id);
#ifdef CONFIG_OF
static const struct of_device_id mpr121_touchkey_dt_match_table[] = …;
MODULE_DEVICE_TABLE(of, mpr121_touchkey_dt_match_table);
#endif
static struct i2c_driver mpr_touchkey_driver = …;
module_i2c_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;