Without resetting the ADV7441A, we have found it difficult to configure the chip to detect the many inputs we support. So we reset it via I2C for each input type (composite, analog graphics, digital graphics) in order to detect the signal coming in on each interface. This works very well, except that it causes the EDID to be cleared on each detection (which we perform continually when we are idle).
I've found that whenever we reset the chip, it is common for an HD camera to re-read EDID immediately (as in, before we can reload the EDID) - then it fails to see that we support the full range of digital inputs.
I have written code that writes the default value back to each I2C register, yet that does not seem to be enough. Resetting the chip appears to do more than restoring all registers (except EDID-related ones) to their default values. But whenever we reset the chip, we must reload the EDID with 256+ writes over I2C. And for many (but not all) HD cameras, this causes a new and failing EDID read.
So my questions are:
1. How does the camera know that I've reset the 7441? Does one of the EDID I2C lines change state? (This is not really an ADV7441A question, and I could certainly hook up a scope to narrow it down.)
2. What does Analog Devices recommend for resetting the chip in such a way that it will retain its EDID?