From: Haavard Skinnemoen Date: Fri, 16 May 2008 09:08:11 +0000 (+0200) Subject: soft_i2c: Pull SDA high before reading X-Git-Tag: v1.3.4-rc1~114^2~12 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=commitdiff_plain;h=110e006fe67fb4a6e1719ae6956c79b7ffc0148b soft_i2c: Pull SDA high before reading Spotted by Dean Capindale. Systems that support open-drain GPIO properly are allowed provide an empty I2C_TRISTATE define. However, this means that we need to be careful not to drive SDA low when the slave is expected to respond. This patch adds a missing I2C_SDA(1) to read_byte() required to tristate the SDA line on systems that support open-drain GPIO. Signed-off-by: Haavard Skinnemoen --- diff --git a/common/soft_i2c.c b/common/soft_i2c.c index c5d7e205e5..5ef7f303b8 100644 --- a/common/soft_i2c.c +++ b/common/soft_i2c.c @@ -252,6 +252,7 @@ static uchar read_byte(int ack) * Read 8 bits, MSB first. */ I2C_TRISTATE; + I2C_SDA(1); data = 0; for(j = 0; j < 8; j++) { I2C_SCL(0);