#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/input.h>
#include <linux/mfd/88pm80x.h>
#include <linux/regmap.h>
#include <linux/slab.h>
#define PM800_LONG_ONKEY_EN …
#define PM800_LONG_KEY_DELAY …
#define PM800_LONKEY_PRESS_TIME …
#define PM800_LONKEY_PRESS_TIME_MASK …
#define PM800_SW_PDOWN …
struct pm80x_onkey_info { … };
static irqreturn_t pm80x_onkey_handler(int irq, void *data)
{ … }
static SIMPLE_DEV_PM_OPS(pm80x_onkey_pm_ops, pm80x_dev_suspend,
pm80x_dev_resume);
static int pm80x_onkey_probe(struct platform_device *pdev)
{ … }
static void pm80x_onkey_remove(struct platform_device *pdev)
{ … }
static struct platform_driver pm80x_onkey_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_ALIAS(…) …;