On Sun, Sep 6, 2009 at 8:11 PM, Mark Brownbroonie@opensource.wolfsonmicro.com wrote:
On Sun, Sep 06, 2009 at 10:50:26AM +0900, jassi brar wrote:
Not all combinations of BFS and RFS are possible at all LRCLK values for CPU_DAI, not for Samsung SoCs those I am aware of.
These things are all sufficiently constrained by other factors - for example, the MCLK to sample rate ratio is fixed by those two parameters which are already known. The Samsung CPUs aren't particularly restrictive here as far as I remember, the fact that they implement standard I2S helps a lot. If you have datasheet references for any restrictions you're concerned about please let me know.
Some SoC may recommend 'preferred' RFS for a given BFS selection.
For ex, @16bits/sample in either Master or Slave mode:- SoC recommends - BCLK={32} RFS={256, 384} Codec recommends - BCLK={32, 48} RFS={384}
How and what values wud the codec and cpu driver choose if not the machine driver?
A codec driver is supposed to work with any SoC and an SoC can "recommend" any combination of RFS-BFS selection. If not for machine driver, how will this thing work out?
I get your recommendation, but i am already in the middle of submitting I2S machine driver for 6410-WM8580 mainline and that is one of the tasks i am assigned. Ofcourse, after 6410-wm8580 driver is all up and available to our users, i can switch to AC97.
All I'm saying is do the CPU drivers first - like I say, the main obstacle to finishing off refreshing the CODEC driver has been having the CPU driver to work off. I'd expect to have something quickly given that. There shouldn't be much overall delay to getting the boards fully supported.
It seems basic features(play and capture) may simply work with existing Samsung cpu drivers, all we need to do is write the missing machine driver for 6410(as Ben noted). Only after we have _some_ support for 6410 I2S in mainline, we shud go on to implement v40 features in the cpu driver (assuming we are to keep the status quo with Samsung SoCs' I2S architecture). And if the cpu driver isn't good enough, i can only test it if i have the machine driver.