Lines Matching full:via
3 * Device driver for the via ADB on (many) Mac II-class machines
21 * Rockwell R6522 VIA datasheet
37 static volatile unsigned char *via; variable
39 /* VIA registers - spaced 0x200 bytes apart */
120 static int status; /* VIA's ADB status bits captured upon interrupt */
134 via = via1; in macii_probe()
164 via[DIRB] = (via[DIRB] | ST_EVEN | ST_ODD) & ~CTLR_IRQ; in macii_init_via()
167 via[B] |= ST_IDLE; in macii_init_via()
170 via[ACR] = (via[ACR] & ~SR_CTRL) | SR_EXT; in macii_init_via()
173 x = via[SR]; in macii_init_via()
334 via[ACR] |= SR_OUT; in macii_start()
336 via[SR] = req->data[1]; in macii_start()
338 via[B] = (via[B] & ~ST_MASK) | ST_CMD; in macii_start()
353 * The VIA Port B output signalling works as follows. After the ADB transceiver
354 * sees a transition on the PB4 and PB5 lines it will crank over the VIA shift
375 if (via[IFR] & SR_INT) in macii_interrupt()
376 via[IFR] = SR_INT; in macii_interrupt()
383 status = via[B] & (ST_MASK | CTLR_IRQ); in macii_interrupt()
395 x = via[SR]; in macii_interrupt()
411 via[B] = (via[B] & ~ST_MASK) | ST_EVEN; in macii_interrupt()
444 via[ACR] &= ~SR_OUT; in macii_interrupt()
445 x = via[SR]; in macii_interrupt()
457 via[ACR] &= ~SR_OUT; in macii_interrupt()
458 x = via[SR]; in macii_interrupt()
467 via[ACR] &= ~SR_OUT; in macii_interrupt()
468 x = via[SR]; in macii_interrupt()
484 via[SR] = req->data[data_index++]; in macii_interrupt()
487 if ((via[B] & ST_MASK) == ST_CMD) { in macii_interrupt()
489 via[B] = (via[B] & ~ST_MASK) | ST_EVEN; in macii_interrupt()
492 via[B] ^= ST_MASK; in macii_interrupt()
497 x = via[SR]; in macii_interrupt()
536 via[B] ^= ST_MASK; in macii_interrupt()
551 via[ACR] &= ~SR_OUT; in macii_interrupt()
552 x = via[SR]; in macii_interrupt()
553 via[B] = (via[B] & ~ST_MASK) | ST_IDLE; in macii_interrupt()