Codec

Hi, all:
I attempted to port RT5616 to Orin Nano and modified the following files:
tegra234-soc-i2c.dtsi.txt (8.5 KB)
tegra234-p3767-common-audio.dtsi.log (7.9 KB)
tegra234-soc-audio.dtsi.log (27.6 KB)
rt5616.c.log (41.1 KB)

But there is currently no sound output, the following is the debugging information:
dmesg.log (66.4 KB)

root@ubuntu:/home/via# cat /proc/asound/cards
0 [SafetyI2Ssoun ]: -

1 [HDA ]: tegra-hda - NVIDIA Jetson Orin NX HDA
NVIDIA Jetson Orin NX HDA at 0x3518000 irq 112
2 [APE ]: tegra-ape - NVIDIA Jetson Orin nano APE
NVIDIA Jetson Orin nano APE

root@ubuntu:/home/via# amixer -c2 cset name=“I2S2 Mux” “ADMAIF2”
numid=1288,iface=MIXER,name=‘I2S2 Mux’
; type=ENUMERATED,access=rw------,values=1,items=81
; Item #0 ‘None’
; Item #1 ‘ADMAIF1’
; Item #2 ‘ADMAIF2’
; Item #3 ‘ADMAIF3’
; Item #4 ‘ADMAIF4’
; Item #5 ‘ADMAIF5’
; Item #6 ‘ADMAIF6’
; Item #7 ‘ADMAIF7’
; Item #8 ‘ADMAIF8’
; Item #9 ‘ADMAIF9’
; Item #10 ‘ADMAIF10’
; Item #11 ‘ADMAIF11’
; Item #12 ‘ADMAIF12’
; Item #13 ‘ADMAIF13’
; Item #14 ‘ADMAIF14’
; Item #15 ‘ADMAIF15’
; Item #16 ‘ADMAIF16’
; Item #17 ‘I2S1’
; Item #18 ‘I2S2’
; Item #19 ‘I2S3’
; Item #20 ‘I2S4’
; Item #21 ‘I2S5’
; Item #22 ‘I2S6’
; Item #23 ‘SFC1’
; Item #24 ‘SFC2’
; Item #25 ‘SFC3’
; Item #26 ‘SFC4’
; Item #27 ‘MIXER1 TX1’
; Item #28 ‘MIXER1 TX2’
; Item #29 ‘MIXER1 TX3’
; Item #30 ‘MIXER1 TX4’
; Item #31 ‘MIXER1 TX5’
; Item #32 ‘AMX1’
; Item #33 ‘AMX2’
; Item #34 ‘AMX3’
; Item #35 ‘AMX4’
; Item #36 ‘ARAD1’
; Item #37 ‘AFC1’
; Item #38 ‘AFC2’
; Item #39 ‘AFC3’
; Item #40 ‘AFC4’
; Item #41 ‘AFC5’
; Item #42 ‘AFC6’
; Item #43 ‘OPE1’
; Item #44 ‘SPKPROT1’
; Item #45 ‘MVC1’
; Item #46 ‘MVC2’
; Item #47 ‘IQC1-1’
; Item #48 ‘IQC1-2’
; Item #49 ‘IQC2-1’
; Item #50 ‘IQC2-2’
; Item #51 ‘DMIC1’
; Item #52 ‘DMIC2’
; Item #53 ‘DMIC3’
; Item #54 ‘DMIC4’
; Item #55 ‘ADX1 TX1’
; Item #56 ‘ADX1 TX2’
; Item #57 ‘ADX1 TX3’
; Item #58 ‘ADX1 TX4’
; Item #59 ‘ADX2 TX1’
; Item #60 ‘ADX2 TX2’
; Item #61 ‘ADX2 TX3’
; Item #62 ‘ADX2 TX4’
; Item #63 ‘ADX3 TX1’
; Item #64 ‘ADX3 TX2’
; Item #65 ‘ADX3 TX3’
; Item #66 ‘ADX3 TX4’
; Item #67 ‘ADX4 TX1’
; Item #68 ‘ADX4 TX2’
; Item #69 ‘ADX4 TX3’
; Item #70 ‘ADX4 TX4’
; Item #71 ‘ADMAIF17’
; Item #72 ‘ADMAIF18’
; Item #73 ‘ADMAIF19’
; Item #74 ‘ADMAIF20’
; Item #75 ‘ASRC1 TX1’
; Item #76 ‘ASRC1 TX2’
; Item #77 ‘ASRC1 TX3’
; Item #78 ‘ASRC1 TX4’
; Item #79 ‘ASRC1 TX5’
; Item #80 ‘ASRC1 TX6’
: values=2
root@ubuntu:/home/via# amixer -c2 cset name=‘DAC MIXL INF1 Switch’ 1
numid=1496,iface=MIXER,name=‘DAC MIXL INF1 Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@ubuntu:/home/via# amixer -c2 cset name=‘DAC MIXR INF1 Switch’ 1
numid=1498,iface=MIXER,name=‘DAC MIXR INF1 Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@ubuntu:/home/via# amixer -c2 cset name=‘Stereo DAC MIXL DAC L1 Switch’ 1
numid=1499,iface=MIXER,name=‘Stereo DAC MIXL DAC L1 Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@ubuntu:/home/via# amixer -c2 cset name=‘Stereo DAC MIXR DAC R1 Switch’ 1
numid=1501,iface=MIXER,name=‘Stereo DAC MIXR DAC R1 Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@ubuntu:/home/via# amixer -c2 cset name=‘HPO MIX DAC1 Switch’ 1
numid=1513,iface=MIXER,name=‘HPO MIX DAC1 Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
root@ubuntu:/home/via# amixer -c2 cset name=‘HP Playback Volume’ 39
numid=439,iface=MIXER,name=‘HP Playback Volume’
; type=INTEGER,access=rw—R–,values=2,min=0,max=39,step=0
: values=39,39
| dBscale-min=-46.50dB,step=1.50dB,mute=0
root@ubuntu:/home/via#
root@ubuntu:/home/via#
root@ubuntu:/home/via# for i in find /sys/kernel/debug/tracing/events -name "enable" | grep snd_soc_; do echo 1 > $i; done
root@ubuntu:/home/via# speaker-test -D hw:APE,0 -r 48000 -c 1 -F S32_LE -t sine -f 1000

