diff --git a/[refs] b/[refs] index 10809087c624..637ad294a997 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4aa9755580650c7135c154bd4276411739e8fb60 +refs/heads/master: c463eb62ac5bd8c26578cae42e1d5bb397aed100 diff --git a/trunk/arch/arm/mach-sa1100/h3xxx.c b/trunk/arch/arm/mach-sa1100/h3xxx.c index c054c6494693..a7a1982d8411 100644 --- a/trunk/arch/arm/mach-sa1100/h3xxx.c +++ b/trunk/arch/arm/mach-sa1100/h3xxx.c @@ -12,6 +12,8 @@ #include #include +#include +#include #include #include #include @@ -212,8 +214,44 @@ static struct platform_device h3xxx_egpio = { }, }; +/* + * GPIO keys + */ + +static struct gpio_keys_button h3xxx_button_table[] = { + { + .code = KEY_POWER, + .gpio = H3XXX_GPIO_PWR_BUTTON, + .desc = "Power Button", + .active_low = 1, + .type = EV_KEY, + .wakeup = 1, + }, { + .code = KEY_ENTER, + .gpio = H3XXX_GPIO_ACTION_BUTTON, + .active_low = 1, + .desc = "Action button", + .type = EV_KEY, + .wakeup = 0, + }, +}; + +static struct gpio_keys_platform_data h3xxx_keys_data = { + .buttons = h3xxx_button_table, + .nbuttons = ARRAY_SIZE(h3xxx_button_table), +}; + +static struct platform_device h3xxx_keys = { + .name = "gpio-keys", + .id = -1, + .dev = { + .platform_data = &h3xxx_keys_data, + }, +}; + static struct platform_device *h3xxx_devices[] = { &h3xxx_egpio, + &h3xxx_keys, }; void __init h3xxx_mach_init(void) @@ -260,7 +298,6 @@ void __init h3xxx_map_io(void) /* Configure suspend conditions */ PGSR = 0; - PWER = PWER_GPIO0; PCFR = PCFR_OPDE; PSDR = 0;