Dear Genodians,

I am currently working on an i2c driver for the imx8q_evk board. I'm struggling
to generate any kind of signal(s) on the i2c bus.

First I had a look at os/src/drivers/touch/synaptic_dsx. I tried to run the i2c implementation from this
driver on the i2c bus 2. It hang at the first _busy() call in the _start() method, i2c.h l:83.
Please note that I skip all gpio and Event related part to make it work.

Settings I used for I2c bus 2 -> irq: 68 ([1]) mmio:0x303a0000 ([2]), freq_div: 0x2a (64 for 400kHz)

1. Is this possible that this implementation is specific to the synaptic device? Then not working for others bus?
2. Reading [3], I noticed that _start() does not exactly follow this flowchart, is there any reason? Doing [4] is sufficient?
3. Do you have any other example of driver(s) using i2c like the touch/synaptic_dsx that may help me ?

[1] IMX8MDQLQRM.pdf, chapter 7.1.2 A53 Interrupts, table 7-1 page 1023
[2] IMX8MDQLQRM.pdf, chapter 2.1.5 AIPS Memory Maps, table 2-5 page 28
[3] IMX8MDQLQRM.pdf, chapter 16.1 I2C Controller, Figure 16-7, page 6277
[4] IMX8MDQLQRM.pdf, chapter 16.1.5.1 Initialization sequence, page 6270

Thanks for your time.

Cheers,

Jean-Adrien Domage
Software Engineer
gapfruit AG