speaker-test 1.2.2

Playback device is hw:APE,0
Stream parameters are 48000Hz, S32_LE, 1 channels
Sine wave rate is 1000.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 8192
Period size range from 32 to 4096
Using max buffer size 8192
Periods = 4
was set period_size = 2048
was set buffer_size = 8192
0 - Front Left
Time per period = 0.053792
0 - Front Left
Time per period = 0.056115
0 - Front Left
Time per period = 0.056112
0 - Front Left
Time per period = 0.055949
0 - Front Left
Time per period = 0.056139
0 - Front Left
Time per period = 0.056126
0 - Front Left
Time per period = 0.056145
0 - Front Left
Time per period = 0.056322
0 - Front Left
Time per period = 0.056137
0 - Front Left
Time per period = 0.056145
0 - Front Left
Time per period = 0.056142
0 - Front Left
Time per period = 0.056115
0 - Front Left
Time per period = 0.056143
0 - Front Left
Time per period = 0.056147
0 - Front Left
Time per period = 0.056142
0 - Front Left
Time per period = 0.056122
0 - Front Left
Time per period = 0.056145
0 - Front Left
Time per period = 0.056141
0 - Front Left
Time per period = 0.056133
0 - Front Left
Time per period = 0.056142
0 - Front Left
^CTime per period = 0.055437
root@ubuntu:/home/via#
root@ubuntu:/home/via# cat /sys/kernel/debug/tracing/trace_pipe | grep *
speaker-test-2452 [001] … 237.292432: snd_soc_dapm_path: *ADMAIF1 XBAR-Playback ← (direct) ← tegra-dlink-44-playback
speaker-test-2452 [001] … 237.292434: snd_soc_dapm_path: *ADMAIF1 XBAR-Playback ← (direct) ← ADMAIF1 Playback

