From 110e006fe67fb4a6e1719ae6956c79b7ffc0148b Mon Sep 17 00:00:00 2001
From: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Date: Fri, 16 May 2008 11:08:11 +0200
Subject: [PATCH] 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 <haavard.skinnemoen@atmel.com>
---
 common/soft_i2c.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/common/soft_i2c.c b/common/soft_i2c.c
index c5d7e205e54..5ef7f303b84 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);
-- 
GitLab