/* * third stage init callback, register all board devices. */ int __init board_register_devices(void) { if (board.has_uart0) bcm63xx_uart_register(0); if (board.has_uart1) bcm63xx_uart_register(1); if (board.has_pccard) bcm63xx_pcmcia_register(); if (board.has_enet0 && !bcm63xx_nvram_get_mac_address(board.enet0.mac_addr)) bcm63xx_enet_register(0, &board.enet0); if (board.has_enet1 && !bcm63xx_nvram_get_mac_address(board.enet1.mac_addr)) bcm63xx_enet_register(1, &board.enet1); if (board.has_usbd) bcm63xx_usbd_register(&board.usbd); if (board.has_dsp) bcm63xx_dsp_register(&board.dsp); /* Generate MAC address for WLAN and register our SPROM, * do this after registering enet devices */ #ifdef CONFIG_SSB_PCIHOST if (!bcm63xx_nvram_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_register_fallback_sprom( &bcm63xx_get_fallback_sprom) < 0) pr_err(PFX "failed to register fallback SPROM\n"); } #endif bcm63xx_spi_register(); bcm63xx_flash_register(); bcm63xx_led_data.num_leds = ARRAY_SIZE(board.leds); bcm63xx_led_data.leds = board.leds; platform_device_register(&bcm63xx_gpio_leds); return 0; }
/* * third stage init callback, register all board devices. */ int __init board_register_devices(void) { u32 val; bcm63xx_uart_register(); bcm63xx_wdt_register(); if (board.has_pccard) bcm63xx_pcmcia_register(); if (board.has_enet0 && !board_get_mac_address(board.enet0.mac_addr)) bcm63xx_enet_register(0, &board.enet0); if (board.has_enet1 && !board_get_mac_address(board.enet1.mac_addr)) bcm63xx_enet_register(1, &board.enet1); if (board.has_ohci0) bcm63xx_ohci_register(); if (board.has_ehci0) bcm63xx_ehci_register(); /* read base address of boot chip select (0) */ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); val &= MPI_CSBASE_BASE_MASK; mtd_resources[0].start = val; mtd_resources[0].end = 0x1FFFFFFF; platform_device_register(&mtd_dev); return 0; }