#define pr_fmt(fmt) …
#include <linux/dmi.h>
#include <linux/err.h>
#include <linux/gpio_keys.h>
#include <linux/gpio/machine.h>
#include <linux/input.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#define TINK_GPIO_DRIVER_NAME …
static const struct gpio_led tink_leds[] = …;
static const struct gpio_led_platform_data tink_leds_pdata = …;
static struct gpiod_lookup_table tink_leds_table = …;
static struct gpio_keys_button tink_buttons[] = …;
static const struct gpio_keys_platform_data tink_buttons_pdata = …;
static struct gpiod_lookup_table tink_keys_table = …;
static const struct dmi_system_id tink_systems[] __initconst = …;
MODULE_DEVICE_TABLE(dmi, tink_systems);
static struct platform_device *tink_leds_pdev;
static struct platform_device *tink_keys_pdev;
static struct platform_device * __init tink_create_dev(
const char *name, const void *pdata, size_t sz)
{ … }
static int __init tink_board_init(void)
{ … }
module_init(…) …;
static void __exit tink_board_exit(void)
{ … }
module_exit(tink_board_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;