From 02a2e8ac6f43f902d797a3c1b92f308eab201475 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Wed, 24 Dec 2014 01:42:55 +0300 Subject: [PATCH 20/44] ARM: pxa: poodle: add gpio-keys configuration Support setting wakeup sources through the two gpio keys - On button and 'Sync' key present on cradle. Signed-off-by: Dmitry Eremin-Solenikov --- arch/arm/mach-pxa/poodle.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 189309b..c775fdd 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c @@ -35,6 +35,8 @@ #include #include #include +#include +#include #include #include @@ -161,6 +163,38 @@ static struct scoop_pcmcia_config poodle_pcmcia_config = { EXPORT_SYMBOL(poodle_scoop_device); +static struct gpio_keys_button poodle_gpio_keys[] = { + { + .type = EV_PWR, + .code = KEY_RESERVED, + .gpio = POODLE_GPIO_ON_KEY, + .desc = "On key", + .wakeup = 1, + .active_low = 1, + }, + { + .type = EV_PWR, + .code = KEY_WAKEUP, + .gpio = POODLE_GPIO_WAKEUP, + .desc = "Sync", + .wakeup = 1, + .active_low = 1, + }, +}; + +static struct gpio_keys_platform_data poodle_gpio_keys_data = { + .buttons = poodle_gpio_keys, + .nbuttons = ARRAY_SIZE(poodle_gpio_keys), +}; + +static struct platform_device poodle_gpio_keys_device = { + .name = "gpio-keys", + .id = -1, + .dev = { + .platform_data = &poodle_gpio_keys_data, + }, +}; + static struct platform_device poodle_audio_device = { .name = "poodle-audio", @@ -436,6 +470,7 @@ static struct platform_device *devices[] __initdata = { &poodle_locomo_device, &poodle_scoop_device, &poodle_audio_device, + &poodle_gpio_keys_device, &sharpsl_nand_device, &sharpsl_rom_device, &poodle_power_device, -- 1.9.1