Orin nano 在jetpack6.2集成音频解码器 Realtek ALC5616

Hi,NVIDIA,

我们在使用Orin nano 在jetpack6.2上定制开发,在处理ALC5616遇到了麻烦。正在寻求需要NVIDIA的帮助共同调试ALC5616,希望有音频相关的的技术工程师一起探讨该问题,谢谢。

目前在论坛上了解一些与ALC5616相关的,其中根据https://forums.developer.nvidia.com/t/sample-code-for-3rd-i2s-audio-codec-which-is-succesfully-integrated-on-orin-nano-nx-platform/310839进行了调试,可惜是在JP5.1.3上的。目前在论坛上没有看到JP6.2调试ACL5616的。

首先,这里也先提供硬件设计原理图,我们也是使用I2C2与ALC5616(RT5616)进行通信的,并且目前成功识别到I2C2。

我们尝试修改了一些文件,目前看到声卡并没有注册成功,是否修改正确?是否还需要修改其它文件?

tegra234-p3767.dtsi.txt (5.7 KB)

tegra234-p3768-0000.dtsi.txt (1.7 KB)

tegra_codecs.c.txt (7.9 KB)

rt5616.c.txt (41.1 KB)

内核日志以及一些查询信息如下:

dmesg.txt (59.4 KB)

*** Please note that this reply is generated by LLM automatically ***

The question appears to be a mix of different topics related to NVIDIA Jetson Orin Nano and audio codecs. I’ll try to break down the information and provide a comprehensive answer.

Jetson Orin Nano and Audio Codecs

The Jetson Orin Nano is a system-on-module (SoM) developed by NVIDIA, which is part of the Jetson Orin series. It is designed for edge AI applications and supports various audio codecs.

ALC5616 Audio Codec

The ALC5616 is a audio codec chip from Realtek, which is commonly used in various devices, including NVIDIA Jetson modules. The codec supports multiple audio interfaces, including I2S, AC’97, and HD Audio.

I2S Audio Interface

I2S (Inter-IC Sound) is a serial bus interface for connecting digital audio devices. It is commonly used in embedded systems, including the Jetson Orin Nano.

Sample Code for 3rd Party I2S Audio Codec

The question mentions a sample code for integrating a 3rd party I2S audio codec on the Jetson Orin Nano platform. The code is likely related to the ALC5616 audio codec, which is supported by the Jetson Orin Nano.

Device Tree Files

The question mentions several device tree files, including tegra234-p3767.dtsi, tegra234-p3767-0000.dtsi, and tegra-codecs.dtsi. These files are used to configure the hardware components of the Jetson Orin Nano, including the audio codec.

Kernel Messages

The question also mentions a kernel message file (dmesg.txt) with a size of 594 KB. This file likely contains kernel messages related to the audio codec and its integration with the Jetson Orin Nano.

Comparison with Other Platforms

The question does not explicitly ask for a comparison with other platforms. However, based on the provided information, it appears that the Jetson Orin Nano supports various audio codecs, including the ALC5616, which is also supported by other platforms, such as the Jetson Orin NX.

In summary, the question is related to the integration of a 3rd party I2S audio codec (ALC5616) on the Jetson Orin Nano platform, and the provided information includes sample code, device tree files, and kernel messages. The Jetson Orin Nano supports various audio codecs, including the ALC5616, which is also supported by other platforms.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

目前声卡出来了,之前是因为widge和routing对应不上rt5616的驱动,目前已经修改过来了;但是目前的情况是使用aplay播放音频文件的时候很快且没有声音。寻求帮助,谢谢。

tegra234-p3768-0000.dtsi.txt (2.2 KB)

tegra234-p3767.dtsi.txt (5.8 KB)

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ sudo dmesg | grep 5616
[sudo] password for nvidia:
[    3.790665] RT5616_DEVICE_ID: 0x6281
[   13.029836] rt5616: enter rt5616_probe!!!
[   13.029990] rt5616: exit rt5616_probe!!!
[   13.054100] tegra_machine_rt5616_init: rtd->dais[rtd->num_cpus]->name: rt5616-aif1
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ cat /proc/asound/cards
 0 [HDA            ]: tegra-hda - NVIDIA Jetson Orin NX HDA
                      NVIDIA Jetson Orin NX HDA at 0x3518000 irq 120
 1 [RT5616         ]: tegra-ape - NVIDIA Jetson Orin Nano RT5616
                      NVIDIA-NVIDIAJetsonOrinNanoEngineeringReferenceDeveloperKitSuper-NotSpecified-J
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$

