[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