Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== --- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:23:12.000000000 -0300 +++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:23:29.000000000 -0300 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -199,7 +200,29 @@ }, }; +static struct gpio_keys_button e680locksw_buttons[] = { + [0] = { + .keycode = KEY_SLEEP, + .gpio = GPIO_LOCK_SCREEN_PIN, + .desc = "E680 lockscreen sw", + }, +}; + +static struct gpio_keys_platform_data e680locksw_platform_data = { + .buttons = e680locksw_buttons, + .nbuttons = 1, +}; + +static struct platform_device e680locksw_device = { + .name = "gpio-keys", + .id = -1, + .dev = { + .platform_data = &e680locksw_platform_data, + }, +}; + static struct platform_device *devices[] __initdata = { + &e680locksw_device, }; static void __init e680_init(void)