To help diagnose the audio playback issue, please provide the following information:

  • Mixer Control Settings: Please share the complete list of mixer controls that were configured before running aplay (including both Tegra-specific and ALC5616 codec-specific settings).
  • Current Mixer State: After applying your mixer settings, please run the following command and share the output:
    •    $ amixer -c APE contents > ~/settings.txt
      
  • I2S2 Pinmux Configuration: Please verify that the I2S2 pinmux settings are properly configured in your device tree, as this is essential for the audio interface routing and share the output:
    • $  cat /sys/kernel/debug/pinctrl/<addr>.pinmux/pinconf-groups > ~/pinmux_<addr>
      

你好,Sheetal.G
非常感谢您的回复。

amixer -c APE contents > ~/settings.txt
cat /sys/kernel/debug/pinctrl/<addr>.pinmux/pinconf-groups > ~/pinmux_<addr>

如附件

settings.txt (313.8 KB)

pinmux_2430000.txt (31.5 KB)

  • Pinmux settings are fine.
  • Mixer control settings are not done.
    • Tegra controls settings, then aplay should be on pcm device id 0:
      • amixer –c APE cset name='I2S2 Mux' 'ADMAIF1' 
        
    • ALC5616 controls settings, please make sure the required settings are done.

嗯按照硬件来,接上耳机;目前打开了耳机的使能。但是使用speaker-test播放,一点声音都没有,是否还有那些没有配置到呢?播放后dmesg | grep 5616 没有任何输出

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='I2S2 Mux' 'ADMAIF1'
numid=1118,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=1
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c 1 controls | grep -i hp
numid=267,iface=MIXER,name='CVB-RT HP Playback Switch'
numid=269,iface=MIXER,name='CVB-RT HP Playback Volume'
numid=1212,iface=MIXER,name='CVB-RT HPO MIX DAC1 Switch'
numid=1213,iface=MIXER,name='CVB-RT HPO MIX HPVOL Switch'
numid=268,iface=MIXER,name='CVB-RT HPVOL Playback Switch'
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='CVB-RT HP Playback Switch' on
numid=267,iface=MIXER,name='CVB-RT HP Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='CVB-RT HP Playback Volume' 31
numid=269,iface=MIXER,name='CVB-RT HP Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=31,31
  | dBscale-min=-46.50dB,step=1.50dB,mute=0
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='CVB-RT HPO MIX DAC1 Switch' on
numid=1212,iface=MIXER,name='CVB-RT HPO MIX DAC1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='CVB-RT HPO MIX HPVOL Switch' on
numid=1213,iface=MIXER,name='CVB-RT HPO MIX HPVOL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name='CVB-RT HPVOL Playback Switch' on
numid=268,iface=MIXER,name='CVB-RT HPVOL Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ speaker-test -D hw:APE,1 -r 48000 -c 1 -F S32_LE -t sine -f 1000

speaker-test 1.2.6

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 512 to 8192
Period size range from 256 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
 0 - Front Left
Time per period = 1.407839
 0 - Front Left
Time per period = 1.492714
 0 - Front Left
Time per period = 1.493196
 0 - Front Left
Time per period = 1.493232
 0 - Front Left
Time per period = 1.493183
 0 - Front Left
Time per period = 1.493202
 0 - Front Left
Time per period = 1.493675
 0 - Front Left
Time per period = 1.493626
 0 - Front Left
Time per period = 1.492750
 0 - Front Left
^CTime per period = 1.300631
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ sudo dmesg | grep 5616
[sudo] password for nvidia:
[    3.377564] RT5616_DEVICE_ID: 0x6281
[   12.301503] rt5616: enter rt5616_probe!!!
[   12.301628] rt5616: exit rt5616_probe!!!
[   12.325127] tegra_machine_rt5616_init: rtd->dais[rtd->num_cpus]->name: rt5616-aif1
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$

补充:目前量I2S0_LRCK和I2S0_SCLK没有测量到信号。

