[alsa-devel] SAIF configuration on imx28

George Stefan stefan.george87 at gmail.com
Tue Aug 21 13:24:32 CEST 2012

I am using a custom board based on imx28 (running 2.6.35) with the SAIF
interface connected to the PCM output of a modem.
I have developed a dummy codec for the modem and customized mxs-devb.c to
use that codec instead of sgtl5000.
Clock master, fixed at 256kHz,
Frame sync master, fixed 125us frame duration (8kHz): 32 bits of total
data; first 16 bits are valid (while FS is high), following 16 are "don't
care" (while FS low)
16-bit linear samples, sent MSB first
"Long Frame" sync:  transmit and receive occur simultaneously while the
common FS line is active (high).
TX data with 0-bit delay; start at the rising edge of the clock, while FS
is high.
RX data with 0-bit delay; sample at the falling edge of the clock, while FS
is high.
This configuration is fixed so the only setup needed for SAIF is

/* set cpu DAI configuration */
 ret = snd_soc_dai_set_fmt(cpu_dai, dai_format);
       if (ret < 0)
             return ret;

My problem is, although i am receiving dma irqs when i record ( arecord -f
S16_LE -r 8000 -c 1 <file>.wav), when i play the resulting file its just

[ 5295.890000] dump @ mxs_saif_trigger
[ 5295.890000] scr 101  , 107
[ 5295.890000] stat 80010041    , 80010071
[ 5295.890000] data 0   , ffffffff
[ 5295.890000] version 1010000  , 1010000
This  is a dump for arecord!

Do you have any ideeas?

More information about the Alsa-devel mailing list