The audio codec ES8388 does not work on Jetson nano

es8388.c (30.0 KB)
tegra_machine_driver_mobile.c (25.2 KB)

Hi,Nvidia, i am tring use customer board jetson nao with ES8388 codec, this is the dtsi,

//tegra210-porg-p3448-common.dtsi
hdr40_i2c2: i2c@7000c500 {
es8388_codec: es8388@10{
compatible = “everest,es8388”;
reg = <0x10>;
status= “okay”;
};

   tegra_sound: sound {
	status = "okay";
	compatible = "nvidia,tegra-audio-t210ref-mobile-rt565x";
	nvidia,model = "tegra-snd-t210ref-mobile-rt565x";
	clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
		 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
		 <&tegra_car TEGRA210_CLK_EXTERN1>;
	clock-names = "pll_a", "pll_a_out0", "extern1";
	assigned-clocks = <&tegra_car TEGRA210_CLK_EXTERN1>,
			  <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
			  <&tegra_car TEGRA210_CLK_PLL_A>;
	assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
	assigned-clock-rates = <12288000>, <49152000>, <368640000>;
	nvidia,num-codec-link = <4>;
	nvidia,audio-routing =
		"x Headphone",	"x OUT",
		"x IN",		"x Mic",
		"y Headphone",	"y OUT",
		"y IN",		"y Mic",
		"a IN",		"a Mic",
		"b IN",		"b Mic";
	nvidia,xbar = <&tegra_axbar>;
	mclk-fs = <256>;

 hdr40_snd_link_i2s: i2s_dai_link1: nvidia,dai-link-1 {
		link-name = "es8388-playback";
		cpu-dai = <&tegra_i2s4>;
		codec-dai = <&es8388_codec>;
		cpu-dai-name = "I2S4";
		codec-dai-name = "ES8388 HiFi";
		format = "i2s";
		bitclock-slave;
		frame-slave;
		bitclock-noninversion;
		frame-noninversion;
		bit-format = "s16_le";
		srate = <48000>;
		num-channel = <2>;
		ignore_suspend;
		name-prefix = "x";
		status = "okay";
	};

And i got this dmesg log

[ 1.531299] ES8388 2-0010: es8388_probe mclk is missing or invalid
[ 1.537607] ES8388 2-0010: ASoC: failed to probe component -2
[ 1.544645] tegra-asoc: sound: ASoC: failed to instantiate card -2
[ 1.554714] tegra-asoc: sound: snd_soc_register_card failed (-2) /home/biao/nvidia/Linux_for_Tegra/source/public/kernel/nvidia/sound/soc/tegra-alt/machine_drivers/tegra_machine_driver_mobile.c 885
[ 1.572442] tegra-asoc:: probe of sound failed with error -2

Could you help me to solve this problem, thank you

Please refer to TRoubleShooting section if can help: NVIDIA Jetson Linux Driver Package Software Features : Audio Setup and Development | NVIDIA Docs

hi kayccc, thanks for your reply, but the refer link does not have my problem, would you mind help me for this proplem? so first , i change the pinmux as show below,

aud_mclk_pbb0 {
nvidia,pins = “aud_mclk_pbb0”;
nvidia,function = “aud”;
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
};

  dap4_din_pj5 {
	nvidia,pins = "dap4_din_pj5";
	nvidia,function = "i2s4b";
	nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
	nvidia,tristate = <TEGRA_PIN_DISABLE>;
	nvidia,enable-input = <TEGRA_PIN_DISABLE>;
};

		dap4_dout_pj6 {
			nvidia,pins = "dap4_dout_pj6";
			nvidia,function = "i2s4b";
			nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
			nvidia,tristate = <TEGRA_PIN_DISABLE>;
			nvidia,enable-input = <TEGRA_PIN_DISABLE>;
		};

		dap4_fs_pj4 {
			nvidia,pins = "dap4_fs_pj4";
			nvidia,function = "i2s4b";
			nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
			nvidia,tristate = <TEGRA_PIN_DISABLE>;
			nvidia,enable-input = <TEGRA_PIN_DISABLE>;
		};

		dap4_sclk_pj7 {
			nvidia,pins = "dap4_sclk_pj7";
			nvidia,function = "i2s4b";
			nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
			nvidia,tristate = <TEGRA_PIN_DISABLE>;
			nvidia,enable-input = <TEGRA_PIN_DISABLE>;
		};

so my first question is that i2s4b is mean i2s4 ,right ? so the cpu-dai should be <&tegra_i2s4>

Hi,
As per your comment, the sound card registration was failing due to missing dts entry for MCLK clock for codec. Considering codec uses external MCLK clock from Tegra, below addition of clock entries to codec node will help.

es8388_codec: es8388@10{
compatible = “everest,es8388”;
clocks = <&tegra_car TEGRA210_CLK_EXTERN1>;
clock-names = “mclk”;
reg = <0x10>;
status= “okay”;
};

so my first question is that i2s4b is mean i2s4 ,right ?
Yes, that’s right.

Use below routing logic as per codec DAPM path.
nvidia,audio-routing =
“x LOUT1”, “x OUT”,
“x IN”, “x LINPUT1”,
“x ROUT1”, “x OUT”,
“x IN”, “x RINPUT1”,
“y Headphone”, “y OUT”,
“y IN”, “y Mic”,
“a IN”, “a Mic”,
“b IN”, “b Mic”;

Also for Pinmux settings on 40Pin Header follow steps @ https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/hw_setup_jetson_io.html#

1 Like

hi,mkumard. thanks for your help, now the codec seems works after i added the clocks, i notice that the value of TEGRA210_CLK_EXTERN1 is 120, how it works.

And I have the new error from dmesg shows

1.561741] tegra-asoc: sound: ASoC: no source widget found for x OUT
[ 1.568242] tegra-asoc: sound: ASoC: Failed to add route x OUT → direct → x LOUT1
[ 1.575970] tegra-asoc: sound: ASoC: no sink widget found for x IN
[ 1.582187] tegra-asoc: sound: ASoC: Failed to add route x LINPUT1 → direct → x IN
[ 1.589998] tegra-asoc: sound: ASoC: no source widget found for x OUT
[ 1.596472] tegra-asoc: sound: ASoC: Failed to add route x OUT → direct → x ROUT1
[ 1.604192] tegra-asoc: sound: ASoC: no sink widget found for x IN
[ 1.610406] tegra-asoc: sound: ASoC: Failed to add route x RINPUT1 → direct → x IN

I check the cards and codec shows below:

root@biao-desktop:/home/biao# cat /proc/asound/cards
0 [tegrahda ]: tegra-hda - tegra-hda
tegra-hda at 0x70038000 irq 82
1 [tegrasndt210ref]: tegra-snd-t210r - tegra-snd-t210ref-mobile-rt565x
tegra-snd-t210ref-mobile-rt565x

root@biao-desktop:/home/biao# sudo find /sys/kernel/debug/asoc/ -name ‘x Playback’ | xargs -i cat {}
x Playback: Off in 0 out 0
stream Playback inactive
in “static” “I2S4 DAP Transmit-x Playback”

so how to match the routing logic, it depends on codec source or ?
i found that some dapm_widget and dapm_route in es8388.c

static const struct snd_soc_dapm_widget es8388_dapm_widgets = {
SND_SOC_DAPM_INPUT(“LINPUT1”),
SND_SOC_DAPM_INPUT(“LINPUT2”),
SND_SOC_DAPM_INPUT(“RINPUT1”),
SND_SOC_DAPM_INPUT(“RINPUT2”),
SND_SOC_DAPM_MUX(“Left PGA Mux”, SND_SOC_NOPM, 0, 0,
&es8388_left_dac_mux_controls),
SND_SOC_DAPM_MUX(“Right PGA Mux”,SND_SOC_NOPM , 0, 0,
&es8388_right_dac_mux_controls),
SND_SOC_DAPM_MICBIAS(“Mic Bias”, ES8388_ADCPOWER, 3, 1),

SND_SOC_DAPM_MUX("Differential Mux", SND_SOC_NOPM, 0, 0,
		 &es8388_diffmux_controls),

SND_SOC_DAPM_MUX("Left ADC Mux", SND_SOC_NOPM, 0, 0,
		 &es8388_monomux_controls),
SND_SOC_DAPM_MUX("Right ADC Mux", SND_SOC_NOPM, 0, 0,
		 &es8388_monomux_controls),

//SND_SOC_DAPM_MUX("Left PGA Mux", ES8388_ADCPOWER, 7, 1,
		// &es8388_left_pga_controls),


SND_SOC_DAPM_MUX("Left Line Mux", SND_SOC_NOPM, 0, 0,
		 &es8388_left_line_controls),
SND_SOC_DAPM_MUX("Right Line Mux", SND_SOC_NOPM, 0, 0,
		 &es8388_right_line_controls),

SND_SOC_DAPM_ADC("Right ADC", "Right Capture", ES8388_ADCPOWER, 4, 1),
SND_SOC_DAPM_ADC("Left ADC", "Left Capture", ES8388_ADCPOWER, 5, 1),

/* gModify.Cmmt Implement when suspend/startup */
SND_SOC_DAPM_DAC("Right DAC", "Right Playback", ES8388_DACPOWER, 6, 1),
SND_SOC_DAPM_DAC("Left DAC", "Left Playback", ES8388_DACPOWER, 7, 1),

SND_SOC_DAPM_MIXER("Left Mixer", SND_SOC_NOPM, 0, 0,
		   &es8388_left_mixer_controls[0],
		   ARRAY_SIZE(es8388_left_mixer_controls)),
SND_SOC_DAPM_MIXER("Right Mixer", SND_SOC_NOPM, 0, 0,
		   &es8388_right_mixer_controls[0],
		   ARRAY_SIZE(es8388_right_mixer_controls)),
SND_SOC_DAPM_PGA("Right ADC Power", ES8388_ADCPOWER, 6, 1, NULL, 0),
SND_SOC_DAPM_PGA("Left ADC Power", ES8388_ADCPOWER, 7, 1, NULL, 0),
SND_SOC_DAPM_PGA("Right Out 2", ES8388_DACPOWER, 2, 0, NULL, 0),
SND_SOC_DAPM_PGA("Left Out 2", ES8388_DACPOWER, 3, 0, NULL, 0),
SND_SOC_DAPM_PGA("Right Out 1", ES8388_DACPOWER, 4, 0, NULL, 0),
SND_SOC_DAPM_PGA("Left Out 1", ES8388_DACPOWER, 5, 0, NULL, 0),
SND_SOC_DAPM_PGA("LAMP", ES8388_ADCCONTROL1, 4, 0, NULL, 0),
SND_SOC_DAPM_PGA("RAMP", ES8388_ADCCONTROL1, 0, 0, NULL, 0),

SND_SOC_DAPM_OUTPUT("LOUT1"),
SND_SOC_DAPM_OUTPUT("ROUT1"),
SND_SOC_DAPM_OUTPUT("LOUT2"),
SND_SOC_DAPM_OUTPUT("ROUT2"),
SND_SOC_DAPM_OUTPUT("VREF"),

};
//wrong
static const struct snd_soc_dapm_route audio_map = {
/*
{ “Capture”, “LAMP”, “LINPUT1” },
{ “Capture”, “RAMP”, “LINPUT2” },

{ "LOUT1", NULL, "Playback" },
{ "ROUT1", NULL, "Playback" },
*/
//"Line 1", "Line 2", "Differential" 
//12.22
{"Left PGA Mux", "Line 1L", "LINPUT1"},
{"Left PGA Mux", "Line 2L", "LINPUT2"},
{"Left PGA Mux", "DifferentialL", "Differential Mux"},

{"Right PGA Mux", "Line 1R", "RINPUT1"},
{"Right PGA Mux", "Line 2R", "RINPUT2"},
{"Right PGA Mux", "DifferentialR", "Differential Mux"},

{"Differential Mux", "Line 1", "LINPUT1"},
{"Differential Mux", "Line 1", "RINPUT1"},
{"Differential Mux", "Line 2", "LINPUT2"},
{"Differential Mux", "Line 2", "RINPUT2"},

{"Left ADC Mux", "Stereo", "Right PGA Mux"},
{"Left ADC Mux", "Stereo", "Left PGA Mux"},
{"Left ADC Mux", "Mono (Left)", "Left PGA Mux"},

{"Right ADC Mux", "Stereo", "Left PGA Mux"},
{"Right ADC Mux", "Stereo", "Right PGA Mux"},
{"Right ADC Mux", "Mono (Right)", "Right PGA Mux"},

{"Left ADC Power",NULL,"Left ADC Mux"},
{"Right ADC Power", NULL,"Right ADC Mux"},
{"Left ADC", NULL, "Left ADC Power"},
{"Right ADC", NULL, "Right ADC Power"},

{"Left Line Mux", "Line 1L", "LINPUT1"},
{"Left Line Mux", "Line 2L", "LINPUT2"},
{"Left Line Mux", "MicL", "Left PGA Mux"},

{"Right Line Mux", "Line 1R", "RINPUT1"},
{"Right Line Mux", "Line 2R", "RINPUT2"},
{"Right Line Mux", "MicR", "Right PGA Mux"},

{"Left Mixer", "Left Playback Switch", "Left DAC"},
{"Left Mixer", "Left Bypass Switch", "Left Line Mux"},

{"Right Mixer", "Right Playback Switch", "Right DAC"},
{"Right Mixer", "Right Bypass Switch", "Right Line Mux"},

{"Left Out 1", NULL, "Left Mixer"},
{"LOUT1", NULL, "Left Out 1"},
{"Right Out 1", NULL, "Right Mixer"},
{"ROUT1", NULL, "Right Out 1"},

{"Left Out 2", NULL, "Left Mixer"},
{"LOUT2", NULL, "Left Out 2"},
{"Right Out 2", NULL, "Right Mixer"},
{"ROUT2", NULL, "Right Out 2"},

};

Thanks a lot!

I am a jetson begineer , i’ve me the same issue ,and i don’t know add the es8338.c into the Kernel code, can you help share some information about how to add the es8388 codec driver?

thanks

I know nothing about audio CODECs, but what makes you ask about “es8338.c”? I am assuming the question is related to the device tree, but I don’t think you need to edit that file. You could think of the device tree as arguments passed to a driver, which is much easier to work with than editing actual files and rebuilding and installing a modified driver. If the driver accepts arguments related to whatever is wrong, then passing the correct argument would likely solve the issue. You are probably correct to ask how to match a routing, but it is unlikely you would do this via es8338.c.

Some trivia: Long ago there was no device tree. One would think that there was a single driver for a given piece of hardware, but if that hardware was at a different physical address, then it would have required two drivers. Every manufacturer would have had to have customized the same driver for their motherboard. That would be a lot of drivers. Instead, it was set up (I think probably by Linus Torvalds himself) such that this information was (essentially) passed as an argument rather than being hard coded. That argument could come from a device tree. Plug-n-play hardware has an ability to query the hardware for what it is, and this is somewhat analogous to what a device tree is: A surrogate for device setup whereby the device does not know this information. If your device needs to modify the driver (in this case the es8338.c file), then this is not the particular device the driver is designed for, but if this is just an argument to pass to the driver, then it is the same device for which the driver was intended.

Hi user32489,
Good to see Sound card got registered, the next issue was related to DAPM routing which needs minor correction in the routing, the order of entry misplaced in previous comment. Do the below change.

nvidia,audio-routing =
“x Headphone”, “x LOUT1”,
“x LINPUT1”, “x Mic”,
“x Headphone”, “x ROUT1”,
“x RINPUT1”, “x Mic”,
“y Headphone”, “y OUT”,
“y IN”, “y Mic”,
“a IN”, “a Mic”,
“b IN”, “b Mic”;

Hi Zhangwei8924,
You are welcome as a developer on Jetson Platform. I understand you are beginner, It would be better if you can provide more details on what you actually tried, issues you faced with es8388 etc…

I recommend to go through first the details @ https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/asoc_driver.19.1.html# which explain how to bringup audio card.

hi ,mkumard, Very sorry for the late response, now i have changed DAPM routing and it seems work.

~/Developer$ dmesg | grep asoc
[ 1.492558] tegra-asoc: sound: tegra_machine_driver_probe and 870
[ 1.492966] tegra-asoc: sound: tegra_machine_driver_probe and 877
[ 1.568237] tegra-asoc: sound: ADMAIF1 ↔ ADMAIF1 mapping ok
[ 1.568372] tegra-asoc: sound: ADMAIF2 ↔ ADMAIF2 mapping ok
[ 1.568507] tegra-asoc: sound: ADMAIF3 ↔ ADMAIF3 mapping ok
[ 1.568638] tegra-asoc: sound: ADMAIF4 ↔ ADMAIF4 mapping ok
[ 1.568765] tegra-asoc: sound: ADMAIF5 ↔ ADMAIF5 mapping ok
[ 1.568897] tegra-asoc: sound: ADMAIF6 ↔ ADMAIF6 mapping ok
[ 1.569025] tegra-asoc: sound: ADMAIF7 ↔ ADMAIF7 mapping ok
[ 1.569152] tegra-asoc: sound: ADMAIF8 ↔ ADMAIF8 mapping ok
[ 1.569283] tegra-asoc: sound: ADMAIF9 ↔ ADMAIF9 mapping ok
[ 1.569411] tegra-asoc: sound: ADMAIF10 ↔ ADMAIF10 mapping ok

~/Developer$ cat /proc/asound/cards
0 [tegrahda ]: tegra-hda - tegra-hda
tegra-hda at 0x70038000 irq 82
1 [tegrasndt210ref]: tegra-snd-t210r - tegra-snd-t210ref-mobile-rt565x
tegra-snd-t210ref-mobile-rt565x

then i want to test it , but nothing happened, what should i do next,

~/Developer$ aplay -D hw:tegrasndt210ref test.wav
Playing WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
~/Developer$

Thanks.

btw, i have set the i2s4 for palyback ,like this

~/Developer$ amixer -c tegrasndt210ref cset name=“I2S4 Mux” “ADMAIF1”
numid=573,iface=MIXER,name=‘I2S4 Mux’
; type=ENUMERATED,access=rw------,values=1,items=53
; 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 ‘I2S1’
; Item #12 ‘I2S2’
; Item #13 ‘I2S3’
; Item #14 ‘I2S4’
; Item #15 ‘I2S5’
; Item #16 ‘SFC1’
; Item #17 ‘SFC2’
; Item #18 ‘SFC3’
; Item #19 ‘SFC4’
; Item #20 ‘MIXER1-1’
; Item #21 ‘MIXER1-2’
; Item #22 ‘MIXER1-3’
; Item #23 ‘MIXER1-4’
; Item #24 ‘MIXER1-5’
; Item #25 ‘AMX1’
; Item #26 ‘AMX2’
; Item #27 ‘AFC1’
; Item #28 ‘AFC2’
; Item #29 ‘AFC3’
; Item #30 ‘AFC4’
; Item #31 ‘AFC5’
; Item #32 ‘AFC6’
; Item #33 ‘OPE1’
; Item #34 ‘OPE2’
; Item #35 ‘SPKPROT1’
; Item #36 ‘MVC1’
; Item #37 ‘MVC2’
; Item #38 ‘IQC1-1’
; Item #39 ‘IQC1-2’
; Item #40 ‘IQC2-1’
; Item #41 ‘IQC2-2’
; Item #42 ‘DMIC1’
; Item #43 ‘DMIC2’
; Item #44 ‘DMIC3’
; Item #45 ‘ADX1-1’
; Item #46 ‘ADX1-2’
; Item #47 ‘ADX1-3’
; Item #48 ‘ADX1-4’
; Item #49 ‘ADX2-1’
; Item #50 ‘ADX2-2’
; Item #51 ‘ADX2-3’
; Item #52 ‘ADX2-4’
: values=1

hi,mkumard, after i played test.wav, i got this trace log below,

~/Developer$ sudo cat /sys/kernel/debug/tracing/trace

tracer: nop

entries-in-buffer/entries-written: 36/36 #P:4

_-----=> irqs-off

/ _----=> need-resched

| / _—=> hardirq/softirq

|| / _–=> preempt-depth

||| / delay

TASK-PID CPU# |||| TIMESTAMP FUNCTION

| | | |||| | |

      aplay-9034  [001] ....   311.644343: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
 aplay-9034  [001] ....   311.644427: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9034  [000] ....   312.218783: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9034  [000] ....   312.218824: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9034  [000] ....   312.218825: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9034  [000] ....   312.218863: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour
       aplay-9047  [001] ....   360.417229: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9047  [001] ....   360.417307: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9047  [000] ....   360.991173: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9047  [000] ....   360.991212: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9047  [000] ....   360.991213: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9047  [000] ....   360.991254: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour
       aplay-9126  [001] ....   970.978622: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9126  [001] ....   970.978709: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9126  [000] ....   971.552509: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9126  [000] ....   971.552547: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9126  [000] ....   971.552548: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9126  [000] ....   971.552588: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour
       aplay-9132  [003] ....  1067.294148: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9132  [003] ....  1067.294241: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9132  [001] ....  1067.868091: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9132  [001] ....  1067.868133: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9132  [001] ....  1067.868134: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9132  [001] ....  1067.868176: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour
       aplay-9135  [000] ....  1077.210914: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9135  [000] ....  1077.211038: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9135  [000] ....  1077.784833: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9135  [000] ....  1077.784891: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9135  [000] ....  1077.784892: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9135  [000] ....  1077.784929: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour
       aplay-9136  [000] ....  1080.469930: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9136  [000] ....  1080.470007: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 0 neighbour
       aplay-9136  [000] ....  1081.043800: snd_soc_dapm_start: card=tegra-snd-t210ref-mobile-rt565x
       aplay-9136  [000] ....  1081.043855: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-9136  [000] ....  1081.043856: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-9136  [000] ....  1081.043893: snd_soc_dapm_walk_done: tegra-snd-t210ref-mobile-rt565x: checks 2 power, 2 path, 2 neighbour

it seems that is not a complete loop, how to fix it , Looking forward to your reply, thank you

Hi,
There could be some codec related mixer control which might be required for DAPM path completion. Can you attach the codec controls “amixer -c 1 controls”

yes, the result shows below

biao@biao-desktop:~$ amixer -c 1 controls
numid=570,iface=MIXER,name=‘I2S1 Mux’
numid=571,iface=MIXER,name=‘I2S2 Mux’
numid=534,iface=MIXER,name=‘I2S3 BCLK Ratio’
numid=536,iface=MIXER,name=‘I2S3 Capture mono to stereo conv’
numid=535,iface=MIXER,name=‘I2S3 Capture stereo to mono conv’
numid=533,iface=MIXER,name=‘I2S3 Channels’
numid=528,iface=MIXER,name=‘I2S3 Loopback’
numid=572,iface=MIXER,name=‘I2S3 Mux’
numid=539,iface=MIXER,name=‘I2S3 Playback FIFO threshold’
numid=538,iface=MIXER,name=‘I2S3 Playback mono to stereo conv’
numid=537,iface=MIXER,name=‘I2S3 Playback stereo to mono conv’
numid=532,iface=MIXER,name=‘I2S3 Sample Rate’
numid=530,iface=MIXER,name=‘I2S3 codec bit format’
numid=672,iface=MIXER,name=‘I2S3 codec frame mode’
numid=673,iface=MIXER,name=‘I2S3 codec master mode’
numid=531,iface=MIXER,name=‘I2S3 fsync width’
numid=529,iface=MIXER,name=‘I2S3 input bit format’
numid=498,iface=MIXER,name=‘I2S4 BCLK Ratio’
numid=500,iface=MIXER,name=‘I2S4 Capture mono to stereo conv’
numid=499,iface=MIXER,name=‘I2S4 Capture stereo to mono conv’
numid=497,iface=MIXER,name=‘I2S4 Channels’
numid=492,iface=MIXER,name=‘I2S4 Loopback’
numid=573,iface=MIXER,name=‘I2S4 Mux’
numid=503,iface=MIXER,name=‘I2S4 Playback FIFO threshold’
numid=502,iface=MIXER,name=‘I2S4 Playback mono to stereo conv’
numid=501,iface=MIXER,name=‘I2S4 Playback stereo to mono conv’
numid=496,iface=MIXER,name=‘I2S4 Sample Rate’
numid=494,iface=MIXER,name=‘I2S4 codec bit format’
numid=670,iface=MIXER,name=‘I2S4 codec frame mode’
numid=671,iface=MIXER,name=‘I2S4 codec master mode’
numid=495,iface=MIXER,name=‘I2S4 fsync width’
numid=493,iface=MIXER,name=‘I2S4 input bit format’
numid=574,iface=MIXER,name=‘I2S5 Mux’
numid=471,iface=MIXER,name=‘ADMAIF1 Capture stereo to mono conv’
numid=461,iface=MIXER,name=‘ADMAIF1 Channels’
numid=560,iface=MIXER,name=‘ADMAIF1 Mux’
numid=481,iface=MIXER,name=‘ADMAIF1 Playback mono to stereo conv’
numid=480,iface=MIXER,name=‘ADMAIF10 Capture stereo to mono conv’
numid=470,iface=MIXER,name=‘ADMAIF10 Channels’
numid=569,iface=MIXER,name=‘ADMAIF10 Mux’
numid=490,iface=MIXER,name=‘ADMAIF10 Playback mono to stereo conv’
numid=472,iface=MIXER,name=‘ADMAIF2 Capture stereo to mono conv’
numid=462,iface=MIXER,name=‘ADMAIF2 Channels’
numid=561,iface=MIXER,name=‘ADMAIF2 Mux’
numid=482,iface=MIXER,name=‘ADMAIF2 Playback mono to stereo conv’
numid=473,iface=MIXER,name=‘ADMAIF3 Capture stereo to mono conv’
numid=463,iface=MIXER,name=‘ADMAIF3 Channels’
numid=562,iface=MIXER,name=‘ADMAIF3 Mux’
numid=483,iface=MIXER,name=‘ADMAIF3 Playback mono to stereo conv’
numid=474,iface=MIXER,name=‘ADMAIF4 Capture stereo to mono conv’
numid=464,iface=MIXER,name=‘ADMAIF4 Channels’
numid=563,iface=MIXER,name=‘ADMAIF4 Mux’
numid=484,iface=MIXER,name=‘ADMAIF4 Playback mono to stereo conv’
numid=475,iface=MIXER,name=‘ADMAIF5 Capture stereo to mono conv’
numid=465,iface=MIXER,name=‘ADMAIF5 Channels’
numid=564,iface=MIXER,name=‘ADMAIF5 Mux’
numid=485,iface=MIXER,name=‘ADMAIF5 Playback mono to stereo conv’
numid=476,iface=MIXER,name=‘ADMAIF6 Capture stereo to mono conv’
numid=466,iface=MIXER,name=‘ADMAIF6 Channels’
numid=565,iface=MIXER,name=‘ADMAIF6 Mux’
numid=486,iface=MIXER,name=‘ADMAIF6 Playback mono to stereo conv’
numid=477,iface=MIXER,name=‘ADMAIF7 Capture stereo to mono conv’
numid=467,iface=MIXER,name=‘ADMAIF7 Channels’
numid=566,iface=MIXER,name=‘ADMAIF7 Mux’
numid=487,iface=MIXER,name=‘ADMAIF7 Playback mono to stereo conv’
numid=478,iface=MIXER,name=‘ADMAIF8 Capture stereo to mono conv’
numid=468,iface=MIXER,name=‘ADMAIF8 Channels’
numid=567,iface=MIXER,name=‘ADMAIF8 Mux’
numid=488,iface=MIXER,name=‘ADMAIF8 Playback mono to stereo conv’
numid=479,iface=MIXER,name=‘ADMAIF9 Capture stereo to mono conv’
numid=469,iface=MIXER,name=‘ADMAIF9 Channels’
numid=568,iface=MIXER,name=‘ADMAIF9 Mux’
numid=489,iface=MIXER,name=‘ADMAIF9 Playback mono to stereo conv’
numid=139,iface=MIXER,name=‘ADX1 Byte Map 0’
numid=140,iface=MIXER,name=‘ADX1 Byte Map 1’
numid=149,iface=MIXER,name=‘ADX1 Byte Map 10’
numid=150,iface=MIXER,name=‘ADX1 Byte Map 11’
numid=151,iface=MIXER,name=‘ADX1 Byte Map 12’
numid=152,iface=MIXER,name=‘ADX1 Byte Map 13’
numid=153,iface=MIXER,name=‘ADX1 Byte Map 14’
numid=154,iface=MIXER,name=‘ADX1 Byte Map 15’
numid=155,iface=MIXER,name=‘ADX1 Byte Map 16’
numid=156,iface=MIXER,name=‘ADX1 Byte Map 17’
numid=157,iface=MIXER,name=‘ADX1 Byte Map 18’
numid=158,iface=MIXER,name=‘ADX1 Byte Map 19’
numid=141,iface=MIXER,name=‘ADX1 Byte Map 2’
numid=159,iface=MIXER,name=‘ADX1 Byte Map 20’
numid=160,iface=MIXER,name=‘ADX1 Byte Map 21’
numid=161,iface=MIXER,name=‘ADX1 Byte Map 22’
numid=162,iface=MIXER,name=‘ADX1 Byte Map 23’
numid=163,iface=MIXER,name=‘ADX1 Byte Map 24’
numid=164,iface=MIXER,name=‘ADX1 Byte Map 25’
numid=165,iface=MIXER,name=‘ADX1 Byte Map 26’
numid=166,iface=MIXER,name=‘ADX1 Byte Map 27’
numid=167,iface=MIXER,name=‘ADX1 Byte Map 28’
numid=168,iface=MIXER,name=‘ADX1 Byte Map 29’
numid=142,iface=MIXER,name=‘ADX1 Byte Map 3’
numid=169,iface=MIXER,name=‘ADX1 Byte Map 30’
numid=170,iface=MIXER,name=‘ADX1 Byte Map 31’
numid=171,iface=MIXER,name=‘ADX1 Byte Map 32’
numid=172,iface=MIXER,name=‘ADX1 Byte Map 33’
numid=173,iface=MIXER,name=‘ADX1 Byte Map 34’
numid=174,iface=MIXER,name=‘ADX1 Byte Map 35’
numid=175,iface=MIXER,name=‘ADX1 Byte Map 36’
numid=176,iface=MIXER,name=‘ADX1 Byte Map 37’
numid=177,iface=MIXER,name=‘ADX1 Byte Map 38’
numid=178,iface=MIXER,name=‘ADX1 Byte Map 39’
numid=143,iface=MIXER,name=‘ADX1 Byte Map 4’
numid=179,iface=MIXER,name=‘ADX1 Byte Map 40’
numid=180,iface=MIXER,name=‘ADX1 Byte Map 41’
numid=181,iface=MIXER,name=‘ADX1 Byte Map 42’
numid=182,iface=MIXER,name=‘ADX1 Byte Map 43’
numid=183,iface=MIXER,name=‘ADX1 Byte Map 44’
numid=184,iface=MIXER,name=‘ADX1 Byte Map 45’
numid=185,iface=MIXER,name=‘ADX1 Byte Map 46’
numid=186,iface=MIXER,name=‘ADX1 Byte Map 47’
numid=187,iface=MIXER,name=‘ADX1 Byte Map 48’
numid=188,iface=MIXER,name=‘ADX1 Byte Map 49’
numid=144,iface=MIXER,name=‘ADX1 Byte Map 5’
numid=189,iface=MIXER,name=‘ADX1 Byte Map 50’
numid=190,iface=MIXER,name=‘ADX1 Byte Map 51’
numid=191,iface=MIXER,name=‘ADX1 Byte Map 52’
numid=192,iface=MIXER,name=‘ADX1 Byte Map 53’
numid=193,iface=MIXER,name=‘ADX1 Byte Map 54’
numid=194,iface=MIXER,name=‘ADX1 Byte Map 55’
numid=195,iface=MIXER,name=‘ADX1 Byte Map 56’
numid=196,iface=MIXER,name=‘ADX1 Byte Map 57’
numid=197,iface=MIXER,name=‘ADX1 Byte Map 58’
numid=198,iface=MIXER,name=‘ADX1 Byte Map 59’
numid=145,iface=MIXER,name=‘ADX1 Byte Map 6’
numid=199,iface=MIXER,name=‘ADX1 Byte Map 60’
numid=200,iface=MIXER,name=‘ADX1 Byte Map 61’
numid=201,iface=MIXER,name=‘ADX1 Byte Map 62’
numid=202,iface=MIXER,name=‘ADX1 Byte Map 63’
numid=146,iface=MIXER,name=‘ADX1 Byte Map 7’
numid=147,iface=MIXER,name=‘ADX1 Byte Map 8’
numid=148,iface=MIXER,name=‘ADX1 Byte Map 9’
numid=207,iface=MIXER,name=‘ADX1 Input Channels’
numid=608,iface=MIXER,name=‘ADX1 Mux’
numid=203,iface=MIXER,name=‘ADX1 Output1 Channels’
numid=204,iface=MIXER,name=‘ADX1 Output2 Channels’
numid=205,iface=MIXER,name=‘ADX1 Output3 Channels’
numid=206,iface=MIXER,name=‘ADX1 Output4 Channels’
numid=208,iface=MIXER,name=‘ADX2 Byte Map 0’
numid=209,iface=MIXER,name=‘ADX2 Byte Map 1’
numid=218,iface=MIXER,name=‘ADX2 Byte Map 10’
numid=219,iface=MIXER,name=‘ADX2 Byte Map 11’
numid=220,iface=MIXER,name=‘ADX2 Byte Map 12’
numid=221,iface=MIXER,name=‘ADX2 Byte Map 13’
numid=222,iface=MIXER,name=‘ADX2 Byte Map 14’
numid=223,iface=MIXER,name=‘ADX2 Byte Map 15’
numid=224,iface=MIXER,name=‘ADX2 Byte Map 16’
numid=225,iface=MIXER,name=‘ADX2 Byte Map 17’
numid=226,iface=MIXER,name=‘ADX2 Byte Map 18’
numid=227,iface=MIXER,name=‘ADX2 Byte Map 19’
numid=210,iface=MIXER,name=‘ADX2 Byte Map 2’
numid=228,iface=MIXER,name=‘ADX2 Byte Map 20’
numid=229,iface=MIXER,name=‘ADX2 Byte Map 21’
numid=230,iface=MIXER,name=‘ADX2 Byte Map 22’
numid=231,iface=MIXER,name=‘ADX2 Byte Map 23’
numid=232,iface=MIXER,name=‘ADX2 Byte Map 24’
numid=233,iface=MIXER,name=‘ADX2 Byte Map 25’
numid=234,iface=MIXER,name=‘ADX2 Byte Map 26’
numid=235,iface=MIXER,name=‘ADX2 Byte Map 27’
numid=236,iface=MIXER,name=‘ADX2 Byte Map 28’
numid=237,iface=MIXER,name=‘ADX2 Byte Map 29’
numid=211,iface=MIXER,name=‘ADX2 Byte Map 3’
numid=238,iface=MIXER,name=‘ADX2 Byte Map 30’
numid=239,iface=MIXER,name=‘ADX2 Byte Map 31’
numid=240,iface=MIXER,name=‘ADX2 Byte Map 32’
numid=241,iface=MIXER,name=‘ADX2 Byte Map 33’
numid=242,iface=MIXER,name=‘ADX2 Byte Map 34’
numid=243,iface=MIXER,name=‘ADX2 Byte Map 35’
numid=244,iface=MIXER,name=‘ADX2 Byte Map 36’
numid=245,iface=MIXER,name=‘ADX2 Byte Map 37’
numid=246,iface=MIXER,name=‘ADX2 Byte Map 38’
numid=247,iface=MIXER,name=‘ADX2 Byte Map 39’
numid=212,iface=MIXER,name=‘ADX2 Byte Map 4’
numid=248,iface=MIXER,name=‘ADX2 Byte Map 40’
numid=249,iface=MIXER,name=‘ADX2 Byte Map 41’
numid=250,iface=MIXER,name=‘ADX2 Byte Map 42’
numid=251,iface=MIXER,name=‘ADX2 Byte Map 43’
numid=252,iface=MIXER,name=‘ADX2 Byte Map 44’
numid=253,iface=MIXER,name=‘ADX2 Byte Map 45’
numid=254,iface=MIXER,name=‘ADX2 Byte Map 46’
numid=255,iface=MIXER,name=‘ADX2 Byte Map 47’
numid=256,iface=MIXER,name=‘ADX2 Byte Map 48’
numid=257,iface=MIXER,name=‘ADX2 Byte Map 49’
numid=213,iface=MIXER,name=‘ADX2 Byte Map 5’
numid=258,iface=MIXER,name=‘ADX2 Byte Map 50’
numid=259,iface=MIXER,name=‘ADX2 Byte Map 51’
numid=260,iface=MIXER,name=‘ADX2 Byte Map 52’
numid=261,iface=MIXER,name=‘ADX2 Byte Map 53’
numid=262,iface=MIXER,name=‘ADX2 Byte Map 54’
numid=263,iface=MIXER,name=‘ADX2 Byte Map 55’
numid=264,iface=MIXER,name=‘ADX2 Byte Map 56’
numid=265,iface=MIXER,name=‘ADX2 Byte Map 57’
numid=266,iface=MIXER,name=‘ADX2 Byte Map 58’
numid=267,iface=MIXER,name=‘ADX2 Byte Map 59’
numid=214,iface=MIXER,name=‘ADX2 Byte Map 6’
numid=268,iface=MIXER,name=‘ADX2 Byte Map 60’
numid=269,iface=MIXER,name=‘ADX2 Byte Map 61’
numid=270,iface=MIXER,name=‘ADX2 Byte Map 62’
numid=271,iface=MIXER,name=‘ADX2 Byte Map 63’
numid=215,iface=MIXER,name=‘ADX2 Byte Map 7’
numid=216,iface=MIXER,name=‘ADX2 Byte Map 8’
numid=217,iface=MIXER,name=‘ADX2 Byte Map 9’
numid=276,iface=MIXER,name=‘ADX2 Input Channels’
numid=609,iface=MIXER,name=‘ADX2 Mux’
numid=272,iface=MIXER,name=‘ADX2 Output1 Channels’
numid=273,iface=MIXER,name=‘ADX2 Output2 Channels’
numid=274,iface=MIXER,name=‘ADX2 Output3 Channels’
numid=275,iface=MIXER,name=‘ADX2 Output4 Channels’
numid=589,iface=MIXER,name=‘AFC1 Mux’
numid=590,iface=MIXER,name=‘AFC2 Mux’
numid=591,iface=MIXER,name=‘AFC3 Mux’
numid=592,iface=MIXER,name=‘AFC4 Mux’
numid=593,iface=MIXER,name=‘AFC5 Mux’
numid=594,iface=MIXER,name=‘AFC6 Mux’
numid=1,iface=MIXER,name=‘AMX1 Byte Map 0’
numid=2,iface=MIXER,name=‘AMX1 Byte Map 1’
numid=11,iface=MIXER,name=‘AMX1 Byte Map 10’
numid=12,iface=MIXER,name=‘AMX1 Byte Map 11’
numid=13,iface=MIXER,name=‘AMX1 Byte Map 12’
numid=14,iface=MIXER,name=‘AMX1 Byte Map 13’
numid=15,iface=MIXER,name=‘AMX1 Byte Map 14’
numid=16,iface=MIXER,name=‘AMX1 Byte Map 15’
numid=17,iface=MIXER,name=‘AMX1 Byte Map 16’
numid=18,iface=MIXER,name=‘AMX1 Byte Map 17’
numid=19,iface=MIXER,name=‘AMX1 Byte Map 18’
numid=20,iface=MIXER,name=‘AMX1 Byte Map 19’
numid=3,iface=MIXER,name=‘AMX1 Byte Map 2’
numid=21,iface=MIXER,name=‘AMX1 Byte Map 20’
numid=22,iface=MIXER,name=‘AMX1 Byte Map 21’
numid=23,iface=MIXER,name=‘AMX1 Byte Map 22’
numid=24,iface=MIXER,name=‘AMX1 Byte Map 23’
numid=25,iface=MIXER,name=‘AMX1 Byte Map 24’
numid=26,iface=MIXER,name=‘AMX1 Byte Map 25’
numid=27,iface=MIXER,name=‘AMX1 Byte Map 26’
numid=28,iface=MIXER,name=‘AMX1 Byte Map 27’
numid=29,iface=MIXER,name=‘AMX1 Byte Map 28’
numid=30,iface=MIXER,name=‘AMX1 Byte Map 29’
numid=4,iface=MIXER,name=‘AMX1 Byte Map 3’
numid=31,iface=MIXER,name=‘AMX1 Byte Map 30’
numid=32,iface=MIXER,name=‘AMX1 Byte Map 31’
numid=33,iface=MIXER,name=‘AMX1 Byte Map 32’
numid=34,iface=MIXER,name=‘AMX1 Byte Map 33’
numid=35,iface=MIXER,name=‘AMX1 Byte Map 34’
numid=36,iface=MIXER,name=‘AMX1 Byte Map 35’
numid=37,iface=MIXER,name=‘AMX1 Byte Map 36’
numid=38,iface=MIXER,name=‘AMX1 Byte Map 37’
numid=39,iface=MIXER,name=‘AMX1 Byte Map 38’
numid=40,iface=MIXER,name=‘AMX1 Byte Map 39’
numid=5,iface=MIXER,name=‘AMX1 Byte Map 4’
numid=41,iface=MIXER,name=‘AMX1 Byte Map 40’
numid=42,iface=MIXER,name=‘AMX1 Byte Map 41’
numid=43,iface=MIXER,name=‘AMX1 Byte Map 42’
numid=44,iface=MIXER,name=‘AMX1 Byte Map 43’
numid=45,iface=MIXER,name=‘AMX1 Byte Map 44’
numid=46,iface=MIXER,name=‘AMX1 Byte Map 45’
numid=47,iface=MIXER,name=‘AMX1 Byte Map 46’
numid=48,iface=MIXER,name=‘AMX1 Byte Map 47’
numid=49,iface=MIXER,name=‘AMX1 Byte Map 48’
numid=50,iface=MIXER,name=‘AMX1 Byte Map 49’
numid=6,iface=MIXER,name=‘AMX1 Byte Map 5’
numid=51,iface=MIXER,name=‘AMX1 Byte Map 50’
numid=52,iface=MIXER,name=‘AMX1 Byte Map 51’
numid=53,iface=MIXER,name=‘AMX1 Byte Map 52’
numid=54,iface=MIXER,name=‘AMX1 Byte Map 53’
numid=55,iface=MIXER,name=‘AMX1 Byte Map 54’
numid=56,iface=MIXER,name=‘AMX1 Byte Map 55’
numid=57,iface=MIXER,name=‘AMX1 Byte Map 56’
numid=58,iface=MIXER,name=‘AMX1 Byte Map 57’
numid=59,iface=MIXER,name=‘AMX1 Byte Map 58’
numid=60,iface=MIXER,name=‘AMX1 Byte Map 59’
numid=7,iface=MIXER,name=‘AMX1 Byte Map 6’
numid=61,iface=MIXER,name=‘AMX1 Byte Map 60’
numid=62,iface=MIXER,name=‘AMX1 Byte Map 61’
numid=63,iface=MIXER,name=‘AMX1 Byte Map 62’
numid=64,iface=MIXER,name=‘AMX1 Byte Map 63’
numid=8,iface=MIXER,name=‘AMX1 Byte Map 7’
numid=9,iface=MIXER,name=‘AMX1 Byte Map 8’
numid=10,iface=MIXER,name=‘AMX1 Byte Map 9’
numid=66,iface=MIXER,name=‘AMX1 Input1 Channels’
numid=67,iface=MIXER,name=‘AMX1 Input2 Channels’
numid=68,iface=MIXER,name=‘AMX1 Input3 Channels’
numid=69,iface=MIXER,name=‘AMX1 Input4 Channels’
numid=65,iface=MIXER,name=‘AMX1 Output Channels’
numid=600,iface=MIXER,name=‘AMX1-1 Mux’
numid=601,iface=MIXER,name=‘AMX1-2 Mux’
numid=602,iface=MIXER,name=‘AMX1-3 Mux’
numid=603,iface=MIXER,name=‘AMX1-4 Mux’
numid=70,iface=MIXER,name=‘AMX2 Byte Map 0’
numid=71,iface=MIXER,name=‘AMX2 Byte Map 1’
numid=80,iface=MIXER,name=‘AMX2 Byte Map 10’
numid=81,iface=MIXER,name=‘AMX2 Byte Map 11’
numid=82,iface=MIXER,name=‘AMX2 Byte Map 12’
numid=83,iface=MIXER,name=‘AMX2 Byte Map 13’
numid=84,iface=MIXER,name=‘AMX2 Byte Map 14’
numid=85,iface=MIXER,name=‘AMX2 Byte Map 15’
numid=86,iface=MIXER,name=‘AMX2 Byte Map 16’
numid=87,iface=MIXER,name=‘AMX2 Byte Map 17’
numid=88,iface=MIXER,name=‘AMX2 Byte Map 18’
numid=89,iface=MIXER,name=‘AMX2 Byte Map 19’
numid=72,iface=MIXER,name=‘AMX2 Byte Map 2’
numid=90,iface=MIXER,name=‘AMX2 Byte Map 20’
numid=91,iface=MIXER,name=‘AMX2 Byte Map 21’
numid=92,iface=MIXER,name=‘AMX2 Byte Map 22’
numid=93,iface=MIXER,name=‘AMX2 Byte Map 23’
numid=94,iface=MIXER,name=‘AMX2 Byte Map 24’
numid=95,iface=MIXER,name=‘AMX2 Byte Map 25’
numid=96,iface=MIXER,name=‘AMX2 Byte Map 26’
numid=97,iface=MIXER,name=‘AMX2 Byte Map 27’
numid=98,iface=MIXER,name=‘AMX2 Byte Map 28’
numid=99,iface=MIXER,name=‘AMX2 Byte Map 29’
numid=73,iface=MIXER,name=‘AMX2 Byte Map 3’
numid=100,iface=MIXER,name=‘AMX2 Byte Map 30’
numid=101,iface=MIXER,name=‘AMX2 Byte Map 31’
numid=102,iface=MIXER,name=‘AMX2 Byte Map 32’
numid=103,iface=MIXER,name=‘AMX2 Byte Map 33’
numid=104,iface=MIXER,name=‘AMX2 Byte Map 34’
numid=105,iface=MIXER,name=‘AMX2 Byte Map 35’
numid=106,iface=MIXER,name=‘AMX2 Byte Map 36’
numid=107,iface=MIXER,name=‘AMX2 Byte Map 37’
numid=108,iface=MIXER,name=‘AMX2 Byte Map 38’
numid=109,iface=MIXER,name=‘AMX2 Byte Map 39’
numid=74,iface=MIXER,name=‘AMX2 Byte Map 4’
numid=110,iface=MIXER,name=‘AMX2 Byte Map 40’
numid=111,iface=MIXER,name=‘AMX2 Byte Map 41’
numid=112,iface=MIXER,name=‘AMX2 Byte Map 42’
numid=113,iface=MIXER,name=‘AMX2 Byte Map 43’
numid=114,iface=MIXER,name=‘AMX2 Byte Map 44’
numid=115,iface=MIXER,name=‘AMX2 Byte Map 45’
numid=116,iface=MIXER,name=‘AMX2 Byte Map 46’
numid=117,iface=MIXER,name=‘AMX2 Byte Map 47’
numid=118,iface=MIXER,name=‘AMX2 Byte Map 48’
numid=119,iface=MIXER,name=‘AMX2 Byte Map 49’
numid=75,iface=MIXER,name=‘AMX2 Byte Map 5’
numid=120,iface=MIXER,name=‘AMX2 Byte Map 50’
numid=121,iface=MIXER,name=‘AMX2 Byte Map 51’
numid=122,iface=MIXER,name=‘AMX2 Byte Map 52’
numid=123,iface=MIXER,name=‘AMX2 Byte Map 53’
numid=124,iface=MIXER,name=‘AMX2 Byte Map 54’
numid=125,iface=MIXER,name=‘AMX2 Byte Map 55’
numid=126,iface=MIXER,name=‘AMX2 Byte Map 56’
numid=127,iface=MIXER,name=‘AMX2 Byte Map 57’
numid=128,iface=MIXER,name=‘AMX2 Byte Map 58’
numid=129,iface=MIXER,name=‘AMX2 Byte Map 59’
numid=76,iface=MIXER,name=‘AMX2 Byte Map 6’
numid=130,iface=MIXER,name=‘AMX2 Byte Map 60’
numid=131,iface=MIXER,name=‘AMX2 Byte Map 61’
numid=132,iface=MIXER,name=‘AMX2 Byte Map 62’
numid=133,iface=MIXER,name=‘AMX2 Byte Map 63’
numid=77,iface=MIXER,name=‘AMX2 Byte Map 7’
numid=78,iface=MIXER,name=‘AMX2 Byte Map 8’
numid=79,iface=MIXER,name=‘AMX2 Byte Map 9’
numid=135,iface=MIXER,name=‘AMX2 Input1 Channels’
numid=136,iface=MIXER,name=‘AMX2 Input2 Channels’
numid=137,iface=MIXER,name=‘AMX2 Input3 Channels’
numid=138,iface=MIXER,name=‘AMX2 Input4 Channels’
numid=134,iface=MIXER,name=‘AMX2 Output Channels’
numid=604,iface=MIXER,name=‘AMX2-1 Mux’
numid=605,iface=MIXER,name=‘AMX2-2 Mux’
numid=606,iface=MIXER,name=‘AMX2-3 Mux’
numid=607,iface=MIXER,name=‘AMX2-4 Mux’
numid=491,iface=MIXER,name=‘APE Reg Dump’
numid=610,iface=MIXER,name=‘Adder1 RX1’
numid=619,iface=MIXER,name=‘Adder1 RX10’
numid=611,iface=MIXER,name=‘Adder1 RX2’
numid=612,iface=MIXER,name=‘Adder1 RX3’
numid=613,iface=MIXER,name=‘Adder1 RX4’
numid=614,iface=MIXER,name=‘Adder1 RX5’
numid=615,iface=MIXER,name=‘Adder1 RX6’
numid=616,iface=MIXER,name=‘Adder1 RX7’
numid=617,iface=MIXER,name=‘Adder1 RX8’
numid=618,iface=MIXER,name=‘Adder1 RX9’
numid=620,iface=MIXER,name=‘Adder2 RX1’
numid=629,iface=MIXER,name=‘Adder2 RX10’
numid=621,iface=MIXER,name=‘Adder2 RX2’
numid=622,iface=MIXER,name=‘Adder2 RX3’
numid=623,iface=MIXER,name=‘Adder2 RX4’
numid=624,iface=MIXER,name=‘Adder2 RX5’
numid=625,iface=MIXER,name=‘Adder2 RX6’
numid=626,iface=MIXER,name=‘Adder2 RX7’
numid=627,iface=MIXER,name=‘Adder2 RX8’
numid=628,iface=MIXER,name=‘Adder2 RX9’
numid=630,iface=MIXER,name=‘Adder3 RX1’
numid=639,iface=MIXER,name=‘Adder3 RX10’
numid=631,iface=MIXER,name=‘Adder3 RX2’
numid=632,iface=MIXER,name=‘Adder3 RX3’
numid=633,iface=MIXER,name=‘Adder3 RX4’
numid=634,iface=MIXER,name=‘Adder3 RX5’
numid=635,iface=MIXER,name=‘Adder3 RX6’
numid=636,iface=MIXER,name=‘Adder3 RX7’
numid=637,iface=MIXER,name=‘Adder3 RX8’
numid=638,iface=MIXER,name=‘Adder3 RX9’
numid=640,iface=MIXER,name=‘Adder4 RX1’
numid=649,iface=MIXER,name=‘Adder4 RX10’
numid=641,iface=MIXER,name=‘Adder4 RX2’
numid=642,iface=MIXER,name=‘Adder4 RX3’
numid=643,iface=MIXER,name=‘Adder4 RX4’
numid=644,iface=MIXER,name=‘Adder4 RX5’
numid=645,iface=MIXER,name=‘Adder4 RX6’
numid=646,iface=MIXER,name=‘Adder4 RX7’
numid=647,iface=MIXER,name=‘Adder4 RX8’
numid=648,iface=MIXER,name=‘Adder4 RX9’
numid=650,iface=MIXER,name=‘Adder5 RX1’
numid=659,iface=MIXER,name=‘Adder5 RX10’
numid=651,iface=MIXER,name=‘Adder5 RX2’
numid=652,iface=MIXER,name=‘Adder5 RX3’
numid=653,iface=MIXER,name=‘Adder5 RX4’
numid=654,iface=MIXER,name=‘Adder5 RX5’
numid=655,iface=MIXER,name=‘Adder5 RX6’
numid=656,iface=MIXER,name=‘Adder5 RX7’
numid=657,iface=MIXER,name=‘Adder5 RX8’
numid=658,iface=MIXER,name=‘Adder5 RX9’
numid=540,iface=MIXER,name=‘DMIC1 Boost Gain’
numid=542,iface=MIXER,name=‘DMIC1 Capture mono to stereo conv’
numid=543,iface=MIXER,name=‘DMIC1 Capture stereo to mono conv’
numid=546,iface=MIXER,name=‘DMIC1 Channels’
numid=541,iface=MIXER,name=‘DMIC1 Controller Channel Select’
numid=548,iface=MIXER,name=‘DMIC1 LR Select’
numid=547,iface=MIXER,name=‘DMIC1 OSR Value’
numid=545,iface=MIXER,name=‘DMIC1 Sample Rate’
numid=544,iface=MIXER,name=‘DMIC1 output bit format’
numid=549,iface=MIXER,name=‘DMIC2 Boost Gain’
numid=551,iface=MIXER,name=‘DMIC2 Capture mono to stereo conv’
numid=552,iface=MIXER,name=‘DMIC2 Capture stereo to mono conv’
numid=555,iface=MIXER,name=‘DMIC2 Channels’
numid=550,iface=MIXER,name=‘DMIC2 Controller Channel Select’
numid=557,iface=MIXER,name=‘DMIC2 LR Select’
numid=556,iface=MIXER,name=‘DMIC2 OSR Value’
numid=554,iface=MIXER,name=‘DMIC2 Sample Rate’
numid=553,iface=MIXER,name=‘DMIC2 output bit format’
numid=579,iface=MIXER,name=‘MIXER1-1 Mux’
numid=588,iface=MIXER,name=‘MIXER1-10 Mux’
numid=580,iface=MIXER,name=‘MIXER1-2 Mux’
numid=581,iface=MIXER,name=‘MIXER1-3 Mux’
numid=582,iface=MIXER,name=‘MIXER1-4 Mux’
numid=583,iface=MIXER,name=‘MIXER1-5 Mux’
numid=584,iface=MIXER,name=‘MIXER1-6 Mux’
numid=585,iface=MIXER,name=‘MIXER1-7 Mux’
numid=586,iface=MIXER,name=‘MIXER1-8 Mux’
numid=587,iface=MIXER,name=‘MIXER1-9 Mux’
numid=357,iface=MIXER,name=‘MVC1 Bits’
numid=345,iface=MIXER,name=‘MVC1 Channel1 Vol’
numid=346,iface=MIXER,name=‘MVC1 Channel2 Vol’
numid=347,iface=MIXER,name=‘MVC1 Channel3 Vol’
numid=348,iface=MIXER,name=‘MVC1 Channel4 Vol’
numid=349,iface=MIXER,name=‘MVC1 Channel5 Vol’
numid=350,iface=MIXER,name=‘MVC1 Channel6 Vol’
numid=351,iface=MIXER,name=‘MVC1 Channel7 Vol’
numid=352,iface=MIXER,name=‘MVC1 Channel8 Vol’
numid=358,iface=MIXER,name=‘MVC1 Channels’
numid=356,iface=MIXER,name=‘MVC1 Curve Type’
numid=354,iface=MIXER,name=‘MVC1 Mute’
numid=598,iface=MIXER,name=‘MVC1 Mux’
numid=355,iface=MIXER,name=‘MVC1 Per Chan Mute Mask’
numid=353,iface=MIXER,name=‘MVC1 Vol’
numid=359,iface=MIXER,name=‘MVC1 input bit format’
numid=372,iface=MIXER,name=‘MVC2 Bits’
numid=360,iface=MIXER,name=‘MVC2 Channel1 Vol’
numid=361,iface=MIXER,name=‘MVC2 Channel2 Vol’
numid=362,iface=MIXER,name=‘MVC2 Channel3 Vol’
numid=363,iface=MIXER,name=‘MVC2 Channel4 Vol’
numid=364,iface=MIXER,name=‘MVC2 Channel5 Vol’
numid=365,iface=MIXER,name=‘MVC2 Channel6 Vol’
numid=366,iface=MIXER,name=‘MVC2 Channel7 Vol’
numid=367,iface=MIXER,name=‘MVC2 Channel8 Vol’
numid=373,iface=MIXER,name=‘MVC2 Channels’
numid=371,iface=MIXER,name=‘MVC2 Curve Type’
numid=369,iface=MIXER,name=‘MVC2 Mute’
numid=599,iface=MIXER,name=‘MVC2 Mux’
numid=370,iface=MIXER,name=‘MVC2 Per Chan Mute Mask’
numid=368,iface=MIXER,name=‘MVC2 Vol’
numid=374,iface=MIXER,name=‘MVC2 input bit format’
numid=312,iface=MIXER,name=‘Mixer Enable’
numid=595,iface=MIXER,name=‘OPE1 Mux’
numid=417,iface=MIXER,name=‘OPE1 direction peq to mbdrc’
numid=411,iface=MIXER,name=‘OPE1 mbdrc attack gain’
numid=400,iface=MIXER,name=‘OPE1 mbdrc fast attack factor’
numid=405,iface=MIXER,name=‘OPE1 mbdrc fast attack tc’
numid=401,iface=MIXER,name=‘OPE1 mbdrc fast release factor’
numid=413,iface=MIXER,name=‘OPE1 mbdrc fast release gain’
numid=394,iface=MIXER,name=‘OPE1 mbdrc filter structure’
numid=395,iface=MIXER,name=‘OPE1 mbdrc frame size’
numid=416,iface=MIXER,name=‘OPE1 mbdrc high band biquad coeffs’
numid=402,iface=MIXER,name=‘OPE1 mbdrc iir stages’
numid=403,iface=MIXER,name=‘OPE1 mbdrc in attack tc’
numid=404,iface=MIXER,name=‘OPE1 mbdrc in release tc’
numid=406,iface=MIXER,name=‘OPE1 mbdrc in threshold’
numid=410,iface=MIXER,name=‘OPE1 mbdrc init gain’
numid=414,iface=MIXER,name=‘OPE1 mbdrc low band biquad coeffs’
numid=409,iface=MIXER,name=‘OPE1 mbdrc makeup gain’
numid=399,iface=MIXER,name=‘OPE1 mbdrc master volume’
numid=415,iface=MIXER,name=‘OPE1 mbdrc mid band biquad coeffs’
numid=396,iface=MIXER,name=‘OPE1 mbdrc mode’
numid=407,iface=MIXER,name=‘OPE1 mbdrc out threshold’
numid=393,iface=MIXER,name=‘OPE1 mbdrc peak-rms mode’
numid=408,iface=MIXER,name=‘OPE1 mbdrc ratio’
numid=412,iface=MIXER,name=‘OPE1 mbdrc release gain’
numid=397,iface=MIXER,name=‘OPE1 mbdrc rms offset’
numid=398,iface=MIXER,name=‘OPE1 mbdrc shift control’
numid=375,iface=MIXER,name=‘OPE1 peq active’
numid=376,iface=MIXER,name=‘OPE1 peq biquad stages’
numid=377,iface=MIXER,name=‘OPE1 peq channel0 biquad gain params’
numid=385,iface=MIXER,name=‘OPE1 peq channel0 biquad shift params’
numid=378,iface=MIXER,name=‘OPE1 peq channel1 biquad gain params’
numid=386,iface=MIXER,name=‘OPE1 peq channel1 biquad shift params’
numid=379,iface=MIXER,name=‘OPE1 peq channel2 biquad gain params’
numid=387,iface=MIXER,name=‘OPE1 peq channel2 biquad shift params’
numid=380,iface=MIXER,name=‘OPE1 peq channel3 biquad gain params’
numid=388,iface=MIXER,name=‘OPE1 peq channel3 biquad shift params’
numid=381,iface=MIXER,name=‘OPE1 peq channel4 biquad gain params’
numid=389,iface=MIXER,name=‘OPE1 peq channel4 biquad shift params’
numid=382,iface=MIXER,name=‘OPE1 peq channel5 biquad gain params’
numid=390,iface=MIXER,name=‘OPE1 peq channel5 biquad shift params’
numid=383,iface=MIXER,name=‘OPE1 peq channel6 biquad gain params’
numid=391,iface=MIXER,name=‘OPE1 peq channel6 biquad shift params’
numid=384,iface=MIXER,name=‘OPE1 peq channel7 biquad gain params’
numid=392,iface=MIXER,name=‘OPE1 peq channel7 biquad shift params’
numid=596,iface=MIXER,name=‘OPE2 Mux’
numid=460,iface=MIXER,name=‘OPE2 direction peq to mbdrc’
numid=454,iface=MIXER,name=‘OPE2 mbdrc attack gain’
numid=443,iface=MIXER,name=‘OPE2 mbdrc fast attack factor’
numid=448,iface=MIXER,name=‘OPE2 mbdrc fast attack tc’
numid=444,iface=MIXER,name=‘OPE2 mbdrc fast release factor’
numid=456,iface=MIXER,name=‘OPE2 mbdrc fast release gain’
numid=437,iface=MIXER,name=‘OPE2 mbdrc filter structure’
numid=438,iface=MIXER,name=‘OPE2 mbdrc frame size’
numid=459,iface=MIXER,name=‘OPE2 mbdrc high band biquad coeffs’
numid=445,iface=MIXER,name=‘OPE2 mbdrc iir stages’
numid=446,iface=MIXER,name=‘OPE2 mbdrc in attack tc’
numid=447,iface=MIXER,name=‘OPE2 mbdrc in release tc’
numid=449,iface=MIXER,name=‘OPE2 mbdrc in threshold’
numid=453,iface=MIXER,name=‘OPE2 mbdrc init gain’
numid=457,iface=MIXER,name=‘OPE2 mbdrc low band biquad coeffs’
numid=452,iface=MIXER,name=‘OPE2 mbdrc makeup gain’
numid=442,iface=MIXER,name=‘OPE2 mbdrc master volume’
numid=458,iface=MIXER,name=‘OPE2 mbdrc mid band biquad coeffs’
numid=439,iface=MIXER,name=‘OPE2 mbdrc mode’
numid=450,iface=MIXER,name=‘OPE2 mbdrc out threshold’
numid=436,iface=MIXER,name=‘OPE2 mbdrc peak-rms mode’
numid=451,iface=MIXER,name=‘OPE2 mbdrc ratio’
numid=455,iface=MIXER,name=‘OPE2 mbdrc release gain’
numid=440,iface=MIXER,name=‘OPE2 mbdrc rms offset’
numid=441,iface=MIXER,name=‘OPE2 mbdrc shift control’
numid=418,iface=MIXER,name=‘OPE2 peq active’
numid=419,iface=MIXER,name=‘OPE2 peq biquad stages’
numid=420,iface=MIXER,name=‘OPE2 peq channel0 biquad gain params’
numid=428,iface=MIXER,name=‘OPE2 peq channel0 biquad shift params’
numid=421,iface=MIXER,name=‘OPE2 peq channel1 biquad gain params’
numid=429,iface=MIXER,name=‘OPE2 peq channel1 biquad shift params’
numid=422,iface=MIXER,name=‘OPE2 peq channel2 biquad gain params’
numid=430,iface=MIXER,name=‘OPE2 peq channel2 biquad shift params’
numid=423,iface=MIXER,name=‘OPE2 peq channel3 biquad gain params’
numid=431,iface=MIXER,name=‘OPE2 peq channel3 biquad shift params’
numid=424,iface=MIXER,name=‘OPE2 peq channel4 biquad gain params’
numid=432,iface=MIXER,name=‘OPE2 peq channel4 biquad shift params’
numid=425,iface=MIXER,name=‘OPE2 peq channel5 biquad gain params’
numid=433,iface=MIXER,name=‘OPE2 peq channel5 biquad shift params’
numid=426,iface=MIXER,name=‘OPE2 peq channel6 biquad gain params’
numid=434,iface=MIXER,name=‘OPE2 peq channel6 biquad shift params’
numid=427,iface=MIXER,name=‘OPE2 peq channel7 biquad gain params’
numid=435,iface=MIXER,name=‘OPE2 peq channel7 biquad shift params’
numid=297,iface=MIXER,name=‘RX1 Channels’
numid=277,iface=MIXER,name=‘RX1 Gain’
numid=287,iface=MIXER,name=‘RX1 Gain Instant’
numid=306,iface=MIXER,name=‘RX10 Channels’
numid=286,iface=MIXER,name=‘RX10 Gain’
numid=296,iface=MIXER,name=‘RX10 Gain Instant’
numid=298,iface=MIXER,name=‘RX2 Channels’
numid=278,iface=MIXER,name=‘RX2 Gain’
numid=288,iface=MIXER,name=‘RX2 Gain Instant’
numid=299,iface=MIXER,name=‘RX3 Channels’
numid=279,iface=MIXER,name=‘RX3 Gain’
numid=289,iface=MIXER,name=‘RX3 Gain Instant’
numid=300,iface=MIXER,name=‘RX4 Channels’
numid=280,iface=MIXER,name=‘RX4 Gain’
numid=290,iface=MIXER,name=‘RX4 Gain Instant’
numid=301,iface=MIXER,name=‘RX5 Channels’
numid=281,iface=MIXER,name=‘RX5 Gain’
numid=291,iface=MIXER,name=‘RX5 Gain Instant’
numid=302,iface=MIXER,name=‘RX6 Channels’
numid=282,iface=MIXER,name=‘RX6 Gain’
numid=292,iface=MIXER,name=‘RX6 Gain Instant’
numid=303,iface=MIXER,name=‘RX7 Channels’
numid=283,iface=MIXER,name=‘RX7 Gain’
numid=293,iface=MIXER,name=‘RX7 Gain Instant’
numid=304,iface=MIXER,name=‘RX8 Channels’
numid=284,iface=MIXER,name=‘RX8 Gain’
numid=294,iface=MIXER,name=‘RX8 Gain Instant’
numid=305,iface=MIXER,name=‘RX9 Channels’
numid=285,iface=MIXER,name=‘RX9 Gain’
numid=295,iface=MIXER,name=‘RX9 Gain Instant’
numid=317,iface=MIXER,name=‘SFC1 Channels’
numid=575,iface=MIXER,name=‘SFC1 Mux’
numid=318,iface=MIXER,name=‘SFC1 init’
numid=315,iface=MIXER,name=‘SFC1 input bit format’
numid=313,iface=MIXER,name=‘SFC1 input rate’
numid=319,iface=MIXER,name=‘SFC1 input stereo conv’
numid=316,iface=MIXER,name=‘SFC1 output bit format’
numid=320,iface=MIXER,name=‘SFC1 output mono conv’
numid=314,iface=MIXER,name=‘SFC1 output rate’
numid=325,iface=MIXER,name=‘SFC2 Channels’
numid=576,iface=MIXER,name=‘SFC2 Mux’
numid=326,iface=MIXER,name=‘SFC2 init’
numid=323,iface=MIXER,name=‘SFC2 input bit format’
numid=321,iface=MIXER,name=‘SFC2 input rate’
numid=327,iface=MIXER,name=‘SFC2 input stereo conv’
numid=324,iface=MIXER,name=‘SFC2 output bit format’
numid=328,iface=MIXER,name=‘SFC2 output mono conv’
numid=322,iface=MIXER,name=‘SFC2 output rate’
numid=333,iface=MIXER,name=‘SFC3 Channels’
numid=577,iface=MIXER,name=‘SFC3 Mux’
numid=334,iface=MIXER,name=‘SFC3 init’
numid=331,iface=MIXER,name=‘SFC3 input bit format’
numid=329,iface=MIXER,name=‘SFC3 input rate’
numid=335,iface=MIXER,name=‘SFC3 input stereo conv’
numid=332,iface=MIXER,name=‘SFC3 output bit format’
numid=336,iface=MIXER,name=‘SFC3 output mono conv’
numid=330,iface=MIXER,name=‘SFC3 output rate’
numid=341,iface=MIXER,name=‘SFC4 Channels’
numid=578,iface=MIXER,name=‘SFC4 Mux’
numid=342,iface=MIXER,name=‘SFC4 init’
numid=339,iface=MIXER,name=‘SFC4 input bit format’
numid=337,iface=MIXER,name=‘SFC4 input rate’
numid=343,iface=MIXER,name=‘SFC4 input stereo conv’
numid=340,iface=MIXER,name=‘SFC4 output bit format’
numid=344,iface=MIXER,name=‘SFC4 output mono conv’
numid=338,iface=MIXER,name=‘SFC4 output rate’
numid=597,iface=MIXER,name=‘SPKPROT1 Mux’
numid=307,iface=MIXER,name=‘TX1 Channels’
numid=308,iface=MIXER,name=‘TX2 Channels’
numid=309,iface=MIXER,name=‘TX3 Channels’
numid=310,iface=MIXER,name=‘TX4 Channels’
numid=311,iface=MIXER,name=‘TX5 Channels’
numid=559,iface=MIXER,name=‘codec-x format’
numid=558,iface=MIXER,name=‘codec-x rate’
numid=504,iface=MIXER,name=‘x 3D Mode’
numid=512,iface=MIXER,name=‘x ALC Capture Attack Time’
numid=511,iface=MIXER,name=‘x ALC Capture Decay Time’
numid=508,iface=MIXER,name=‘x ALC Capture Function’
numid=510,iface=MIXER,name=‘x ALC Capture Hold Time’
numid=506,iface=MIXER,name=‘x ALC Capture Max PGA’
numid=507,iface=MIXER,name=‘x ALC Capture Min PGA’
numid=515,iface=MIXER,name=‘x ALC Capture NG Switch’
numid=513,iface=MIXER,name=‘x ALC Capture NG Threshold’
numid=514,iface=MIXER,name=‘x ALC Capture NG Type’
numid=505,iface=MIXER,name=‘x ALC Capture Target Volume’
numid=509,iface=MIXER,name=‘x ALC Capture ZC Switch’
numid=517,iface=MIXER,name=‘x Capture Digital Volume’
numid=518,iface=MIXER,name=‘x Capture Mute’
numid=522,iface=MIXER,name=‘x Capture Polarity’
numid=662,iface=MIXER,name=‘x Differential Mux’
numid=519,iface=MIXER,name=‘x Left Channel Capture Volume’
numid=664,iface=MIXER,name=‘x Left Line Mux’
numid=667,iface=MIXER,name=‘x Left Mixer Left Bypass Switch’
numid=524,iface=MIXER,name=‘x Left Mixer Left Bypass Volume’
numid=666,iface=MIXER,name=‘x Left Mixer Left Playback Switch’
numid=660,iface=MIXER,name=‘x Left PGA Mux’
numid=663,iface=MIXER,name=‘x Mono Mux’
numid=526,iface=MIXER,name=‘x Output 1 Playback Volume’
numid=527,iface=MIXER,name=‘x Output 2 Playback Volume’
numid=523,iface=MIXER,name=‘x PCM Volume’
numid=521,iface=MIXER,name=‘x Playback De-emphasis’
numid=520,iface=MIXER,name=‘x Right Channel Capture Volume’
numid=665,iface=MIXER,name=‘x Right Line Mux’
numid=669,iface=MIXER,name=‘x Right Mixer Right Bypass Switch’
numid=525,iface=MIXER,name=‘x Right Mixer Right Bypass Volume’
numid=668,iface=MIXER,name=‘x Right Mixer Right Playback Switch’
numid=661,iface=MIXER,name=‘x Right PGA Mux’
numid=516,iface=MIXER,name=‘x ZC Timeout Switch’

the default value of I2S4 MUX, Left palyback ,right plack show blelow:

~$ amixer -c 1 cget numid=666
numid=666,iface=MIXER,name=‘x Left Mixer Left Playback Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
~$ amixer -c 1 cget numid=668
numid=668,iface=MIXER,name=‘x Right Mixer Right Playback Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
~$ amixer -c 1 cget numid=573
numid=573,iface=MIXER,name=‘I2S4 Mux’
; type=ENUMERATED,access=rw------,values=1,items=53
; 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 ‘I2S1’
; Item #12 ‘I2S2’
; Item #13 ‘I2S3’
; Item #14 ‘I2S4’
; Item #15 ‘I2S5’
; Item #16 ‘SFC1’
; Item #17 ‘SFC2’
; Item #18 ‘SFC3’
; Item #19 ‘SFC4’
; Item #20 ‘MIXER1-1’
; Item #21 ‘MIXER1-2’
; Item #22 ‘MIXER1-3’
; Item #23 ‘MIXER1-4’
; Item #24 ‘MIXER1-5’
; Item #25 ‘AMX1’
; Item #26 ‘AMX2’
; Item #27 ‘AFC1’
; Item #28 ‘AFC2’
; Item #29 ‘AFC3’
; Item #30 ‘AFC4’
; Item #31 ‘AFC5’
; Item #32 ‘AFC6’
; Item #33 ‘OPE1’
; Item #34 ‘OPE2’
; Item #35 ‘SPKPROT1’
; Item #36 ‘MVC1’
; Item #37 ‘MVC2’
; Item #38 ‘IQC1-1’
; Item #39 ‘IQC1-2’
; Item #40 ‘IQC2-1’
; Item #41 ‘IQC2-2’
; Item #42 ‘DMIC1’
; Item #43 ‘DMIC2’
; Item #44 ‘DMIC3’
; Item #45 ‘ADX1-1’
; Item #46 ‘ADX1-2’
; Item #47 ‘ADX1-3’
; Item #48 ‘ADX1-4’
; Item #49 ‘ADX2-1’
; Item #50 ‘ADX2-2’
; Item #51 ‘ADX2-3’
; Item #52 ‘ADX2-4’
: values=1

what should i do next

Hi,
The mixer controls setup seems fine.

aplay -D hw:“tegrasndt210ref”,0 test.wav → Does this command exit immediately after executing? or it exits after the duration of the test.wav

aplay -D hw:tegrasndt210ref,0 test.wav
Playing WAVE ‘test.wav’ : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
biao@biao-desktop:~/Developer$

it exit immediately after executing.

Ok, this tells something problem with DAPM path setting. Please attach the latest codec driver file and DTS changes made. Let me cross check again.

es8388.c (30.0 KB)
Uploading: es8388.h…
tegra210-porg-p3448-common.dtsi (22.5 KB)

I dont know how to show you the DTS changes made, let me show you

hdr40_i2c2: i2c@7000c500 {
es8388_codec: es8388@10{
compatible = “everest,es8388”;
clocks = <&tegra_car TEGRA210_CLK_EXTERN1>;
clock-names = “mclk”;
reg = <0x10>;
status= “okay”;
};

		status = "okay";
		compatible = "nvidia,tegra-audio-t210ref-mobile-rt565x";
		nvidia,model = "tegra-snd-t210ref-mobile-rt565x";

		clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
			 <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
			 <&tegra_car TEGRA210_CLK_EXTERN1>;
		clock-names = "pll_a", "pll_a_out0", "extern1";
		assigned-clocks = <&tegra_car TEGRA210_CLK_EXTERN1>,
				  <&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
				  <&tegra_car TEGRA210_CLK_PLL_A>;
		assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
		assigned-clock-rates = <12288000>, <49152000>, <368640000>;

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

		// nvidia,audio-routing =
		// 	"x Headphone",	"x OUT",
		// 	"x IN",		"x Mic",
		// 	"y Headphone",	"y OUT",
		// 	"y IN",		"y Mic",
		// 	"a IN",		"a Mic",
		// 	"b IN",		"b Mic";
		nvidia,audio-routing =
			"x Headphone", "x LOUT1",
			"x LINPUT1", "x Mic",
			"x Headphone", "x ROUT1",
			"x RINPUT1", "x Mic",
			"y Headphone", "y OUT",
			"y IN", "y Mic",
			"a IN", "a Mic",
			"b IN", "b Mic";
	

		nvidia,xbar = <&tegra_axbar>;
		mclk-fs = <256>;

		hdr40_snd_link_i2s: i2s_dai_link1: nvidia,dai-link-1 {
			link-name = "es8388-playback";
			cpu-dai = <&tegra_i2s4>;
			codec-dai = <&es8388_codec>;
			cpu-dai-name = "I2S4";
			codec-dai-name = "ES8388 HiFi";
			format = "i2s";
			bitclock-slave;
			frame-slave;
			bitclock-noninversion;
			frame-noninversion;
			bit-format = "s16_le";
			srate = <48000>;
			num-channel = <2>;
			ignore_suspend;
			name-prefix = "x";
			status = "okay";
		};

All the change in tegra210-porg-p3448-common.dtsi , i attached.

One more question , do i need change hardware/nvidia/platform/tegra/common/kernel-dts/audio/tegra-platforms-audio-dai-links.dtsi ,it also have tegra_sound: sound {} and dai-link. but i think it does not work.

Thanks!, the changes on DTS files looks good.

No need to change tegra-platforms-audio-dai-links.dtsi.

Did you tried to check from Codec vendor on DAPM requirement for codec?.