Agx orin support es8323,but i2s1 no data output

Please try out I2S1 loopback test. It will give idea if I2S1 clocks are operational. Clear any other amixer routes if you have done any

Just my thoughts:

confirm if you have enabled the amixer controls like Headphone switch, Line out switch, Mic Switch et.. to “ON” state before running aplay/arecord command..

i try,I merely configured the dts related to es8323 and i2s1 normally. I haven’t touched i2s2 at all.

202051218_pinconf-groups_info.txt (41.7 KB)

There has already been an error in the recording log, preventing the loop test from being conducted.
amixer -c APE cset name=“I2S1 Mux” “ADMAIF2”
amixer -c APE cset name=“ADMAIF2 Mux” “I2S1”
amixer -c APE cset name=“I2S1 Loopback” “on”

aplay -D hw:APE,1 output.wav
arecord -D hw:APE,1 -r 48000 -c 2 -f S16 output.wav
I feel that these command parameters were generated by the driver. Even if there are issues with the dts configuration for routing, it shouldn’t cause errors when opening the i2s node. Moreover, the recording process doesn’t directly call the i2s driver. Therefore, I am quite puzzled by these problems and there are no more ways to confirm the issues. Thank you.

boot_and_loopback_log_202501218.txt (114.4 KB)

root@tegra-ubuntu:/home/neardi# amixer -c APE cset name=“I2S1 Mux” “ADMAIF1”
numid=1167,iface=MIXER,name=‘I2S1 Mux’
; type=ENUMERATED,access=rw------,values=1,items=81
; Item #0 ‘None’

; Item #80 ‘ASRC1 TX6’
: values=1

root@tegra-ubuntu:/home/neardi# aplay -D hw:APE,0 they48k.wav
Playing WAVE ‘they48k.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 2.471 ms long)

Not sure why underrun occured. It should not have

BTW, did the loopback have data that was played back? or are you seeing any error message when arecord is onvoked

I will check on the pinconf information and get back

Thanks

root@tegra-ubuntu:~# amixer -c APE cset name=“I2S1 Loopback” “on”
numid=169,iface=MIXER,name=‘I2S1 Loopback’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@tegra-ubuntu:~#
root@tegra-ubuntu:~#
root@tegra-ubuntu:~# cd /home/neardi/
root@tegra-ubuntu:/home/neardi#
root@tegra-ubuntu:/home/neardi#
root@tegra-ubuntu:/home/neardi# aplay -D hw:APE,0 they48k.wav &
[1] 2400
root@tegra-ubuntu:/home/neardi# Playing WAVE ‘they48k.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 2.310 ms long)
loopback_log_202501218.txt (10.2 KB)

amixer -c APE cset name=“I2S2 Mux” ADMAIF2
root@tegra-ubuntu:/home/neardi# aplay -D hw:APE,1 they48k.wav
Playing WAVE ‘they48k.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
[ 55.712370] clarify anchor tegra210_i2s_runtime_resume:219:
[ 55.713136] clarify anchor tegra210_i2s_hw_params:861:

[ 55.714815] clarify anchor tegra210_i2s_set_clock_rate:83:
[ 55.714993] clarify anchor tegra210_i2s_set_clock_rate:99:
[ 55.715189] clarify anchor tegra210_i2s_set_timing_params:848:
[ 55.715368] clarify anchor tegra210_i2s_init:166:
[ 55.715512] tegra210-i2s 2901100.i2s: I2S widget I2S2 RX on device 2901100.i2s
[ 55.715705] clarify anchor tegra210_i2s_init:174:
[ 55.715851] clarify anchor tegra210_i2s_init:197:

[ 55.725206] clarify anchor tegra210_i2s_sw_reset:152:

amixer -c APE cset name=“I2S1 Mux” ADMAIF1
root@tegra-ubuntu:/home/neardi# aplay -D hw:APE,0 they48k.wav
Playing WAVE ‘they48k.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 1.598 ms long)

Measured by the oscilloscope:
MCLK01_AUDIO_MCLK 12.28Mhz
I2S1_FS 47Khz
I2S1_SCLK 3.07Mhz

hi, atalambedu
Hope you can spare some time to reply.

I have no idea what to do anymore. I don’t know what the same operation is. The i2s1 controller cannot be operated.

Hi,

