Audio nosound card

hi,
Jetson Xavier NX JP5.02 failed to adapt to audio, here are my modifications:
一.tegra194-audio-p3668.dtsi:

  1. i2c@3160000 {
    status = “okay”;
    rt5640: rt5640.8-001c@1c {
    compatible = “realtek,rt5640”;
    reg = <0x1c>;
    clock-frequency = <200000>;
    /* Codec IRQ output */
    interrupt-parent = <&tegra_main_gpio>;
    interrupts = <&tegra_main_gpio TEGRA194_MAIN_GPIO(Q, 5) GPIO_ACTIVE_HIGH>;
 	sound-name-prefix = "CVB-RT";
 	#sound-dai-cells = <1>;			
 	status = "okay";
 };

};

  1. sound {

    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";

 nvidia-audio-card,mclk-fs = <256>;

};
3. hdr40_snd_link_i2s: &i2s5_to_codec {
link-name = “rt5640_playback”;
ignore_suspend;
bitclock-master;
frame-master;

format = “i2s”;
codec-dai-name = “rt5640-aif1”;
bit-format = “s16_le”;
srate = <48000>;
num-channel = <2>;
ignore_suspend;

codec {
sound-dai = <&rt5640 0>;
prefix = “CVB-RT”;
};
};
二.tegra_machine_driver.c

  1. Add: #include “rt5640.h”
    2.tegra_machine_dai_init Add:
    rtd = snd_soc_get_pcm_runtime(card, “rt5640-playback”);
    if (rtd) {
    err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5640_SCLK_S_MCLK,
    aud_mclk, SND_SOC_CLOCK_IN);
    if (err < 0) {
    dev_err(card->dev, “codec_dai clock not set\n”);
    return err;
    }
    }
  2. Add function tegra_machine_rt5640_init:
    static int tegra_machine_rt5640_init(struct snd_soc_pcm_runtime *rtd)
    {
    struct snd_soc_card *card = rtd->card;
    struct snd_soc_jack *jack;
    int err;

jack = devm_kzalloc(card->dev, sizeof(struct snd_soc_jack), GFP_KERNEL);
if (!jack)
return -ENOMEM;

err = snd_soc_card_jack_new(card, “Headset Jack”, SND_JACK_HEADSET,
jack, NULL, 0);
if (err) {
dev_err(card->dev, “Headset Jack creation failed %d\n”, err);
return err;
}

err = tegra_machine_add_codec_jack_control(card, rtd, jack);
if (err) {
dev_err(card->dev, “Failed to add jack control: %d\n”, err);
return err;
}

err = rt5640_set_jack_detect(rtd->codec, jack);
if (err) {
dev_err(card->dev, “Failed to set jack for RT5640: %d\n”, err);
return err;
}

/* single button supporting play/pause */
snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA);

/* multiple buttons supporting play/pause and volume up/down */
snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_MEDIA);
snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);

snd_soc_dapm_sync(&card->dapm);

