diff options
Diffstat (limited to 'drivers/input/mouse/gpio_mouse.c')
| -rw-r--r-- | drivers/input/mouse/gpio_mouse.c | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/drivers/input/mouse/gpio_mouse.c b/drivers/input/mouse/gpio_mouse.c index 0936d6ba015..8c7d94200bd 100644 --- a/drivers/input/mouse/gpio_mouse.c +++ b/drivers/input/mouse/gpio_mouse.c @@ -8,18 +8,16 @@ * published by the Free Software Foundation. */ -#include <linux/init.h> -#include <linux/version.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/input-polldev.h> +#include <linux/gpio.h> #include <linux/gpio_mouse.h> -#include <asm/gpio.h> /* * Timer function which is run every scan_ms ms when the device is opened. - * The dev input varaible is set to the the input_dev pointer. + * The dev input variable is set to the the input_dev pointer. */ static void gpio_mouse_scan(struct input_polled_dev *dev) { @@ -47,9 +45,9 @@ static void gpio_mouse_scan(struct input_polled_dev *dev) input_sync(input); } -static int __init gpio_mouse_probe(struct platform_device *pdev) +static int gpio_mouse_probe(struct platform_device *pdev) { - struct gpio_mouse_platform_data *pdata = pdev->dev.platform_data; + struct gpio_mouse_platform_data *pdata = dev_get_platdata(&pdev->dev); struct input_polled_dev *input_poll; struct input_dev *input; int pin, i; @@ -139,7 +137,6 @@ static int __init gpio_mouse_probe(struct platform_device *pdev) out_free_polldev: input_free_polled_device(input_poll); - platform_set_drvdata(pdev, NULL); out_free_gpios: while (--i >= 0) { @@ -151,7 +148,7 @@ static int __init gpio_mouse_probe(struct platform_device *pdev) return error; } -static int __devexit gpio_mouse_remove(struct platform_device *pdev) +static int gpio_mouse_remove(struct platform_device *pdev) { struct input_polled_dev *input = platform_get_drvdata(pdev); struct gpio_mouse_platform_data *pdata = input->private; @@ -166,31 +163,21 @@ static int __devexit gpio_mouse_remove(struct platform_device *pdev) gpio_free(pin); } - platform_set_drvdata(pdev, NULL); - return 0; } -struct platform_driver gpio_mouse_device_driver = { - .remove = __devexit_p(gpio_mouse_remove), +static struct platform_driver gpio_mouse_device_driver = { + .probe = gpio_mouse_probe, + .remove = gpio_mouse_remove, .driver = { .name = "gpio_mouse", + .owner = THIS_MODULE, } }; +module_platform_driver(gpio_mouse_device_driver); -static int __init gpio_mouse_init(void) -{ - return platform_driver_probe(&gpio_mouse_device_driver, - gpio_mouse_probe); -} -module_init(gpio_mouse_init); - -static void __exit gpio_mouse_exit(void) -{ - platform_driver_unregister(&gpio_mouse_device_driver); -} -module_exit(gpio_mouse_exit); - -MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>"); +MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>"); MODULE_DESCRIPTION("GPIO mouse driver"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:gpio_mouse"); /* work with hotplug and coldplug */ + |
