I woke up a bit early this morning, and managed to figure out I had mapped out the xc5000 to the wrong i2c address (Doh!). Fixed that and now the device is detected and the firmware loads successfully.
Now it's failing on the first i2c command to set an xc5000 register (even if I put a extended sleep after the reset). Perhaps I have the xc5000 reset pin mapped to the wrong GPIO as well, and so the pin isn't being pulled low. Strange though, since I had to put a 10ms sleep after I did the reset, which shouldn't have been necessary if I wasn't actually tied to the xc5000 reset pin. If I had the damn pinout to the xc5000, I could just put my scope on the reset pin and scan through the GPIOs (since I confirmed every active GPIO is in output mode).
* dib0700 - working
* s5h1411 - working
* xc5000 - 50% there
* cx25843 - not started
* xc5000 (analog) - not started
I should update the LinuxTV wiki page with the i2c and GPIO mappings I have found.