]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-pxa/tosa.c
[ARM] pxa: move ARRAY_AND_SIZE definition to generic.h
[mv-sheeva.git] / arch / arm / mach-pxa / tosa.c
index 9b26fa5edad69200756d02384cdfcb941e8911d7..d427d87b4fe8b24b481aa2371330ca7973ec4110 100644 (file)
@@ -21,6 +21,8 @@
 #include <linux/mmc/host.h>
 #include <linux/pm.h>
 #include <linux/delay.h>
+#include <linux/gpio_keys.h>
+#include <linux/input.h>
 
 #include <asm/setup.h>
 #include <asm/memory.h>
@@ -30,6 +32,7 @@
 #include <asm/system.h>
 #include <asm/arch/pxa-regs.h>
 #include <asm/arch/pxa2xx-regs.h>
+#include <asm/arch/pxa2xx-gpio.h>
 #include <asm/arch/irda.h>
 #include <asm/arch/mmc.h>
 #include <asm/arch/udc.h>
@@ -246,6 +249,46 @@ static struct platform_device tosakbd_device = {
        .id             = -1,
 };
 
+static struct gpio_keys_button tosa_gpio_keys[] = {
+       {
+               .type   = EV_PWR,
+               .code   = KEY_SUSPEND,
+               .gpio   = TOSA_GPIO_ON_KEY,
+               .desc   = "On key",
+               .wakeup = 1,
+               .active_low = 1,
+       },
+       {
+               .type   = EV_KEY,
+               .code   = TOSA_KEY_RECORD,
+               .gpio   = TOSA_GPIO_RECORD_BTN,
+               .desc   = "Record Button",
+               .wakeup = 1,
+               .active_low = 1,
+       },
+       {
+               .type   = EV_KEY,
+               .code   = TOSA_KEY_SYNC,
+               .gpio   = TOSA_GPIO_SYNC,
+               .desc   = "Sync Button",
+               .wakeup = 1,
+               .active_low = 1,
+       },
+};
+
+static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = {
+       .buttons        = tosa_gpio_keys,
+       .nbuttons       = ARRAY_SIZE(tosa_gpio_keys),
+};
+
+static struct platform_device tosa_gpio_keys_device = {
+       .name   = "gpio-keys",
+       .id     = -1,
+       .dev    = {
+               .platform_data  = &tosa_gpio_keys_platform_data,
+       },
+};
+
 /*
  * Tosa LEDs
  */
@@ -258,6 +301,7 @@ static struct platform_device *devices[] __initdata = {
        &tosascoop_device,
        &tosascoop_jc_device,
        &tosakbd_device,
+       &tosa_gpio_keys_device,
        &tosaled_device,
 };