hi.
i have a problem with i2s
I am using R32.1 L4T and trying to output sound on I2S1, but SDOUT not working.
It seems that fs/sclk/mclk are all working.
And the pinctrl seems to be set up properly.
/sys/kernel/debug/tegra_pinctrl_reg
Bank: 0 Reg: 0x02431020 Val: 0x00000400 → aud_mclk_pj4
Bank: 0 Reg: 0x02431028 Val: 0x00000400 → dap1_fs_pj3
Bank: 0 Reg: 0x02431030 Val: 0x00000458 → dap1_din_pj2
Bank: 0 Reg: 0x02431038 Val: 0x00000400 → dap1_dout_pj1
Bank: 0 Reg: 0x02431040 Val: 0x00000400 → dap1_sclk_pj0
However, even if I play the sound, only the clocks comes out and DOUT does not come out.
What should I do to solve this?
Thanks,
Hello!
What command are you testing with? Can you try …
$ alsactl init tegrasndt186ref
$ speaker-test -D hw:tegrasndt186ref,0 -c 2 -r 48000 -F S16_LE -t sine -f 500
Regards,
Jon
Hi Jon.
I tried that, but it still not working
I tried
- amixer -c tegrasndt186ref sset ‘I2S1 Mux’ ‘ADMAIF1’
- aplay -Dhw:1,0 Square_48k.16_2.wav
and i also tried it on I2S2 by [amixer -c tegrasndt186ref sset ‘I2S2 Mux’ ‘ADMAIF2’]
but it all not works.
…
at first all I2S pins did not work. and pin status was like this

than i modified dtb
clk_aud_mclk_pj4 {
nvidia,pins = "aud_mclk_pj4";
linux,phandle = <0x121>;
phandle = <0x121>;
};
to
clk_aud_mclk_pj4 {
nvidia,pins = "aud_mclk_pj4";
nvidia,function = "aud";
nvidia,tristate = <0x0>;
nvidia,enable-input = <0x0>;
nvidia,pull = <0x0>;
linux,phandle = <0x121>;
phandle = <0x121>;
};
then fs/bclk/mclk works and dout not working.
Could it be caused by this setting.
Regards,
Sujin
Hi Jon.
There is still no answer, so I ask again.
Previously, I2S worked in R28.2.1(it was work fine), but after upgrading to R32.1, the above problem occurred.
Is there anything I can try to solve this?
Regards,
Sujin
Hello!
Apologies for the delay. I would expect what you have to work. To see what is going on can you run the following commands …
echo 0 | sudo tee /sys/kernel/debug/tracing/trace
echo 0 | sudo tee /sys/kernel/debug/tracing/events/enable
echo 1 | sudo tee /sys/kernel/debug/tracing/tracing_on
echo 1 | sudo tee /sys/kernel/debug/tracing/events/asoc/snd_soc_dapm_widget_power/enable
aplay -D hw:tegrasndt186ref,0 Square_48k.16_2.wav
sudo cat /sys/kernel/debug/tracing/trace
BTW the latest L4T r32.x release now includes a tool for configuring the pinmux of the 40-pin header. So with the latest L4T all you should need to do is …
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1
sudo reboot
After rebooting you should only then need to execute …
aplay -D hw:tegrasndt186ref,0 Square_48k.16_2.wav
Regards,
Jon