VIAI2C_REG_CR
val = readw(base + VIAI2C_REG_CR) | VIAI2C_CR_CPU_RDY;
writew(val, base + VIAI2C_REG_CR);
writew(val, base + VIAI2C_REG_CR);
writew(VIAI2C_CR_ENABLE, base + VIAI2C_REG_CR);
writeb(VIAI2C_CR_TX_END, base + VIAI2C_REG_CR);
writew(VIAI2C_CR_CPU_RDY | VIAI2C_CR_ENABLE, base + VIAI2C_REG_CR);
val = readw(i2c->base + VIAI2C_REG_CR);
writew(val, i2c->base + VIAI2C_REG_CR);
val = readw(i2c->base + VIAI2C_REG_CR);
writew(val, i2c->base + VIAI2C_REG_CR);
val = readw(i2c->base + VIAI2C_REG_CR);
writew(val, i2c->base + VIAI2C_REG_CR);
val = readw(i2c->base + VIAI2C_REG_CR);
writew(val, i2c->base + VIAI2C_REG_CR);
writew(0, i2c->base + VIAI2C_REG_CR);
writew(VIAI2C_CR_ENABLE, i2c->base + VIAI2C_REG_CR);
tmp = ioread8(base + VIAI2C_REG_CR);
iowrite8(tmp, base + VIAI2C_REG_CR);
tmp = ioread8(base + VIAI2C_REG_CR);
iowrite8(tmp |= VIAI2C_CR_CPU_RDY, base + VIAI2C_REG_CR);
tmp = ioread8(base + VIAI2C_REG_CR);
iowrite16(ZXI2C_CR_FIFO_MODE | tmp, base + VIAI2C_REG_CR);
iowrite16(tmp, base + VIAI2C_REG_CR);
iowrite16(tmp | VIAI2C_CR_END_MASK, base + VIAI2C_REG_CR);
iowrite8(ZXI2C_CR_MST_RST, i2c->base + VIAI2C_REG_CR);
tmp = ioread8(base + VIAI2C_REG_CR);
iowrite8(tmp, base + VIAI2C_REG_CR);