Define the 2 keys found on iconnect in DT. It's also changing the keycodes/ switches to use better ones. Signed-off-by: Arnaud Patard Index: alunn/arch/arm/boot/dts/kirkwood-iconnect.dts =================================================================== --- alunn.orig/arch/arm/boot/dts/kirkwood-iconnect.dts 2012-07-25 23:46:51.039862074 +0200 +++ alunn/arch/arm/boot/dts/kirkwood-iconnect.dts 2012-07-25 23:58:06.487832357 +0200 @@ -69,4 +69,22 @@ gpios = <&gpio1 16 0>; }; }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + button@1 { + label = "OTB Button"; + linux,code = <133>; + gpios = <&gpio1 3 1>; + debounce-interval = <100>; + }; + button@2 { + label = "Reset"; + linux,code = <0x198>; + gpios = <&gpio0 12 1>; + debounce-interval = <100>; + }; + }; }; Index: alunn/arch/arm/mach-kirkwood/board-iconnect.c =================================================================== --- alunn.orig/arch/arm/mach-kirkwood/board-iconnect.c 2012-07-25 23:46:38.911862608 +0200 +++ alunn/arch/arm/mach-kirkwood/board-iconnect.c 2012-07-25 23:58:06.487832357 +0200 @@ -19,8 +19,6 @@ #include #include #include -#include -#include #include #include #include "common.h" @@ -52,40 +50,6 @@ static struct mtd_partition iconnect_nan }, }; -/* yikes... theses are the original input buttons */ -/* but I'm not convinced by the sw event choices */ -static struct gpio_keys_button iconnect_buttons[] = { - { - .type = EV_SW, - .code = SW_LID, - .gpio = 12, - .desc = "Reset Button", - .active_low = 1, - .debounce_interval = 100, - }, { - .type = EV_SW, - .code = SW_TABLET_MODE, - .gpio = 35, - .desc = "OTB Button", - .active_low = 1, - .debounce_interval = 100, - }, -}; - -static struct gpio_keys_platform_data iconnect_button_data = { - .buttons = iconnect_buttons, - .nbuttons = ARRAY_SIZE(iconnect_buttons), -}; - -static struct platform_device iconnect_button_device = { - .name = "gpio-keys", - .id = -1, - .num_resources = 0, - .dev = { - .platform_data = &iconnect_button_data, - }, -}; - void __init iconnect_init(void) { kirkwood_mpp_conf(iconnect_mpp_config); @@ -93,8 +57,6 @@ void __init iconnect_init(void) kirkwood_ehci_init(); kirkwood_ge00_init(&iconnect_ge00_data); - - platform_device_register(&iconnect_button_device); } static int __init iconnect_pci_init(void)