On 05/22/2013 03:12 AM, Kuninori Morimoto wrote:
Hi again
But, ak4554 case, data formats are playback : SND_SOC_DAIFMT_RIGHT_J capture : SND_SOC_DAIFMT_LEFT_J and, it can't exchange this data format.
CPU driver should set these information for ak4554 when playback/capture.
Then, how to specify these data format on ALSA SoC ?
You can add two different DAIs one for playback one for capture. Then you can specify the format for each.
1 more question.
On ak4554 side driver, I guess, it will be
struct snd_soc_dai_driver ak4554_playback_dai = { .name = "ak4554-playback", .playback = { ... }, }
struct snd_soc_dai_driver ak4554_captrure_dai = { .name = "ak4554-captrure", .capture = { ... }, };
You'll want to put both DAIs into an array which you can pass to snd_soc_register_codec, but otherwise it looks ok.
But, ak4554 needs .symmetric_rates between playback <--> capture. Is it possible ? Or, am I misunderstanding ?
Yes, that won't work, you'd have to implement this by hand.
- Lars