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

Nikita Kiryanov
2013-11-28T13:06:46Z

On 11/27/2013 07:12 PM, Enric Balletbo Serra wrote:
> Hi all,
>
> 2013/11/27 Nikita Kiryanov <nikita@compulab.co.il>:
>> On 11/27/2013 06:10 PM, Thomas Petazzoni wrote:
>>>
>>> Dear Nikita Kiryanov,
>>>
>>> On Wed, 27 Nov 2013 17:52:31 +0200, Nikita Kiryanov wrote:
>>>
>>>> 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?
>>>
>>>
>>> It works. I've removed all the writew(0, ...cnt register...), and then
>>> I've done at least 20 boots of the IGEP board, and all of them were
>>> successful.
>>>
>>> I've attached the ugly patch that comments out all of those cases. Of
>>> course, it's not a patch intended for merging, just to show which
>>> locations I've commented.
>>>
>>> Since I've absolutely no idea of the background for the problem, would
>>> you mind submitting a proper patch with a good explanation? I will be
>>> happy to test it, of course.
>>
>>
>> Sure. I'm about to leave office though, so I'll prepare it tomorrow.
>>
>>>
>>> Thanks!
>>>
>>> Thomas
>>>
>>
>>
>> --
>> Regards,
>> Nikita.
>
>
> Maybe I'm wrong but I think the problem could be related to that
> OMAP3430 and OMAP3630 has a different I2C revision and current code
> don't handle this correctly, As I know the I2C revision on OMAP3630
> and OMAP4 is the same but different than OMAP3530. If the Tom's board
> uses the OMAP3530 processor this will explain why he's not affected
> for the issue. Others like me and Thomas, using DM3730, have the
> problem because the driver do not handle this, it supposes that we're
> using an OMAP3530.

Well, this issue is mentioned in the errata for both OMAP3530 and
DM3730, and the TRM for OMAP4430 mentions the same thing. It seems to me
that the zeroing of cnt register being problematic is something the
different OMAPs have in common.

Either way, these lines seem unnecessary, so I'm still in favor of
removing them.

>
> Best regards,
> Enric
>

--
Regards,
Nikita.