BKTR_I2C_DATA_CTL
OUTL(bktr, BKTR_I2C_DATA_CTL, data);
OUTL(bktr, BKTR_I2C_DATA_CTL, ((addr & 0xff) << 24) | I2C_COMMAND);
OUTL(bktr, BKTR_I2C_DATA_CTL, ((addr & 0xff) << 24) | I2C_COMMAND_878);
x = INL(bktr, BKTR_I2C_DATA_CTL);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* lower data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock & data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* float data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* strobe clock */
status = INL(bktr, BKTR_I2C_DATA_CTL) & 1; /* read the ACK bit */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
bit = INL(bktr, BKTR_I2C_DATA_CTL) & 1; /* read the data bit */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* lower data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 3);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 2);
OUTL(bktr, BKTR_I2C_DATA_CTL, 0);
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* float data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* strobe clock */
status = INL(bktr, BKTR_I2C_DATA_CTL) & 1; /* read the ACK bit */
OUTL(bktr, BKTR_I2C_DATA_CTL, 1); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 0); DELAY( BITD ); /* lower clock & data */
OUTL(bktr, BKTR_I2C_DATA_CTL, 2); DELAY( BITD ); /* release clock */
OUTL(bktr, BKTR_I2C_DATA_CTL, 3); DELAY( BITD ); /* release data */