I have a design which has multiple I2C devices on one bus, and we have a problem with overlapping I2C addresses caused by ADV7800.
It is apparent that the ADV7800 responds to I2C address 0x50 with ACK, and there is no documentation anywhere that it will reserve this address as well, in addition to the IO, SDP, CP and VDP addresses.
As it happens, I have no problem defining the IO map in hardware and defining SDP, CP and VDP addresses myself in software.
But in the reserved IO_MAP register offset 0xFC there is a value of 0x50 to which the ADV7800 responds. I can even change that to for example 0x20, and the ADV7800 responds to address 0x20 instead.
Please help me understand why it needs five addresses instead of four, of which one is totally unmentioned anywhere in the documentation, and is it safe to relocate that 0x50 address with the reserved register offset 0xFC to something else to free up address 0x50 for another component that needs it (hardwired, cannot be changed).
If this cannot be changed safely, then we have to re-design the hardware because the documentation lacks the mention of reserved 0x50 address.
Please do not leave such important information out from the documentation in the future.