Step3: Send data back when SA(1) is received
----------------------------------------------------------------------------------------------------------------
if (i2sr & I2SR_SRW) { /* Slave transmit, master read */
/* Set TX mode */
temp = readb(i2c_imx->base + IMX_I2C_I2DR); //SA(1) is read
//temp = i2c_imx->slave->regs[i2c_imx->slave->addr].val; //ERROR: No data is actually written to DR If we write DR at this point.
//writeb(temp, i2c_imx->base + IMX_I2C_I2DR);
i2cr |= I2CR_MTX;
writeb(i2cr, i2c_imx->base + IMX_I2C_I2CR); // ERROR: at this point, the data of DR has been sent to I2C bus.
temp = i2c_imx->slave->regs[i2c_imx->slave->addr].val; //ERROR: Its value is invalid like writing DR like that.
writeb(temp, i2c_imx->base + IMX_I2C_I2DR);
}