H7 and HAT : I2C2 not routed to I2C4 on STM32H7

Using the Portenta H7 and the HAT Board, I need to use the I2C2 from the 40 pins HAT interface.:

Connection routes to the HDC connector J2 - are pin 45 and 47.
However checking the Schematics of the Portenta H7, this is marked as I2C4, and these pins are 'shared' wit the Camera interface data lines. DCMI_D2 and _D3 :

According the SMT32H745 Datasheet, I2C4 is on pin IO level PF14/PF15 and shared with the FMC_A8/_A9 (SDcard) :

Looks to me like a waste of resources - Why would the I2C2 from HAT (I2C4 from H7) be shared with the camera interface ? Looks to me like a bug / mistake ?

Questions : Is I2C4 connected to IO pins PF14/15 anyway?
If so, are there I2C drivers for H7-I2C4 ?

Cheers.

After digging into the STM32H745 datasheets, I came aware of the following regarding I2C4 :

It seems the I2C4 peripheral is sharable on multiple IO-pins, including the DCMI pins D2/D3 - so layout looks to be correct.
Checking the IO pins PH11 and PH12 in the H7 Arduino library, these are used for I2C pins : SDA2 and SCL2 :

This means the pre-defined Wire2 should be working : (Wire-Library Wire.cpp)

#if WIRE_HOWMANY > 0
arduino::MbedI2C Wire(I2C_SDA, I2C_SCL);
#endif
#if WIRE_HOWMANY > 1
arduino::MbedI2C Wire1(I2C_SDA1, I2C_SCL1);
#endif
#if WIRE_HOWMANY > 2
arduino::MbedI2C Wire2(I2C_SDA2, I2C_SCL2);
#endif

The fact is unfortunately : its not working.

Tested on a Portenta C33 board with HAT : works fine. (also Wire2)
Testing on a H7 board with HAT: doesn't find the I2C peripheral.

Any suggestions ?

Any new information regarding this issue or has a solution been found?

I'm trying to use a DAC R-pi HAT mounted on the Portenta HAT Carrier with the Portenta H7 board mounted. But I'm getting errors reading/writing to I2C2 and when I run an I2C scan no devices are found on I2C2 (Wire2).

Scan output:

Device found at address 0x50 (80 decimal) on I2C 0
Found 1 I2C devices on device number 0

Device found at address 0x08 (8 decimal) on I2C 1
Device found at address 0x36 (54 decimal) on I2C 1
Device found at address 0x50 (80 decimal) on I2C 1
Device found at address 0x60 (96 decimal) on I2C 1
Found 4 I2C devices on device number 1

No I2C devices found on device number 2!

I2C0 and I2C2 are supposed to be available on the HAT carrier 40-pin connector. In the scan result I can see that the HAT EEPROM is discovered on I2C0. But nothing is discovered on I2C2 where both a DAC chip and programable PLL on the HAT board are connected.

Turns out it seems to be related to the lack of pull-up resistors. I'm still puzzled how I2C0 works for me without pull-up resistors, but I2C2 wouldn't. Perhaps the EEPROM on the Pi Hat I'm using has internal pull-up resistors.

It's a bit of a problem being a discrepancy in comparison to the Raspberry Pi who has pull-up resistors mounted on the PCB.

After retrofitting a 2.2K resistor to the I2C2 lines I got the bus working at least.