Please check Audio Setup and Development — NVIDIA Jetson Linux Developer Guide 1 documentation to see if can gain some ideas.

Hi, kayccc:
I referenced this link and executed some commands:

root@ubuntu:/home/via# dmesg | grep “ASoC”
root@ubuntu:/home/via#
root@ubuntu:/home/via# cat /sys/kernel/debug/asoc/components
2905100.dspk
2905000.dspk
2910000.asrc
2908000.ope
290e400.arad
290e000.iqc
2904300.dmic
290a200.mvc
290a000.mvc
2904200.dmic
2904100.dmic
2907500.afc
2907400.afc
2907300.afc
2907200.afc
2907100.afc
2907000.afc
2904000.dmic
2903300.amx
2903200.amx
2903100.amx
2903b00.adx
2903a00.adx
2903900.adx
2903800.adx
2903000.amx
2901500.i2s
2901400.i2s
2901300.i2s
2901200.i2s
2901100.i2s
290bb00.amixer
2901000.i2s
2902600.sfc
2902400.sfc
2902200.sfc
290f000.admaif
2902000.sfc
spdif_dit:spdif-dit.13@d
spdif_dit:spdif-dit.12@c
spdif_dit:spdif-dit.11@b
spdif_dit:spdif-dit.10@a
spdif_dit:spdif-dit.9@9
spdif_dit:spdif-dit.8@8
spdif_dit:spdif-dit.7@7
spdif_dit:spdif-dit.6@6
spdif_dit:spdif-dit.5@5
spdif_dit:spdif-dit.4@4
spdif_dit:spdif-dit.3@3
spdif_dit:spdif-dit.2@2
spdif_dit:spdif-dit.1@1
spdif_dit:spdif-dit.0@0
2900800.ahub
tegra210-adsp
rt5616.0-001b
snd-soc-dummy
snd-soc-dummy
root@ubuntu:/home/via#
root@ubuntu:/home/via#
root@ubuntu:/home/via# zcat /proc/config.gz | grep 5616
CONFIG_SND_SOC_RT5616=y
root@ubuntu:/home/via#
root@ubuntu:/home/via# i2cdetect -y -r 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – UU – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: 50 – – – – – – – – – – – – – – –
root@ubuntu:/home/via#
root@ubuntu:/home/via#
root@ubuntu:/home/via# for i in find /sys/kernel/debug/tracing/events -name "enable" | grep snd_soc_; do echo 1 > $i; done
root@ubuntu:/home/via#
root@ubuntu:/home/via# speaker-test -D hw:APE,1 -r 48000 -c 1 -F S32_LE -t sine -f 1000

speaker-test 1.2.2

