aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSteve Sakoman <steve@sakoman.com>2011-03-09 19:08:06 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-11 08:48:53 -0500
commitcce18a947967ed028e5301bce84cbaff395489a6 (patch)
treecb4be51559a8dab4a549b3ad237a8d37cdc1f7b0 /arch/arm
parent7c94f68d7b490c7787c6b97c5b2d6d56d57b071c (diff)
OMAP: Add gpio-keys support for Overo
This patch adds support for the standard push buttons available on Overo expansion boards. Signed-off-by: Steve Sakoman <steve@sakoman.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/board-overo.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index e694ebd2636..1e17061649e 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -519,6 +519,47 @@ static void __init overo_init_led(void)
519static inline void __init overo_init_led(void) { return; } 519static inline void __init overo_init_led(void) { return; }
520#endif 520#endif
521 521
522#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
523#include <linux/input.h>
524#include <linux/gpio_keys.h>
525
526static struct gpio_keys_button gpio_buttons[] = {
527 {
528 .code = BTN_0,
529 .gpio = 23,
530 .desc = "button0",
531 .wakeup = 1,
532 },
533 {
534 .code = BTN_1,
535 .gpio = 14,
536 .desc = "button1",
537 .wakeup = 1,
538 },
539};
540
541static struct gpio_keys_platform_data gpio_keys_pdata = {
542 .buttons = gpio_buttons,
543 .nbuttons = ARRAY_SIZE(gpio_buttons),
544};
545
546static struct platform_device gpio_keys_device = {
547 .name = "gpio-keys",
548 .id = -1,
549 .dev = {
550 .platform_data = &gpio_keys_pdata,
551 },
552};
553
554static void __init overo_init_keys(void)
555{
556 platform_device_register(&gpio_keys_device);
557}
558
559#else
560static inline void __init overo_init_keys(void) { return; }
561#endif
562
522static int overo_twl_gpio_setup(struct device *dev, 563static int overo_twl_gpio_setup(struct device *dev,
523 unsigned gpio, unsigned ngpio) 564 unsigned gpio, unsigned ngpio)
524{ 565{
@@ -701,6 +742,7 @@ static void __init overo_init(void)
701 overo_init_smsc911x(); 742 overo_init_smsc911x();
702 overo_display_init(); 743 overo_display_init();
703 overo_init_led(); 744 overo_init_led();
745 overo_init_keys();
704 746
705 /* Ensure SDRC pins are mux'd for self-refresh */ 747 /* Ensure SDRC pins are mux'd for self-refresh */
706 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 748 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);