[PATCH] input: gpio_keys: added setup call for extending functionality of driver
From: Alexander Shiyan <hidden>
Date: 2012-06-20 16:21:03
This additional call can be used for extending functionality of driver. For example we can add EV_SND, EV_LED, etc. handlers. Signed-off-by: Alexander Shiyan <redacted> --- drivers/input/keyboard/gpio_keys.c | 3 +++ include/linux/gpio_keys.h | 2 ++ 2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 62bfce4..2b1bcb2 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c@@ -707,6 +707,9 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev) wakeup = 1; } + if (pdata->setup) + pdata->setup(input); + error = sysfs_create_group(&pdev->dev.kobj, &gpio_keys_attr_group); if (error) { dev_err(dev, "Unable to export keys/switches, error: %d\n",
diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h
index a7e977f..0dfd3fe 100644
--- a/include/linux/gpio_keys.h
+++ b/include/linux/gpio_keys.h@@ -2,6 +2,7 @@ #define _GPIO_KEYS_H struct device; +struct input_dev; struct gpio_keys_button { /* Configuration parameters */
@@ -25,6 +26,7 @@ struct gpio_keys_platform_data { unsigned int rep:1; /* enable input subsystem auto repeat */ int (*enable)(struct device *dev); void (*disable)(struct device *dev); + int (*setup)(struct input_dev *input); const char *name; /* input device name */ };
--
1.7.3.4