[alsa-devel] How to specify data format if playback/capture were different ?
Lars-Peter Clausen
lars at metafoo.de
Wed May 22 10:43:02 CEST 2013
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
More information about the Alsa-devel
mailing list