void sdhci_fdt_gpio_teardown(struct sdhci_fdt_gpio *gpio) { if (gpio == NULL) return; if (gpio->cd_ihandler != NULL) bus_teardown_intr(gpio->dev, gpio->cd_ires, gpio->cd_ihandler); if (gpio->wp_pin != NULL) gpio_pin_release(gpio->wp_pin); if (gpio->cd_pin != NULL) gpio_pin_release(gpio->cd_pin); if (gpio->cd_ires != NULL) bus_release_resource(gpio->dev, SYS_RES_IRQ, 0, gpio->cd_ires); free(gpio, M_DEVBUF); }
static void gpioleds_detach_led(struct gpioled *led) { if (led->leddev != NULL) led_destroy(led->leddev); if (led->pin) gpio_pin_release(led->pin); }
static int gpiobacklight_detach(device_t dev) { struct gpiobacklight_softc *sc; sc = device_get_softc(dev); if (sc->sc_pin) gpio_pin_release(sc->sc_pin); return (0); }