diff options
author | Olof Johansson <olof@lixom.net> | 2014-03-09 11:48:20 -0700 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2014-03-09 11:48:32 -0700 |
commit | b889f2d764c0d9f3ef1b77cfe3dac87493e12469 (patch) | |
tree | 1f5d224df71d6b5b21221fdd1523229cb235fe77 /arch/arm/mach-pxa | |
parent | b3e2e24348e3d5bf92bca4cecc09889f0969b868 (diff) | |
parent | dc5dfab4ed18f0756f304dc5699b5743ddf56f90 (diff) |
Merge tag 'pxa' of https://git.kernel.org/pub/scm/linux/kernel/git/hzhuang1/linux into next/boards
* tag 'pxa' of https://git.kernel.org/pub/scm/linux/kernel/git/hzhuang1/linux:
ARM: pxa: add gpio keys information
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index f162f1b77cd2..57d60542f982 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c @@ -32,6 +32,7 @@ #include <linux/spi/pxa2xx_spi.h> #include <linux/mtd/sharpsl.h> #include <linux/input/matrix_keypad.h> +#include <linux/gpio_keys.h> #include <linux/module.h> #include <video/w100fb.h> @@ -405,6 +406,44 @@ static struct platform_device corgikbd_device = { }, }; +static struct gpio_keys_button corgi_gpio_keys[] = { + { + .type = EV_SW, + .code = SW_LID, + .gpio = CORGI_GPIO_SWA, + .desc = "Lid close switch", + .debounce_interval = 500, + }, + { + .type = EV_SW, + .code = SW_TABLET_MODE, + .gpio = CORGI_GPIO_SWB, + .desc = "Tablet mode switch", + .debounce_interval = 500, + }, + { + .type = EV_SW, + .code = SW_HEADPHONE_INSERT, + .gpio = CORGI_GPIO_AK_INT, + .desc = "HeadPhone insert", + .debounce_interval = 500, + }, +}; + +static struct gpio_keys_platform_data corgi_gpio_keys_platform_data = { + .buttons = corgi_gpio_keys, + .nbuttons = ARRAY_SIZE(corgi_gpio_keys), + .poll_interval = 250, +}; + +static struct platform_device corgi_gpio_keys_device = { + .name = "gpio-keys-polled", + .id = -1, + .dev = { + .platform_data = &corgi_gpio_keys_platform_data, + }, +}; + /* * Corgi LEDs */ @@ -646,6 +685,7 @@ static struct platform_device sharpsl_rom_device = { static struct platform_device *devices[] __initdata = { &corgiscoop_device, &corgifb_device, + &corgi_gpio_keys_device, &corgikbd_device, &corgiled_device, &corgi_audio_device, |