Ok. I've been reading a little bit more of the forum thread, and had a
look at the ITE-provided sources and patched results. I also had a look
at the existing "legacy" driver for the "ITE8709" PNP ID. Yours seem to be the "ITE8708" variant. Both of them seem to be more or less the same IT8512 hardware.
In the case of "ITE8709" the driver communicates with the micro-controller via an specific shared-memory protocol.
For the "ITE8708" variation, it would seem that things are different, since CIR registers are just accessed by normal usage of inb() / outb(), just using that HRAE bit to switch between two (low/high) banks of 8 registers of 1 byte. Registers have been reordered from the offsets the micro-controller sees, so that the high bank registers are the ones that are used less often, and the highest order reserved bit of C0TCR and C0WPS is used as HRAE at the same offset (07h) no matter which bank is selected. I don't know if this interfacing is done via micro-controller firmware or with specific wired logic, but I guess it won't matter.
I won't have time for looking more seriously at this until this weekend, but I hope it won't be too long before I have a patch that you can test. Right now I'm working on top of this tree:http://git.linuxtv.org/media_tree.git
So, if you want, you can clone that repository and get the "staging/for_v2.6.38" head compiled and working. I can provide help for that (I'm using Ubuntu 10.10 too).