I've succeeded in getting 3.8.13 to talk to my CODEC! But it won't automatically enable the regulators and take it out of reset; I have to do that using /sys/class/gpio beforehand. But then it works (mostly).
In the 4.1 kernels, my regulators actually got turned on (and the device was taken out of reset) correctly. In 3.8, this doesn't happen, even though the CODEC driver seems to be fully cognizant of the existence of regulators (and reset), and the 3.8 regulator code supports enabling/disabling via GPIO.
Here's the latest DTS:
One difference to 4.1: overlays support targeting a path, allowing me to add the regulator to the root. I couldn't figure out how to do that in 3.8, so that might be part of it.
But it doesn't explain why the CODEC won't come out of reset automatically.
Did I make a mistake in the GPIO config somewhere?
As always, insight is appreciated.