static void at91_vbus_poll(struct at91_udp_softc *sc) { uint8_t vbus_val; vbus_val = at91_pio_gpio_get(VBUS_BASE, VBUS_MASK) != 0; at91dci_vbus_interrupt(&sc->sc_dci, vbus_val); callout_reset(&sc->sc_vbus, hz, (void *)&at91_vbus_poll, sc); }
static void at91_vbus_poll(struct at91_udp_softc *sc) { uint32_t temp; uint8_t vbus_val; /* XXX temporary clear interrupts here */ temp = at91_pio_gpio_clear_interrupt(VBUS_BASE); /* just forward it */ vbus_val = at91_pio_gpio_get(VBUS_BASE, VBUS_MASK); at91dci_vbus_interrupt(&sc->sc_dci, vbus_val); }