#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/mfd/intel_soc_pmic.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_wakeirq.h>
#include <linux/slab.h>
#define CHTDC_TI_SIRQ_REG …
#define SIRQ_PWRBTN_REL …
static irqreturn_t chtdc_ti_pwrbtn_interrupt(int irq, void *dev_id)
{ … }
static int chtdc_ti_pwrbtn_probe(struct platform_device *pdev)
{ … }
static void chtdc_ti_pwrbtn_remove(struct platform_device *pdev)
{ … }
static const struct platform_device_id chtdc_ti_pwrbtn_id_table[] = …;
MODULE_DEVICE_TABLE(platform, chtdc_ti_pwrbtn_id_table);
static struct platform_driver chtdc_ti_pwrbtn_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;