rt5616.c.txt (41.1 KB)

tegra_codecs.c.txt (8.0 KB)

tegra234-p3767.dtsi.txt (5.8 KB)

tegra234-p3768-0000.dtsi.txt (2.2 KB)

root@nvidia-desktop:/#
root@nvidia-desktop:/#
root@nvidia-desktop:/# cat /proc/asound/cards
 0 [HDA            ]: tegra-hda - NVIDIA Jetson Orin NX HDA
                      NVIDIA Jetson Orin NX HDA at 0x3518000 irq 120
 1 [APE            ]: tegra-ape - NVIDIA Jetson Orin NX APE
                      NVIDIA-NVIDIAJetsonOrinNanoEngineeringReferenceDeveloperKitSuper-NotSpecified-J
root@nvidia-desktop:/#
root@nvidia-desktop:/#

I think some of the codec controls settings are missing. Please refer mixer control settings mentioned here https://forums.developer.nvidia.com/t/codec/309881/4.

Incase still issue persists,

  • please check the I2S signals on oscilloscope.
  • Share the dapm route enabled during playback.

amixer -c APE cset name=“I2S2 Mux” “ADMAIF1”
amixer -c APE cset name=“CVB-RT DAC MIXL INF1 Switch” on
amixer -c APE cset name=“CVB-RT DAC MIXR INF1 Switch” on
amixer -c APE cset name=“CVB-RT Stereo DAC MIXL DAC L1 Switch” on
amixer -c APE cset name=“CVB-RT Stereo DAC MIXR DAC R1 Switch” on
amixer -c APE cset name=“CVB-RT HPO MIX DAC1 Switch” on
amixer -c APE cset name=“CVB-RT HPO MIX HPVOL Switch” on
amixer -c APE cset name=“CVB-RT HP Playback Switch” on
amixer -c APE cset name=“CVB-RT HPVOL Playback Switch” on
amixer -c APE cset name=“CVB-RT HP Playback Volume” 30
amixer -c APE cset name=“CVB-RT DAC1 Playback Volume” 30

