Lockup problem with I2C bus

Weber, Robert Robert.Weber at Thales-IFS.com
Wed Oct 23 08:31:37 EST 2002


Hello. I'm running the 2.4.2 (monta vista 2.0) linux kernel on a custom 8260
board. When using the i2c driver that's built into the kernel, things
generally work fine, but sometimes the bus locks up. I suspect there could
be 2 issues.

1. There is no timeout in the driver, so when the master is waiting for a
response but the slave doesn't seem to think it should provide one (maybe
the msg was corrupted), the master can wait indefinitely. It'd be nice to
timeout the transmission and have the master try again.

2. If the master and slave get out of sync, the slave device can hold the
sdata line. Is there a way to get the kernel to produce some clock signals
to try and get the slave to finish whatever it thinks it should be doing,
and get control of the bus back to the master? There's no way to reset the
slaves (an LM75, LM83 and a custom control board) without resetting the
entire unit. Admittedly, this should happen, but when a script that uses the
i2c bus is terminated uncleanly, we've had it occur. It'd be nice if there
was a way to recover.

Thanks in advance.

-  Bob Weber
   Thales Avionics In-Flight Systems
   email: robert.weber at thales-ifs.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Tech Tools.gif
Type: image/gif
Size: 2421 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20021022/f9bab3b7/attachment.gif 


More information about the Linuxppc-embedded mailing list