Lines Matching refs:bit
245 at91pio_read(struct at91pio_softc *sc, int bit) in at91pio_read() argument
248 sc->pins[bit].pin_caps = 0; in at91pio_read()
250 return (PIO_READ(sc, PIO_PDSR) >> bit) & 1; in at91pio_read()
254 at91pio_set(struct at91pio_softc *sc, int bit) in at91pio_set() argument
257 sc->pins[bit].pin_caps = 0; in at91pio_set()
259 PIO_WRITE(sc, PIO_SODR, (1U << bit)); in at91pio_set()
263 at91pio_clear(struct at91pio_softc *sc, int bit) in at91pio_clear() argument
266 sc->pins[bit].pin_caps = 0; in at91pio_clear()
268 PIO_WRITE(sc, PIO_CODR, (1U << bit)); in at91pio_clear()
272 at91pio_in(struct at91pio_softc *sc, int bit) in at91pio_in() argument
275 sc->pins[bit].pin_caps = 0; in at91pio_in()
277 PIO_WRITE(sc, PIO_ODR, (1U << bit)); in at91pio_in()
281 at91pio_out(struct at91pio_softc *sc, int bit) in at91pio_out() argument
284 sc->pins[bit].pin_caps = 0; in at91pio_out()
286 PIO_WRITE(sc, PIO_OER, (1U << bit)); in at91pio_out()
289 void at91pio_per(struct at91pio_softc *sc, int bit, int perab) in at91pio_per() argument
292 sc->pins[bit].pin_caps = 0; in at91pio_per()
296 PIO_WRITE(sc, PIO_PER, (1U << bit)); in at91pio_per()
299 PIO_WRITE(sc, PIO_ASR, (1U << bit)); in at91pio_per()
300 PIO_WRITE(sc, PIO_PDR, (1U << bit)); in at91pio_per()
303 PIO_WRITE(sc, PIO_BSR, (1U << bit)); in at91pio_per()
304 PIO_WRITE(sc, PIO_PDR, (1U << bit)); in at91pio_per()
313 at91pio_intr_establish(struct at91pio_softc *sc, int bit, in at91pio_intr_establish() argument
318 DPRINTFN(1, ("at91pio_intr_establish: port=%s, bit=%d\n", at91_peripheral_name(sc->sc_pid), bit)); in at91pio_intr_establish()
320 if (bit < 0 || bit >= AT91PIO_NPINS) in at91pio_intr_establish()
323 ireq = &sc->ireq[bit]; in at91pio_intr_establish()
332 PIO_WRITE(sc, PIO_IDR, (1U << bit)); /* disable interrupt for now */ in at91pio_intr_establish()
333 at91pio_in(sc, bit); /* make sure pin is input */ in at91pio_intr_establish()
335 sc->pins[bit].pin_caps = 0; in at91pio_intr_establish()
339 at91pio_bit_set(sc, sc->xinttype1, bit); in at91pio_intr_establish()
341 at91pio_bit_clear(sc, sc->xinttype1, bit); in at91pio_intr_establish()
343 at91pio_bit_set(sc, sc->xinttype2, bit); in at91pio_intr_establish()
345 at91pio_bit_clear(sc, sc->xinttype2, bit); in at91pio_intr_establish()
347 PIO_WRITE(sc, PIO_IFER, (1U << bit)); in at91pio_intr_establish()
349 PIO_WRITE(sc, PIO_IFDR, (1U << bit)); in at91pio_intr_establish()
362 PIO_WRITE(sc, PIO_IER, (1U << bit)); // enable interrupt in at91pio_intr_establish()
368 at91pio_intr_disestablish(struct at91pio_softc *sc, int bit, void *cookie) in at91pio_intr_disestablish() argument
373 …DPRINTFN(1, ("at91pio_intr_disestablish: port=%s, bit=%d\n", at91_peripheral_name(sc->sc_pid), bit… in at91pio_intr_disestablish()
375 if (bit < 0 || bit >= AT91PIO_NPINS) in at91pio_intr_disestablish()
381 ireq = &sc->ireq[bit]; in at91pio_intr_disestablish()
386 PIO_WRITE(sc, PIO_IDR, (1U << bit)); in at91pio_intr_disestablish()
405 int bit; in at91pio_intr() local
413 bit = ffs(isr) - 1; in at91pio_intr()
414 isr &= ~(1U << bit); in at91pio_intr()
416 if (bit < 0) in at91pio_intr()
419 if (sc->ireq[bit].ireq_func) { in at91pio_intr()
420 int s = _splraise(sc->ireq[bit].ireq_ipl); in at91pio_intr()
421 (*sc->ireq[bit].ireq_func)(sc->ireq[bit].ireq_arg); in at91pio_intr()