@@ -14,6 +14,7 @@
#include <linux/input-polldev.h>
#include <linux/gpio/consumer.h>
#include <linux/property.h>
+#include <linux/of.h>
/**
* struct gpio_mouse
@@ -160,11 +161,18 @@ static int gpio_mouse_remove(struct platform_device *pdev)
return 0;
}
+static const struct of_device_id gpio_mouse_of_match[] = {
+ { .compatible = "gpio-mouse", },
+ { },
+};
+MODULE_DEVICE_TABLE(of, gpio_mouse_of_match);
+
static struct platform_driver gpio_mouse_device_driver = {
.probe = gpio_mouse_probe,
.remove = gpio_mouse_remove,
.driver = {
.name = "gpio_mouse",
+ .of_match_table = gpio_mouse_of_match,
}
};
module_platform_driver(gpio_mouse_device_driver);
@@ -173,4 +181,3 @@ 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 */
-
This makes the GPIO mouse probe nicely from the device tree if found in a tree. As the driver uses device properties it can easily be amended to also probe from ACPI devices. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/input/mouse/gpio_mouse.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)