Lines Matching full:via
3 * Device driver for the via ADB on (many) Mac II-class machines
21 * Rockwell R6522 VIA datasheet
39 static volatile unsigned char *via; variable
41 /* VIA registers - spaced 0x200 bytes apart */
122 static int status; /* VIA's ADB status bits captured upon interrupt */
136 via = via1; in macii_probe()
171 via[DIRB] = (via[DIRB] | ST_EVEN | ST_ODD) & ~CTLR_IRQ; in macii_init_via()
174 via[B] |= ST_IDLE; in macii_init_via()
177 via[ACR] = (via[ACR] & ~SR_CTRL) | SR_EXT; in macii_init_via()
180 x = via[SR]; in macii_init_via()
341 via[ACR] |= SR_OUT; in macii_start()
343 via[SR] = req->data[1]; in macii_start()
345 via[B] = (via[B] & ~ST_MASK) | ST_CMD; in macii_start()
360 * The VIA Port B output signalling works as follows. After the ADB transceiver
361 * sees a transition on the PB4 and PB5 lines it will crank over the VIA shift
382 if (via[IFR] & SR_INT) in macii_interrupt()
383 via[IFR] = SR_INT; in macii_interrupt()
390 status = via[B] & (ST_MASK | CTLR_IRQ); in macii_interrupt()
402 x = via[SR]; in macii_interrupt()
418 via[B] = (via[B] & ~ST_MASK) | ST_EVEN; in macii_interrupt()
451 via[ACR] &= ~SR_OUT; in macii_interrupt()
452 x = via[SR]; in macii_interrupt()
464 via[ACR] &= ~SR_OUT; in macii_interrupt()
465 x = via[SR]; in macii_interrupt()
474 via[ACR] &= ~SR_OUT; in macii_interrupt()
475 x = via[SR]; in macii_interrupt()
491 via[SR] = req->data[data_index++]; in macii_interrupt()
494 if ((via[B] & ST_MASK) == ST_CMD) { in macii_interrupt()
496 via[B] = (via[B] & ~ST_MASK) | ST_EVEN; in macii_interrupt()
499 via[B] ^= ST_MASK; in macii_interrupt()
504 x = via[SR]; in macii_interrupt()
543 via[B] ^= ST_MASK; in macii_interrupt()
558 via[ACR] &= ~SR_OUT; in macii_interrupt()
559 x = via[SR]; in macii_interrupt()
560 via[B] = (via[B] & ~ST_MASK) | ST_IDLE; in macii_interrupt()