Previously Working I2S Audio On Dev kit Stops Working

Hello,
I have been successfully using the I2S audio via pins 40,35 and 12 for a while to drive a max98357 amplifier, but all of a sudden it has stopped producing audio. I have verified that the problem is not the audio amplifier as I am able to get audio from it using another dev board. I have verified the pinmux and the audio routing from I2S4 to ADMAIF1. I am using the latest JetPack release, 4.6.1. This issue has also been reproduced on other devkits. What is strange as well is that if I take an SD card from a dev kit where the I2S audio works, and place it into a dev kit where the I2S audio does not work, the I2S audio still does not work on that board, but if I then return that SD card to the dev kit where I got it from, where the I2S audio was previously working, the I2S audio on that dev kit now does not work. I have tried to reset the alsa configurations and the alsamixer settings, but nothing has worked so far. Any idea what I may be missing?

Pleae cehck the troubleshooting section at L4T doc: NVIDIA Jetson Linux Driver Package Software Features : Audio Setup and Development | NVIDIA Docs

Thanks for the documentation reference. I have gone through the troubleshooting guide but unfortunately still stuck, as I am not sure what could be misconfigured, and as far as I can tell, all looks normal. I’m attaching the kernel log, device tree log, sound card setup logs, sound path trace logs and register logs, as suggested by the documentation. I would appreciate any help going through this.
dt.log (322.7 KB)
settings.txt (143.4 KB)
kernel_log (57.3 KB)
trace_pipe_log (18.5 KB)
i2s4__reg_dump (585 Bytes)

Sorry for the late response, have you managed to get issue resolved or still need the support? Thanks

Hi kayccc,

I managed to temporarily work around it by modifying the pinmux using the spreadsheet, building the dtb and flashing the devkit with the flash script. However as soon as I upgrade the packages, the sound stops working again, so it seems like there is some package upgrade which changes some configuration in the audio path.
I have still been unsuccessful using the pre-built image, and using jetson-io to change the pinmux.

Hi jbk,

Upgrade packages you mean installing some packages? or you are doing re-flash?
I suspecting if pinmux settings are reset. You can compare the pinmux values before and after package upgrade.

Hi Spujar,
By upgrading, I mean running running apt update and apt upgrade. After apt upgrade, it is true the pinmux is reset, so I then use jetson-io to reconfigure the I2S pins, and also configure the alsa routing as is shown in the documentation, running amixer -c tegrasndt210ref cset name=“I2S4 Mux” “ADMAIF1”. I have also tried routing to MVC1 and then to I2S4, but no variations have worked. What is strange is that I have been doing this same procedure for several months with no problem, but as of the last month, it has not been working.

Hi jbk,

This looks strange.
Can you confirm if the same aplay command does not work anymore?

To understand the issue more, you can do few experiments.

  1. Check if loopback works
amixer -c tegrasndt210ref cset name=“I2S4 Mux” “ADMAIF1”
amixer -c tegrasndt210ref cset name=“ADMAIF1 Mux” “I2S4”
amixer -c tegrasndt210ref cset name=“I2S4 Loopback" “on”
aplay -Dhw:tegrasndt210ref,0 <test.wav> &
arecord -Dhw:tegrasndt210ref,0 <args>

Check if captured file has the playback content. This confirms I2S settings are fine.

  1. Collect dumps of audio configuration settings before and after apt upgrade. This can help understand if something got changed here. You can compare pinmux registers, mixer controls, register dumps.

Thanks spujar,

I will do the experiments and update the thread if I’m still stuck/have a solution.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.