diff options
author | Steve Sakoman <steve@sakoman.com> | 2011-03-09 19:08:06 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2011-03-11 08:48:53 -0500 |
commit | cce18a947967ed028e5301bce84cbaff395489a6 (patch) | |
tree | cb4be51559a8dab4a549b3ad237a8d37cdc1f7b0 /arch/arm | |
parent | 7c94f68d7b490c7787c6b97c5b2d6d56d57b071c (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.c | 42 |
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) | |||
519 | static inline void __init overo_init_led(void) { return; } | 519 | static 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 | |||
526 | static 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 | |||
541 | static struct gpio_keys_platform_data gpio_keys_pdata = { | ||
542 | .buttons = gpio_buttons, | ||
543 | .nbuttons = ARRAY_SIZE(gpio_buttons), | ||
544 | }; | ||
545 | |||
546 | static struct platform_device gpio_keys_device = { | ||
547 | .name = "gpio-keys", | ||
548 | .id = -1, | ||
549 | .dev = { | ||
550 | .platform_data = &gpio_keys_pdata, | ||
551 | }, | ||
552 | }; | ||
553 | |||
554 | static void __init overo_init_keys(void) | ||
555 | { | ||
556 | platform_device_register(&gpio_keys_device); | ||
557 | } | ||
558 | |||
559 | #else | ||
560 | static inline void __init overo_init_keys(void) { return; } | ||
561 | #endif | ||
562 | |||
522 | static int overo_twl_gpio_setup(struct device *dev, | 563 | static 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); |