Hardware lockup with freescale i2c-mpc driver/2.4?

Stefan Nickl Stefan.Nickl at kontron.com
Tue Jul 6 00:03:27 EST 2004


I've witnessed some strange behaviour using i2c-mpc.[ch].
It started when I compiled some i2c client drivers into the kernel.

After booting once, the SDA line gets stuck low.
It's probably held by one of the i2c slaves,
because a power-cycle is required to release SDA.
But even the procedure described in the manual under "Generation of SCL
when SDA Low", (which apparently is also what mpc_i2c_reset() does)
causes no change on SCL/SDA when executed with the BDI2000.

The interesting thing is, that the problem went away when I added
a printk() on top of mpc_i2c_reset (seems to be pretty normal for
this function to get called during the bus scan, btw).

So I figured that if it's about the delay introduced by printk(),
the same effect could be gained by simply putting the delay first
in the loop, and this apparently works pretty well (no lockup since).

Now I'm looking for an explanation why ;)

Stefan Nickl
Kontron Modular Computers

-------------- next part --------------
A non-text attachment was scrubbed...
Name: i2c-mpc_resetflip.patch
Type: text/x-patch
Size: 376 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20040705/966bee04/attachment.bin 

More information about the Linuxppc-embedded mailing list