Our client carrier design presently supports the TK1 V1.1A and the design needs to be updated to accommodate the changes made on V1.2A with respect to DDC I2C as they cannot update beyond BSP 2.7.2 due to library compatibility issues. Running 2.7.2 unmodified on the V1.2A fails the HDMI timing enumeration as the EDID cannot be read with the wiring per V1.1A. Nonetheless, the V1.2A seems to be able to boot up to Linux prompt (via serial port terminal) without other issues, so I began investigating what mods can be applied to restore the DDC function.
After some frustrating observations in the lab, a careful review of the PCN uncovered a full-stop that quashes any hope that 2.7.2 can be run on V1.2A with just some simple carrier changes. Per the PCN, the DDC I2C, originally driven from the GEN2_I2C pins of the SoC on V1.1A, is now driven from the DDC I2C pins on the V1.2A. The GEN2_I2C pins are moved to the USBH_EN and USB01_EN Apalis signals, and the ports that originally drove those signals now feed GPIO 3 and 4. This would have been easy to deal with through some rewiring, HOWEVER, the change descriptions of the USBH_EN and USB01_EN pins ominously report “…This MXM pin now features an output level shifter and can no longer be used as input.” This explains the lab observations and effectively makes the GEN2_I2C function on those pins inaccessible, at least for I2C SDA. This would not be an issue in later BSPs, however, BSP 2.7.2 isn’t aware of the change and is trying to read the GEN2_I2C port.
Is there any possible way to get 2.7.2 to redirect DDC access to the DDC I2C pins on the V1.2A? That would easily accommodate a wiring change and get HDMI working again.