Environment: Jetson Orin NX (8GB). device tree base is tegra234-p3768-0000+p3767-0000 (same 40-pin layout as the standard Jetson Orin NX Developer Kit).
I use tegra234-p3768-0000+p3767-0000-nv.dtb (built from tegra234-p3768-0000+p3767-0000-nv.dts),and ES8316 (Everest Semiconductor), controlled over I2C0, audio over I2S2.(same as the 40-pin).
the problem is: no sound. Scope shows ~311 kHz on LRCK only; BCLK/SDOUT not as expected. “ES8316 Left Headphone Mixer Left DAC” cannot be set via cset name='...' (right side works). Asking for DT/routing and mixer guidance to get playback and waveforms correct.
Thanks for visiting the NVIDIA Developer Forums.
To ensure better visibility and support, I’ve moved your post to the Jetson category where it’s more appropriate
Pinmux is consistent with the result in the link
I tried to play the audio and found errors in the dmesg. At present, I don’t know whether these errors mean that there is a problem with the configuration in that place.
I tried to test the i2s with this command, and found that the waveform is as above, and the sck has a 1.53MHZ square wave. During this period, the LRCK maintains a high level, and other waveforms do not exist. Is this normal? Now I play the sound with this effect,
I feel that the function will be available soon, but there may be some problems with the configuration.
I also have a question. Now I see that after modifying a CONFIG_TEGRA_DPCM macro in the code, I couldn’t find where it is configured in the code. I tried to skip this macro in the code, assuming it has a default definition. After compiling and flashing, I found that the current SCK always has a waveform at 1.53MHz, LRCK always has a square wave at 24.33kHz, but SDOUT still has no waveform during playback.
The connections on your side looks fine. You don’t need to do CONFIG_TEGRA_DPCM macro change. As per the speaker-test command I have provided previously, the SCLK at 1.53MHz is right value. But LRCK looks odd which should be set at 48KHz which is the sampling rate we are playing on codec.
Just to understand the issue better in isolated condition. Is it possible to revert all the changes you made for codec (back to bsp image) and probe the I2S SCLK, LRCK, DOUT after running below commands
Hi:
The above is the measured waveform, including the captured log, after executing the command speaker test - D hw: 1,0- r 48000- c 2- F S16_LE - t sine - f 1000. It can be seen that the sdk is 1.53MHZ and the LRCK is 245KHZ. It seems that there is still a problem. At present, there is no idea about this place.
At the same time, I see that it is mentioned on the official website that “Update the Machine Driver to Support a Custom Audio Card” is required. Do I need to do this step additionally
Thank you. I modified my machine driver by referring to the above link, and then I used the above two commands to play an audio. In the dmesg, you can see that there is a driver code that calls my es8316. c, as shown in the above picture, other errors do not appear.
Before modifying the machine driver, my es8316. c was not called during the aplay, which is valid.
At present, there is no SDOUT waveform. I’m not sure if it is not configured well in any place.
Referring to the content in the link and the error report of the driver, I tried to modify the above two places. Now when I play, SDOUT waveforms can appear, as shown in the above figure, there are still two problems:
The frequency of lrck is still 24KHZ, which seems wrong
There is no sound when playing. Maybe the lrck frequency is wrong, which leads to the failure of codec recognition?