Jetson TX1 I2S OUT audio driver no sound problem

Hi!
Today I test I2S interface, do the audio output.
Use apaly XXX.mp3
There is no sound I2S output

In view the aslamixer instructions

card: tegra-snd-t210ref-mobile-rt565x
chip:
View: F3:[playback] F4: Capture F5: All
Item: I2S1 Channels
Volume:100

chip display is empty??

How do I set to let I2S output audio?
Please give advice or comments
Thanks!

I2S1 pin:

J26

5V VCC on pin 8

GND on pin 10

BCLK on pin 23

DOUT on pin 24

LRCL on pin 26

I am so corresponding

Did you connect your codec to TX1?
Check with this command “dmesg | grep -i sound”

nvidia@tegra-ubuntu:~$ dmesg | grep -i sound
[ 0.215173] platform sound: domain=ffffffc0fa1f1718 allocates as[0]=ffffffc0fa14c248
[ 0.350891] Advanced Linux Sound Architecture Driver Initialized.
[ 3.801627] tegra-snd-t210ref-mobile-rt565x sound: Failed to get HP Det GPIO, should be handled by codec
[ 3.835782] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF1 <-> ADMAIF1 mapping ok
[ 3.836014] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF2 <-> ADMAIF2 mapping ok
[ 3.836241] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF3 <-> ADMAIF3 mapping ok
[ 3.836469] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF4 <-> ADMAIF4 mapping ok
[ 3.836692] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF5 <-> ADMAIF5 mapping ok
[ 3.836915] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF6 <-> ADMAIF6 mapping ok
[ 3.837139] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF7 <-> ADMAIF7 mapping ok
[ 3.837374] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF8 <-> ADMAIF8 mapping ok
[ 3.837604] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF9 <-> ADMAIF9 mapping ok
[ 3.837827] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF10 <-> ADMAIF10 mapping ok
[ 3.862605] input: tegra-snd-t210ref-mobile-rt565x Headphone Jack as /devices/sound/sound/card1/input0
[ 3.863862] tegra-snd-t210ref-mobile-rt565x sound: codec-dai “dit-hifi” registered
[ 3.863868] tegra-snd-t210ref-mobile-rt565x sound: This is a dummy codec
[ 3.995081] input: tegra-hda HDMI/DP,pcm=3 as /devices/70030000.hda/sound/card0/input1
nvidia@tegra-ubuntu:~$

I want to music through I2S output,But now the I2S no signal.
I2S I directly on hardware, software also need further configuration?
How to configure it Where is the configuration

Please check the chapter “Tegra ASoC Driver” in l4t-document.

But I I2S interface what signal is not ah
aplay -D hw: 1,0 piano2.wav
clk, bck, mck, dout, there is no signal.
Used tegra-snd-t210ref-mobile-rt565x virtual encoder
What should I do?

e2614_gps_wake: gps_wake {
    compatible = "gps-wake";
    gps-enable-gpio = <&tca6416_20 8 0>;
    gps-wakeup-gpio = <&gpio TEGRA_GPIO(H, 7) 0>;
    status = "disabled";
};

gpio@6000d000 {
    e2614_audio: e2614-rt5658-audio {
        gpio-hog;
        function;
        gpios = <
            TEGRA_GPIO(B, 0) 0
            TEGRA_GPIO(B, 1) 0
            TEGRA_GPIO(B, 2) 0
            TEGRA_GPIO(B, 3) 0
            TEGRA_GPIO(BB, 0) 0
            TEGRA_GPIO(BB, 3) 0
            >;
        label = "I2S0_LRCLK", "I2S0_SDIN", "I2S0_SDOUT",
            "I2S0_CLK", "AUDIO_MCLK", "AUD_RST";
        status = "disabled";
    };
};

};

@CalmCar
Did you probe the and got no signal? I can tell some other users and we can see the signal from the waveform for the dummy codec use case.

There is no signal on j21’s audio pin now.
I use the virtual encoder on tx1 tegra-snd-t210ref-mobile-rt565x
With aplay -Dhw: 1,0 panio2 output audio, however, MCK, DOUT, BCK, CLK no signal
I checked tegra210-jetson-cv-base-p2597-2180-a00.dts

