All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: pxa: add gpio keys information
@ 2014-02-25 11:59 Dmitry Eremin-Solenikov
  2014-03-04  1:33 ` Haojian Zhuang
  0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Eremin-Solenikov @ 2014-02-25 11:59 UTC (permalink / raw)
  To: linux-arm-kernel

Switching from corgikbd to matrixkbd corgi has lost support for few switches.
Readd them through gpio-keys-polled device (-polled, since scoop does
not provide IRQ for GPIO).

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
 arch/arm/mach-pxa/corgi.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index f162f1b..57d6054 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,
-- 
1.8.5.3

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] ARM: pxa: add gpio keys information
  2014-02-25 11:59 [PATCH] ARM: pxa: add gpio keys information Dmitry Eremin-Solenikov
@ 2014-03-04  1:33 ` Haojian Zhuang
  0 siblings, 0 replies; 2+ messages in thread
From: Haojian Zhuang @ 2014-03-04  1:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 25, 2014 at 7:59 PM, Dmitry Eremin-Solenikov
<dbaryshkov@gmail.com> wrote:
> Switching from corgikbd to matrixkbd corgi has lost support for few switches.
> Readd them through gpio-keys-polled device (-polled, since scoop does
> not provide IRQ for GPIO).
>
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
>  arch/arm/mach-pxa/corgi.c | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
> index f162f1b..57d6054 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,
> --
> 1.8.5.3
>

Applied

Thanks
Haojian

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-03-04  1:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-25 11:59 [PATCH] ARM: pxa: add gpio keys information Dmitry Eremin-Solenikov
2014-03-04  1:33 ` Haojian Zhuang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.