diff options
Diffstat (limited to 'recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch')
-rw-r--r-- | recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch b/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch new file mode 100644 index 0000000..6d67268 --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch @@ -0,0 +1,76 @@ +From 0939a5b7a9711457895655467dfb6f0fe6933834 Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Wed, 24 Dec 2014 01:42:55 +0300 +Subject: [PATCH 02/04] 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 <dbaryshkov@gmail.com> +--- + 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 4dd29a7..596e756 100644 +--- a/arch/arm/mach-pxa/poodle.c ++++ b/arch/arm/mach-pxa/poodle.c +@@ -35,6 +35,8 @@ + #include <linux/memblock.h> + #include <linux/iio/machine.h> + #include <linux/mfd/locomo.h> ++#include <linux/gpio_keys.h> ++#include <linux/input.h> + + #include <mach/hardware.h> + #include <asm/mach-types.h> +@@ -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 + |