[lkml]   [2022]   [Jun]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v2 03/10] i2c: xiic: Switch to Xiic standard mode for i2c-read
On 6/29/22 16:09, Krzysztof Adamski wrote:
> Hi Marek,
> W dniu 29.06.2022 o 16:05, Marek Vasut pisze:
>>> [...]
>>> If those two modes only differ in software complexity but we are not
>>> able to support only the simpler one and we have support for the more
>>> complicated (standard mode) anyways, we know that standard mode
>>> can handle or the cases while dynamic mode cannot, we also know that
>>> dynamic mode is broken on some versions of the core, why do we actually
>>> keep support for dynamic mode?
>> If I recall it right, the dynamic mode was supposed to handle
>> transfers longer than 255 Bytes, which the core cannot do in Standard
>> mode. It is needed e.g. by Atmel MXT touch controller. I spent a lot
>> of time debugging the race conditions in the XIIC, which I ultimately
>> fixed (the patches are upstream), but the long transfers I rather
>> fixed in the MXT driver instead.
>> I also recall there was supposed to be some update for the XIIC core
>> coming with newer vivado, but I might be wrong about that.
> It seems to be the other way around - dynamic mode is limited to 255
> bytes - when you trigger dynamic mode you first write the address of the
> slave to the FIFO, then you write the length as one byte so you can't
> request more than 255 bytes. So *standard* mode is used for those
> messages. In other words - dynamic mode is the one that is more limited
> - everything that you can do in dynamic mode you can also do in standard
> mode. So why don't we use standard mode always for everything?

Sigh, it's been a year since I looked into this, sorry.

One of the modes is maybe not supported on all the XIIC core instances ?

 \ /
  Last update: 2022-06-29 16:36    [W:0.085 / U:0.412 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site