[alsa-devel] imx-ssi.c & SND_SOC_DAIFMT_I2S

Mark Brown broonie at opensource.wolfsonmicro.com
Thu May 27 03:54:39 CEST 2010

On Thu, May 27, 2010 at 03:15:51AM +0200, Eric Bénard wrote:

> The problem on the first capture is that the SSI send the data for
> both channels on one half of the framesync's period => codec outputs
> sound on only one channel.

> By setting the mode to I2S_SLAVE, the SSI send the data the way the
> codec expect it : one channel when framesync is high and one channel
> when framesync is low.

Right, this is the thing I was saying about being unable to tolerate
extra BCLKs when in I2S mode.  In general with these generic serial
ports you're much better off using one of the DSP modes, it's what they
naturally implement.

> >If I remember correctly the I2S slave mode isn't exactly I2S compliant
> >either and is actually just setting up similar settings to override
> >other registers.  I could be wrong, or this could have changed in later
> >i.MXs.

> this is what is written in the comment, but in the iMX manual (at
> least 25 & 27), there is an I2S_SLAVE mode which seems to set more
> things than what is actually done in the driver as when I enable
> this, I get a perfect sound of both channels (and recording also
> works fine).

That register is present in later i.MX CPUs too, the issue is if it
actually does what is expected robustly.

More information about the Alsa-devel mailing list