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-06-08 18:38:48.000000000 +0200 +++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:59.000000000 +0200 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -220,8 +221,30 @@ }, }; +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 = { &pcap_ts_device, + &e680locksw_device, }; static void __init e680_init(void)