VIAI2C_CR_TX_END
val = VIAI2C_CR_TX_END | VIAI2C_CR_CPU_RDY | VIAI2C_CR_ENABLE;
writeb(VIAI2C_CR_TX_END, base + VIAI2C_REG_CR);
val &= ~VIAI2C_CR_TX_END;
val &= ~(VIAI2C_CR_TX_END | VIAI2C_CR_RX_END);
tmp |= read ? VIAI2C_CR_RX_END : VIAI2C_CR_TX_END;
tmp &= ~(VIAI2C_CR_RX_END | VIAI2C_CR_TX_END);
tmp |= read ? VIAI2C_CR_RX_END : VIAI2C_CR_TX_END;