设置了这些,播放音频的时候依旧没有任何声音

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE controls | grep CVB-RT
numid=279,iface=MIXER,name='CVB-RT ADC Boost Volume'
numid=277,iface=MIXER,name='CVB-RT ADC Capture Switch'
numid=278,iface=MIXER,name='CVB-RT ADC Capture Volume'
numid=1195,iface=MIXER,name='CVB-RT DAC MIXL INF1 Switch'
numid=1194,iface=MIXER,name='CVB-RT DAC MIXL Stereo ADC Switch'
numid=1197,iface=MIXER,name='CVB-RT DAC MIXR INF1 Switch'
numid=1196,iface=MIXER,name='CVB-RT DAC MIXR Stereo ADC Switch'
numid=273,iface=MIXER,name='CVB-RT DAC1 Playback Volume'
numid=267,iface=MIXER,name='CVB-RT HP Playback Switch'
numid=269,iface=MIXER,name='CVB-RT HP Playback Volume'
numid=1212,iface=MIXER,name='CVB-RT HPO MIX DAC1 Switch'
numid=1213,iface=MIXER,name='CVB-RT HPO MIX HPVOL Switch'
numid=268,iface=MIXER,name='CVB-RT HPVOL Playback Switch'
numid=276,iface=MIXER,name='CVB-RT IN Capture Volume'
numid=274,iface=MIXER,name='CVB-RT IN1 Boost Volume'
numid=275,iface=MIXER,name='CVB-RT IN2 Boost Volume'
numid=1214,iface=MIXER,name='CVB-RT LOUT MIX DAC L1 Switch'
numid=1215,iface=MIXER,name='CVB-RT LOUT MIX DAC R1 Switch'
numid=1216,iface=MIXER,name='CVB-RT LOUT MIX OUTVOL L Switch'
numid=1217,iface=MIXER,name='CVB-RT LOUT MIX OUTVOL R Switch'
numid=271,iface=MIXER,name='CVB-RT OUT Channel Switch'
numid=1202,iface=MIXER,name='CVB-RT OUT MIXL BST1 Switch'
numid=1203,iface=MIXER,name='CVB-RT OUT MIXL BST2 Switch'
numid=1206,iface=MIXER,name='CVB-RT OUT MIXL DAC L1 Switch'
numid=1204,iface=MIXER,name='CVB-RT OUT MIXL INL1 Switch'
numid=1205,iface=MIXER,name='CVB-RT OUT MIXL REC MIXL Switch'
numid=1208,iface=MIXER,name='CVB-RT OUT MIXR BST1 Switch'
numid=1207,iface=MIXER,name='CVB-RT OUT MIXR BST2 Switch'
numid=1211,iface=MIXER,name='CVB-RT OUT MIXR DAC R1 Switch'
numid=1209,iface=MIXER,name='CVB-RT OUT MIXR INR1 Switch'
numid=1210,iface=MIXER,name='CVB-RT OUT MIXR REC MIXR Switch'
numid=270,iface=MIXER,name='CVB-RT OUT Playback Switch'
numid=272,iface=MIXER,name='CVB-RT OUT Playback Volume'
numid=1188,iface=MIXER,name='CVB-RT RECMIXL BST1 Switch'
numid=1187,iface=MIXER,name='CVB-RT RECMIXL BST2 Switch'
numid=1186,iface=MIXER,name='CVB-RT RECMIXL INL1 Switch'
numid=1191,iface=MIXER,name='CVB-RT RECMIXR BST1 Switch'
numid=1190,iface=MIXER,name='CVB-RT RECMIXR BST2 Switch'
numid=1189,iface=MIXER,name='CVB-RT RECMIXR INR1 Switch'
numid=1198,iface=MIXER,name='CVB-RT Stereo DAC MIXL DAC L1 Switch'
numid=1199,iface=MIXER,name='CVB-RT Stereo DAC MIXL DAC R1 Switch'
numid=1201,iface=MIXER,name='CVB-RT Stereo DAC MIXR DAC L1 Switch'
numid=1200,iface=MIXER,name='CVB-RT Stereo DAC MIXR DAC R1 Switch'
numid=1192,iface=MIXER,name='CVB-RT Stereo1 ADC MIXL ADC1 Switch'
numid=1193,iface=MIXER,name='CVB-RT Stereo1 ADC MIXR ADC1 Switch'
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="I2S2 Mux" "ADMAIF1"
numid=1118,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=1
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT DAC MIXL INF1 Switch" on
numid=1195,iface=MIXER,name='CVB-RT DAC MIXL INF1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT DAC MIXR INF1 Switch" on
numid=1197,iface=MIXER,name='CVB-RT DAC MIXR INF1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT Stereo DAC MIXL DAC L1 Switch" on
numid=1198,iface=MIXER,name='CVB-RT Stereo DAC MIXL DAC L1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT Stereo DAC MIXR DAC R1 Switch" on
numid=1200,iface=MIXER,name='CVB-RT Stereo DAC MIXR DAC R1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT HPO MIX DAC1 Switch" on
numid=1212,iface=MIXER,name='CVB-RT HPO MIX DAC1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT HPO MIX HPVOL Switch" on
numid=1213,iface=MIXER,name='CVB-RT HPO MIX HPVOL Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT HP Playback Switch" on
numid=267,iface=MIXER,name='CVB-RT HP Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT HPVOL Playback Switch" on
numid=268,iface=MIXER,name='CVB-RT HPVOL Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT HP Playback Volume" 30
numid=269,iface=MIXER,name='CVB-RT HP Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=39,step=0
  : values=30,30
  | dBscale-min=-46.50dB,step=1.50dB,mute=0
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT DAC1 Playback Volume" 30
numid=273,iface=MIXER,name='CVB-RT DAC1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=175,step=0
  : values=30,30
  | dBscale-min=-656.25dB,step=3.75dB,mute=0
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ speaker-test -D hw:APE,0 -r 44100 -c 2 -F S16_LE -t sine -f 1000

speaker-test 1.2.6

Playback device is hw:APE,0
Stream parameters are 44100Hz, S16_LE, 2 channels
Sine wave rate is 1000.0000Hz
Rate set to 44100Hz (requested 44100Hz)
Buffer size range from 512 to 8192
Period size range from 256 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
 0 - Front Left
 1 - Front Right
Time per period = 5.802933
 0 - Front Left
 1 - Front Right
