DC_SIO
#define SIO_SET(x) DC_SETBIT(sc, DC_SIO, (x))
#define SIO_CLR(x) DC_CLRBIT(sc, DC_SIO, (x))
CSR_WRITE_4(sc, DC_SIO, DC_SIO_EESEL);
DC_SETBIT(sc, DC_SIO, DC_SIO_ROMCTL_READ);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CS);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_DATAIN);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_DATAIN);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CLK);
if (!(CSR_READ_4(sc, DC_SIO) & DC_SIO_EE_DATAOUT)) {
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
CSR_WRITE_4(sc, DC_SIO, DC_SIO_EESEL);
DC_SETBIT(sc, DC_SIO, DC_SIO_ROMCTL_READ);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CS);
CSR_WRITE_4(sc, DC_SIO, DC_SIO_EESEL);
DC_SETBIT(sc, DC_SIO, DC_SIO_ROMCTL_READ);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CS);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CS);
CSR_WRITE_4(sc, DC_SIO, 0x00000000);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_DATAIN);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_DATAIN);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
r = CSR_READ_4(sc, DC_SIO);
*dest = (uint16_t)CSR_READ_4(sc, DC_SIO) & 0xff;
*dest |= ((uint16_t)CSR_READ_4(sc, DC_SIO) & 0xff) << 8;
CSR_WRITE_4(sc, DC_SIO, DC_SIO_EESEL);
DC_SETBIT(sc, DC_SIO, DC_SIO_ROMCTL_READ);
DC_CLRBIT(sc, DC_SIO, DC_SIO_EE_CLK);
DC_SETBIT(sc, DC_SIO, DC_SIO_EE_CS);
if (CSR_READ_4(sc, DC_SIO) & DC_SIO_EE_DATAOUT)
CSR_WRITE_4(sc, DC_SIO, val);
CSR_BARRIER_4(sc, DC_SIO,
val = CSR_READ_4(sc, DC_SIO);
CSR_BARRIER_4(sc, DC_SIO,