mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] I2C: i2c_bit_add_bus should initialize SDA and SCL lines
@ 2006-06-06 16:58 Krzysztof Halasa
  2006-06-09 11:05 ` [lm-sensors] " Mark M. Hoffman
  0 siblings, 1 reply; 5+ messages in thread
From: Krzysztof Halasa @ 2006-06-06 16:58 UTC (permalink / raw)
  To: Jean Delvare; +Cc: linux-kernel, lm-sensors

Hi,

Another thing: I noticed the i2c_bit_add_bus doesn't set SDA and SCL
lines to a known levels. If the hw driver set them to 1 all is fine
and the first START condition is detected correctly. But if they're
set differently (for example, if both are zero), the START will not
work.

I'm not sure if the following patch isn't an overkill, though, and
if the lack of initialization is a real problem which shows in
practice and not only on my analyzer.

In case you think it's needed:

This patch makes i2c_bit_add_bus() initialize SDA and SCL lines
as required by subsequent START condition.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>

--- a/drivers/i2c/algos/i2c-algo-bit.c
+++ b/drivers/i2c/algos/i2c-algo-bit.c
@@ -544,6 +544,13 @@ int i2c_bit_add_bus(struct i2c_adapter *
 	adap->timeout = 100;	/* default values, should	*/
 	adap->retries = 3;	/* be replaced by defines	*/
 
+	setsda(bit_adap, 0);	/* may mean START if SCL = 1 */
+	udelay(bit_adap->udelay);
+	setscl(bit_adap, 1);	/* may clock a zero bit in */
+	udelay(bit_adap->udelay);
+	setsda(bit_adap, 1);	/* STOP */
+	udelay(bit_adap->udelay);
+
 	i2c_add_adapter(adap);
 	return 0;
 }

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-06-12 17:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-06 16:58 [PATCH] I2C: i2c_bit_add_bus should initialize SDA and SCL lines Krzysztof Halasa
2006-06-09 11:05 ` [lm-sensors] " Mark M. Hoffman
2006-06-10 22:27   ` Krzysztof Halasa
2006-06-12 12:36     ` Mark M. Hoffman
2006-06-12 17:13       ` Krzysztof Halasa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®