Time per period = 5.990128
 0 - Front Left
 1 - Front Right
Time per period = 5.990599
 0 - Front Left
 1 - Front Right
Time per period = 5.989595
 0 - Front Left
 1 - Front Right
Time per period = 5.990663
 0 - Front Left
 1 - Front Right
Time per period = 5.990053
 0 - Front Left
 1 - Front Right
Time per period = 5.990768
 0 - Front Left
 1 - Front Right
Time per period = 5.990385
 0 - Front Left
 1 - Front Right
Time per period = 5.990531
 0 - Front Left
 1 - Front Right
Time per period = 5.990471
 0 - Front Left
 1 - Front Right
Time per period = 5.990479
 0 - Front Left
 1 - Front Right
Time per period = 5.990223
 0 - Front Left
 1 - Front Right
Time per period = 5.991231
 0 - Front Left
 1 - Front Right
Time per period = 5.990508
 0 - Front Left
^C 1 - Front Right
Time per period = 2.553429
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ sudo dmesg | grep 5616
[sudo] password for nvidia:
[    3.777270] RT5616_DEVICE_ID: 0x6281
[   12.923203] rt5616: enter rt5616_probe!!!
[   12.923352] rt5616: exit rt5616_probe!!!
[   12.946672] tegra_machine_rt5616_init: rtd->dais[rtd->num_cpus]->name: rt5616-aif1
[   15.356168] zram: Added device: zram2
[  167.077487] rt5616: enter rt5616_hw_params
[  167.077502] rt5616: rt5616->sysclk: 11289600
[  167.077507] rt5616: rt5616->sysclk: 44100
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$


我们目前测量了一下I2S0信号,目前一直I2S0_SCLK、I2S0_LRCK没有输出,我这边是在tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi配置了io引脚为i2s模式。

dapm route 配置:

tegra_sound_graph: tegra_sound: sound {
		compatible = "nvidia,tegra186-audio-graph-card",
			     "nvidia,tegra186-ape";
		clocks = <&bpmp TEGRA234_CLK_PLLA>,
			 <&bpmp TEGRA234_CLK_PLLA_OUT0>,
			 <&bpmp TEGRA234_CLK_AUD_MCLK>;
		clock-names = "pll_a", "plla_out0", "extern1";
		assigned-clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
		assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;

		nvidia-audio-card,name = "NVIDIA Jetson Orin Nano RT5616";
		nvidia-audio-card,mclk-fs = <256>;
		/*label = "NVIDIA Jetson Orin Nano RT5616";*/

		nvidia-audio-card,widgets =
              "Headphone",    "CVB-RT Headphone Jack",
			  "Speaker",      "CVB-RT Int Spk",
              "Microphone",   "CVB-RT Mic Jack";
		
		nvidia-audio-card,routing =
  			  "CVB-RT Headphone Jack", "CVB-RT HPOL",
	          "CVB-RT Headphone Jack", "CVB-RT HPOR",
	          "CVB-RT Int Spk",        "CVB-RT LOUTL",
	          "CVB-RT Int Spk",        "CVB-RT LOUTR",
	          "CVB-RT Mic Jack",       "CVB-RT MIC1",
	          "CVB-RT Mic Jack",       "CVB-RT MIC2";

		/* I2S2 ↔ RT5616 DAI link */	
		hdr40_snd_link_i2s: nvidia-audio-card,dai-link@77 {
			link-name = "rt5616-playback";
			format = "i2s";
			bitclock-master = <&rt5616_codec>;
			frame-master = <&rt5616_codec>;
			
        	codec {
            	sound-dai = <&rt5616_codec 0>;
				prefix = "CVB-RT";
        	};
		};
	};

Pinmux settings seems has some issue, though function is set to I2S2 all pins are configured as tristate and input. How did you update the pins configuration, manually / pinmux excel sheet method / jetson-io tool?

我了解到的是使用Jetson_Orin_NX_and_Orin_Nano_series_Pinmux_Config_Template.xlsm方式直接生成一个Orin-jetson orin nano&nx pinmux dp-pinmux.dtsi,然后询修改的地方,再同步修改BSP中的tegra234-mb1-bct-pinmux-p3767-dp-a03.dts。我不太了解,应该是使用这个方式。至于jetson-io工具,我仅仅使用查看过,查看的也是选择上了i2s2了