Playback device is hw:APE,1
Stream parameters are 48000Hz, S32_LE, 1 channels
Sine wave rate is 1000.0000Hz
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 32 to 8192
Period size range from 32 to 4096
Using max buffer size 8192
Periods = 4
was set period_size = 2048
was set buffer_size = 8192
0 - Front Left
Time per period = 1.407018
0 - Front Left
^CTime per period = 0.284342
root@ubuntu:/home/via#
root@ubuntu:/home/via# cat /sys/kernel/debug/tracing/trace_pipe | grep *
speaker-test-3216 [002] … 21993.279993: snd_soc_dapm_path: *ADMAIF2 XBAR-RX ← (direct) ← ADMAIF2 XBAR-Playback
speaker-test-3216 [002] … 21993.280052: snd_soc_dapm_path: *I2S4 Mux ← ADMAIF2 ← ADMAIF2 XBAR-RX
speaker-test-3216 [002] … 21993.280078: snd_soc_dapm_path: *I2S2 Mux ← ADMAIF2 ← ADMAIF2 XBAR-RX
speaker-test-3216 [002] … 21993.280079: snd_soc_dapm_path: *I2S4 XBAR-TX ← (direct) ← I2S4 Mux
speaker-test-3216 [002] … 21993.280080: snd_soc_dapm_path: *I2S4 XBAR-Capture ← (direct) ← I2S4 XBAR-TX
speaker-test-3216 [002] … 21993.280082: snd_soc_dapm_path: *tegra-dlink-67-playback ← (direct) ← I2S4 XBAR-Capture
speaker-test-3216 [002] … 21993.280083: snd_soc_dapm_path: *I2S4 CIF-Playback ← (direct) ← tegra-dlink-67-playback
speaker-test-3216 [002] … 21993.280085: snd_soc_dapm_path: *I2S4 RX ← (direct) ← I2S4 CIF-Playback
speaker-test-3216 [002] … 21993.280086: snd_soc_dapm_path: *I2S4 DAP-Capture ← (direct) ← I2S4 RX
speaker-test-3216 [002] … 21993.280087: snd_soc_dapm_path: *tegra-dlink-79-playback ← (direct) ← I2S4 DAP-Capture
speaker-test-3216 [002] … 21993.280088: snd_soc_dapm_path: *I2S4 Dummy-Playback ← (direct) ← tegra-dlink-79-playback
speaker-test-3216 [002] … 21993.280090: snd_soc_dapm_path: *I2S4 SPK ← (direct) ← I2S4 Dummy-Playback
speaker-test-3216 [000] … 21994.974096: snd_soc_dapm_path: *ADMAIF2 XBAR-Playback ← (direct) ← tegra-dlink-45-playback
speaker-test-3216 [000] … 21994.974098: snd_soc_dapm_path: *ADMAIF2 XBAR-Playback ← (direct) ← ADMAIF2 Playback
speaker-test-3216 [000] … 21994.974100: snd_soc_dapm_path: *ADMAIF2 XBAR-RX ← (direct) ← ADMAIF2 XBAR-Playback
speaker-test-3216 [000] … 21994.974182: snd_soc_dapm_path: *I2S4 Mux ← ADMAIF2 ← ADMAIF2 XBAR-RX
speaker-test-3216 [000] … 21994.974186: snd_soc_dapm_path: *I2S4 XBAR-TX ← (direct) ← I2S4 Mux
speaker-test-3216 [000] … 21994.974188: snd_soc_dapm_path: *I2S4 XBAR-Capture ← (direct) ← I2S4 XBAR-TX
speaker-test-3216 [000] … 21994.974191: snd_soc_dapm_path: *tegra-dlink-67-playback ← (direct) ← I2S4 XBAR-Capture
speaker-test-3216 [000] … 21994.974194: snd_soc_dapm_path: *I2S4 CIF-Playback ← (direct) ← tegra-dlink-67-playback
speaker-test-3216 [000] … 21994.974196: snd_soc_dapm_path: *I2S4 RX ← (direct) ← I2S4 CIF-Playback
speaker-test-3216 [000] … 21994.974199: snd_soc_dapm_path: *I2S4 DAP-Capture ← (direct) ← I2S4 RX
speaker-test-3216 [000] … 21994.974201: snd_soc_dapm_path: *tegra-dlink-79-playback ← (direct) ← I2S4 DAP-Capture
speaker-test-3216 [000] … 21994.974203: snd_soc_dapm_path: *I2S4 Dummy-Playback ← (direct) ← tegra-dlink-79-playback
speaker-test-3216 [000] … 21994.974206: snd_soc_dapm_path: *I2S4 SPK ← (direct) ← I2S4 Dummy-Playback

We are using i2S2, but there seems to be an issue with the DPAM path for i2S2 here.
I have executed the following command before, do I need to execute anything else?

amixer -c2 cset name=“I2S2 Mux” “ADMAIF2”
amixer -c2 cset name=‘DAC MIXL INF1 Switch’ 1
amixer -c2 cset name=‘DAC MIXR INF1 Switch’ 1
amixer -c2 cset name=‘Stereo DAC MIXL DAC L1 Switch’ 1
amixer -c2 cset name=‘Stereo DAC MIXR DAC R1 Switch’ 1
amixer -c2 cset name=‘HPO MIX DAC1 Switch’ 1
amixer -c2 cset name=‘HP Playback Volume’ 39

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

Sorry for the late response.
Is this still an issue to support? Any result can be shared?

Thank you for your answer. The issue has been resolved.

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