#include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h>
#include <linux/ssb/ssb.h>
+#include <linux/gpio_buttons.h>
#include <asm/addrspace.h>
#include <bcm63xx_board.h>
#include <bcm63xx_cpu.h>
.has_ohci0 = 1,
.has_ehci0 = 1,
};
+
+static struct board_info __initdata board_DWVS0 = {
+ .name = "DWV-S0",
+ .expected_cpu_id = 0x6358,
+
+ .has_enet0 = 1,
+ .has_enet1 = 1,
+ .has_pci = 1,
+
+ .enet0 = {
+ .has_phy = 1,
+ .use_internal_phy = 1,
+ },
+
+ .enet1 = {
+ .force_speed_100 = 1,
+ .force_duplex_full = 1,
+ },
+
+ .has_ohci0 = 1,
+};
#endif
/*
&board_96358vw,
&board_96358vw2,
&board_AGPFS0,
+ &board_DWVS0,
#endif
};
.dev.platform_data = &bcm63xx_led_data,
};
+struct gpio_buttons_platform_data bcm63xx_gpio_buttons_data = {
+ .poll_interval = 20,
+};
+
+struct platform_device bcm63xx_gpio_buttons_device = {
+ .name = "gpio-buttons",
+ .id = 0,
+ .dev.platform_data = &bcm63xx_gpio_buttons_data,
+};
+
+
/*
* third stage init callback, register all board devices.
*/
bcm63xx_uart_register();
bcm63xx_wdt_register();
- bcm63xx_spi_register();
+
+ if (!BCMCPU_IS_6345())
+ bcm63xx_spi_register();
if (board.has_pccard)
bcm63xx_pcmcia_register();
/* read base address of boot chip select (0) */
if (BCMCPU_IS_6345())
- val = 0x1fc0000;
+ val = 0x1fc00000;
else {
val = bcm_mpi_readl(MPI_CSBASE_REG(0));
val &= MPI_CSBASE_BASE_MASK;
platform_device_register(&bcm63xx_gpio_leds);
+ if (board.reset_btn) {
+ bcm63xx_gpio_buttons_data.nbuttons = 1,
+ bcm63xx_gpio_buttons_data.buttons = board.reset_btn;
+
+ platform_device_register(&bcm63xx_gpio_buttons_device);
+ }
+
return 0;
}