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