Use of Apalis I2C ports on custom carrier

Hello all,

Designing a custom carrier for the above listed Apalis SOMs and wondering how to use the I2C ports. The Toradex 101123 “Apalis Computer Module; Carrier Board Design Guide”, section 2.14 says “The interface I2C1 is a general purpose I2C while I2C2 is intended to be used with the DDC interface and I2C3 is intended to be used with the camera interfaces. All I2C interfaces can also be used for general purpose”.

The iMX6 datasheet, table 5-27, says “I2C port for the DDC interface, cannot be used for other purpose”.

Our carrier is implementing everything to support all three displays (HDMI, LVDS and DSI) and all three CSI camera ports (when available on the SOM). I was planning on connecting one camera and one display on each I2C port mainly to avoid needing address translators in the event two or three displays have DDC/EDID… but the above excerpts from the Toradex documents makes me wonder whether this is OK.

I see that for the iMX6, “The HDMI DDC controller is a dedicated I2C controller. It is intended to be used for the DDC or EDID interface. It cannot be used as a general purpose I2C interface”. But if the standard I2C peripheral is tied to pins 205/207, is it still possible to implement DDC/EDID? In other words, is it possible (with a reasonnable effort) to configure Linux to use the standard I2C2 port rather than the dedicated DDC for HDMI? Is there a way to go around the restriction not to use the I2C2 for anything else than DDC on iMX6? The goal is to make the above-listed three SOMs compatible.



I believe on Apalis iMX6 this would be possible while on Apalis iMX8 HDMI is driven by NXP proprietary firmware which directly controls DDC/EDID. While we initially hacked it to at least output something in V1.0 hardware using generic I2C for DDC/EDID doing so may have certain limitations which is why in V1.1 hardware we are no longer doing that. So on Apalis iMX8 the DDC/EDID I2C interface can not be used for anything else!

It is really strongly recommended to always use the dedicated DDC/EDID I2C interface only for the corresponding HDMI interface’s DDC/EDID functionality.