[U-Boot] soft i2c behaviour on address not <ACK>ed

Heiko Schocher hs at denx.de
Mon Nov 25 08:46:06 CET 2013


Hello Dirk,

Am 21.11.2013 13:34, schrieb Eibach, Dirk:
> While debugging an I2C problem I found in soft_i2c_read() and
> soft_i2c_write():
>
> if(write_byte(addr>>  shift)) {
> 	PRINTD("i2c_read, address not<ACK>ed\n");
> 	return(1);
> }
>
> and
>
> if(write_byte(addr>>  shift)) {
> 	PRINTD("i2c_write, address not<ACK>ed\n");
> 	return(1);
> }
>
> This means that these functions are left without sending a STOP
> condition to the bus and with SCL held low. Is that really intended?

This seems a bug to me ... could you send a patch?

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list