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);
return((INL(bktr, BKTR_I2C_DATA_CTL) >> 8) & 0xff);
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 */