2151 - [MachXO2] Does MachXO2 EFB I2C support frequencies other than the 50, 100, and 400 KHz options available in IPexpress?

2151 - [MachXO2] Does MachXO2 EFB I2C support frequencies other than the 50, 100, and 400 KHz options available in IPexpress?

Yes, even though IPexpress GUI provides only 3 options, you can operate EFB I2C hard core in master or slave mode at any clock that does not violate the I2C spec. You don’t need to do any clock stretch. To achieve any other clock operation meeting I2C standard, you need to write a prescale value to the registers I2C_1_BR0 / I2C_2_BR0 and I2C_1_BR1 / I2C_2_BR1. For more information on these, refer to Table 9-6 of TN1205.
Prescale value required to operate at your desired frequency can be calculated based on the equation mentioned in page 9-13 under "I2C_PRESCALE[9:0]".

Wishbone_clk/(I2C_PRESCALE*4) = I2C_clk

Note: I2C_PRESCALE is a decimal value for the corresponding 10-bit.

Use the equation above to calculate the required value and before starting any I2C operations, update the above registers in your design with the value.