Expected tristate and enable-input values are as below. Please make sure your DT has these values. Suspecting something went wrong while using excel sheet method and Jetson-IO tool method together.

141 (soc_gpio41_ph7): 
	tristate=0
	enable-input=1
	gpio-mode=1
	function=i2s2
142 (soc_gpio42_pi0): 
	tristate=0
	enable-input=0
	gpio-mode=1
	function=i2s2
143 (soc_gpio43_pi1): 
	tristate=1
	enable-input=1
	gpio-mode=1
	function=i2s2
144 (soc_gpio44_pi2): 
	tristate=0
	enable-input=1
	gpio-mode=1
	function=i2s2
....
161 (soc_gpio59_pac6): 
	tristate=0
	enable-input=0
	gpio-mode=1
	function=aud

不好意思,我没有改正确tegra234-mb1-bct-pinmux-p3767-dp-a03.dts,目前已经更改,i2s信号有了,播放正常。谢谢支持。配置如下

amixer -c APE cset name="I2S2 Mux" "ADMAIF1"
amixer -c APE cset name="CVB-RT DAC MIXL INF1 Switch" on
amixer -c APE cset name="CVB-RT DAC MIXR INF1 Switch" on
amixer -c APE cset name="CVB-RT Stereo DAC MIXL DAC L1 Switch" on
amixer -c APE cset name="CVB-RT Stereo DAC MIXR DAC R1 Switch" on
amixer -c APE cset name="CVB-RT HPO MIX DAC1 Switch" on
amixer -c APE cset name="CVB-RT HPO MIX HPVOL Switch" on
amixer -c APE cset name="CVB-RT HP Playback Switch" on
amixer -c APE cset name="CVB-RT HPVOL Playback Switch" on
amixer -c APE cset name="CVB-RT HP Playback Volume" 39     //0-39
amixer -c APE cset name="CVB-RT DAC1 Playback Volume" 100   //0-175

rt5616.c.txt (41.1 KB)

tegra234-p3768-0000.dtsi.txt (2.2 KB)

tegra234-p3767.dtsi.txt (5.8 KB)

tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi.txt (65.8 KB)

tegra234-mb1-bct-gpio-p3767-dp-a03.dtsi.txt (3.6 KB)

tegra_codecs.c.txt (8.0 KB)

mic也遇到了一些问题,录制一会出现 Input/output error,且生成的音频文件无法播放;是否我配置有什么问题呢?目前mic打开配置:


amixer -c APE cset name="CVB-RT ADC Capture Switch" on
amixer -c APE cset name="CVB-RT ADC Capture Volume" 100
amixer -c APE cset name="CVB-RT ADC Boost Volume" 3   # 增益,范围 0-3
amixer -c APE cset name="CVB-RT Stereo1 ADC MIXL ADC1 Switch" on
amixer -c APE cset name="CVB-RT Stereo1 ADC MIXR ADC1 Switch" on
amixer -c APE cset name="CVB-RT IN1 Boost Volume" 8   # 增益,0-8
amixer -c APE cset name="CVB-RT RECMIXL INL1 Switch" on
amixer -c APE cset name="CVB-RT RECMIXR INR1 Switch" on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ arecord -Dhw:APE,0 -c 2 -r 44100 -f S16_LE -d 15 1.wav
Recording WAVE '1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
arecord: pcm_read:2221: read error: Input/output error
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$

amixer -c APE cset name="ADMAIF1 Mux" "I2S2"

