On 6/13/08, Timur Tabi timur@freescale.com wrote:
Jon Smirl wrote:
My system works like you describe. We have an external clock generator. It needs to be set up in the fabric code.
But can the clock frequency change during runtime? The current ASoC interface can handle that.
Our i2s hardware is capable of changing the clock frequency at runtime. I haven't tried doing it in software yet. The main reason for changing is to adjust to sources that are multiples of 44.1 vs 48K. Intel HDA has a much better scheme for handling that via a fixed clock and skipping slots. I suspect I'll have to do some work on alsa to make this work.
Get Freescale to put an HDA interface into the SOC chips so that I can used HDA codecs. The only reason we are using an external clock chip is because the MPC5200 generates a 192K audio clock that has a 0.7% error in it. If the MPC5200 had a fractional-N divider instead of an integer one on the audio clock we wouldn't need the external chip. There's no way to fix the MPC5200 clock error without breaking the USB clock.
Isn't the parameter needed for codecs like AC97 where they supply the clock back to the CPU? Timur's device tree is the one with a codec clock rate. Are there other parameters the system might need to set into a codec?
The direction of the clock. That's why I have "i2s-slave" in the SSI nodes.
There should be a way for the ssi driver to extract the parameters from the device tree and then feed them into the codec in an arch independent manner. The codecs need to stay arch independent. I haven't tried doing this yet in the code since I haven't needed setup parameters.
-- Timur Tabi Linux kernel developer at Freescale