[PATCH] Re: spitz: add gpio button support (fixes regression)
Russell King - ARM Linux
linux at arm.linux.org.uk
Fri Oct 16 15:05:21 EDT 2009
I'm not sure we want to apply this patch - it has UTF <U+FEFF>
sequences embedded randomly in it. I notice these because they
completely screw up the ability to read this email in mutt running
under a Linux VT (resulting in bits of the screen scrolling which
mutt didn't intend.)
I suggest you try re-sending it as an attachment.
On Fri, Oct 16, 2009 at 08:50:05PM +0200, Stanislav Brabec wrote:
> Pavel Machek wrote:
> >Ok, lets do it that way, then.
>
> Updating desc for lid keys and resending patch with proper comments:
>
> Define Spitz buttons as GPIO keys in a way compatible with the old driver:
>
> On/Off: As Suspend EV_PWR key
>
> Raw values of lid sensors SWA and SWB: As EV_SW switches
> SWA: Display Down
> SWB: Lid Closed
> Recommended user space decoding:
> SWA==0 & SWB==0: lid opened (landscape mode)
> SWA==1 & SWB==0: invalid (or mechanic race condition)
> SWA==0 & SWB==1: lid closed with display up (portrait mode or mechanic
> race condition while closing to display-less mode)
> SWA==1 & SWB==1: lid closed with display down (display-less mode)
>
> AK_INT remote trigger is not mapped as input event. Without complete
> remote driver and remote pull-up control it has no useful
> interpretation.
>
> Signed-off-by: Stanislav Brabec <utx at penguin.cz>
> Acked-by: Pavel Machek <pavel at ucw.cz>
>
> diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
> index ee8d603..c690522 100644
> --- a/arch/arm/mach-pxa/spitz.c
> +++ b/arch/arm/mach-pxa/spitz.c
> @@ -15,6 +15,7 @@
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> #include <linux/delay.h>
> +#include <linux/gpio_keys.h>
> #include <linux/gpio.h>
> #include <linux/leds.h>
> #include <linux/mtd/physmap.h>
> @@ -375,6 +376,43 @@ static struct platform_device spitzkbd_device = {
> };
>
>
> +static struct gpio_keys_button spitz_gpio_keys[] = {
> + {
> + .type = EV_PWR,
> + .code = KEY_SUSPEND,
> + .gpio = SPITZ_GPIO_ON_KEY,
> + .desc = "On/Off",
> + .wakeup = 1,
> + },
> + /* Two buttons detecting the lid state */
> + {
> + .type = EV_SW,
> + .code = 0,
> + .gpio = SPITZ_GPIO_SWA,
> + .desc = "Display Down",
> + },
> + {
> + .type = EV_SW,
> + .code = 1,
> + .gpio = SPITZ_GPIO_SWB,
> + .desc = "Lid Closed",
> + },
> +};
> +
> +static struct gpio_keys_platform_data spitz_gpio_keys_platform_data = {
> + .buttons = spitz_gpio_keys,
> + .nbuttons = ARRAY_SIZE(spitz_gpio_keys),
> +};
> +
> +static struct platform_device spitz_gpio_keys_device = {
> + .name = "gpio-keys",
> + .id = -1,
> + .dev = {
> + .platform_data = &spitz_gpio_keys_platform_data,
> + },
> +};
> +
> +
> /*
> * Spitz LEDs
> */
> @@ -689,6 +727,7 @@ static struct platform_device sharpsl_rom_device = {
> static struct platform_device *devices[] __initdata = {
> &spitzscoop_device,
> &spitzkbd_device,
> + &spitz_gpio_keys_device,
> &spitzled_device,
> &sharpsl_nand_device,
> &sharpsl_rom_device,
>
>
> ________________________________________________________________________
> Stanislav Brabec
> http://www.penguin.cz/~utx
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list