--- 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_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,
-+ .debounce_interval = 60,
++ .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,
-+ .debounce_interval = 60,
++ .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_keys_platform_data bcm63xx_gpio_keys_data = {
-+ .poll_interval = 20,
++ .poll_interval = BCM963XX_KEYS_POLL_INTERVAL,
+};
+
+static struct platform_device bcm63xx_gpio_keys_device = {
*/
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);