MII_EMIT
csr |= MII_WR; MII_EMIT; /* clock low; assert write */
csr ^= MII_DOUT; MII_EMIT; /* clock low; invert data */
csr ^= MII_CLKON; MII_EMIT; /* clock high; data valid */
csr ^= MII_CLKOFF; MII_EMIT; /* clock low; data not valid */
csr |= MII_DOUT; MII_EMIT; /* clock low; change data */
csr ^= MII_CLKON; MII_EMIT; /* clock high; data valid */
csr ^= MII_CLKOFF; MII_EMIT; /* clock low; data not valid */
csr ^= MII_DOUT; MII_EMIT; /* clock low; change data */
csr |= MII_RD; MII_EMIT; /* clock low; switch to read */
csr ^= MII_CLKON; MII_EMIT; /* clock high; data valid */
csr ^= MII_CLKOFF; MII_EMIT; /* clock low; data not valid */
csr ^= MII_CLKON; MII_EMIT; /* clock high; data valid */
csr ^= MII_CLKOFF; MII_EMIT; /* clock low; data not valid */
csr ^= MII_RD; MII_EMIT; /* clock low; turn off read */
csr &= ~(MII_RD|MII_CLK); MII_EMIT;
csr &= ~(MII_RD|MII_CLK); MII_EMIT;