[alsa-devel] [PATCH 1/6] ASoC: OMAP mcbsp: Add DSP_A support

Mark Brown broonie at sirena.org.uk
Wed Apr 8 00:14:05 CEST 2009

On Tue, Apr 07, 2009 at 08:19:11AM +0300, Peter Ujfalusi wrote:

> twl4030: Samples the data on falling edge, shifts data out (and changes the 
> FS) on rising edge
> tlv320aic23: Samples the data on rising, shifts data out (and changes the FS) 
> on falling edge

What ASoC expects for DSP mode is that the data can be sampled on either
the first (mode B) or second (mode A) rising edge of BCLK after a rising
edge of LRCLK.  This implies that the data should be driven on the
falling edge of BCLK.

The TLV320AIC23 can do either mode - the description on page 24 matches
exactly.  Unless I'm missing something the inversion of the frame clock
for osk5912 looks like a mistake.  I'd need to read the code a bit more
closely to check I've not missed something but it looks like the codec
driver is never actually setting LRP so it's got the mode the wrong way
round for the one it supports.

The TWL4030 datasheet does not appear to be a model of clarity in this
area but it looks awfully like mode A with an inverted bit clock (the
data appears to be being driven rather than sampled on the rising edge
but the first bit does start on the falling edge of the frame clock).
This means the Beagle code looks about right unless I'm misreading

More information about the Alsa-devel mailing list