Hello, 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
dai_format = SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_IB_NF | SND_SOC_DAIFMT_CBM_CFM; /* 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 silence.
[ 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? Thanks, George.