I’m using TX1 with L4T 28.1.
I use APE SFC like this:
AIF(8k)->(8k in)SFC(48k out)->I2S
amixer -c 1 sset ‘SFC1 Mux’ ‘ADMAIF1’
amixer -c 1 sset ‘I2S1 Mux’ ‘SFC1’
amixer -c 1 cset iface=MIXER,name=‘SFC1 Channels’ 2
amixer -c 1 cset iface=MIXER,name=‘SFC1 input rate’ 8000
amixer -c 1 cset iface=MIXER,name=‘SFC1 output rate’ 48000
amixer -c 1 cset iface=MIXER,name=‘SFC1 input bit format’ 16
amixer -c 1 cset iface=MIXER,name=‘SFC1 output bit format’ 16
aplay -Dhw:1,0 -f S16_LE -r 8000 -c 2 test.pcm
The I2S play audio with 8K, not 48K.
I found some code in kernel.
“static int tegra_t210ref_dai_init()” in file “tegra_t210ref_mobile_rt565x_alt.c”
err = snd_soc_dai_set_bclk_ratio(card->rtd[idx].cpu_dai,
tegra_machine_get_bclk_ratio(&card->rtd[idx]));
It seem that I2S rate always is setted with 8000 when use “aplay -r 8000”.
The I2S rate should be setted 48K, but how to do that?
May the SFC CODEC should set “output rate” to next widget I2S. But I didn’t found this function in tegra210_sfc_alt.c.