Hi NVIDIA,
我们的AGX ORIN载板使用了ACL5640,I2C已经能够检测到,I2S pinmux也检查过了,测量MCLK和I2S有信号变化。
不确定下一步该如何调试,请帮忙看下,非常感谢。
音频接线跟官方设计应该是一样的。
部分log:
root@tegra-ubuntu:/home/nv# amixer
ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for APE
amixer: Mixer attach default error: No such device
root@tegra-ubuntu:/home/nv# cat /proc/asound/cards
0 [HDA ]: tegra-hda - NVIDIA Jetson AGX Orin HDA
NVIDIA Jetson AGX Orin HDA at 0x3518000 irq 126
root@tegra-ubuntu:/home/nv# cat /proc/asound/cards
0 [HDA ]: tegra-hda - NVIDIA Jetson AGX Orin HDA
NVIDIA Jetson AGX Orin HDA at 0x3518000 irq 126
root@tegra-ubuntu:/home/nv#
root@tegra-ubuntu:/home/nv#
root@tegra-ubuntu:/home/nv# cat /proc/asound/
card0/ cards devices HDA/ hwdep pcm timers version
root@tegra-ubuntu:/home/nv# cat /proc/asound/devices
2: [ 0- 3]: digital audio playback
3: [ 0- 7]: digital audio playback
4: [ 0- 8]: digital audio playback
5: [ 0- 9]: digital audio playback
6: [ 0] : control
33: : timer
root@tegra-ubuntu:/home/nv# cat /proc/asound/
card0/ cards devices HDA/ hwdep pcm timers version
root@tegra-ubuntu:/home/nv# cat /proc/asound/pcm
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
00-09: HDMI 3 : HDMI 3 : playback 1
root@tegra-ubuntu:/home/nv# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k5.15.148-tegra.
root@tegra-ubuntu:/home/nv#
root@tegra-ubuntu:/home/nv# lsmod |grep soc
snd_soc_tegra210_ope 32768 0
snd_soc_tegra210_mixer 45056 0
snd_soc_tegra210_admaif 118784 0
snd_soc_tegra186_asrc 36864 0
snd_soc_tegra_pcm 16384 1 snd_soc_tegra210_admaif
snd_soc_tegra210_afc 20480 0
snd_soc_tegra186_arad 24576 1 snd_soc_tegra186_asrc
snd_soc_tegra210_mvc 20480 0
snd_soc_tegra210_dmic 20480 0
snd_soc_tegra186_dspk 20480 0
snd_soc_tegra210_amx 32768 0
snd_soc_tegra210_adx 28672 0
snd_soc_tegra210_sfc 57344 0
snd_soc_tegra210_i2s 24576 0
snd_soc_tegra210_ahub 1257472 2 snd_soc_tegra210_ope,snd_soc_tegra210_sfc
snd_soc_tegra_machine_driver 16384 0
snd_soc_tegra_utils 28672 2 snd_soc_tegra210_admaif,snd_soc_tegra_machine_driver
snd_soc_simple_card_utils 28672 1 snd_soc_tegra_utils
snd_soc_rt5640 114688 0
snd_soc_rl6231 16384 1 snd_soc_rt5640
root@tegra-ubuntu:/home/nv#
以下是修改的设备树和kernel log
sound {
compatible = "nvidia,tegra186-audio-graph-card";
status = "okay";
dais = /* ADMAIF (FE) Ports */
<&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
<&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>,
<&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>,
<&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>,
<&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>,
/* XBAR Ports */
<&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s4_port>,
<&xbar_i2s6_port>, <&xbar_dmic3_port>,
<&xbar_sfc1_in_port>, <&xbar_sfc2_in_port>,
<&xbar_sfc3_in_port>, <&xbar_sfc4_in_port>,
<&xbar_mvc1_in_port>, <&xbar_mvc2_in_port>,
<&xbar_amx1_in1_port>, <&xbar_amx1_in2_port>,
<&xbar_amx1_in3_port>, <&xbar_amx1_in4_port>,
<&xbar_amx2_in1_port>, <&xbar_amx2_in2_port>,
<&xbar_amx2_in3_port>, <&xbar_amx2_in4_port>,
<&xbar_amx3_in1_port>, <&xbar_amx3_in2_port>,
<&xbar_amx3_in3_port>, <&xbar_amx3_in4_port>,
<&xbar_amx4_in1_port>, <&xbar_amx4_in2_port>,
<&xbar_amx4_in3_port>, <&xbar_amx4_in4_port>,
<&xbar_adx1_in_port>, <&xbar_adx2_in_port>,
<&xbar_adx3_in_port>, <&xbar_adx4_in_port>,
<&xbar_mix_in1_port>, <&xbar_mix_in2_port>,
<&xbar_mix_in3_port>, <&xbar_mix_in4_port>,
<&xbar_mix_in5_port>, <&xbar_mix_in6_port>,
<&xbar_mix_in7_port>, <&xbar_mix_in8_port>,
<&xbar_mix_in9_port>, <&xbar_mix_in10_port>,
<&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
<&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
<&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
<&xbar_asrc_in7_port>,
<&xbar_ope1_in_port>,
/* HW accelerators */
<&sfc1_out_port>, <&sfc2_out_port>,
<&sfc3_out_port>, <&sfc4_out_port>,
<&mvc1_out_port>, <&mvc2_out_port>,
<&amx1_out_port>, <&amx2_out_port>,
<&amx3_out_port>, <&amx4_out_port>,
<&adx1_out1_port>, <&adx1_out2_port>,
<&adx1_out3_port>, <&adx1_out4_port>,
<&adx2_out1_port>, <&adx2_out2_port>,
<&adx2_out3_port>, <&adx2_out4_port>,
<&adx3_out1_port>, <&adx3_out2_port>,
<&adx3_out3_port>, <&adx3_out4_port>,
<&adx4_out1_port>, <&adx4_out2_port>,
<&adx4_out3_port>, <&adx4_out4_port>,
<&mix_out1_port>, <&mix_out2_port>, <&mix_out3_port>,
<&mix_out4_port>, <&mix_out5_port>,
<&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
<&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
<&ope1_out_port>,
/* BE I/O Ports */
<&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
<&dmic3_port>;
label = "NVIDIA Jetson AGX Orin APE";
widgets = "Microphone", "CVB-RT MIC Jack",
"Microphone", "CVB-RT MIC",
"Headphone", "CVB-RT HP Jack",
"Speaker", "CVB-RT SPK";
routing = /* I2S1 <-> RT5640 */
"CVB-RT AIF1 Playback", "I2S1 DAP-Playback",
"I2S1 DAP-Capture", "CVB-RT AIF1 Capture",
/* RT5640 codec controls */
"CVB-RT HP Jack", "CVB-RT HPOL",
"CVB-RT HP Jack", "CVB-RT HPOR",
"CVB-RT IN1P", "CVB-RT MIC Jack",
"CVB-RT IN2P", "CVB-RT MIC Jack",
"CVB-RT SPK", "CVB-RT SPOLP",
"CVB-RT SPK", "CVB-RT SPORP",
"CVB-RT DMIC1", "CVB-RT MIC",
"CVB-RT DMIC2", "CVB-RT MIC";
//cp from overlay dts
nvidia-audio-card,widgets =
"Headphone", "CVB-RT Headphone Jack",
"Microphone", "CVB-RT Mic Jack",
"Speaker", "CVB-RT Int Spk",
"Microphone", "CVB-RT Int Mic";
nvidia-audio-card,routing =
"CVB-RT Headphone Jack", "CVB-RT HPOL",
"CVB-RT Headphone Jack", "CVB-RT HPOR",
"CVB-RT IN1P", "CVB-RT Mic Jack",
"CVB-RT IN2P", "CVB-RT Mic Jack",
"CVB-RT Int Spk", "CVB-RT SPOLP",
"CVB-RT Int Spk", "CVB-RT SPORP",
"CVB-RT DMIC1", "CVB-RT Int Mic",
"CVB-RT DMIC2", "CVB-RT Int Mic";
/* I2S1 dai node */
nvidia-audio-card,dai-link@76 {
link-name = "rt5640-playback";
codec {
sound-dai = <&rt5640 0>;
prefix = "CVB-RT";
};
};
};
i2c@31e0000 {
status = "okay";
rt5640: audio-codec@1c {
status = "okay";
#sound-dai-cells = <1>;
compatible = "realtek,rt5640";
reg = <0x1c>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA234_MAIN_GPIO(AC, 5) GPIO_ACTIVE_HIGH>;
clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
clock-names = "mclk";
realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
sound-name-prefix = "CVB-RT";
port {
rt5640_ep: endpoint {
remote-endpoint = <&i2s1_dap>;
mclk-fs = <256>;
};
};
};
};
kernel_log.txt (82.8 KB)