Re: [PATCH] i2c: designware: do not disable adapter after transfer

From: Christian Ruppert
Date: Mon May 09 2016 - 04:50:33 EST


Dear Lucas,

On 04.05.2016 16:38, Lucas De Marchi wrote:
> Hi Christian,
>
> On Mon, May 2, 2016 at 7:11 AM, Christian Ruppert
> <christian.ruppert@xxxxxxxxxxx> wrote:
>> Dear Lucas,
>>
>> On 22.04.2016 17:19, Lucas De Marchi wrote:
>>> CC'ing Christian.
>>>
>>> On Fri, Apr 22, 2016 at 12:08 PM, Lucas De Marchi
>>> <lucas.demarchi@xxxxxxxxx> wrote:
> [...]
>> Bad news: Not all transfers seem to take place as they should.
>> I don't have the time for a deep analysis but a few quick
>> experiments seem to indicate that the adapter needs to be
>> disabled while updating TAR to a value different from the
>> previous one. Disabling the adapter does not seem to be
>> required if TAR doesn't change from one transfer to the next.
>> I don't know if there are any conditions under which we can
>> leave the adapter enabled while changing TAR but at least in
>> some cases it seems to work.
>
> :(
>
> This is unfortunate. If the bus is shared for 2 slave devices we will
> get the slow down back. I wonder if there's a HW version or something
> like that in the registers which can be used to add quirks to tweak the
> behavior. I'll dig some documentation, but if anyone knows, it'd be
> nice to have it pointed out.

There is such a register (DW_IC_COMP_VERSION) and we used it before for
hold time configuration, see line 374. In my case, the value of the
register is 0x3131372a. We're now just left with the problem to find out
how many (and which) hardware issues there are and in which version they
were fixed exactly...

Greetings,
Christian