“”+ This is the normal configuration for outputting the clock.
“”- It is a configuration with no clock output.
tegra234-p3701-0005-p3737-0000_20260104.dtb.dts.tmp.txt (468.2 KB)
tegra234-p3737-audio_output_clock_20260104.dtsi.txt (11.1 KB)
agx_orin_i2s_play_log_20260104.txt (178.7 KB)
Hi,
I see that you have modified dai link’s cpu properties. For 76 dai-link, I see that sound-dai is <0x59 0x00> while it should be <0x59 0x01>, you can refer other i2sx to codec dailinks for reference.
nvidia-audio-card,dai-link@76 {
status = "okay";
format = "i2s";
link-type = <0x02>;
link-name = "ES8323-HiFi";
bitclock-master;
frame-master;
phandle = <0x3bb>;
cpu {
sound-dai = <0x59 0x00>;
phandle = <0x3bc>;
};
codec {
sound-dai = <0x59 0x02>;
prefix = "x";
};
};
nvidia-audio-card,dai-link@77 {
status = "okay";
format = "i2s";
link-type = <0x02>;
phandle = <0x2f0>;
cpu {
sound-dai = <0x5a 0x01>;
phandle = <0x3bd>;
};
codec {
sound-dai = <0x5a 0x02>;
};
};
Looks like you have edited here as well
es8323_snd_link_i2s: nvidia-audio-card,dai-link@76 {
link-name = “ES8323-HiFi”;
cpu {
sound-dai = <&tegra_i2s1 0>;
};
Any reason for these modifiications or was it a typo?
Better to start with original build shared by NVIDIA and then check I2S1 external loopback and then proceed towards integrating codec atop
Thanks
Modify to: sound-dai = <&tegra_i2s1 1>; Now we can access the i2s1 controller. However, I still don’t understand the specific reason behind it. Are there any references available that I can refer to? Through this, I would like to understand the specific reasons.
I’ll conduct the loop test again according to your suggestion.
[ 28.575478] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for capture
[ 28.575746] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 TX event failed: -110
[ 28.704794] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for playback
[ 28.705039] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 RX event failed: -110
[ 28.729442] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for capture
[ 28.729684] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 TX event failed: -110
[ 28.756468] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for playback
[ 28.756689] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 RX event failed: -110
[ 28.870152] tegra210-i2s 2901000.i2s: timeout: failed to reset I2S for capture
[ 28.870397] tegra210-i2s 2901000.i2s: ASoC: PRE_PMU: I2S1 TX event failed: -110
Can you elaborate your observations
Thanks!
You are saying 2 things 1 we can access the i2s1 controller. 2. Failed to reset event which happens when clocks are not up .
Could you elaborate on your experiment?
Thanks!
I tested it. If I configure audio as i2s2, then using the above command, i2s1 can be operated, but i2s2 cannot be operated. Similarly, if it was initially configured as i2s1, i2s1 cannot be operated but i2s2 can be operated (in fact, the circuit uses i2s1). But I don’t understand why?
sound {
status=“okay”;
…
nvidia-audio-card,mclk-fs = <256>;
};
i2c@31e0000 {
status = “okay”;
es8323: es8388@11 {…
port {
es8323_ep: endpoint {
remote-endpoint = <&i2s2_dap_ep>;
mclk-fs = <256>;
link-name = “es8323-playback”;
};
};
…
&i2s2_to_codec{
codec {
sound-dai = <&es8323 0>;
};
};
&i2s2_dap_ep{
remote-endpoint = <&es8323_ep>;
};
With the above configuration, i2s1 will be properly invoked and will function normally for both playback and recording.
tegra234-p3737-audio_20260106.dtsi.txt (10.5 KB)
tegra234-p3701-0005-p3737-0000_20260106.dtb.dts.tmp.txt (460.4 KB)
There is no update from you for a period, assuming this is not an issue anymore.
Hence, we are closing this topic. If need further support, please open a new one.
Thanks ~0225
Hi,
Apologies for delayed reply
As you are mixing I2S2 and I2S1, I am unable to understand the final question or what is not working currently. You are saying I2S1 is working fine. Do you mean external loopback or with codec?
Thanks!