#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/input.h>
#include <linux/acpi.h>
#include <linux/platform_device.h>
#define ACPI_BUTTON_HID_SWBTN …
#define ACPI_BUTTON_NOTIFY_SWBTN_RELEASE …
#define ACPI_BUTTON_NOTIFY_SWBTN_PRESSED …
struct adv_swbutton { … };
static void adv_swbutton_notify(acpi_handle handle, u32 event, void *context)
{ … }
static int adv_swbutton_probe(struct platform_device *device)
{ … }
static void adv_swbutton_remove(struct platform_device *device)
{ … }
static const struct acpi_device_id button_device_ids[] = …;
MODULE_DEVICE_TABLE(acpi, button_device_ids);
static struct platform_driver adv_swbutton_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;