Messages in this thread | | | Date | Wed, 29 Jun 2022 16:34:31 +0200 | Subject | Re: [PATCH v2 03/10] i2c: xiic: Switch to Xiic standard mode for i2c-read | From | Marek Vasut <> |
| |
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 ?
| |