#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <linux/input/matrix_keypad.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/mfd/tc3589x.h>
#include <linux/device.h>
#define TC3589x_MAX_KPROW …
#define TC3589x_MAX_KPCOL …
#define TC3589x_MAX_DEBOUNCE_SETTLE …
#define DEDICATED_KEY_VAL …
#define TC3589x_NO_PULL_MASK …
#define TC3589x_PULL_DOWN_MASK …
#define TC3589x_PULL_UP_MASK …
#define TC3589x_PULLUP_ALL_MASK …
#define TC3589x_IO_PULL_VAL(index, mask) …
#define IOCFG_BALLCFG …
#define IOCFG_IG …
#define KP_EVCODE_COL_MASK …
#define KP_EVCODE_ROW_MASK …
#define KP_RELEASE_EVT_MASK …
#define KP_ROW_SHIFT …
#define KP_NO_VALID_KEY_MASK …
#define TC3589x_KBDRST …
#define TC3589x_IRQRST …
#define TC3589x_RESET_ALL …
#define TC3589x_KBDMFS_EN …
#define KPD_CLK_EN …
#define IRQ_CLEAR …
#define TC3589x_EVT_LOSS_INT …
#define TC3589x_EVT_INT …
#define TC3589x_KBD_LOSS_INT …
#define TC3589x_KBD_INT …
#define TC3589x_EVT_INT_CLR …
#define TC3589x_KBD_INT_CLR …
struct tc3589x_keypad_platform_data { … };
struct tc_keypad { … };
static int tc3589x_keypad_init_key_hardware(struct tc_keypad *keypad)
{ … }
#define TC35893_DATA_REGS …
#define TC35893_KEYCODE_FIFO_EMPTY …
#define TC35893_KEYCODE_FIFO_CLEAR …
#define TC35893_KEYPAD_ROW_SHIFT …
static irqreturn_t tc3589x_keypad_irq(int irq, void *dev)
{ … }
static int tc3589x_keypad_enable(struct tc_keypad *keypad)
{ … }
static int tc3589x_keypad_disable(struct tc_keypad *keypad)
{ … }
static int tc3589x_keypad_open(struct input_dev *input)
{ … }
static void tc3589x_keypad_close(struct input_dev *input)
{ … }
static const struct tc3589x_keypad_platform_data *
tc3589x_keypad_of_probe(struct device *dev)
{ … }
static int tc3589x_keypad_probe(struct platform_device *pdev)
{ … }
static int tc3589x_keypad_suspend(struct device *dev)
{ … }
static int tc3589x_keypad_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(tc3589x_keypad_dev_pm_ops,
tc3589x_keypad_suspend, tc3589x_keypad_resume);
static struct platform_driver tc3589x_keypad_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;