I2C: S3C24X0: Bug fixes in i2c_transfer
authorRajeshwari Shinde <rajeshwari.s@samsung.com>
Tue, 19 Feb 2013 02:19:45 +0000 (02:19 +0000)
committerHeiko Schocher <hs@denx.de>
Tue, 12 Mar 2013 18:33:11 +0000 (19:33 +0100)
commitcb466c056a878dcae27b76eb86a124e0c5203e7a
tree170a868397daac1a83e3dc72a85452e94fe24bd7
parentcecf3c006f88a45c2fbab4336f01ebeb05e2ef2e
I2C: S3C24X0: Bug fixes in i2c_transfer

This patch corrects the following issues

1) Write the correct M/T Stop value to I2CSTAT after i2c write.
   According to the spec, after finish the data transmission, we should
   write a M/T Stop (I2C_MODE_MT | I2C_TXRX_ENA) to I2CSTAT instead of
   a M/R Stop (I2C_MODE_MR | I2C_TXRX_ENA).
2) Not split the write to I2CSTAT into 2 steps in i2c read.
   According to the spec, we should write the combined M/R Start value to
   I2CSTAT after setting the slave address to I2CDS
3) Fix the mistake of making an equality check to an assignment.
   In the case of I2C write with the zero-length address, while tranfering the
   data, it should be an equality check (==) instead of an assignment (=).

Signed-off-by: Tom Wai-Hong Tam <waihong@chromium.org>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
drivers/i2c/s3c24x0_i2c.c