diff options
Diffstat (limited to 'arch/arm/mach-pxa/tosa.c')
| -rw-r--r-- | arch/arm/mach-pxa/tosa.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index 9b26fa5eda..f99112d50b 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
| @@ -21,6 +21,8 @@ | |||
| 21 | #include <linux/mmc/host.h> | 21 | #include <linux/mmc/host.h> |
| 22 | #include <linux/pm.h> | 22 | #include <linux/pm.h> |
| 23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
| 24 | #include <linux/gpio_keys.h> | ||
| 25 | #include <linux/input.h> | ||
| 24 | 26 | ||
| 25 | #include <asm/setup.h> | 27 | #include <asm/setup.h> |
| 26 | #include <asm/memory.h> | 28 | #include <asm/memory.h> |
| @@ -246,6 +248,46 @@ static struct platform_device tosakbd_device = { | |||
| 246 | .id = -1, | 248 | .id = -1, |
| 247 | }; | 249 | }; |
| 248 | 250 | ||
| 251 | static struct gpio_keys_button tosa_gpio_keys[] = { | ||
| 252 | { | ||
| 253 | .type = EV_PWR, | ||
| 254 | .code = KEY_SUSPEND, | ||
| 255 | .gpio = TOSA_GPIO_ON_KEY, | ||
| 256 | .desc = "On key", | ||
| 257 | .wakeup = 1, | ||
| 258 | .active_low = 1, | ||
| 259 | }, | ||
| 260 | { | ||
| 261 | .type = EV_KEY, | ||
| 262 | .code = TOSA_KEY_RECORD, | ||
| 263 | .gpio = TOSA_GPIO_RECORD_BTN, | ||
| 264 | .desc = "Record Button", | ||
| 265 | .wakeup = 1, | ||
| 266 | .active_low = 1, | ||
| 267 | }, | ||
| 268 | { | ||
| 269 | .type = EV_KEY, | ||
| 270 | .code = TOSA_KEY_SYNC, | ||
| 271 | .gpio = TOSA_GPIO_SYNC, | ||
| 272 | .desc = "Sync Button", | ||
| 273 | .wakeup = 1, | ||
| 274 | .active_low = 1, | ||
| 275 | }, | ||
| 276 | }; | ||
| 277 | |||
| 278 | static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = { | ||
| 279 | .buttons = tosa_gpio_keys, | ||
| 280 | .nbuttons = ARRAY_SIZE(tosa_gpio_keys), | ||
| 281 | }; | ||
| 282 | |||
| 283 | static struct platform_device tosa_gpio_keys_device = { | ||
| 284 | .name = "gpio-keys", | ||
| 285 | .id = -1, | ||
| 286 | .dev = { | ||
| 287 | .platform_data = &tosa_gpio_keys_platform_data, | ||
| 288 | }, | ||
| 289 | }; | ||
| 290 | |||
| 249 | /* | 291 | /* |
| 250 | * Tosa LEDs | 292 | * Tosa LEDs |
| 251 | */ | 293 | */ |
| @@ -258,6 +300,7 @@ static struct platform_device *devices[] __initdata = { | |||
| 258 | &tosascoop_device, | 300 | &tosascoop_device, |
| 259 | &tosascoop_jc_device, | 301 | &tosascoop_jc_device, |
| 260 | &tosakbd_device, | 302 | &tosakbd_device, |
| 303 | &tosa_gpio_keys_device, | ||
| 261 | &tosaled_device, | 304 | &tosaled_device, |
| 262 | }; | 305 | }; |
| 263 | 306 | ||
