summaryrefslogtreecommitdiff
path: root/arch/arm/mach-pxa
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 14:44:13 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 14:44:13 -0700
commit930b440cd8256f3861bdb0a59d26efaadac7941a (patch)
tree145ac54e152834fed7bce78b3eb33e8ea4d90226 /arch/arm/mach-pxa
parentff050ad12c551233e546506409c89eb2f640d9f3 (diff)
parent077492acceeafc0a106f88b0780623d2321a8947 (diff)
Merge tag 'boards-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC board changes from Arnd Bergmann: "As we continue to replace board files with device tree descriptions, this part of the ARM support is getting smaller. We have basically just defconfig changes here this time, and a significant number of Renesas shmobile changes, as Renesas is still in the process of deprecating board file support" * tag 'boards-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (92 commits) ARM: enable fhandle in multi_v7_defconfig ARM: tegra: enable fhandle in tegra_defconfig ARM: update multi_v7_defconfig for Tegra ARM: add Marvell Dove and some drivers to multi_v7 defconfig ARM: fix duplicate symbols in multi_v5_defconfig ARM: pxa: add gpio keys information ARM: tegra: defconfig updates ARM: config: keystone: enable AEMIF/NAND support ARM: qcom: Enable basic support for Qualcomm platforms in multi_v7_defconfig ARM: kirkwood: Add HP T5325 devices to {multi|mvebu}_v5_defconfig ARM: config: Add mvebu_v5_defconfig ARM: config: Add a multi_v5_defconfig ARM: shmobile: r7s72100: update defconfig for I2C usage ARM: shmobile: Remove Lager DT reference legacy clock bits ARM: shmobile: Remove Koelsch DT reference legacy clock bits ARM: shmobile: Remove KZM9D board code ARM: mvebu: update defconfigs for Armada 375 and 38x ARM: dove: Enable watchdog support in the defconfig ARM: mvebu: Enable watchdog support in defconfig ARM: config: keystone: enable led support ...
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r--arch/arm/mach-pxa/corgi.c40
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,