return 0;
}
4. codec_init function:
for (i = 0; i < num_links; i++) {
if (!dai_links[i].name)
continue;
if (strstr(dai_links[i].name, “rt5640-playback”) )
dai_links[i].init = tegra_machine_rt5640_init;
else if (strstr(dai_links[i].name, “rt565x-playback”) ||
strstr(dai_links[i].name, “rt565x-codec-sysclk-bclk1”))
dai_links[i].init = tegra_machine_rt565x_init;
三.Result:
1.Mixer control settings:
setting.txt (794.1 KB)
2.Kernel log:
kernel_log (89.9 KB)
3.Device tree log:
dt.log (364.4 KB)
4.Register dump of I2S5 being used:
reg_dump (585 Bytes)

Thanks

Sound card seems registered as I could see rt5640 mixer controls in “settings.txt”.

What is the issue you are facing with audio

  • Does it exit as soon as the playback started?
  • Or Playback runs but no audio from speaker?

Please share the below details:

  1. Mixer commands settings done for playback.
  2. DAPM path trace. Steps are mentioned here Audio Setup and Development — Jetson Linux<br/>Developer Guide 34.1 documentation

hi,
Thank you very much for your reply!
The playback is fast and there is no sound coming from the headphone part。
1.Mixer commands:

amixer -c APE cset name=‘I2S5 Mux’ ‘ADMAIF1’
amixer -c APE cset name=‘ADMAIF1 Mux’ I2S5

amixer -c APE cset name=‘CVB-RT HP Playback Volume’ 30

amixer -c APE cset name=‘CVB-RT Stereo DAC MIXR DAC R1 Switch’ on
amixer -c APE cset name=‘CVB-RT Stereo DAC MIXL DAC L1 Switch’ on
amixer -c APE cset name=‘CVB-RT HP R Playback Switch’ on
amixer -c APE cset name=‘CVB-RT HP L Playback Switch’ on

amixer -c APE cset name=‘CVB-RT LOUT MIX DAC L1 Switch’ on
amixer -c APE cset name=‘CVB-RT LOUT MIX DAC R1 Switch’ on
amixer -c APE cset name=‘CVB-RT LOUT MIX OUTVOL L Switch’ off
amixer -c APE cset name=‘CVB-RT LOUT MIX OUTVOL R Switch’ off
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

  1. i2c:

asoc:

codec:

$ cat /sys/kernel/debug/asoc/components
290e400.arad
2901500.i2s
2901400.i2s
2901300.i2s
2903300.amx
2901200.i2s
2903200.amx
2903100.amx
2903000.amx
2901100.i2s
2901000.i2s
2902600.sfc
2902400.sfc
2902200.sfc
290f000.admaif
2902000.sfc
2903b00.adx
2903a00.adx
2903900.adx
2903800.adx
290bb00.amixer
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
tegra210-adsp
rt5640.0-001c
2900800.ahub
snd-soc-dummy
snd-soc-dummy

Thanks

Check if pinmux settings are done for I2S5:
cat /sys/kernel/debug/tegra_pinctrl_reg | grep ‘aud|dap5’
Bank: 0 Reg: 0x02431068 Val: 0x00000440 → dap5_fs_pu0
Bank: 0 Reg: 0x02431070 Val: 0x00000450 → dap5_din_pt7
Bank: 0 Reg: 0x02431078 Val: 0x00000400 → dap5_dout_pt6
Bank: 0 Reg: 0x02431080 Val: 0x00000440 → dap5_sclk_pt5
Bank: 0 Reg: 0x02431020 Val: 0x00000400 → aud_mclk_ps4

If there is mismatch, follow the steps given here Configuring the Jetson Expansion Headers — Jetson Linux<br/>Developer Guide 34.1 documentation

If it doesn’t help, try with below mixer control settings for RT5640
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 HP L Playback Switch” “on”
amixer -c APE cset name=“CVB-RT HP R Playback Switch” “on”
amixer -c APE cset name=“CVB-RT HP Playback Volume” “31,31”
amixer -c APE cset name=“CVB-RT DAC1 Playback Volume” “175,175”

If still playback has issue, please provide below details:

  1. Aud_mclk and I2S5 status by running below command during playback
    sudo grep “i2s5|aud_mclk” /sys/kernel/debug/clk/clk_summary.
  2. Is Jetson i2s in master mode?
  3. Dapm path trace, steps are mentioned in Troubleshooting section in “Sound Not Audible or Not Recorded” (link is shared in previous reply)
  4. dmesg logs

hi,
1.I not found ‘tegra_pinctrl_reg’ file, I modified the tegra19x-mb1-pinmux-p3668-a01.cfg file :
8e97212bdea259e2fa5f76506184081
761677d9b96a8e73d1ee54d7096fd7b
2.I try mixer control setting for RT5640 :
numid=1301,iface=MIXER,name=‘I2S5 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-1’
; Item #28 ‘MIXER1-2’
; Item #29 ‘MIXER1-3’
; Item #30 ‘MIXER1-4’
; Item #31 ‘MIXER1-5’
; 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-1’
; Item #56 ‘ADX1-2’
; Item #57 ‘ADX1-3’
; Item #58 ‘ADX1-4’
; Item #59 ‘ADX2-1’
; Item #60 ‘ADX2-2’
; Item #61 ‘ADX2-3’
; Item #62 ‘ADX2-4’
; Item #63 ‘ADX3-1’
; Item #64 ‘ADX3-2’
; Item #65 ‘ADX3-3’
; Item #66 ‘ADX3-4’
; Item #67 ‘ADX4-1’
; Item #68 ‘ADX4-2’
; Item #69 ‘ADX4-3’
; Item #70 ‘ADX4-4’
; Item #71 ‘ADMAIF17’
; Item #72 ‘ADMAIF18’
; Item #73 ‘ADMAIF19’
; Item #74 ‘ADMAIF20’
; Item #75 ‘ASRC1-1’
; Item #76 ‘ASRC1-2’
; Item #77 ‘ASRC1-3’
; Item #78 ‘ASRC1-4’
; Item #79 ‘ASRC1-5’
; Item #80 ‘ASRC1-6’
: values=1
numid=1300,iface=MIXER,name=‘I2S4 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-1’
; Item #28 ‘MIXER1-2’
; Item #29 ‘MIXER1-3’
; Item #30 ‘MIXER1-4’
; Item #31 ‘MIXER1-5’
; 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-1’
; Item #56 ‘ADX1-2’
; Item #57 ‘ADX1-3’
; Item #58 ‘ADX1-4’
; Item #59 ‘ADX2-1’
; Item #60 ‘ADX2-2’
; Item #61 ‘ADX2-3’
; Item #62 ‘ADX2-4’
; Item #63 ‘ADX3-1’
; Item #64 ‘ADX3-2’
; Item #65 ‘ADX3-3’
; Item #66 ‘ADX3-4’
; Item #67 ‘ADX4-1’
; Item #68 ‘ADX4-2’
; Item #69 ‘ADX4-3’
; Item #70 ‘ADX4-4’
; Item #71 ‘ADMAIF17’
; Item #72 ‘ADMAIF18’
; Item #73 ‘ADMAIF19’
; Item #74 ‘ADMAIF20’
; Item #75 ‘ASRC1-1’
; Item #76 ‘ASRC1-2’
; Item #77 ‘ASRC1-3’
; Item #78 ‘ASRC1-4’
; Item #79 ‘ASRC1-5’
; Item #80 ‘ASRC1-6’
: values=0
numid=1287,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-1’
; Item #28 ‘MIXER1-2’
; Item #29 ‘MIXER1-3’
; Item #30 ‘MIXER1-4’
; Item #31 ‘MIXER1-5’
; 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-1’
; Item #56 ‘ADX1-2’
; Item #57 ‘ADX1-3’
; Item #58 ‘ADX1-4’
; Item #59 ‘ADX2-1’
; Item #60 ‘ADX2-2’
; Item #61 ‘ADX2-3’
; Item #62 ‘ADX2-4’
; Item #63 ‘ADX3-1’
; Item #64 ‘ADX3-2’
; Item #65 ‘ADX3-3’
; Item #66 ‘ADX3-4’
; Item #67 ‘ADX4-1’
; Item #68 ‘ADX4-2’
; Item #69 ‘ADX4-3’
; Item #70 ‘ADX4-4’
; Item #71 ‘ADMAIF17’
; Item #72 ‘ADMAIF18’
; Item #73 ‘ADMAIF19’
; Item #74 ‘ADMAIF20’
; Item #75 ‘ASRC1-1’
; Item #76 ‘ASRC1-2’
; Item #77 ‘ASRC1-3’
; Item #78 ‘ASRC1-4’
; Item #79 ‘ASRC1-5’
; Item #80 ‘ASRC1-6’
: values=21
amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

amixer: Cannot find the given element from control hw:1

sudo grep “i2s5|aud_mclk” /sys/kernel/debug/clk/clk_summary:


dmesg.txt (80.5 KB)
Thanks!

  • Please provide below command output to confirm on pinmux
cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups
  • There is some problem with quotes above, below format should work
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 HP L Playback Switch"  "on" 
amixer -c APE cset name="CVB-RT HP R Playback Switch"  "on" 
amixer -c APE cset name="CVB-RT HP Playback Volume"  "31,31" 
amixer -c APE cset name="CVB-RT DAC1 Playback Volume"  "175,175"  
  • To collect dapm path trace, run below command while playback is going on:
for i in `find /sys/kernel/debug/tracing/events -name "enable" | grep snd_soc_`; do echo 1 > $i; done
cat /sys/kernel/debug/tracing/trace_pipe | grep \*
  • Also collect the I2S5 and aud_mclk status while running the playback
  • Provide the playback command if still issue persists.

hi,
pinconf-groups :
pinmux.txt (38.5 KB)
amixer :
amixer.txt (6.6 KB)
Double-clicked test.wav file:
dapm:

I2S5-SDout:


I2S5-LRCLK:

I2S5-SCLK:

aud_mclk:

playback:
$aplay -D hw:APE,1-1 test.wav :

Thanks

1 Like

aplay command you had mentioned above is wrong.
It should be

aplay -D hw:APE,0 test.wav

Run the playback using above command and if playback doesn’t work share all the logs mentioned in previous comments.

Regarding dapm path trace, the quote format seems modified as per the shared screenshot. Please make sure to copy proper command from here to linux system.

hi,
dapm:


cat /sys/kernel/debug/tracing/trace_pipe | grep * :
trace_pipe.log (31.6 KB)
I2S5 and aud_mclk : Consistent with the previous reply
still issue persists.
And we found JP4 (playback is ok) LRCLK frequency is 44k, BCLK frequency is 1.41M ,But JP5 LRCLK frequency is 22k, BCLK frequency is 705k.
Thanks!

Please share below details during playback

  • hw_params:
cat /proc/asound/card0/pcm0p/sub0/hw_params
  • Clock details:
/sys/kernel/debug/clk/clk_summary

hi,
hw_params:


Clock details:
clk_summary.log (57.9 KB)
Thanks!

As mentioned in the above comment, please share the hw_params and clk_summary when playback is in active state. From logs, seems playback is stopped when you had captured the logs.

hw_params:


cat /proc/asound/card1/pcm0p/sub0/hw_params:
sum.log (57.9 KB)
Thanks!

Hi,
What is the issue with playback now? It shouldn’t exit immediately, due to clock difference. If it exits immediately, please share dmesg logs.

The hw_params details you had shared are for capture, please share with playback. From clock looks like sample rate is 48KHz. Please confirm playback format details.

Also, share the i2s register dump while playback is running using command mentioned here, Audio Setup and Development — Jetson Linux
Developer Guide 34.1 documentation (nvidia.com)

hi,
I don’t think the sound card was registered.Successful registrations should look like this:


But ours is like this:
1672041264765
So, I think we should look into why the sound card wasn’t registered? Please give some suggestions for registering to the sound card! Where do we need to modify ‘tegra194-audio-p3668.dtsi’ or ‘tegra_machine_driver.c’ to appear in the red box shown below?

Hi,
As I said in my first comment, sound card is registered as there are rt5640 mixer controls. If sound card is not registered, then mixer controls will not be there.

The card string difference you are mentioning will not create any issue.

In the clock summary you had shared in comment#13, the frequency is as per 48KHz, 2 Channel and 16bit format that is1.536MHz. But you are telling its 705KHz.
How did you measure the frequencies?

Please confirm on what is the audio sample rate and hw_params when playback is running.

你好,
在播放的时候获取的数据:

amixer设置后,当双击音频文件,也能看到声卡1在工作如下图:


但是使用耳机,还是没有声音输出。

Hi,

Below link name is not correct, it should be “rt5640-playback”. Is this the name you are using right now? Please correct it and share your observation.

sum.log has clock summary, if i check I2S5 clock, my observation is same as comment #15.

Please remove below settings from the dts and check. Also, share the dmesg logs, after running the usecase.

bit-format = “s16_le”;
srate = <48000>;
num-channel = <2>;

你好,
我已经按照您说的做了修改,amxier设置后使用耳机还是不能听到声音。下面是dmesg:
dmesg.log (84.5 KB)

Hi,
How much is the BCLK and LRCLK frequencies after the change?