Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eaf858a988a4b7b34a6ae03a3ac52cdf25013892
Commit:     eaf858a988a4b7b34a6ae03a3ac52cdf25013892
Parent:     86640cae60147b0cd2705145de8067e24db70a8b
Author:     David Brownell <[EMAIL PROTECTED]>
AuthorDate: Mon Jan 14 08:53:22 2008 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sun Jan 27 17:54:16 2008 +0000

    [ARM] 4615/4: sam926[13]ek buttons updated
    
    From: Nicolas Ferre <[EMAIL PROTECTED]>
    
    On the at92sam9263ek board, tell the input subsystem about the buttons.
    This patch is taken from Andrew Victor's at91 patchset, then updated to
    match the latest kernel code and to use labels printed on the board.
    
    Also update the at91sam9261ek buttons to cope with input changes.
    
    Signed-off-by: David Brownell <[EMAIL PROTECTED]>
    Acked-by: Andrew Victor <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/mach-at91/board-sam9261ek.c |    8 ++--
 arch/arm/mach-at91/board-sam9263ek.c |   53 ++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-at91/board-sam9261ek.c 
b/arch/arm/mach-at91/board-sam9261ek.c
index 594c5c1..aa29ea5 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -404,25 +404,25 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data;
 static struct gpio_keys_button ek_buttons[] = {
        {
                .gpio           = AT91_PIN_PA27,
-               .keycode        = BTN_0,
+               .code           = BTN_0,
                .desc           = "Button 0",
                .active_low     = 1,
        },
        {
                .gpio           = AT91_PIN_PA26,
-               .keycode        = BTN_1,
+               .code           = BTN_1,
                .desc           = "Button 1",
                .active_low     = 1,
        },
        {
                .gpio           = AT91_PIN_PA25,
-               .keycode        = BTN_2,
+               .code           = BTN_2,
                .desc           = "Button 2",
                .active_low     = 1,
        },
        {
                .gpio           = AT91_PIN_PA24,
-               .keycode        = BTN_3,
+               .code           = BTN_3,
                .desc           = "Button 3",
                .active_low     = 1,
        }
diff --git a/arch/arm/mach-at91/board-sam9263ek.c 
b/arch/arm/mach-at91/board-sam9263ek.c
index 2df0ff2..f09347a 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -27,6 +27,8 @@
 #include <linux/spi/spi.h>
 #include <linux/spi/ads7846.h>
 #include <linux/fb.h>
+#include <linux/gpio_keys.h>
+#include <linux/input.h>
 
 #include <video/atmel_lcdc.h>
 
@@ -265,6 +267,55 @@ static struct atmel_lcdfb_info __initdata ek_lcdc_data;
 
 
 /*
+ * GPIO Buttons
+ */
+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+static struct gpio_keys_button ek_buttons[] = {
+       {       /* BP1, "leftclic" */
+               .code           = BTN_LEFT,
+               .gpio           = AT91_PIN_PC5,
+               .active_low     = 1,
+               .desc           = "left_click",
+               .wakeup         = 1,
+       },
+       {       /* BP2, "rightclic" */
+               .code           = BTN_RIGHT,
+               .gpio           = AT91_PIN_PC4,
+               .active_low     = 1,
+               .desc           = "right_click",
+               .wakeup         = 1,
+       },
+};
+
+static struct gpio_keys_platform_data ek_button_data = {
+       .buttons        = ek_buttons,
+       .nbuttons       = ARRAY_SIZE(ek_buttons),
+};
+
+static struct platform_device ek_button_device = {
+       .name           = "gpio-keys",
+       .id             = -1,
+       .num_resources  = 0,
+       .dev            = {
+               .platform_data  = &ek_button_data,
+       }
+};
+
+static void __init ek_add_device_buttons(void)
+{
+       at91_set_GPIO_periph(AT91_PIN_PC5, 0);  /* left button */
+       at91_set_deglitch(AT91_PIN_PC5, 1);
+       at91_set_GPIO_periph(AT91_PIN_PC4, 0);  /* right button */
+       at91_set_deglitch(AT91_PIN_PC4, 1);
+
+       platform_device_register(&ek_button_device);
+}
+#else
+static void __init ek_add_device_buttons(void) {}
+#endif
+
+
+/*
  * AC97
  */
 static struct atmel_ac97_data ek_ac97_data = {
@@ -319,6 +370,8 @@ static void __init ek_board_init(void)
        at91_add_device_i2c(NULL, 0);
        /* LCD Controller */
        at91_add_device_lcdc(&ek_lcdc_data);
+       /* Push Buttons */
+       ek_add_device_buttons();
        /* AC97 */
        at91_add_device_ac97(&ek_ac97_data);
        /* LEDs */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to