Please make sure to set the above control for recording.

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="ADMAIF1 Mux" "I2S2"
numid=1107,iface=MIXER,name='ADMAIF1 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=18
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT ADC Capture Switch" on
numid=277,iface=MIXER,name='CVB-RT ADC Capture Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT ADC Capture Volume" 100
numid=278,iface=MIXER,name='CVB-RT ADC Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=100,100
  | dBscale-min=-176.25dB,step=3.75dB,mute=0
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT ADC Boost Volume" 3
numid=279,iface=MIXER,name='CVB-RT ADC Boost Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
  : values=3,3
  | dBscale-min=0.00dB,step=12.00dB,mute=0
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT Stereo1 ADC MIXL ADC1 Switch" on
numid=1192,iface=MIXER,name='CVB-RT Stereo1 ADC MIXL ADC1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT Stereo1 ADC MIXR ADC1 Switch" on
numid=1193,iface=MIXER,name='CVB-RT Stereo1 ADC MIXR ADC1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT IN1 Boost Volume" 8
numid=274,iface=MIXER,name='CVB-RT IN1 Boost Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=8,step=0
  : values=8
  | dBrange-
    rangemin=0,,rangemax=0
      | dBscale-min=0.00dB,step=0.00dB,mute=0
    rangemin=1,,rangemax=1
      | dBscale-min=20.00dB,step=0.00dB,mute=0
    rangemin=2,,rangemax=2
      | dBscale-min=24.00dB,step=0.00dB,mute=0
    rangemin=3,,rangemax=5
      | dBscale-min=30.00dB,step=5.00dB,mute=0
    rangemin=6,,rangemax=6
      | dBscale-min=44.00dB,step=0.00dB,mute=0
    rangemin=7,,rangemax=7
      | dBscale-min=50.00dB,step=0.00dB,mute=0
    rangemin=8,,rangemax=8
      | dBscale-min=52.00dB,step=0.00dB,mute=0

nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT RECMIXL INL1 Switch" on
numid=1186,iface=MIXER,name='CVB-RT RECMIXL INL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ amixer -c APE cset name="CVB-RT RECMIXR INR1 Switch" on
numid=1189,iface=MIXER,name='CVB-RT RECMIXR INR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ arecord -Dhw:APE,0 -c 2 -r 44100 -f S16_LE -d 15 1.wav
Recording WAVE '1.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
arecord: pcm_read:2221: read error: Input/output error
nvidia@nvidia-desktop:~$

已经打开上述控件了,结果录音还是Input/output error

Could you try recording with 48KHz. If still issue persists, please share the dapm route dump while recording. Suspecting some issue with codec mixer control settings.

抱歉,回复晚了,有事耽搁这个问题。今天试了录制48KHz的也是一样


nvidia@nvidia-desktop:~$
nvidia@nvidia-desktop:~$ arecord -Dhw:APE,0 -c 2 -r 48000 -f S16_LE -d 15 1.wav
Recording WAVE '1.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
arecord: pcm_read:2221: read error: Input/output error
nvidia@nvidia-desktop:~$

目前情况这样的,播放音频文件正常,录制出现Input/output error;打开控件如下:

播放音频设置
amixer -c APE cset name="I2S2 Mux" "ADMAIF1"
amixer -c APE cset name="CVB-RT DAC MIXL INF1 Switch" on
amixer -c APE cset name="CVB-RT DAC MIXR INF1 Switch" on
amixer -c APE cset name="CVB-RT Stereo DAC MIXL DAC L1 Switch" on
amixer -c APE cset name="CVB-RT Stereo DAC MIXR DAC R1 Switch" on
amixer -c APE cset name="CVB-RT HPO MIX DAC1 Switch" on
amixer -c APE cset name="CVB-RT HPO MIX HPVOL Switch" on
amixer -c APE cset name="CVB-RT HP Playback Switch" on
amixer -c APE cset name="CVB-RT HPVOL Playback Switch" on
amixer -c APE cset name="CVB-RT HP Playback Volume" 39     //0-39
amixer -c APE cset name="CVB-RT DAC1 Playback Volume" 100   //0-175

录制音频设置
amixer -c APE cset name="ADMAIF1 Mux" "I2S2"
amixer -c APE cset name="CVB-RT ADC Capture Switch" on
amixer -c APE cset name="CVB-RT ADC Capture Volume" 100
amixer -c APE cset name="CVB-RT ADC Boost Volume" 3
amixer -c APE cset name="CVB-RT Stereo1 ADC MIXL ADC1 Switch" on
amixer -c APE cset name="CVB-RT Stereo1 ADC MIXR ADC1 Switch" on
amixer -c APE cset name="CVB-RT IN1 Boost Volume" 8
amixer -c APE cset name="CVB-RT RECMIXL INL1 Switch" on
amixer -c APE cset name="CVB-RT RECMIXR INR1 Switch" on


录制音频时dapm route:

dapm.txt (313.8 KB)