Part Number: SN65DSI84
Other Parts Discussed in Thread: USB2ANY
Hi,
We are using the IC SN65DSI84ZXHR in our design, in order to drive 1920 x 1080 screens from a DSI port of Radxa's CM5 SOM (RK3588S2). We designed the main board, and use Radxa's SOM on it.
During the initialization of the TI chip, there are many situations where we get I2C NACKs (The SN65DSI84ZXHR doesn't ACK either the first byte of the write transaction or the first byte of a read back transaction). We modified the mainline linux driver for the TI chip in order to do retries when there are NACKs, and this alleviates the issue.
Once the chip is successfully initialized (which in many cases, it happens), then when doing an i2cdump, we get plenty of reads NACKed from the chip (I.e. again, the chip won't ACKed its i2c address - the first byte of the transaction).
Regardless of our fix (adding I2C retries when there are NACKs in the chip configuration's I2C transactions), the situation is still bad for us, as sometimes the initialization wouldn't happen at all (many NACKs, and the LP11 state only lasts for certain amount of time, which we can't control)
The power lines and i2c bus are healthy from a HW perspective. In that particular I2C bus, we only have the TI chip.
Why would you expect the SN65DSI84ZXHR to behave like this? What might be wrong in our design?
In the picture: Example of a i2cdump with many "first byte NACKs" (bytes in XX). 
In the picture below: Traces for chip init sequence (1920 x 1080 at 30fps so we can capture clocks).
In the file below: An I2C configuration sequence. In this case, only one NACK was captured (and the driver retried suffesfully)
Traces I2C details - 1.1.9.pdf
Thanks!



