[brcm63xx] only register fallback sprom and enable PCI if we actually have support...
[openwrt.git] / target / linux / brcm63xx / files / arch / mips / bcm63xx / boards / board_bcm963xx.c
index c16ebc8..3e767d8 100644 (file)
@@ -54,6 +54,13 @@ static struct board_info __initdata board_96338gw = {
 
        .has_ohci0                      = 1,
 };
+
+static struct board_info __initdata board_96338w = {
+       .name                           = "9338W",
+       .expected_cpu_id                = 0x6338,
+
+       .has_enet0                      = 1,
+};
 #endif
 
 /*
@@ -287,6 +294,7 @@ static struct board_info __initdata board_AGPFS0 = {
 static const struct board_info __initdata *bcm963xx_boards[] = {
 #ifdef CONFIG_BCM63XX_CPU_6338
        &board_96338gw,
+       &board_96338w,
 #endif
 #ifdef CONFIG_BCM63XX_CPU_6348
        &board_96348r,
@@ -370,13 +378,13 @@ void __init board_prom_init(void)
         * this has to be done this early since PCI init is done
         * inside arch_initcall */
        val = 0;
-
+#ifdef CONFIG_PCI
        if (board.has_pci) {
                bcm63xx_pci_enabled = 1;
                if (BCMCPU_IS_6348())
                        val |= GPIO_MODE_6348_G2_PCI;
        }
-
+#endif
        if (board.has_pccard) {
                if (BCMCPU_IS_6348())
                        val |= GPIO_MODE_6348_G1_MII_PCCARD;
@@ -494,6 +502,10 @@ static struct ssb_sprom bcm63xx_sprom = {
        .boardflags_hi          = 0x0000,
 };
 
+static struct resource gpiodev_resource = {
+       .start                  = 0xFFFFFFFF,
+};
+
 /*
  * third stage init callback, register all board devices.
  */
@@ -526,12 +538,14 @@ int __init board_register_devices(void)
                bcm63xx_udc_register();
        /* Generate MAC address for WLAN and
         * register our SPROM */
+#ifdef CONFIG_PCI
        if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
                memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
                memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
                if (ssb_arch_set_fallback_sprom(&bcm63xx_sprom) < 0)
                        printk(KERN_ERR "failed to register fallback SPROM\n");
        }
+#endif
 
        /* read base address of boot chip select (0) */
        val = bcm_mpi_readl(MPI_CSBASE_REG(0));
@@ -541,6 +555,9 @@ int __init board_register_devices(void)
 
        platform_device_register(&mtd_dev);
 
+       /* Register GPIODEV */
+       platform_device_register_simple("GPIODEV", 0, &gpiodev_resource, 1);
+
        return 0;
 }
 
This page took 0.024146 seconds and 4 git commands to generate.