--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -15,6 +15,8 @@
- #include <linux/mtd/partitions.h>
- #include <linux/mtd/physmap.h>
+@@ -12,6 +12,8 @@
+ #include <linux/string.h>
+ #include <linux/platform_device.h>
#include <linux/ssb/ssb.h>
-+#include <linux/gpio_buttons.h>
++#include <linux/gpio_keys.h>
+#include <linux/input.h>
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
-@@ -295,6 +297,16 @@ static struct board_info __initdata boar
+@@ -28,6 +30,9 @@
+
+ #define PFX "board_bcm963xx: "
+
++#define BCM963XX_KEYS_POLL_INTERVAL 20
++#define BCM963XX_KEYS_DEBOUNCE_INTERVAL (BCM963XX_KEYS_POLL_INTERVAL * 3)
++
+ static struct bcm963xx_nvram nvram;
+ static unsigned int mac_addr_used;
+ static struct board_info board;
+@@ -293,6 +298,16 @@ static struct board_info __initdata boar
.active_low = 1,
},
},
+ .active_low = 1,
+ .type = EV_KEY,
+ .code = KEY_RESTART,
-+ .threshold = 3,
++ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
+ },
+ },
};
static struct board_info __initdata board_96348gw = {
-@@ -353,6 +365,16 @@ static struct board_info __initdata boar
+@@ -351,6 +366,16 @@ static struct board_info __initdata boar
.active_low = 1,
},
},
+ .active_low = 1,
+ .type = EV_KEY,
+ .code = KEY_RESTART,
-+ .threshold = 3,
++ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
+ },
+ },
};
static struct board_info __initdata board_FAST2404 = {
-@@ -851,12 +873,23 @@ static struct platform_device bcm63xx_gp
+@@ -823,11 +848,23 @@ static struct platform_device bcm63xx_gp
.dev.platform_data = &bcm63xx_led_data,
};
-+static struct gpio_buttons_platform_data bcm63xx_gpio_buttons_data = {
-+ .poll_interval = 20,
++static struct gpio_keys_platform_data bcm63xx_gpio_keys_data = {
++ .poll_interval = BCM963XX_KEYS_POLL_INTERVAL,
+};
+
-+static struct platform_device bcm63xx_gpio_buttons_device = {
-+ .name = "gpio-buttons",
++static struct platform_device bcm63xx_gpio_keys_device = {
++ .name = "gpio-keys-polled",
+ .id = 0,
-+ .dev.platform_data = &bcm63xx_gpio_buttons_data,
++ .dev.platform_data = &bcm63xx_gpio_keys_data,
+};
+
/*
*/
int __init board_register_devices(void)
{
- u32 val;
+ int button_count = 0;
-
++
if (board.has_uart0)
bcm63xx_uart_register(0);
-@@ -907,5 +940,16 @@ int __init board_register_devices(void)
+
+@@ -870,5 +907,16 @@ int __init board_register_devices(void)
platform_device_register(&bcm63xx_gpio_leds);
+ button_count++;
+
+ if (button_count) {
-+ bcm63xx_gpio_buttons_data.nbuttons = button_count;
-+ bcm63xx_gpio_buttons_data.buttons = board.buttons;
++ bcm63xx_gpio_keys_data.nbuttons = button_count;
++ bcm63xx_gpio_keys_data.buttons = board.buttons;
+
-+ platform_device_register(&bcm63xx_gpio_buttons_device);
++ platform_device_register(&bcm63xx_gpio_keys_device);
+ }
+
return 0;
#include <linux/types.h>
#include <linux/gpio.h>
-+#include <linux/gpio_buttons.h>
++#include <linux/gpio_keys.h>
#include <linux/leds.h>
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_dsp.h>
struct gpio_led leds[5];
+
+ /* Buttons */
-+ struct gpio_button buttons[4];
++ struct gpio_keys_button buttons[4];
};
#endif /* ! BOARD_BCM963XX_H_ */