#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/io.h>
#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/leds.h>
#define APANEL_NAME …
#define APANEL …
#define POLL_INTERVAL_DEFAULT …
enum apanel_devid { … };
enum apanel_chip { … };
static enum apanel_chip device_chip[APANEL_DEV_MAX];
#define MAX_PANEL_KEYS …
struct apanel { … };
static const unsigned short apanel_keymap[MAX_PANEL_KEYS] = …;
static void report_key(struct input_dev *input, unsigned keycode)
{ … }
static void apanel_poll(struct input_dev *idev)
{ … }
static int mail_led_set(struct led_classdev *led,
enum led_brightness value)
{ … }
static int apanel_probe(struct i2c_client *client)
{ … }
static void apanel_shutdown(struct i2c_client *client)
{ … }
static const struct i2c_device_id apanel_id[] = …;
MODULE_DEVICE_TABLE(i2c, apanel_id);
static struct i2c_driver apanel_driver = …;
static __init const void __iomem *bios_signature(const void __iomem *bios)
{ … }
static int __init apanel_init(void)
{ … }
module_init(…) …;
static void __exit apanel_cleanup(void)
{ … }
module_exit(apanel_cleanup);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;