User manual
Page | 53
.owner = THIS_MODULE,
#ifdef CONFIG_PM
.pm = &gpio_keys_pm_ops,
#endif
}
};
static int __init gpio_keys_init(void)
{
return
platform_driver_register(&gpio_keys_device_driver);
}
static void __exit gpio_keys_exit(void)
{
platform_driver_unregister(&gpio_keys_device_driver);
}
module_init(gpio_keys_init);
module_exit(gpio_keys_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>");
MODULE_DESCRIPTION("Keyboard driver for CPU GPIOs");
MODULE_ALIAS("platform:gpio-keys");
Call input_register_device to register input driver;
static int __devinit gpio_keys_probe(struct platform_device
*pdev)
{
…
input = input_allocate_device();
…
for (i = 0; i < pdata->nbuttons; i++) {
struct gpio_keys_button *button =
&pdata->buttons[i];
struct gpio_button_data *bdata =
&ddata->data[i];
unsigned int type = button->type ?: EV_KEY;
bdata->input = input;