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