#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/mfd/mc13783.h>
#include <linux/sched.h>
#include <linux/slab.h>
struct mc13783_pwrb { … };
#define MC13783_REG_INTERRUPT_SENSE_1 …
#define MC13783_IRQSENSE1_ONOFD1S …
#define MC13783_IRQSENSE1_ONOFD2S …
#define MC13783_IRQSENSE1_ONOFD3S …
#define MC13783_REG_POWER_CONTROL_2 …
#define MC13783_POWER_CONTROL_2_ON1BDBNC …
#define MC13783_POWER_CONTROL_2_ON2BDBNC …
#define MC13783_POWER_CONTROL_2_ON3BDBNC …
#define MC13783_POWER_CONTROL_2_ON1BRSTEN …
#define MC13783_POWER_CONTROL_2_ON2BRSTEN …
#define MC13783_POWER_CONTROL_2_ON3BRSTEN …
static irqreturn_t button_irq(int irq, void *_priv)
{ … }
static int mc13783_pwrbutton_probe(struct platform_device *pdev)
{ … }
static void mc13783_pwrbutton_remove(struct platform_device *pdev)
{ … }
static struct platform_driver mc13783_pwrbutton_driver = …;
module_platform_driver(…) …;
MODULE_ALIAS(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;