Drive Mode Registers modification by I2Cm User Module

Question: Why does the I2Cm User Module modify the drive mode registers of the I2C pins, rather than changing the data register?

 

Answer:

To achieve the wired AND configuration required on the I2C lines, the I2C pins have to be HighZ for a Logic 1 and Strong for a Logic 0.  This is achieved by changing the drive mode of the pins to open drain low.