The measurement of I2S1 signals and MCLK looks correct (though am expecting I2S1_FS to be close to 48KHz). Did you also probed I2S1 DOUT for valid signal?. This should confirm data from Tegra is coming out. After this we can focus on the Codec issue if any.

when playing the audio I2S1 DOUT no signal

Hi,

I see that your MCLK, FS and SCLK are okayish. Ideally, DOUT should have shown some data when being probed. Lets try external I2S loopback once. Ensure to connect I2S1 DOUT line to I2S1 DIN and try with a build that has no codec related changes. This can confirm I2S1 controller is working fine

amixer -c APE cset name=“I2S1 Mux” “ADMAIF2”
amixer -c APE cset name=“ADMAIF2 Mux” “I2S1”
amixer -c APE cset name=“I2S1 Loopback” “off”
amixer -c APE cset name=“I2S2 Mux” 0
amixer -c APE cset name=“ADMAIF1 Mux” 0

aplay -D hw:APE,1 output.wav
arecord -D hw:APE,1 -r 48000 -c 2 -f S16_LE ext_lpbk.wav

copy ext_lpbk.wav to your host machine and check if the audio is same as output.wav. If yes, we can confirm that I2S1 controller part is fine.

Then we could move on to tracing if codec path was complete with codec changes enabled build and get to know if its a codec issue

Which JP or linux release version are using btw?

Thanks!

jetson-35.6.2 linux

OK, I’ll try again.

Hi,

One more note, similar issue was seen for another codec (I2S0 Audio Playback Not Working - #11 by andres_r8), configuring nvidia,pull = <TEGRA_PIN_PULL_NONE>; to nvidia,pull = <TEGRA_PIN_PULL_DOWN>; for all I2S pins helped. Initially, you could try this for just DOUT. If it does not help, try seeting pull for all pins as down or up and then share your internal loopback observations.

Thanks!

1.Disconnect the DOUT and DIN of codec from i2s1, and short-circuit the DOUT and DIN of i2s1. and dts no routing codec,

At the same time, we also hope that you can confirm whether this sound routing configuration is correct.

amixer -c APE cset name=“I2S1 Mux” “ADMAIF2”
amixer -c APE cset name=“ADMAIF2 Mux” “I2S1”
amixer -c APE cset name=“I2S1 Loopback” “off”
amixer -c APE cset name=“I2S2 Mux” 0
amixer -c APE cset name=“ADMAIF1 Mux” 0

aplay -D hw:APE,0 they48k.wav
arecord -D hw:APE,0 -r 48000 -c 2 -f S16_LE ext_lpbk.wav

SCLK:no
DOUT:no
FS:no

i2s1->APE,0
i2s2->APE,1
i2s3->APE,2

  1. i2s all pull_up or pull_down
    The result is still the same as above - the i2s1 cannot be opened normally.

tegra234-p3737-audio_20251225.dtsi.txt (11.2 KB)
agx_orin_i2s_play_log_20251225.txt (157.4 KB)

The connection is not correct, as you are using ADMAIF2 , pcm device should be 1

try below

aplay -D hw:APE,1 they48k.wav &
arecord -D hw:APE,1 -r 48000 -c 2 -f S16_LE ext_lpbk.wav -d 30 &

As mentioned above

agx_orin_i2s_play_logV2_20251225.txt (10.5 KB)

From the log, i could see “arecord: pcm_read:2178: read error: Input/output error“ , could you provide output dump of “amixer -c APE contents > log.txt“ . Also with just aplay command, are you able to check Fs, BCLK and DOUT signal probe ?

amixer_APE_contents_20251229.txt (64 KB)

Under this DTS configuration, aplay also has no signals for Fs, BCLK and DOUT. All of these have been tested before. I think the current problem is why i2s1 cannot be opened. What is the cause of this? I think as long as i2s1 cannot be opened, it actually doesn’t matter whether there is any signal or not. Because the same command, i2s2 and i2s3, at least from the log of the driver code, will be opened anyway.

In the above comment, you have mentioned that I2S1 clocks are measurable, what changed between above and current setup?. The latest amixer dump output is not complete, as not all ADMAIFx Mux info details available, the info is discrete, please dump complete output info.

Please provide a differential dts file patch on what you have modified to analysis on top of the base tree.