sound_card: sound {
		compatible = "nvidia,tegra-audio-t210ref-mobile-rt565x";
		nvidia,model = "tegra-snd-t210ref-mobile-rt565x";

		clocks = <&tegra_car TEGRA210_CLK_PLL_P_OUT1>,
                        <&tegra_car TEGRA210_CLK_PLL_A>,
                        <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
                        <&tegra_car TEGRA210_CLK_D_AUDIO>,
                        <&tegra_car TEGRA210_CLK_CLK_M>,
                        <&tegra_car TEGRA210_CLK_EXTERN1>;
		clock-names = "pll_p_out1", "pll_a", "pll_a_out0", "ahub",
			"clk_m", "extern1";

		assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
			<&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
			<&tegra_car TEGRA210_CLK_D_AUDIO>,
			<&tegra_car TEGRA210_CLK_EXTERN1>;
		assigned-clock-rates = <368640000>, <36864000>,
			<36864000>, <12288000>;

		nvidia,num-codec-link = <5>;

		nvidia,audio-routing =
			"x Headphone",		"x OUT",
			"x IN",			"x Mic",
			"y Headphone",		"y OUT",
			"y IN",			"y Mic",
			"l IN",			"l OUT",
			"s Headphone",		"s OUT",
			"s IN",			"s Mic";

		nvidia,xbar = <&tegra_axbar>;

		/* The codec-dai here is initialized to dummy and will be   */
		/* replaced with rt565x codec-dai on detecting super-module */
		nvidia,dai-link-1 {
			link-name = "rt565x-playback";
			cpu-dai = <&tegra_i2s1>;
			codec-dai = <&spdif_dit4>;
			cpu-dai-name = "I2S1";
			codec-dai-name = "dit-hifi";
			format = "i2s";
			bitclock-slave;
			frame-slave;
			bitclock-noninversion;
			frame-noninversion;
			bit-format = "s16_le";
			bclk_ratio = <0>;
			srate = <48000>;
			num-channel = <2>;
			name-prefix = "x";
		};
        gpio@6000d000{
          gpio_default: default {
             
             gpio-to-sfio = <
             TEGRA_GPIO(B, 0)     
             TEGRA_GPIO(B, 1)
             TEGRA_GPIO(B, 2)
             TEGRA_GPIO(B, 3)
             TEGRA_GPIO(BB, 0)
             
             >;

};
        
        };
		nvidia,dai-link-2 {
			link-name = "spdif-dit-1";
			cpu-dai = <&tegra_i2s2>;
			codec-dai = <&spdif_dit1>;
			cpu-dai-name = "I2S2";
			codec-dai-name = "dit-hifi";
			format = "dsp_a";
			bitclock-slave;
			frame-slave;
			bitclock-inversion;
			frame-inversion;
			bit-format = "s16_le";
			bclk_ratio = <4>;
			srate = <8000>;
			num-channel = <1>;
			name-prefix = "y";
		};

What is the situation leading to I2S no signal output?
please help me!

nvidia@tegra-ubuntu:~/Music$ cat /proc/asound/cards
 0 [tegrahda       ]: tegra-hda - tegra-hda
                      tegra-hda at 0x70038000 irq 349
 1 [tegrasndt210ref]: tegra-snd-t210r - tegra-snd-t210ref-mobile-rt565x
                      tegra-snd-t210ref-mobile-rt565x
root@tegra-ubuntu:/sys/kernel/debug/pinctrl/700008d4.pinmux# cat pinmux-pins | grep -i pb
pin 8 (DAP1_FS PB0): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function i2s1 group dap1_fs_pb0
pin 9 (DAP1_DIN PB1): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function i2s1 group dap1_din_pb1
pin 10 (DAP1_DOUT PB2): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function i2s1 group dap1_dout_pb2
pin 11 (DAP1_SCLK PB3): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function i2s1 group dap1_sclk_pb3
pin 12 (SPI2_MOSI PB4): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function spi2 group spi2_mosi_pb4
pin 13 (SPI2_MISO PB5): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function spi2 group spi2_miso_pb5
pin 14 (SPI2_SCK PB6): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function spi2 group spi2_sck_pb6
pin 15 (SPI2_CS0 PB7): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function spi2 group spi2_cs0_pb7
pin 216 (AUD_MCLK PBB0): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function aud group aud_mclk_pbb0
pin 217 (DVFS_PWM PBB1): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function cldvfs group dvfs_pwm_pbb1
pin 218 (DVFS_CLK PBB2): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function rsvd0 group dvfs_clk_pbb2
pin 219 (GPIO_X1_AUD PBB3): 700008d4.pinmux (GPIO UNCLAIMED) (HOG) function rsvd0 group gpio_x1_aud_pbb3
pin 220 (GPIO_X3_AUD PBB4): (MUX UNCLAIMED) (GPIO UNCLAIMED)
root@tegra-ubuntu:/sys/kernel/debug/pinctrl/700008d4.pinmux#
root@tegra-ubuntu:/sys/kernel/debug/pinctrl/700008d4.pinmux# cat pinmux-functions | grep -i i2s1
function: i2s1, groups = [ dap1_fs_pb0 dap1_din_pb1 dap1_dout_pb2 dap1_sclk_pb3 ]
root@tegra-ubuntu:/sys/kernel/debug/pinctrl/700008d4.pinmux#
root@tegra-ubuntu:/sys/kernel/debug# cat tegra_gpio 
0:0 24 00 00 04 00 00 000000
0:1 00 00 00 00 00 00 000000
0:2 1f 00 00 00 00 00 000000
0:3 00 00 00 00 00 00 000000
1:0 70 00 00 00 00 00 000000
1:1 00 00 00 00 00 00 000000
1:2 00 00 00 00 00 00 000000
1:3 ff 1b 0b 40 00 24 002024
2:0 0f 0d 01 02 00 00 000000
2:1 00 00 00 00 00 00 000000
2:2 f0 20 00 d0 00 00 000000
2:3 02 00 00 02 00 00 000000
3:0 00 00 00 00 00 00 000000
3:1 00 00 00 00 00 00 000000
3:2 00 00 00 00 00 00 000000
3:3 00 00 00 00 00 00 000000
4:0 00 00 00 00 00 00 000000
4:1 00 00 00 00 00 00 000000
4:2 f0 f0 00 00 00 00 000000
4:3 03 03 00 00 00 00 000000
5:0 0c 00 00 08 00 00 000000
5:1 6e 66 00 00 00 00 000000
5:2 00 00 00 00 00 00 000000
5:3 ff 00 00 fe 00 70 606000
6:0 03 00 00 03 00 01 010100
6:1 1f 08 00 16 00 03 030300
6:2 00 00 00 00 00 00 000000
6:3 04 04 00 00 00 00 000000
7:0 32 10 00 22 00 02 020200
7:1 00 00 00 00 00 00 000000
7:2 00 00 00 00 00 00 000000
7:3 00 00 00 00 00 00 000000
root@tegra-ubuntu:/sys/kernel/debug#

dmesg

[    3.655220] tegra21x_actmon 6000c800.actmon: in actmon_register()...
[    3.656703] tegra21x_actmon 6000c800.actmon: initialization Completed for the device mc_all
[    3.658275] tegra124-dfll 70110000.clock: config PMU interface as PWM
[    3.662294] No Device Node present for smmu client: snd-soc-dummy !!
[    3.662303] platform snd-soc-dummy: No iommus property found in DT node, got swgids from fixup(101004000)
[    3.662311] No Device Node present for smmu client: snd-soc-dummy !!
[    3.662317] platform snd-soc-dummy: No iommus property found in DT node, got swgids from fixup(101004000)
[    3.662551] No Device Node present for smmu client: snd-soc-dummy !!
[    3.662558] snd-soc-dummy snd-soc-dummy: No iommus property found in DT node, got swgids from fixup(101004000)
[    3.662591] No Device Node present for smmu client: snd-soc-dummy !!
[    3.662597] snd-soc-dummy snd-soc-dummy: No iommus property found in DT node, got swgids from fixup(101004000)
[    3.689171] tegra210-i2s tegra210-i2s.0: Missing prop fsync-width for I2S0
[    3.690193] tegra210-i2s tegra210-i2s.2: Missing prop fsync-width for I2S2
[    3.690480] tegra210-i2s tegra210-i2s.3: Missing prop fsync-width for I2S3
[    3.690854] tegra210-i2s tegra210-i2s.4: Missing prop fsync-width for I2S4
[    3.704267] OPE platform probe
[    3.704458] OPE platform probe successful
[    3.704514] OPE platform probe
[    3.704688] OPE platform probe successful
[    3.750192] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF1 <-> ADMAIF1 mapping ok
[    3.750421] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF2 <-> ADMAIF2 mapping ok
[    3.750649] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF3 <-> ADMAIF3 mapping ok
[    3.750873] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF4 <-> ADMAIF4 mapping ok
[    3.751092] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF5 <-> ADMAIF5 mapping ok
[    3.751345] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF6 <-> ADMAIF6 mapping ok
[    3.751572] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF7 <-> ADMAIF7 mapping ok
[    3.751797] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF8 <-> ADMAIF8 mapping ok
[    3.752021] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF9 <-> ADMAIF9 mapping ok
[    3.752246] tegra-snd-t210ref-mobile-rt565x sound: ADMAIF10 <-> ADMAIF10 mapping ok
[    3.775273] input: tegra-snd-t210ref-mobile-rt565x Headphone Jack as /devices/sound/sound/card1/input0
[    3.776128] tegra-snd-t210ref-mobile-rt565x sound: codec-dai "dit-hifi" registered
[    3.776133] tegra-snd-t210ref-mobile-rt565x sound: This is a dummy codec
[    3.776972] GACT probability NOT on
[    3.776984] Mirror/redirect action on
[    3.777006] u32 classifier
[    3.777008]     Actions configured
[    3.777023] Netfilter messages via NETLINK v0.30.
[    3.777078] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
nvidia@tegra-ubuntu:~/Music$ aplay -Dhw:1,0 piano2.wav 
Playing WAVE 'piano2.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
nvidia@tegra-ubuntu:~/Music$

@ShaneCCC
In the serial port you can see the audio output should be no problem.

[   85.763573] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  100.063716] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  111.970611] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  127.604678] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  160.613028] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  165.402007] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz                
[  178.773136] Setting pll_a = 49152000 Hz clk_out = 12288000 Hz

