#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
-@@ -32,6 +34,9 @@
+@@ -36,6 +38,9 @@
- #define PFX "board_bcm963xx: "
+ #define HCS_OFFSET_128K 0x20000
+#define BCM963XX_KEYS_POLL_INTERVAL 20
+#define BCM963XX_KEYS_DEBOUNCE_INTERVAL (BCM963XX_KEYS_POLL_INTERVAL * 3)
static struct board_info board;
/*
-@@ -343,6 +348,16 @@ static struct board_info __initdata boar
+@@ -379,6 +384,16 @@ static struct board_info __initdata boar
.active_low = 1,
},
},
};
static struct board_info __initdata board_96348gw = {
-@@ -401,6 +416,16 @@ static struct board_info __initdata boar
+@@ -437,6 +452,16 @@ static struct board_info __initdata boar
.active_low = 1,
},
},
};
static struct board_info __initdata board_FAST2404 = {
-@@ -825,11 +850,23 @@ static struct platform_device bcm63xx_gp
+@@ -870,11 +895,23 @@ static struct platform_device bcm63xx_gp
.dev.platform_data = &bcm63xx_led_data,
};
if (board.has_uart0)
bcm63xx_uart_register(0);
-@@ -881,5 +918,16 @@ int __init board_register_devices(void)
-
- platform_device_register(&bcm63xx_gpio_leds);
+@@ -934,5 +971,16 @@ int __init board_register_devices(void)
+ gpio_request_one(board.ephy_reset_gpio,
+ board.ephy_reset_gpio_flags, "ephy-reset");
+ /* count number of BUTTONs defined by this device */
+ while (button_count < ARRAY_SIZE(board.buttons) && board.buttons[button_count].desc)
#include <linux/leds.h>
#include <bcm63xx_dev_enet.h>
#include <bcm63xx_dev_usb_usbd.h>
-@@ -45,6 +46,9 @@ struct board_info {
-
+@@ -48,6 +49,9 @@ struct board_info {
/* GPIO LEDs */
struct gpio_led leds[5];
-+
+
+ /* Buttons */
+ struct gpio_keys_button buttons[4];
- };
++
+ /* External PHY reset GPIO */
+ unsigned int ephy_reset_gpio;
- #endif /* ! BOARD_BCM963XX_H_ */