lkml.org 
[lkml]   [2009]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subjectspitz: add gpio button support (fixes regression)

    > So what's the conclusion of the patch? Any ACK/NAK or patch needs updating?

    Please take this updated version.

    ---

    Spitz switched to generic matrix-gpio keyboard driver in 2.6.32-rc0,
    but that means that support for power button and lid switches was
    lost. This restores it, using button-gpio code.

    Signed-off-by: Pavel Machek <pavel@ucw.cz>

    --- linux-rc/arch/arm.ofic/mach-pxa/spitz.c 2009-10-06 13:48:07.000000000 +0200
    +++ linux-rc/arch/arm/mach-pxa/spitz.c 2009-10-06 21:17:19.000000000 +0200
    @@ -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 +377,51 @@
    };


    +static struct gpio_keys_button spitz_gpio_keys[] = {
    + {
    + .type = EV_KEY,
    + .code = KEY_SUSPEND,
    + .gpio = SPITZ_GPIO_ON_KEY,
    + .desc = "Power button",
    + .wakeup = 1,
    + },
    + /* Two buttons detecting the LID state */
    + {
    + .type = EV_SW,
    + .code = 0,
    + .gpio = SPITZ_GPIO_SWA,
    + .desc = "Lid SWA",
    + },
    + {
    + .type = EV_SW,
    + .code = 1,
    + .gpio = SPITZ_GPIO_SWB,
    + .desc = "Lid SWB",
    + },
    + /* This is for remote control support. Zaurus supports wired
    + remote on headphones. */
    + {
    + .type = EV_SW,
    + .code = 2,
    + .gpio = SPITZ_GPIO_AK_INT,
    + .desc = "Wired remote (AK_INT)",
    + },
    +};
    +
    +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 +736,7 @@
    static struct platform_device *devices[] __initdata = {
    &spitzscoop_device,
    &spitzkbd_device,
    + &spitz_gpio_keys_device,
    &spitzled_device,
    &sharpsl_nand_device,
    &sharpsl_rom_device,

    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


    \
     
     \ /
      Last update: 2009-10-07 23:45    [W:3.297 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site