But there is not the slightest signal reaction in I2S1 of J21.
TX1- P2597
J21
12pin --SRCK
40pin --SOUT
37pin --BLK
7 pin --MCLK
Digital logic analyzer can not see the waveform
I just want I2S1 to output audio, what should I do?

Hi CalmCar,

Have you ever tried with changing status to “okay”?

@CalmCar

The pin i2s2 in J21 is the bus i2s5. I modify as below I can probe the single.

diff --git a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
index 72e81fe..132558a 100644
--- a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
+++ b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
@@ -353,9 +353,9 @@
                /* replaced with rt565x codec-dai on detecting super-module */
                nvidia,dai-link-1 {
                        link-name = "rt565x-playback";
-                       cpu-dai = <&tegra_i2s1>;
+                       cpu-dai = <&tegra_i2s5>;
                        codec-dai = <&spdif_dit4>;
-                       cpu-dai-name = "I2S1";
+                       cpu-dai-name = "I2S5";
                        codec-dai-name = "dit-hifi";
                        format = "i2s";
                        bitclock-slave;

@vickyy
thank you for your reply
Although not the problem there, but I found the reason
Thank you

@ShaneCCC

I switched to J21 I2S1
The corresponding schematic should be
J21
pin12 - AUDIO_I2S_SRCLK_3V3 -------BCK
pin 7 - AUDIO_I2S_MACLK_3V3 -------MCK
pin35 - AUDIO_I2S_SFSYNC——3V3 -----LRCK
pin40 - AUDIO_I2S_SOUT_3V3 -------DOUT

I understand correctly?

Yes, it’s I2S1.

@ShaneCCC
Thankyou