[alsa-devel] How to specify data format if playback/capture were different ?

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Wed May 22 03:02:45 CEST 2013


Hi Lars

Thank you for your comment

> > 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.

I understand, but still 50%.

I'm creating new "cpu" driver now too.
And, fortunately, my current "cpu" can do it as flexibility.
But, my old cpu driver ${LINUX}/sound/soc/sh/fsi.c was this

static struct snd_soc_dai_driver fsi_soc_dai[] = {
	{
		.name			= "fsia-dai",
		.playback = {
			...
		},
		.capture = {
			...
		},
	...

This means, "fsia-dai" is already including "playback" and "capture".
Sould fsi driver be below if "fsi" and "ak4554" are connected ?
Is it normal ?

static struct snd_soc_dai_driver fsi_soc_dai[] = {
	{
		.name			= "fsia-dai",
		.playback = {
			...
		},
		.capture = {
			...
		},
	},
	{
		.name			= "fsia-playback-dai",
		.playback = {
			....
		}
	},
	{
		.name			= "fsia-captrue-dai",
		.capture = {
			....
		}
	}


Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list