[alsa-devel] No sound captured with SGTL5000 on i.MX6 in I²S master mode
Jean-Michel Hautbois
jean-michel.hautbois at vodalys.com
Thu Sep 18 18:09:50 CEST 2014
<snip>
>> I forget that you see the clock out. BTW too late. What I'm trying to
>> said is that even if pins are configured and routed they can be routed
>> in the wrong direction. Right now you try to generate both clock from
>> the cpu and you can see them but receive path can be configured in
>> syncronous mode or it can work take the clock from another pin. What
>> is your configuration?
>
> The master clock is provided by the CPU but I just found out
> something. I have a FPGA between sgtl5000 and i.MX6. It is here in
> order to route signals. And when imx-audmux is probed, it does not
> find the clock, because the FPGA is not configured yet.
> And as this driver is not returning EPROBE_DEFER, it does not try a
> little bit later (when the clock will really be here).
> I don't know if this is the explanation of my issue, but at least this
> is an interesting catch.
> I will try and get you informed.
Well, audmux is not getting clock, this is normal I think, the clock I
was mentionning is the MCLK of SGTL5000 and this one is linked to
FPGA, but found after all.
I now had a further look into sound/soc/fsl/fsl_ssi.c and I see this :
sprop = of_get_property(np, "fsl,mode", NULL);
if (sprop) {
if (!strcmp(sprop, "ac97-slave"))
ssi_private->dai_fmt = SND_SOC_DAIFMT_AC97;
else if (!strcmp(sprop, "i2s-slave"))
ssi_private->dai_fmt = SND_SOC_DAIFMT_I2S |
SND_SOC_DAIFMT_CBM_CFM;
}
I may have missed something, but it seems that i2s-master is not
parsed, and does not set dai_fmt ?
Or maybe is it done later ?
I tried :
else if (!strcmp(sprop, "i2s-slave"))
ssi_private->dai_fmt = SND_SOC_DAIFMT_I2S |
SND_SOC_DAIFMT_CBM_CFM;
+ else if (!strcmp(sprop, "i2s-master"))
+ ssi_private->dai_fmt = SND_SOC_DAIFMT_I2S |
+ SND_SOC_DAIFMT_CBM_CFS;
}
But this is not better :
arecord -v -V stereo -f cd -D hw:0,0 somefile.wav
Recording WAVE 'somefile.wav' : Signed 16 bit Little Endian, Rate
44100 Hz, Stereo
Hardware PCM card 0 'imx6q-vbx3-sgtl5000' device 0 subdevice 0
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 44100
exact rate : 44100 (44100/1)
msbits : 16
buffer_size : 16384
period_size : 4096
period_time : 92879
tstamp_mode : NONE
period_step : 1
avail_min : 4096
period_event : 0
start_threshold : 1
stop_threshold : 16384
silence_threshold: 0
silence_size : 0
boundary : 1073741824
appl_ptr : 0
hw_ptr : 0
arecord: pcm_read:2031: read error: Input/output error
JM
More information about the Alsa-devel
mailing list