On Tue, Apr 01, 2008 at 03:43:56PM +0300, ext Tony Lindgren wrote: > * Tony Lindgren <tony@xxxxxxxxxxx> [080331 17:30]: > > * Tony Lindgren <tony@xxxxxxxxxxx> [080331 13:43]: > > > * Tony Lindgren <tony@xxxxxxxxxxx> [080328 10:41]: > > > > Hi all, > > > > > > > > This helps with the annoying I2C timeouts. Does anybody have an idea > > > > why the twl4030 chip does not like doing multiple transfers in a row? > > > > > > > > To me the only difference seems to be that clocks are idled between > > > > writing the twl4030 register and reading the register value. > > > > > > I'll push this today with a REVISIT comment added. > > > > Looks like this kills twl4030 interrupts, so I've reverted it. > > After looking into this problem a bit more, looks like twl4030 reads > to anything in "POWER ID" (modules 0x10 and higher) will hang twl4030 > eventually and I2C controller gets stuck in mode where STP never clears. > > Repeated reads to "USB ID", "AUD ID" or "AUX ID" will not hang twl4030. > I remember seeing something similar when doing the powerbutton code. Klaus Pedersen found out that leaving CFG_BOOT to its reset value solved the problem. Unfortunately this breaks MADC and USB afaics, so it's not a real solution. CFG_BOOT is programmed in power_companion_init(). Cheers, Peter. -- goa is a state of mind -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html