#include <linux/bits.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/interrupt.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/input.h>
#include <linux/input/matrix_keypad.h>
#include <linux/slab.h>
#include <linux/soc/cirrus/ep93xx.h>
#include <linux/pm_wakeirq.h>
#define KEY_INIT …
#define KEY_DIAG …
#define KEY_REG …
#define KEY_INIT_DBNC_MASK …
#define KEY_INIT_DBNC_SHIFT …
#define KEY_INIT_DIS3KY …
#define KEY_INIT_DIAG …
#define KEY_INIT_BACK …
#define KEY_INIT_T2 …
#define KEY_INIT_PRSCL_MASK …
#define KEY_INIT_PRSCL_SHIFT …
#define KEY_DIAG_MASK …
#define KEY_DIAG_SHIFT …
#define KEY_REG_K …
#define KEY_REG_INT …
#define KEY_REG_2KEYS …
#define KEY_REG_1KEY …
#define KEY_REG_KEY2_MASK …
#define KEY_REG_KEY2_SHIFT …
#define KEY_REG_KEY1_MASK …
#define KEY_REG_KEY1_SHIFT …
#define EP93XX_MATRIX_ROWS …
#define EP93XX_MATRIX_COLS …
#define EP93XX_MATRIX_SIZE …
struct ep93xx_keypad { … };
static irqreturn_t ep93xx_keypad_irq_handler(int irq, void *dev_id)
{ … }
static void ep93xx_keypad_config(struct ep93xx_keypad *keypad)
{ … }
static int ep93xx_keypad_open(struct input_dev *pdev)
{ … }
static void ep93xx_keypad_close(struct input_dev *pdev)
{ … }
static int ep93xx_keypad_suspend(struct device *dev)
{ … }
static int ep93xx_keypad_resume(struct device *dev)
{ … }
static DEFINE_SIMPLE_DEV_PM_OPS(ep93xx_keypad_pm_ops,
ep93xx_keypad_suspend, ep93xx_keypad_resume);
static int ep93xx_keypad_probe(struct platform_device *pdev)
{ … }
static void ep93xx_keypad_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id ep93xx_keypad_of_ids[] = …;
MODULE_DEVICE_TABLE(of, ep93xx_keypad_of_ids);
static struct platform_driver ep93xx_keypad_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;