This patch adds support for exporting status of GPIO switches, configured as
gpio-keys buttons that generate events of type EV_SW, over standard gpiolib
sysfs interface. That way, switch state can be easily accessed from userspace
via a modern sysfs API in addition to traditional ioclt API, without the need
for adding a new, usualy controversial entry to sysfs interface.

Signed-off-by: Janusz Krzysztofik <jkrzy...@tis.icnet.pl>
---
diff -up linux-2.6.30-rc5/drivers/input/keyboard/gpio_keys.c.orig 
linux-2.6.30-rc5/drivers/input/keyboard/gpio_keys.c
--- linux-2.6.30-rc5/drivers/input/keyboard/gpio_keys.c.orig    2009-03-24 
00:12:14.000000000 +0100
+++ linux-2.6.30-rc5/drivers/input/keyboard/gpio_keys.c 2009-06-04 
21:31:19.000000000 +0200
@@ -157,6 +157,19 @@ static int __devinit gpio_keys_probe(str
                        wakeup = 1;
 
                input_set_capability(input, type, button->code);
+
+               /* For GPIO buttons generating events of type EV_SW
+                * (ie switches), export their status
+                * over gpiolib sysfs interface if configured */
+#ifdef CONFIG_GPIO_SYSFS
+               if (type == EV_SW) {
+                       error = gpio_export(button->gpio, false);
+                       if (error)
+                               pr_warning("gpio-keys: "
+                                       "failed to export GPIO %d, error %d\n",
+                                       button->gpio, error);
+               }
+#endif
        }
 
        error = input_register_device(input);
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to