[U-Boot] OMAP3 i2c issues on IGEP, u-boot 2013.10

Nikita Kiryanov
2013-11-27T15:52:31Z

On 11/27/2013 05:28 PM, Thomas Petazzoni wrote:
> Dear Nikita Kiryanov,
>
> On Wed, 27 Nov 2013 16:52:56 +0200, Nikita Kiryanov wrote:
>
>>>> Not sure to understand your question: my paragraph above mentions the
>>>> IGEP board as being the platform on which I'm seeing this. So indeed, a
>>>> OMAP3-based board is affected. But maybe I misunderstood your question.
>>>>
>>>
>>> Oops, sorry, bad question :)
>>>
>>> Anybody knows if other OMAP3-based boards are affected for this issue ?
>>
>> Our boards were also affected by this, and I managed to track the
>> problem down to the zeroing of cnt register at the end of write, which
>> was not present in the original version of the driver and appears to be
>> triggering an issue that is mentioned in OMAP3 errata.
>>
>> I just posted a patch to address this problem. You can find it here:
>> http://patchwork.ozlabs.org/patch/294593/
>
> Thanks for this patch. Unfortunately, I've applied it, and it doesn't
> fix the problem for me. I still have those I2C issues (did 3 boots of
> the IGEP boards, two of the boot failed with an endless stream of
> "i2c_read (addr phase): pads on bus 0 probably not configured
> (status=0x10)") message.
>
> Thanks,
>
> Thomas
>

The zeroing of the cnt register also happens in other places in the
driver, and it is entirely possible that they should be removed for
OMAP3s as well.

In my patch I removed it only for i2c_write() because the original
driver also zeroed the cnt register in I/O functions- except in
i2c_write(), and I decided to follow the original driver's lead.

What happens if you remove all the lines that zero the cnt register?

--
Regards,
Nikita.