static void bcm947xx_reboot_handler(void) { #ifndef BCMDBG int wombo_reset; #endif /* BCMDBG */ /* Reset the PCI(e) interfaces */ if (CHIPID(sih->chip) == BCM4706_CHIP_ID) hndpci_deinit(sih); if (lanports_enable) { uint lp = 1 << lanports_enable; si_gpioout(sih, lp, 0, GPIO_DRV_PRIORITY); si_gpioouten(sih, lp, lp, GPIO_DRV_PRIORITY); bcm_mdelay(1); } #ifndef BCMDBG /* gpio 0 is also valid wombo_reset */ if ((wombo_reset = getgpiopin(NULL, "wombo_reset", GPIO_PIN_NOTDEFINED)) != GPIO_PIN_NOTDEFINED) { int reset = 1 << wombo_reset; si_gpioout(sih, reset, 0, GPIO_DRV_PRIORITY); si_gpioouten(sih, reset, reset, GPIO_DRV_PRIORITY); bcm_mdelay(10); } #endif /* BCMDBG */ }
static void bcm947xx_reboot_handler(void) { /* Reset the PCI(e) interfaces */ if (CHIPID(sih->chip) == BCM4706_CHIP_ID) hndpci_deinit(sih); if (lanports_enable) { uint lp = 1 << lanports_enable; si_gpioout(sih, lp, 0, GPIO_DRV_PRIORITY); si_gpioouten(sih, lp, lp, GPIO_DRV_PRIORITY); bcm_mdelay(1); } /* gpio 0 is also valid wombo_reset */ if (wombo_reset != GPIO_PIN_NOTDEFINED) { int reset = 1 << wombo_reset; si_gpioout(sih, reset, 0, GPIO_DRV_PRIORITY); si_gpioouten(sih, reset, reset, GPIO_DRV_PRIORITY); bcm_mdelay(10); } }