If I'm not mistaken, an I2C subsystem idea of operation is as follows:
GPIO expanders are always connected, and their addresses are different in every peripheral so we don't need to use SERVMOD to enable module I2C.
DIS_I2Cn are used to gain access to EEPROM of particular EEM.
It seems to be unnecessarily different from what is being done in DIOT, where SERVMOD enables module's I2C. As in most of the modules, functions available through I2C bus are not essential, I'd suggest making adapters as compatible with DIOT as possible.
This would require adding translator with enable pin to the I2C bus driven by SERVMOD and making I2C0 available by default when SERVMOD is high (so that EEPROM is availabe to the controller, I believe we don't really need access to the second EEM EEPROM)
If I'm not mistaken, an I2C subsystem idea of operation is as follows:
SERVMOD
to enable module I2C.DIS_I2Cn
are used to gain access to EEPROM of particular EEM.It seems to be unnecessarily different from what is being done in DIOT, where
SERVMOD
enables module's I2C. As in most of the modules, functions available through I2C bus are not essential, I'd suggest making adapters as compatible with DIOT as possible.This would require adding translator with enable pin to the I2C bus driven by
SERVMOD
and makingI2C0
available by default whenSERVMOD
is high (so that EEPROM is availabe to the controller, I believe we don't really need access to the second EEM EEPROM)