Jetson Xavier NX soundcard not shown

Hello!

You also need to ensure that you have configured the capture mux as well.

amixer -c jetsonxaviernxa cset name="ADMAIF2 Mux" I2S3
arecord -D hw:jetsonxaviernxa,1 <args> <wav>

By default sub-device0 is muxed to I2S5 and so when using that subdevice, you will not see an error.

Regards,
Jon

Hi Jonathan,

Sorry I have edited my question. I tried the same commands you had mentioned. I am getting the below error.

arecord -D hw:jetsonxaviernxa,1 -r 16000 -c 1 -d 10 -f S16_LE out.wav
Recording WAVE ‘out.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
arecord: pcm_read:2103: read error: Input/output erro

Hi Jonathan,

I tried playing an audio file,
amixer -c jetsonxaviernxa cset name=“I2S3 Mux” ADMAIF1
aplay -D hw:jetsonxaviernxa,0 100Hz_44100Hz_16bit_05sec.wav

below is the debug log for the same,
amixer-10949 [001] … 153.491039: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-10949 [001] … 153.491178: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 3 power, 0 path, 0 neighbour
amixer-10949 [001] … 153.491216: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-10949 [001] … 153.491267: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
amixer-10949 [001] … 153.491279: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-10949 [001] … 153.491330: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
amixer-10949 [001] … 153.491341: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-10949 [001] … 153.491392: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
aplay-12249 [001] … 202.780361: snd_soc_dapm_start: card=jetson-xaviernx-ape
aplay-12249 [001] … 202.780455: snd_soc_dapm_path: *Playback 1 → (direct) → ADMAIF1 Receive
aplay-12249 [001] … 202.780457: snd_soc_dapm_path: *ADMAIF1 Receive → (direct) → ADMAIF1 RX
aplay-12249 [001] … 202.780460: snd_soc_dapm_widget_power: widget=Playback 1 val=1
aplay-12249 [001] … 202.780462: snd_soc_dapm_widget_power: widget=ADMAIF1 Receive val=1
aplay-12249 [001] … 202.780465: snd_soc_dapm_path: *ADMAIF1 CIF Receive-ADMAIF1 Receive → (direct) → ADMAIF1 Receive
aplay-12249 [001] … 202.780466: snd_soc_dapm_path: *ADMAIF1 RX ← (direct) ← ADMAIF1 Receive
aplay-12249 [001] … 202.780468: snd_soc_dapm_widget_power: widget=ADMAIF1 RX val=1
aplay-12249 [001] … 202.780472: snd_soc_dapm_path: I2S5 Mux ← ARAD1 ← ARAD1 RX
aplay-12249 [001] … 202.780473: snd_soc_dapm_path: I2S5 Mux ← ADX4-4 ← ADX4-4 RX
aplay-12249 [001] … 202.780475: snd_soc_dapm_path: I2S5 Mux ← ADX4-3 ← ADX4-3 RX
aplay-12249 [001] … 202.780477: snd_soc_dapm_path: I2S5 Mux ← ADX4-2 ← ADX4-2 RX
aplay-12249 [001] … 202.780504: snd_soc_dapm_path: I2S5 Mux ← ADX4-1 ← ADX4-1 RX
aplay-12249 [001] … 202.780506: snd_soc_dapm_path: I2S5 Mux ← AMX4 ← AMX4 RX
aplay-12249 [001] … 202.780508: snd_soc_dapm_path: I2S5 Mux ← ADX3-4 ← ADX3-4 RX
aplay-12249 [001] … 202.780509: snd_soc_dapm_path: I2S5 Mux ← ADX3-3 ← ADX3-3 RX
aplay-12249 [001] … 202.780511: snd_soc_dapm_path: I2S5 Mux ← ADX3-2 ← ADX3-2 RX
aplay-12249 [001] … 202.780512: snd_soc_dapm_path: I2S5 Mux ← ADX3-1 ← ADX3-1 RX
aplay-12249 [001] … 202.780514: snd_soc_dapm_path: I2S5 Mux ← AMX3 ← AMX3 RX
aplay-12249 [001] … 202.780515: snd_soc_dapm_path: I2S5 Mux ← ASRC1-6 ← ASRC1-6 RX
aplay-12249 [001] … 202.780517: snd_soc_dapm_path: I2S5 Mux ← ASRC1-5 ← ASRC1-5 RX
aplay-12249 [001] … 202.780518: snd_soc_dapm_path: I2S5 Mux ← ASRC1-4 ← ASRC1-4 RX
aplay-12249 [001] … 202.780520: snd_soc_dapm_path: I2S5 Mux ← ASRC1-3 ← ASRC1-3 RX
aplay-12249 [001] … 202.780521: snd_soc_dapm_path: I2S5 Mux ← ASRC1-2 ← ASRC1-2 RX
aplay-12249 [001] … 202.780523: snd_soc_dapm_path: I2S5 Mux ← ASRC1-1 ← ASRC1-1 RX
aplay-12249 [001] … 202.780524: snd_soc_dapm_path: I2S5 Mux ← I2S6 ← I2S6 RX
aplay-12249 [001] … 202.780526: snd_soc_dapm_path: I2S5 Mux ← DMIC4 ← DMIC4 RX
aplay-12249 [001] … 202.780528: snd_soc_dapm_path: I2S5 Mux ← ADMAIF20 ← ADMAIF20 RX
aplay-12249 [001] … 202.780529: snd_soc_dapm_path: I2S5 Mux ← ADMAIF19 ← ADMAIF19 RX
aplay-12249 [001] … 202.780530: snd_soc_dapm_path: I2S5 Mux ← ADMAIF18 ← ADMAIF18 RX
aplay-12249 [001] … 202.780532: snd_soc_dapm_path: I2S5 Mux ← ADMAIF17 ← ADMAIF17 RX
aplay-12249 [001] … 202.780533: snd_soc_dapm_path: I2S5 Mux ← ADMAIF16 ← ADMAIF16 RX
aplay-12249 [001] … 202.780535: snd_soc_dapm_path: I2S5 Mux ← ADMAIF15 ← ADMAIF15 RX
aplay-12249 [001] … 202.780536: snd_soc_dapm_path: I2S5 Mux ← ADMAIF14 ← ADMAIF14 RX
aplay-12249 [001] … 202.780538: snd_soc_dapm_path: I2S5 Mux ← ADMAIF13 ← ADMAIF13 RX
aplay-12249 [001] … 202.780539: snd_soc_dapm_path: I2S5 Mux ← ADMAIF12 ← ADMAIF12 RX
aplay-12249 [001] … 202.780541: snd_soc_dapm_path: I2S5 Mux ← ADMAIF11 ← ADMAIF11 RX
aplay-12249 [001] … 202.780542: snd_soc_dapm_path: I2S5 Mux ← ADX2-4 ← ADX2-4 RX
aplay-12249 [001] … 202.780544: snd_soc_dapm_path: I2S5 Mux ← ADX2-3 ← ADX2-3 RX
aplay-12249 [001] … 202.780545: snd_soc_dapm_path: I2S5 Mux ← ADX2-2 ← ADX2-2 RX
aplay-12249 [001] … 202.780546: snd_soc_dapm_path: I2S5 Mux ← ADX2-1 ← ADX2-1 RX
aplay-12249 [001] … 202.780548: snd_soc_dapm_path: I2S5 Mux ← AMX2 ← AMX2 RX
aplay-12249 [001] … 202.780549: snd_soc_dapm_path: I2S5 Mux ← ADX1-4 ← ADX1-4 RX
aplay-12249 [001] … 202.780551: snd_soc_dapm_path: I2S5 Mux ← ADX1-3 ← ADX1-3 RX
aplay-12249 [001] … 202.780552: snd_soc_dapm_path: I2S5 Mux ← ADX1-2 ← ADX1-2 RX
aplay-12249 [001] … 202.780554: snd_soc_dapm_path: I2S5 Mux ← ADX1-1 ← ADX1-1 RX
aplay-12249 [001] … 202.780555: snd_soc_dapm_path: I2S5 Mux ← AMX1 ← AMX1 RX
aplay-12249 [001] … 202.780557: snd_soc_dapm_path: I2S5 Mux ← DMIC3 ← DMIC3 RX
aplay-12249 [001] … 202.780558: snd_soc_dapm_path: I2S5 Mux ← DMIC2 ← DMIC2 RX
aplay-12249 [001] … 202.780580: snd_soc_dapm_path: I2S5 Mux ← DMIC1 ← DMIC1 RX
aplay-12249 [001] … 202.780581: snd_soc_dapm_path: I2S5 Mux ← IQC2-2 ← IQC2-2 RX
aplay-12249 [001] … 202.780583: snd_soc_dapm_path: I2S5 Mux ← IQC2-1 ← IQC2-1 RX
aplay-12249 [001] … 202.780584: snd_soc_dapm_path: I2S5 Mux ← IQC1-2 ← IQC1-2 RX
aplay-12249 [001] … 202.780586: snd_soc_dapm_path: I2S5 Mux ← IQC1-1 ← IQC1-1 RX
aplay-12249 [001] … 202.780587: snd_soc_dapm_path: I2S5 Mux ← MVC2 ← MVC2 RX
aplay-12249 [001] … 202.780589: snd_soc_dapm_path: I2S5 Mux ← MVC1 ← MVC1 RX
aplay-12249 [001] … 202.780590: snd_soc_dapm_path: I2S5 Mux ← OPE1 ← OPE1 RX
aplay-12249 [001] … 202.780592: snd_soc_dapm_path: I2S5 Mux ← AFC6 ← AFC6 RX
aplay-12249 [001] … 202.780593: snd_soc_dapm_path: I2S5 Mux ← AFC5 ← AFC5 RX
aplay-12249 [001] … 202.780596: snd_soc_dapm_path: I2S5 Mux ← AFC4 ← AFC4 RX
aplay-12249 [001] … 202.780598: snd_soc_dapm_path: I2S5 Mux ← AFC3 ← AFC3 RX
aplay-12249 [001] … 202.780599: snd_soc_dapm_path: I2S5 Mux ← AFC2 ← AFC2 RX
aplay-12249 [001] … 202.780601: snd_soc_dapm_path: I2S5 Mux ← AFC1 ← AFC1 RX
aplay-12249 [001] … 202.780602: snd_soc_dapm_path: I2S5 Mux ← MIXER1-5 ← MIXER1-5 RX
aplay-12249 [001] … 202.780604: snd_soc_dapm_path: I2S5 Mux ← MIXER1-4 ← MIXER1-4 RX
aplay-12249 [001] … 202.780605: snd_soc_dapm_path: I2S5 Mux ← MIXER1-3 ← MIXER1-3 RX
aplay-12249 [001] … 202.780607: snd_soc_dapm_path: I2S5 Mux ← MIXER1-2 ← MIXER1-2 RX
aplay-12249 [001] … 202.780608: snd_soc_dapm_path: I2S5 Mux ← MIXER1-1 ← MIXER1-1 RX
aplay-12249 [001] … 202.780609: snd_soc_dapm_path: I2S5 Mux ← SFC4 ← SFC4 RX
aplay-12249 [001] … 202.780611: snd_soc_dapm_path: I2S5 Mux ← SFC3 ← SFC3 RX
aplay-12249 [001] … 202.780613: snd_soc_dapm_path: I2S5 Mux ← SFC2 ← SFC2 RX
aplay-12249 [001] … 202.780614: snd_soc_dapm_path: I2S5 Mux ← SFC1 ← SFC1 RX
aplay-12249 [001] … 202.780615: snd_soc_dapm_path: I2S5 Mux ← I2S5 ← I2S5 RX
aplay-12249 [001] … 202.780617: snd_soc_dapm_path: I2S5 Mux ← I2S4 ← I2S4 RX
aplay-12249 [001] … 202.780619: snd_soc_dapm_path: I2S5 Mux ← I2S3 ← I2S3 RX
aplay-12249 [001] … 202.780620: snd_soc_dapm_path: I2S5 Mux ← I2S2 ← I2S2 RX
aplay-12249 [001] … 202.780622: snd_soc_dapm_path: I2S5 Mux ← I2S1 ← I2S1 RX
aplay-12249 [001] … 202.780623: snd_soc_dapm_path: I2S5 Mux ← ADMAIF10 ← ADMAIF10 RX
aplay-12249 [001] … 202.780625: snd_soc_dapm_path: I2S5 Mux ← ADMAIF9 ← ADMAIF9 RX
aplay-12249 [001] … 202.780626: snd_soc_dapm_path: I2S5 Mux ← ADMAIF8 ← ADMAIF8 RX
aplay-12249 [001] … 202.780628: snd_soc_dapm_path: I2S5 Mux ← ADMAIF7 ← ADMAIF7 RX
aplay-12249 [001] … 202.780629: snd_soc_dapm_path: I2S5 Mux ← ADMAIF6 ← ADMAIF6 RX
aplay-12249 [001] … 202.780631: snd_soc_dapm_path: I2S5 Mux ← ADMAIF5 ← ADMAIF5 RX
aplay-12249 [001] … 202.780632: snd_soc_dapm_path: I2S5 Mux ← ADMAIF4 ← ADMAIF4 RX
aplay-12249 [001] … 202.780634: snd_soc_dapm_path: I2S5 Mux ← ADMAIF3 ← ADMAIF3 RX
aplay-12249 [001] … 202.780635: snd_soc_dapm_path: I2S5 Mux ← ADMAIF2 ← ADMAIF2 RX
aplay-12249 [001] … 202.780636: snd_soc_dapm_path: *I2S5 Mux ← ADMAIF1 ← ADMAIF1 RX
aplay-12249 [001] … 202.780638: snd_soc_dapm_widget_power: widget=I2S5 Mux val=1
aplay-12249 [001] … 202.780641: snd_soc_dapm_path: I2S3 Mux ← ARAD1 ← ARAD1 RX
aplay-12249 [001] … 202.780643: snd_soc_dapm_path: I2S3 Mux ← ADX4-4 ← ADX4-4 RX
aplay-12249 [001] … 202.780644: snd_soc_dapm_path: I2S3 Mux ← ADX4-3 ← ADX4-3 RX
aplay-12249 [001] … 202.780646: snd_soc_dapm_path: I2S3 Mux ← ADX4-2 ← ADX4-2 RX
aplay-12249 [001] … 202.780647: snd_soc_dapm_path: I2S3 Mux ← ADX4-1 ← ADX4-1 RX
aplay-12249 [001] … 202.780649: snd_soc_dapm_path: I2S3 Mux ← AMX4 ← AMX4 RX
aplay-12249 [001] … 202.780650: snd_soc_dapm_path: I2S3 Mux ← ADX3-4 ← ADX3-4 RX
aplay-12249 [001] … 202.780652: snd_soc_dapm_path: I2S3 Mux ← ADX3-3 ← ADX3-3 RX
aplay-12249 [001] … 202.780653: snd_soc_dapm_path: I2S3 Mux ← ADX3-2 ← ADX3-2 RX
aplay-12249 [001] … 202.780655: snd_soc_dapm_path: I2S3 Mux ← ADX3-1 ← ADX3-1 RX
aplay-12249 [001] … 202.780656: snd_soc_dapm_path: I2S3 Mux ← AMX3 ← AMX3 RX
aplay-12249 [001] … 202.780657: snd_soc_dapm_path: I2S3 Mux ← ASRC1-6 ← ASRC1-6 RX
aplay-12249 [001] … 202.780659: snd_soc_dapm_path: I2S3 Mux ← ASRC1-5 ← ASRC1-5 RX
aplay-12249 [001] … 202.780660: snd_soc_dapm_path: I2S3 Mux ← ASRC1-4 ← ASRC1-4 RX
aplay-12249 [001] … 202.780662: snd_soc_dapm_path: I2S3 Mux ← ASRC1-3 ← ASRC1-3 RX
aplay-12249 [001] … 202.780663: snd_soc_dapm_path: I2S3 Mux ← ASRC1-2 ← ASRC1-2 RX
aplay-12249 [001] … 202.780665: snd_soc_dapm_path: I2S3 Mux ← ASRC1-1 ← ASRC1-1 RX
aplay-12249 [001] … 202.780666: snd_soc_dapm_path: I2S3 Mux ← I2S6 ← I2S6 RX
aplay-12249 [001] … 202.780668: snd_soc_dapm_path: I2S3 Mux ← DMIC4 ← DMIC4 RX
aplay-12249 [001] … 202.780669: snd_soc_dapm_path: I2S3 Mux ← ADMAIF20 ← ADMAIF20 RX
aplay-12249 [001] … 202.780671: snd_soc_dapm_path: I2S3 Mux ← ADMAIF19 ← ADMAIF19 RX
aplay-12249 [001] … 202.780672: snd_soc_dapm_path: I2S3 Mux ← ADMAIF18 ← ADMAIF18 RX
aplay-12249 [001] … 202.780674: snd_soc_dapm_path: I2S3 Mux ← ADMAIF17 ← ADMAIF17 RX
aplay-12249 [001] … 202.780675: snd_soc_dapm_path: I2S3 Mux ← ADMAIF16 ← ADMAIF16 RX
aplay-12249 [001] … 202.780677: snd_soc_dapm_path: I2S3 Mux ← ADMAIF15 ← ADMAIF15 RX
aplay-12249 [001] … 202.780678: snd_soc_dapm_path: I2S3 Mux ← ADMAIF14 ← ADMAIF14 RX
aplay-12249 [001] … 202.780679: snd_soc_dapm_path: I2S3 Mux ← ADMAIF13 ← ADMAIF13 RX
aplay-12249 [001] … 202.780681: snd_soc_dapm_path: I2S3 Mux ← ADMAIF12 ← ADMAIF12 RX
aplay-12249 [001] … 202.780682: snd_soc_dapm_path: I2S3 Mux ← ADMAIF11 ← ADMAIF11 RX
aplay-12249 [001] … 202.780684: snd_soc_dapm_path: I2S3 Mux ← ADX2-4 ← ADX2-4 RX
aplay-12249 [001] … 202.780685: snd_soc_dapm_path: I2S3 Mux ← ADX2-3 ← ADX2-3 RX
aplay-12249 [001] … 202.780687: snd_soc_dapm_path: I2S3 Mux ← ADX2-2 ← ADX2-2 RX
aplay-12249 [001] … 202.780688: snd_soc_dapm_path: I2S3 Mux ← ADX2-1 ← ADX2-1 RX
aplay-12249 [001] … 202.780690: snd_soc_dapm_path: I2S3 Mux ← AMX2 ← AMX2 RX
aplay-12249 [001] … 202.780691: snd_soc_dapm_path: I2S3 Mux ← ADX1-4 ← ADX1-4 RX
aplay-12249 [001] … 202.780693: snd_soc_dapm_path: I2S3 Mux ← ADX1-3 ← ADX1-3 RX
aplay-12249 [001] … 202.780695: snd_soc_dapm_path: I2S3 Mux ← ADX1-2 ← ADX1-2 RX
aplay-12249 [001] … 202.780696: snd_soc_dapm_path: I2S3 Mux ← ADX1-1 ← ADX1-1 RX
aplay-12249 [001] … 202.780698: snd_soc_dapm_path: I2S3 Mux ← AMX1 ← AMX1 RX
aplay-12249 [001] … 202.780699: snd_soc_dapm_path: I2S3 Mux ← DMIC3 ← DMIC3 RX
aplay-12249 [001] … 202.780701: snd_soc_dapm_path: I2S3 Mux ← DMIC2 ← DMIC2 RX
aplay-12249 [001] … 202.780702: snd_soc_dapm_path: I2S3 Mux ← DMIC1 ← DMIC1 RX
aplay-12249 [001] … 202.780704: snd_soc_dapm_path: I2S3 Mux ← IQC2-2 ← IQC2-2 RX
aplay-12249 [001] … 202.780705: snd_soc_dapm_path: I2S3 Mux ← IQC2-1 ← IQC2-1 RX
aplay-12249 [001] … 202.780706: snd_soc_dapm_path: I2S3 Mux ← IQC1-2 ← IQC1-2 RX
aplay-12249 [001] … 202.780708: snd_soc_dapm_path: I2S3 Mux ← IQC1-1 ← IQC1-1 RX
aplay-12249 [001] … 202.780709: snd_soc_dapm_path: I2S3 Mux ← MVC2 ← MVC2 RX
aplay-12249 [001] … 202.780711: snd_soc_dapm_path: I2S3 Mux ← MVC1 ← MVC1 RX
aplay-12249 [001] … 202.780712: snd_soc_dapm_path: I2S3 Mux ← OPE1 ← OPE1 RX
aplay-12249 [001] … 202.780714: snd_soc_dapm_path: I2S3 Mux ← AFC6 ← AFC6 RX
aplay-12249 [001] … 202.780715: snd_soc_dapm_path: I2S3 Mux ← AFC5 ← AFC5 RX
aplay-12249 [001] … 202.780716: snd_soc_dapm_path: I2S3 Mux ← AFC4 ← AFC4 RX
aplay-12249 [001] … 202.780718: snd_soc_dapm_path: I2S3 Mux ← AFC3 ← AFC3 RX
aplay-12249 [001] … 202.780719: snd_soc_dapm_path: I2S3 Mux ← AFC2 ← AFC2 RX
aplay-12249 [001] … 202.780721: snd_soc_dapm_path: I2S3 Mux ← AFC1 ← AFC1 RX
aplay-12249 [001] … 202.780722: snd_soc_dapm_path: I2S3 Mux ← MIXER1-5 ← MIXER1-5 RX
aplay-12249 [001] … 202.780724: snd_soc_dapm_path: I2S3 Mux ← MIXER1-4 ← MIXER1-4 RX
aplay-12249 [001] … 202.780725: snd_soc_dapm_path: I2S3 Mux ← MIXER1-3 ← MIXER1-3 RX
aplay-12249 [001] … 202.780727: snd_soc_dapm_path: I2S3 Mux ← MIXER1-2 ← MIXER1-2 RX
aplay-12249 [001] … 202.780728: snd_soc_dapm_path: I2S3 Mux ← MIXER1-1 ← MIXER1-1 RX
aplay-12249 [001] … 202.780730: snd_soc_dapm_path: I2S3 Mux ← SFC4 ← SFC4 RX
aplay-12249 [001] … 202.780731: snd_soc_dapm_path: I2S3 Mux ← SFC3 ← SFC3 RX
aplay-12249 [001] … 202.780732: snd_soc_dapm_path: I2S3 Mux ← SFC2 ← SFC2 RX
aplay-12249 [001] … 202.780734: snd_soc_dapm_path: I2S3 Mux ← SFC1 ← SFC1 RX
aplay-12249 [001] … 202.780735: snd_soc_dapm_path: I2S3 Mux ← I2S5 ← I2S5 RX
aplay-12249 [001] … 202.780737: snd_soc_dapm_path: I2S3 Mux ← I2S4 ← I2S4 RX
aplay-12249 [001] … 202.780738: snd_soc_dapm_path: I2S3 Mux ← I2S3 ← I2S3 RX
aplay-12249 [001] … 202.780740: snd_soc_dapm_path: I2S3 Mux ← I2S2 ← I2S2 RX
aplay-12249 [001] … 202.780741: snd_soc_dapm_path: I2S3 Mux ← I2S1 ← I2S1 RX
aplay-12249 [001] … 202.780742: snd_soc_dapm_path: I2S3 Mux ← ADMAIF10 ← ADMAIF10 RX
aplay-12249 [001] … 202.780744: snd_soc_dapm_path: I2S3 Mux ← ADMAIF9 ← ADMAIF9 RX
aplay-12249 [001] … 202.780745: snd_soc_dapm_path: I2S3 Mux ← ADMAIF8 ← ADMAIF8 RX
aplay-12249 [001] … 202.780747: snd_soc_dapm_path: I2S3 Mux ← ADMAIF7 ← ADMAIF7 RX
aplay-12249 [001] … 202.780748: snd_soc_dapm_path: I2S3 Mux ← ADMAIF6 ← ADMAIF6 RX
aplay-12249 [001] … 202.780750: snd_soc_dapm_path: I2S3 Mux ← ADMAIF5 ← ADMAIF5 RX
aplay-12249 [001] … 202.780751: snd_soc_dapm_path: I2S3 Mux ← ADMAIF4 ← ADMAIF4 RX
aplay-12249 [001] … 202.780753: snd_soc_dapm_path: I2S3 Mux ← ADMAIF3 ← ADMAIF3 RX
aplay-12249 [001] … 202.780754: snd_soc_dapm_path: I2S3 Mux ← ADMAIF2 ← ADMAIF2 RX
aplay-12249 [001] … 202.780756: snd_soc_dapm_path: *I2S3 Mux ← ADMAIF1 ← ADMAIF1 RX
aplay-12249 [001] … 202.780757: snd_soc_dapm_path: *I2S5 TX ← (direct) ← I2S5 Mux
aplay-12249 [001] … 202.780759: snd_soc_dapm_widget_power: widget=I2S5 TX val=1
aplay-12249 [001] … 202.780761: snd_soc_dapm_path: *I2S5 Transmit ← (direct) ← I2S5 TX
aplay-12249 [001] … 202.780762: snd_soc_dapm_widget_power: widget=I2S5 Transmit val=1
aplay-12249 [001] … 202.780764: snd_soc_dapm_path: *I2S5 Transmit-I2S5 CIF Receive ← (direct) ← I2S5 Transmit
aplay-12249 [001] … 202.780766: snd_soc_dapm_widget_power: widget=I2S5 Transmit-I2S5 CIF Receive val=1
aplay-12249 [001] … 202.780767: snd_soc_dapm_path: *I2S5 CIF Receive ← (direct) ← I2S5 Transmit-I2S5 CIF Receive
aplay-12249 [001] … 202.780769: snd_soc_dapm_widget_power: widget=I2S5 CIF Receive val=1
aplay-12249 [001] … 202.780771: snd_soc_dapm_path: *I2S5 CIF RX ← (direct) ← I2S5 CIF Receive
aplay-12249 [001] … 202.780773: snd_soc_dapm_widget_power: widget=I2S5 CIF RX val=1
aplay-12249 [001] … 202.780774: snd_soc_dapm_path: *I2S5 DAP TX ← (direct) ← I2S5 CIF RX
aplay-12249 [001] … 202.780776: snd_soc_dapm_widget_power: widget=I2S5 DAP TX val=1
aplay-12249 [001] … 202.780778: snd_soc_dapm_path: *I2S5 DAP Transmit ← (direct) ← I2S5 DAP TX
aplay-12249 [001] … 202.780779: snd_soc_dapm_widget_power: widget=I2S5 DAP Transmit val=1
aplay-12249 [001] … 202.780781: snd_soc_dapm_path: *I2S5 DAP Transmit-x Playback ← (direct) ← I2S5 DAP Transmit
aplay-12249 [001] … 202.780783: snd_soc_dapm_widget_power: widget=I2S5 DAP Transmit-x Playback val=1
aplay-12249 [001] … 202.780841: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 14 power, 16 path, 170 neighbour
aplay-12249 [003] … 207.797596: snd_soc_dapm_start: card=jetson-xaviernx-ape
aplay-12249 [003] … 207.797746: snd_soc_dapm_widget_power: widget=Playback 1 val=0
aplay-12249 [003] … 207.797750: snd_soc_dapm_path: *ADMAIF1 Receive ← (direct) ← Playback 1
aplay-12249 [003] … 207.797752: snd_soc_dapm_path: *ADMAIF1 Receive ← (direct) ← ADMAIF1 CIF Receive-ADMAIF1 Receive
aplay-12249 [003] … 207.797753: snd_soc_dapm_widget_power: widget=ADMAIF1 Receive val=0
aplay-12249 [003] … 207.797755: snd_soc_dapm_path: *ADMAIF1 RX ← (direct) ← ADMAIF1 Receive
aplay-12249 [003] … 207.797756: snd_soc_dapm_widget_power: widget=ADMAIF1 RX val=0
aplay-12249 [003] … 207.797761: snd_soc_dapm_path: I2S5 Mux ← ARAD1 ← ARAD1 RX
aplay-12249 [003] … 207.797762: snd_soc_dapm_path: I2S5 Mux ← ADX4-4 ← ADX4-4 RX
aplay-12249 [003] … 207.797764: snd_soc_dapm_path: I2S5 Mux ← ADX4-3 ← ADX4-3 RX
aplay-12249 [003] … 207.797766: snd_soc_dapm_path: I2S5 Mux ← ADX4-2 ← ADX4-2 RX
aplay-12249 [003] … 207.797767: snd_soc_dapm_path: I2S5 Mux ← ADX4-1 ← ADX4-1 RX
aplay-12249 [003] … 207.797769: snd_soc_dapm_path: I2S5 Mux ← AMX4 ← AMX4 RX
aplay-12249 [003] … 207.797770: snd_soc_dapm_path: I2S5 Mux ← ADX3-4 ← ADX3-4 RX
aplay-12249 [003] … 207.797771: snd_soc_dapm_path: I2S5 Mux ← ADX3-3 ← ADX3-3 RX
aplay-12249 [003] … 207.797772: snd_soc_dapm_path: I2S5 Mux ← ADX3-2 ← ADX3-2 RX
aplay-12249 [003] … 207.797774: snd_soc_dapm_path: I2S5 Mux ← ADX3-1 ← ADX3-1 RX
aplay-12249 [003] … 207.797775: snd_soc_dapm_path: I2S5 Mux ← AMX3 ← AMX3 RX
aplay-12249 [003] … 207.797776: snd_soc_dapm_path: I2S5 Mux ← ASRC1-6 ← ASRC1-6 RX
aplay-12249 [003] … 207.797778: snd_soc_dapm_path: I2S5 Mux ← ASRC1-5 ← ASRC1-5 RX
aplay-12249 [003] … 207.797779: snd_soc_dapm_path: I2S5 Mux ← ASRC1-4 ← ASRC1-4 RX
aplay-12249 [003] … 207.797781: snd_soc_dapm_path: I2S5 Mux ← ASRC1-3 ← ASRC1-3 RX
aplay-12249 [003] … 207.797782: snd_soc_dapm_path: I2S5 Mux ← ASRC1-2 ← ASRC1-2 RX
aplay-12249 [003] … 207.797783: snd_soc_dapm_path: I2S5 Mux ← ASRC1-1 ← ASRC1-1 RX
aplay-12249 [003] … 207.797784: snd_soc_dapm_path: I2S5 Mux ← I2S6 ← I2S6 RX
aplay-12249 [003] … 207.797786: snd_soc_dapm_path: I2S5 Mux ← DMIC4 ← DMIC4 RX
aplay-12249 [003] … 207.797787: snd_soc_dapm_path: I2S5 Mux ← ADMAIF20 ← ADMAIF20 RX
aplay-12249 [003] … 207.797789: snd_soc_dapm_path: I2S5 Mux ← ADMAIF19 ← ADMAIF19 RX
aplay-12249 [003] … 207.797790: snd_soc_dapm_path: I2S5 Mux ← ADMAIF18 ← ADMAIF18 RX
aplay-12249 [003] … 207.797791: snd_soc_dapm_path: I2S5 Mux ← ADMAIF17 ← ADMAIF17 RX
aplay-12249 [003] … 207.797793: snd_soc_dapm_path: I2S5 Mux ← ADMAIF16 ← ADMAIF16 RX
aplay-12249 [003] … 207.797794: snd_soc_dapm_path: I2S5 Mux ← ADMAIF15 ← ADMAIF15 RX
aplay-12249 [003] … 207.797795: snd_soc_dapm_path: I2S5 Mux ← ADMAIF14 ← ADMAIF14 RX
aplay-12249 [003] … 207.797796: snd_soc_dapm_path: I2S5 Mux ← ADMAIF13 ← ADMAIF13 RX
aplay-12249 [003] … 207.797797: snd_soc_dapm_path: I2S5 Mux ← ADMAIF12 ← ADMAIF12 RX
aplay-12249 [003] … 207.797799: snd_soc_dapm_path: I2S5 Mux ← ADMAIF11 ← ADMAIF11 RX
aplay-12249 [003] … 207.797800: snd_soc_dapm_path: I2S5 Mux ← ADX2-4 ← ADX2-4 RX
aplay-12249 [003] … 207.797801: snd_soc_dapm_path: I2S5 Mux ← ADX2-3 ← ADX2-3 RX
aplay-12249 [003] … 207.797802: snd_soc_dapm_path: I2S5 Mux ← ADX2-2 ← ADX2-2 RX
aplay-12249 [003] … 207.797804: snd_soc_dapm_path: I2S5 Mux ← ADX2-1 ← ADX2-1 RX
aplay-12249 [003] … 207.797805: snd_soc_dapm_path: I2S5 Mux ← AMX2 ← AMX2 RX
aplay-12249 [003] … 207.797806: snd_soc_dapm_path: I2S5 Mux ← ADX1-4 ← ADX1-4 RX
aplay-12249 [003] … 207.797807: snd_soc_dapm_path: I2S5 Mux ← ADX1-3 ← ADX1-3 RX
aplay-12249 [003] … 207.797809: snd_soc_dapm_path: I2S5 Mux ← ADX1-2 ← ADX1-2 RX
aplay-12249 [003] … 207.797810: snd_soc_dapm_path: I2S5 Mux ← ADX1-1 ← ADX1-1 RX
aplay-12249 [003] … 207.797811: snd_soc_dapm_path: I2S5 Mux ← AMX1 ← AMX1 RX
aplay-12249 [003] … 207.797812: snd_soc_dapm_path: I2S5 Mux ← DMIC3 ← DMIC3 RX
aplay-12249 [003] … 207.797814: snd_soc_dapm_path: I2S5 Mux ← DMIC2 ← DMIC2 RX
aplay-12249 [003] … 207.797815: snd_soc_dapm_path: I2S5 Mux ← DMIC1 ← DMIC1 RX
aplay-12249 [003] … 207.797816: snd_soc_dapm_path: I2S5 Mux ← IQC2-2 ← IQC2-2 RX
aplay-12249 [003] … 207.797818: snd_soc_dapm_path: I2S5 Mux ← IQC2-1 ← IQC2-1 RX
aplay-12249 [003] … 207.797819: snd_soc_dapm_path: I2S5 Mux ← IQC1-2 ← IQC1-2 RX
aplay-12249 [003] … 207.797820: snd_soc_dapm_path: I2S5 Mux ← IQC1-1 ← IQC1-1 RX
aplay-12249 [003] … 207.797821: snd_soc_dapm_path: I2S5 Mux ← MVC2 ← MVC2 RX
aplay-12249 [003] … 207.797823: snd_soc_dapm_path: I2S5 Mux ← MVC1 ← MVC1 RX
aplay-12249 [003] … 207.797824: snd_soc_dapm_path: I2S5 Mux ← OPE1 ← OPE1 RX
aplay-12249 [003] … 207.797825: snd_soc_dapm_path: I2S5 Mux ← AFC6 ← AFC6 RX
aplay-12249 [003] … 207.797827: snd_soc_dapm_path: I2S5 Mux ← AFC5 ← AFC5 RX
aplay-12249 [003] … 207.797828: snd_soc_dapm_path: I2S5 Mux ← AFC4 ← AFC4 RX
aplay-12249 [003] … 207.797829: snd_soc_dapm_path: I2S5 Mux ← AFC3 ← AFC3 RX
aplay-12249 [003] … 207.797830: snd_soc_dapm_path: I2S5 Mux ← AFC2 ← AFC2 RX
aplay-12249 [003] … 207.797832: snd_soc_dapm_path: I2S5 Mux ← AFC1 ← AFC1 RX
aplay-12249 [003] … 207.797833: snd_soc_dapm_path: I2S5 Mux ← MIXER1-5 ← MIXER1-5 RX
aplay-12249 [003] … 207.797863: snd_soc_dapm_path: I2S5 Mux ← MIXER1-4 ← MIXER1-4 RX
aplay-12249 [003] … 207.797865: snd_soc_dapm_path: I2S5 Mux ← MIXER1-3 ← MIXER1-3 RX
aplay-12249 [003] … 207.797867: snd_soc_dapm_path: I2S5 Mux ← MIXER1-2 ← MIXER1-2 RX
aplay-12249 [003] … 207.797868: snd_soc_dapm_path: I2S5 Mux ← MIXER1-1 ← MIXER1-1 RX
aplay-12249 [003] … 207.797870: snd_soc_dapm_path: I2S5 Mux ← SFC4 ← SFC4 RX
aplay-12249 [003] … 207.797871: snd_soc_dapm_path: I2S5 Mux ← SFC3 ← SFC3 RX
aplay-12249 [003] … 207.797872: snd_soc_dapm_path: I2S5 Mux ← SFC2 ← SFC2 RX
aplay-12249 [003] … 207.797874: snd_soc_dapm_path: I2S5 Mux ← SFC1 ← SFC1 RX
aplay-12249 [003] … 207.797875: snd_soc_dapm_path: I2S5 Mux ← I2S5 ← I2S5 RX
aplay-12249 [003] … 207.797876: snd_soc_dapm_path: I2S5 Mux ← I2S4 ← I2S4 RX
aplay-12249 [003] … 207.797877: snd_soc_dapm_path: I2S5 Mux ← I2S3 ← I2S3 RX
aplay-12249 [003] … 207.797879: snd_soc_dapm_path: I2S5 Mux ← I2S2 ← I2S2 RX
aplay-12249 [003] … 207.797880: snd_soc_dapm_path: I2S5 Mux ← I2S1 ← I2S1 RX
aplay-12249 [003] … 207.797881: snd_soc_dapm_path: I2S5 Mux ← ADMAIF10 ← ADMAIF10 RX
aplay-12249 [003] … 207.797883: snd_soc_dapm_path: I2S5 Mux ← ADMAIF9 ← ADMAIF9 RX
aplay-12249 [003] … 207.797884: snd_soc_dapm_path: I2S5 Mux ← ADMAIF8 ← ADMAIF8 RX
aplay-12249 [003] … 207.797885: snd_soc_dapm_path: I2S5 Mux ← ADMAIF7 ← ADMAIF7 RX
aplay-12249 [003] … 207.797886: snd_soc_dapm_path: I2S5 Mux ← ADMAIF6 ← ADMAIF6 RX
aplay-12249 [003] … 207.797888: snd_soc_dapm_path: I2S5 Mux ← ADMAIF5 ← ADMAIF5 RX
aplay-12249 [003] … 207.797889: snd_soc_dapm_path: I2S5 Mux ← ADMAIF4 ← ADMAIF4 RX
aplay-12249 [003] … 207.797890: snd_soc_dapm_path: I2S5 Mux ← ADMAIF3 ← ADMAIF3 RX
aplay-12249 [003] … 207.797891: snd_soc_dapm_path: I2S5 Mux ← ADMAIF2 ← ADMAIF2 RX
aplay-12249 [003] … 207.797892: snd_soc_dapm_path: *I2S5 Mux ← ADMAIF1 ← ADMAIF1 RX
aplay-12249 [003] … 207.797894: snd_soc_dapm_widget_power: widget=I2S5 Mux val=0
aplay-12249 [003] … 207.797896: snd_soc_dapm_path: *I2S5 TX ← (direct) ← I2S5 Mux
aplay-12249 [003] … 207.797897: snd_soc_dapm_widget_power: widget=I2S5 TX val=0
aplay-12249 [003] … 207.797899: snd_soc_dapm_path: *I2S5 Transmit ← (direct) ← I2S5 TX
aplay-12249 [003] … 207.797900: snd_soc_dapm_widget_power: widget=I2S5 Transmit val=0
aplay-12249 [003] … 207.797902: snd_soc_dapm_path: *I2S5 Transmit-I2S5 CIF Receive ← (direct) ← I2S5 Transmit
aplay-12249 [003] … 207.797903: snd_soc_dapm_widget_power: widget=I2S5 Transmit-I2S5 CIF Receive val=0
aplay-12249 [003] … 207.797905: snd_soc_dapm_path: *I2S5 CIF Receive ← (direct) ← I2S5 Transmit-I2S5 CIF Receive
aplay-12249 [003] … 207.797906: snd_soc_dapm_widget_power: widget=I2S5 CIF Receive val=0
aplay-12249 [003] … 207.797908: snd_soc_dapm_path: *I2S5 CIF RX ← (direct) ← I2S5 CIF Receive
aplay-12249 [003] … 207.797909: snd_soc_dapm_widget_power: widget=I2S5 CIF RX val=0
aplay-12249 [003] … 207.797911: snd_soc_dapm_path: *I2S5 DAP TX ← (direct) ← I2S5 CIF RX
aplay-12249 [003] … 207.797912: snd_soc_dapm_widget_power: widget=I2S5 DAP TX val=0
aplay-12249 [003] … 207.797913: snd_soc_dapm_path: *I2S5 DAP Transmit ← (direct) ← I2S5 DAP TX
aplay-12249 [003] … 207.797915: snd_soc_dapm_widget_power: widget=I2S5 DAP Transmit val=0
aplay-12249 [003] … 207.797916: snd_soc_dapm_path: *I2S5 DAP Transmit-x Playback ← (direct) ← I2S5 DAP Transmit
aplay-12249 [003] … 207.797936: snd_soc_dapm_widget_power: widget=I2S5 DAP Transmit-x Playback val=0
aplay-12249 [003] … 207.797938: snd_soc_dapm_path: *x Playback ← (direct) ← x OUT
aplay-12249 [003] … 207.797939: snd_soc_dapm_path: *x OUT ← (direct) ← x Playback
aplay-12249 [003] … 207.797941: snd_soc_dapm_path: *x Playback ← (direct) ← I2S5 DAP Transmit-x Playback
aplay-12249 [003] … 207.798116: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 13 power, 15 path, 94 neighbour

We use I2S3 instance. Does the audio routing look fine?

For recording, as I had mentioned we are getting an error.
amixer -c jetsonxaviernxa cset name=“ADMAIF1 Mux” I2S3
arecord -f S16_LE -d 10 -r 16000 --device=“hw:jetsonxaviernxa,0” test-mic.wav
Recording WAVE ‘test-mic.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
arecord: pcm_read:2103: read error: Input/output error

Below is the debug log for the same,
amixer-15512 [002] … 430.067835: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-15512 [002] … 430.067920: snd_soc_dapm_path: ADMAIF1 Mux ← ARAD1 ← ARAD1 RX
amixer-15512 [002] … 430.067922: snd_soc_dapm_path: ADMAIF1 Mux ← ADX4-4 ← ADX4-4 RX
amixer-15512 [002] … 430.067923: snd_soc_dapm_path: ADMAIF1 Mux ← ADX4-3 ← ADX4-3 RX
amixer-15512 [002] … 430.067925: snd_soc_dapm_path: ADMAIF1 Mux ← ADX4-2 ← ADX4-2 RX
amixer-15512 [002] … 430.067926: snd_soc_dapm_path: ADMAIF1 Mux ← ADX4-1 ← ADX4-1 RX
amixer-15512 [002] … 430.067927: snd_soc_dapm_path: ADMAIF1 Mux ← AMX4 ← AMX4 RX
amixer-15512 [002] … 430.067929: snd_soc_dapm_path: ADMAIF1 Mux ← ADX3-4 ← ADX3-4 RX
amixer-15512 [002] … 430.067930: snd_soc_dapm_path: ADMAIF1 Mux ← ADX3-3 ← ADX3-3 RX
amixer-15512 [002] … 430.067957: snd_soc_dapm_path: ADMAIF1 Mux ← ADX3-2 ← ADX3-2 RX
amixer-15512 [002] … 430.067958: snd_soc_dapm_path: ADMAIF1 Mux ← ADX3-1 ← ADX3-1 RX
amixer-15512 [002] … 430.067960: snd_soc_dapm_path: ADMAIF1 Mux ← AMX3 ← AMX3 RX
amixer-15512 [002] … 430.067961: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-6 ← ASRC1-6 RX
amixer-15512 [002] … 430.067962: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-5 ← ASRC1-5 RX
amixer-15512 [002] … 430.067964: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-4 ← ASRC1-4 RX
amixer-15512 [002] … 430.067965: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-3 ← ASRC1-3 RX
amixer-15512 [002] … 430.067966: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-2 ← ASRC1-2 RX
amixer-15512 [002] … 430.067968: snd_soc_dapm_path: ADMAIF1 Mux ← ASRC1-1 ← ASRC1-1 RX
amixer-15512 [002] … 430.067969: snd_soc_dapm_path: ADMAIF1 Mux ← I2S6 ← I2S6 RX
amixer-15512 [002] … 430.067970: snd_soc_dapm_path: ADMAIF1 Mux ← DMIC4 ← DMIC4 RX
amixer-15512 [002] … 430.067972: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF20 ← ADMAIF20 RX
amixer-15512 [002] … 430.067973: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF19 ← ADMAIF19 RX
amixer-15512 [002] … 430.067974: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF18 ← ADMAIF18 RX
amixer-15512 [002] … 430.067976: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF17 ← ADMAIF17 RX
amixer-15512 [002] … 430.067977: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF16 ← ADMAIF16 RX
amixer-15512 [002] … 430.067978: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF15 ← ADMAIF15 RX
amixer-15512 [002] … 430.067979: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF14 ← ADMAIF14 RX
amixer-15512 [002] … 430.067981: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF13 ← ADMAIF13 RX
amixer-15512 [002] … 430.067982: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF12 ← ADMAIF12 RX
amixer-15512 [002] … 430.067983: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF11 ← ADMAIF11 RX
amixer-15512 [002] … 430.067984: snd_soc_dapm_path: ADMAIF1 Mux ← ADX2-4 ← ADX2-4 RX
amixer-15512 [002] … 430.067986: snd_soc_dapm_path: ADMAIF1 Mux ← ADX2-3 ← ADX2-3 RX
amixer-15512 [002] … 430.067987: snd_soc_dapm_path: ADMAIF1 Mux ← ADX2-2 ← ADX2-2 RX
amixer-15512 [002] … 430.067988: snd_soc_dapm_path: ADMAIF1 Mux ← ADX2-1 ← ADX2-1 RX
amixer-15512 [002] … 430.067990: snd_soc_dapm_path: ADMAIF1 Mux ← AMX2 ← AMX2 RX
amixer-15512 [002] … 430.067991: snd_soc_dapm_path: ADMAIF1 Mux ← ADX1-4 ← ADX1-4 RX
amixer-15512 [002] … 430.067992: snd_soc_dapm_path: ADMAIF1 Mux ← ADX1-3 ← ADX1-3 RX
amixer-15512 [002] … 430.067993: snd_soc_dapm_path: ADMAIF1 Mux ← ADX1-2 ← ADX1-2 RX
amixer-15512 [002] … 430.067995: snd_soc_dapm_path: ADMAIF1 Mux ← ADX1-1 ← ADX1-1 RX
amixer-15512 [002] … 430.067996: snd_soc_dapm_path: ADMAIF1 Mux ← AMX1 ← AMX1 RX
amixer-15512 [002] … 430.067997: snd_soc_dapm_path: ADMAIF1 Mux ← DMIC3 ← DMIC3 RX
amixer-15512 [002] … 430.067998: snd_soc_dapm_path: ADMAIF1 Mux ← DMIC2 ← DMIC2 RX
amixer-15512 [002] … 430.068000: snd_soc_dapm_path: ADMAIF1 Mux ← DMIC1 ← DMIC1 RX
amixer-15512 [002] … 430.068001: snd_soc_dapm_path: ADMAIF1 Mux ← IQC2-2 ← IQC2-2 RX
amixer-15512 [002] … 430.068002: snd_soc_dapm_path: ADMAIF1 Mux ← IQC2-1 ← IQC2-1 RX
amixer-15512 [002] … 430.068003: snd_soc_dapm_path: ADMAIF1 Mux ← IQC1-2 ← IQC1-2 RX
amixer-15512 [002] … 430.068005: snd_soc_dapm_path: ADMAIF1 Mux ← IQC1-1 ← IQC1-1 RX
amixer-15512 [002] … 430.068006: snd_soc_dapm_path: ADMAIF1 Mux ← MVC2 ← MVC2 RX
amixer-15512 [002] … 430.068007: snd_soc_dapm_path: ADMAIF1 Mux ← MVC1 ← MVC1 RX
amixer-15512 [002] … 430.068009: snd_soc_dapm_path: ADMAIF1 Mux ← OPE1 ← OPE1 RX
amixer-15512 [002] … 430.068010: snd_soc_dapm_path: ADMAIF1 Mux ← AFC6 ← AFC6 RX
amixer-15512 [002] … 430.068011: snd_soc_dapm_path: ADMAIF1 Mux ← AFC5 ← AFC5 RX
amixer-15512 [002] … 430.068012: snd_soc_dapm_path: ADMAIF1 Mux ← AFC4 ← AFC4 RX
amixer-15512 [002] … 430.068014: snd_soc_dapm_path: ADMAIF1 Mux ← AFC3 ← AFC3 RX
amixer-15512 [002] … 430.068015: snd_soc_dapm_path: ADMAIF1 Mux ← AFC2 ← AFC2 RX
amixer-15512 [002] … 430.068016: snd_soc_dapm_path: ADMAIF1 Mux ← AFC1 ← AFC1 RX
amixer-15512 [002] … 430.068017: snd_soc_dapm_path: ADMAIF1 Mux ← MIXER1-5 ← MIXER1-5 RX
amixer-15512 [002] … 430.068019: snd_soc_dapm_path: ADMAIF1 Mux ← MIXER1-4 ← MIXER1-4 RX
amixer-15512 [002] … 430.068020: snd_soc_dapm_path: ADMAIF1 Mux ← MIXER1-3 ← MIXER1-3 RX
amixer-15512 [002] … 430.068021: snd_soc_dapm_path: ADMAIF1 Mux ← MIXER1-2 ← MIXER1-2 RX
amixer-15512 [002] … 430.068024: snd_soc_dapm_path: ADMAIF1 Mux ← MIXER1-1 ← MIXER1-1 RX
amixer-15512 [002] … 430.068025: snd_soc_dapm_path: ADMAIF1 Mux ← SFC4 ← SFC4 RX
amixer-15512 [002] … 430.068026: snd_soc_dapm_path: ADMAIF1 Mux ← SFC3 ← SFC3 RX
amixer-15512 [002] … 430.068028: snd_soc_dapm_path: ADMAIF1 Mux ← SFC2 ← SFC2 RX
amixer-15512 [002] … 430.068029: snd_soc_dapm_path: ADMAIF1 Mux ← SFC1 ← SFC1 RX
amixer-15512 [002] … 430.068030: snd_soc_dapm_path: ADMAIF1 Mux ← I2S5 ← I2S5 RX
amixer-15512 [002] … 430.068031: snd_soc_dapm_path: ADMAIF1 Mux ← I2S4 ← I2S4 RX
amixer-15512 [002] … 430.068033: snd_soc_dapm_path: *ADMAIF1 Mux ← I2S3 ← I2S3 RX
amixer-15512 [002] … 430.068034: snd_soc_dapm_path: ADMAIF1 Mux ← I2S2 ← I2S2 RX
amixer-15512 [002] … 430.068035: snd_soc_dapm_path: ADMAIF1 Mux ← I2S1 ← I2S1 RX
amixer-15512 [002] … 430.068036: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF10 ← ADMAIF10 RX
amixer-15512 [002] … 430.068038: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF9 ← ADMAIF9 RX
amixer-15512 [002] … 430.068039: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF8 ← ADMAIF8 RX
amixer-15512 [002] … 430.068040: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF7 ← ADMAIF7 RX
amixer-15512 [002] … 430.068046: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF6 ← ADMAIF6 RX
amixer-15512 [002] … 430.068048: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF5 ← ADMAIF5 RX
amixer-15512 [002] … 430.068049: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF4 ← ADMAIF4 RX
amixer-15512 [002] … 430.068050: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF3 ← ADMAIF3 RX
amixer-15512 [002] … 430.068051: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF2 ← ADMAIF2 RX
amixer-15512 [002] … 430.068053: snd_soc_dapm_path: ADMAIF1 Mux ← ADMAIF1 ← ADMAIF1 RX
amixer-15512 [002] … 430.068105: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 3 power, 1 path, 79 neighbour
amixer-15512 [002] … 430.068142: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-15512 [002] … 430.068194: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
amixer-15512 [002] … 430.068206: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-15512 [002] … 430.068256: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
amixer-15512 [002] … 430.068267: snd_soc_dapm_start: card=jetson-xaviernx-ape
amixer-15512 [002] … 430.068324: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
arecord-15722 [000] … 704.546664: snd_soc_dapm_start: card=jetson-xaviernx-ape
arecord-15722 [000] … 704.546769: snd_soc_dapm_path: *Capture 1 ← (direct) ← ADMAIF1 Transmit
arecord-15722 [000] … 704.546772: snd_soc_dapm_path: *ADMAIF1 Transmit ← (direct) ← ADMAIF1 TX
arecord-15722 [000] … 704.546773: snd_soc_dapm_path: *ADMAIF1 TX ← (direct) ← ADMAIF1 Mux
arecord-15722 [000] … 704.546843: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 2 power, 5 path, 3 neighbour
arecord-15722 [000] … 714.579194: snd_soc_dapm_start: card=jetson-xaviernx-ape
arecord-15722 [000] … 714.579284: snd_soc_dapm_path: *ADMAIF1 Transmit → (direct) → Capture 1
arecord-15722 [000] … 714.579287: snd_soc_dapm_path: *ADMAIF1 Transmit → (direct) → ADMAIF1 Transmit-ADMAIF1 CIF Transmit
arecord-15722 [000] … 714.579364: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 2 power, 2 path, 2 neighbour

@jonathanh

Hi,

Probing I2S1_SCLK we do not see any clock. It is always 0.
Please find the pinctrl.

cat /sys/kernel/debug/tegra_pinctrl_reg | grep dap3
Bank: 0 Reg: 0x02431048 Val: 0x00000440 → dap3_fs_pt4
Bank: 0 Reg: 0x02431050 Val: 0x00000450 → dap3_din_pt3
Bank: 0 Reg: 0x02431058 Val: 0x00000400 → dap3_dout_pt2
Bank: 0 Reg: 0x02431060 Val: 0x00000440 → dap3_sclk_pt1

Hello!

For the playback case, make sure that you don’t have the I2S5 muxed to the ADMAIF1 as well …

$ amixer -c jetsonxaviernxa cset name=“I2S5 Mux” None
$ amixer -c jetsonxaviernxa cset name=“I2S3 Mux” ADMAIF1

On the record side the route is not complete because as you can see the DMA interface is not routed to the I2S and codec …

arecord-15722 [000] … 714.579284: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> Capture 1
arecord-15722 [000] … 714.579287: snd_soc_dapm_path: *ADMAIF1 Transmit -> (direct) -> ADMAIF1 Transmit-ADMAIF1 CIF Transmit

If you do something like this you can see the connections between all the dapm widgets …

dapm_dirs=$(sudo find /sys/kernel/debug/asoc -type d -name dapm)

for dir in ${dapm_dirs}; do
    sudo find ${dir} -type f -exec echo {} \; -exec cat {} \;
done

Regards,
Jon

Hi Jonathan,

I guess the play doesnt work too.

root@localhost:/home/nvidia# sudo cat /sys/kernel/debug/tracing/trace
tracer: nop

entries-in-buffer/entries-written: 103/103 #P:6

                          _-----=> irqs-off
                         / _----=> need-resched
                        | / _---=> hardirq/softirq
                        || / _--=> preempt-depth
                        ||| /     delay
       TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
          | |       |   ||||       |         |
      amixer-10777 [000] ....   153.775737: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-10777 [000] ....   153.775822: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> DSPK2 Mux
      amixer-10777 [000] ....   153.775823: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> DSPK1 Mux
      amixer-10777 [000] ....   153.775853: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-7 Mux
      amixer-10777 [000] ....   153.775855: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-6 Mux
      amixer-10777 [000] ....   153.775857: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-5 Mux
      amixer-10777 [000] ....   153.775858: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-4 Mux
      amixer-10777 [000] ....   153.775859: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-3 Mux
      amixer-10777 [000] ....   153.775861: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-2 Mux
      amixer-10777 [000] ....   153.775862: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ASRC1-1 Mux
      amixer-10777 [000] ....   153.775864: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S6 Mux
      amixer-10777 [000] ....   153.775865: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADX4 Mux
      amixer-10777 [000] ....   153.775866: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADX3 Mux
      amixer-10777 [000] ....   153.775867: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX4-4 Mux
      amixer-10777 [000] ....   153.775869: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX4-3 Mux
      amixer-10777 [000] ....   153.775870: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX4-2 Mux
      amixer-10777 [000] ....   153.775871: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX4-1 Mux
      amixer-10777 [000] ....   153.775873: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX3-4 Mux
      amixer-10777 [000] ....   153.775874: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX3-3 Mux
      amixer-10777 [000] ....   153.775875: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX3-2 Mux
      amixer-10777 [000] ....   153.775877: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX3-1 Mux
      amixer-10777 [000] ....   153.775878: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF20 Mux
      amixer-10777 [000] ....   153.775879: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF19 Mux
      amixer-10777 [000] ....   153.775881: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF18 Mux
      amixer-10777 [000] ....   153.775882: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF17 Mux
      amixer-10777 [000] ....   153.775883: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF16 Mux
      amixer-10777 [000] ....   153.775885: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF15 Mux
      amixer-10777 [000] ....   153.775886: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF14 Mux
      amixer-10777 [000] ....   153.775887: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF13 Mux
      amixer-10777 [000] ....   153.775888: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF12 Mux
      amixer-10777 [000] ....   153.775890: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF11 Mux
      amixer-10777 [000] ....   153.775891: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADX2 Mux
      amixer-10777 [000] ....   153.775892: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADX1 Mux
      amixer-10777 [000] ....   153.775894: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX2-4 Mux
      amixer-10777 [000] ....   153.775895: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX2-3 Mux
      amixer-10777 [000] ....   153.775896: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX2-2 Mux
      amixer-10777 [000] ....   153.775898: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX2-1 Mux
      amixer-10777 [000] ....   153.775899: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX1-4 Mux
      amixer-10777 [000] ....   153.775901: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX1-3 Mux
      amixer-10777 [000] ....   153.775902: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX1-2 Mux
      amixer-10777 [000] ....   153.775903: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AMX1-1 Mux
      amixer-10777 [000] ....   153.775905: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MVC2 Mux
      amixer-10777 [000] ....   153.775906: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MVC1 Mux
      amixer-10777 [000] ....   153.775907: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> SPKPROT1 Mux
      amixer-10777 [000] ....   153.775909: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> OPE1 Mux
      amixer-10777 [000] ....   153.775910: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC6 Mux
      amixer-10777 [000] ....   153.775911: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC5 Mux
      amixer-10777 [000] ....   153.775913: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC4 Mux
      amixer-10777 [000] ....   153.775914: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC3 Mux
      amixer-10777 [000] ....   153.775915: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC2 Mux
      amixer-10777 [000] ....   153.775916: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> AFC1 Mux
      amixer-10777 [000] ....   153.775918: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-10 Mux
      amixer-10777 [000] ....   153.775919: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-9 Mux
      amixer-10777 [000] ....   153.775920: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-8 Mux
      amixer-10777 [000] ....   153.775922: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-7 Mux
      amixer-10777 [000] ....   153.775923: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-6 Mux
      amixer-10777 [000] ....   153.775924: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-5 Mux
      amixer-10777 [000] ....   153.775926: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-4 Mux
      amixer-10777 [000] ....   153.775927: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-3 Mux
      amixer-10777 [000] ....   153.775928: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-2 Mux
      amixer-10777 [000] ....   153.775930: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> MIXER1-1 Mux
      amixer-10777 [000] ....   153.775932: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> SFC4 Mux
      amixer-10777 [000] ....   153.775933: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> SFC3 Mux
      amixer-10777 [000] ....   153.775935: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> SFC2 Mux
      amixer-10777 [000] ....   153.775936: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> SFC1 Mux
      amixer-10777 [000] ....   153.775937: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S5 Mux
      amixer-10777 [000] ....   153.775938: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S4 Mux
      amixer-10777 [000] ....   153.775940: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S3 Mux
      amixer-10777 [000] ....   153.775941: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S2 Mux
      amixer-10777 [000] ....   153.775942: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> I2S1 Mux
      amixer-10777 [000] ....   153.775944: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF10 Mux
      amixer-10777 [000] ....   153.775945: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF9 Mux
      amixer-10777 [000] ....   153.775947: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF8 Mux
      amixer-10777 [000] ....   153.775948: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF7 Mux
      amixer-10777 [000] ....   153.775949: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF6 Mux
      amixer-10777 [000] ....   153.775950: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF5 Mux
      amixer-10777 [000] ....   153.775952: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF4 Mux
      amixer-10777 [000] ....   153.775953: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF3 Mux
      amixer-10777 [000] ....   153.775954: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF2 Mux
      amixer-10777 [000] ....   153.775956: snd_soc_dapm_path:  ADMAIF1 RX -> ADMAIF1 -> ADMAIF1 Mux
      amixer-10777 [000] ....   153.776008: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 2 power, 1 path, 79 neighbour
      amixer-10777 [000] ....   153.776047: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-10777 [000] ....   153.776098: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
      amixer-10777 [000] ....   153.776110: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-10777 [000] ....   153.776160: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
      amixer-10777 [000] ....   153.776172: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-10777 [000] ....   153.776334: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
      amixer-11289 [002] ....   174.629911: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-11289 [002] ....   174.630122: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 3 power, 0 path, 0 neighbour
      amixer-11289 [002] ....   174.630192: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-11289 [002] ....   174.630242: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
      amixer-11289 [002] ....   174.630256: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-11289 [002] ....   174.630331: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
      amixer-11289 [002] ....   174.630360: snd_soc_dapm_start: card=jetson-xaviernx-ape
      amixer-11289 [002] ....   174.630409: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 0 power, 0 path, 0 neighbour
       aplay-11332 [001] ....   228.738486: snd_soc_dapm_start: card=jetson-xaviernx-ape
       aplay-11332 [001] ....   228.738575: snd_soc_dapm_path: *Playback 1 -> (direct) -> ADMAIF1 Receive
       aplay-11332 [001] ....   228.738578: snd_soc_dapm_path: *ADMAIF1 Receive -> (direct) -> ADMAIF1 RX
       aplay-11332 [001] ....   228.738633: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 2 power, 4 path, 2 neighbour
       aplay-11332 [000] ....   228.785314: snd_soc_dapm_start: card=jetson-xaviernx-ape
       aplay-11332 [000] ....   228.785420: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- Playback 1
       aplay-11332 [000] ....   228.785423: snd_soc_dapm_path: *ADMAIF1 Receive <- (direct) <- ADMAIF1 CIF Receive-ADMAIF1 Receive
       aplay-11332 [000] ....   228.785477: snd_soc_dapm_walk_done: jetson-xaviernx-ape: checks 2 power, 2 path, 2 neighbour

Hello!

Yes that is what I expected. Given that the codec driver does not have any DAPM widgets and route defined by default, I am wondering if you actually just need the I2S interface to drive the pins? If so, then you should be able to using the default dummy spdif codec in the ‘nvidia,dai-link-3’ and not modify this.

The only reason you would need to add the codec to the route is if there is something that needs to be enabled in the codec when the I2S interface is turned on.

Regards,
Jon

Hi Jonathan,

So are you telling to retain the nvidia,dai-link-3 node as it is?

            nvidia,dai-link-3 {
                    link-name = "spdif-dit-2";
                    cpu-dai = <&tegra_i2s3>;
                    codec-dai = <&spdif_dit2>;
                    cpu-dai-name = "I2S3";
                    codec-dai-name = "dit-hifi";
                    format = "i2s";
                    bit-format = "s16_le";
                    srate = <48000>;
                    num-channel = <2>;
                    ignore_suspend;
                    name-prefix = "z";
                    status = "okay";
            };

?

Hello!

Yes, I was wondering if we could leave the node as-is. There are some simple I2S codecs that do not require any configuration at runtime, however, looking again at the driver I do see it has a hw_params callback and so we need to ensure that this gets called when playback/capture is started. So no we cannot leave the dai-link-3 node as it is and we need to modify like you have done. So we just need to figure out what is wrong with the route.

Jon

Hi Jonathan,

Awesome! It works.

I left the node as it is. We were able to get the I2S signals. The recorded audio is not proper. We are verifying it.

Thankyou for addressing our queries.

Hi Jonathan,

I had left the node as it is. And i was able to get the I2S signals while recording and playing. But the recorded audio is not proper. We couldn’t verify the played audio yet.

hw_params is not getting called on playback/capture.

Hello!

That is good news. Yes I think that we want hw_params to be called to set the format correctly. To do that, we would need to modify the dai-link and figure out why the route is not completed. In the case where it does not work with the modified dai-link, if you could share the output from the following, we might be able to see what is going wrong …

dapm_dirs=$(sudo find /sys/kernel/debug/asoc -type d -name dapm)

for dir in ${dapm_dirs}; do
    sudo find ${dir} -type f -exec echo {} \; -exec cat {} \;
done

Jon

Hi Jonathan,

I modified the dai-link, added the component driver parameter in driver, retained the audio routing configuration in device tree as such. It looks like its working now.

            nvidia,audio-routing =
                   "x Headphone",          "x OUT",
                   "x IN",                 "x Mic",
                   "y Headphone",          "y OUT",
                   "y IN",                 "y Mic",
                   "z Headphone",          "z OUT",
                   "z IN",                 "z Mic",
                   "m Headphone",          "m OUT",
                   "m IN",                 "m Mic",
                   "n Headphone",          "n OUT",
                   "n IN",                 "n Mic",
                   "o Headphone",          "o OUT",
                   "o IN",                 "o Mic",
                   "a IN",                 "a Mic",
                   "b IN",                 "b Mic",
                   "c IN",                 "c Mic",
                   "d IN",                 "d Mic",
                   "d1 Headphone",         "d1 OUT",
                   "d2 Headphone",         "d2 OUT";

            nvidia,dai-link-3 {
                    link-name = "zl380tw0-playback";
                    codec-dai = <&codec>;
                    codec-dai-name = "zl380tw0-hifi";
                    cpu-dai-name = "I2S3";
            };

static const struct snd_soc_dapm_widget dit_widgets = {
SND_SOC_DAPM_OUTPUT(“OUT”),
SND_SOC_DAPM_INPUT(“IN”),
};

static const struct snd_soc_dapm_route dit_routes = {
{ “OUT”, NULL, “Playback” },
{ “Capture”, NULL, “IN” },
};

static struct snd_soc_codec_driver soc_codec_dev_zl380tw = {
.component_driver = {
.dapm_widgets = dit_widgets,
.num_dapm_widgets = ARRAY_SIZE(dit_widgets),
.dapm_routes = dit_routes,
.num_dapm_routes = ARRAY_SIZE(dit_routes),
},

We tried probing the I2S lines while aplaying. We get clock,ws and data.

But while recording, we get a blank wav file. Tried probing the I2S lines. We get only the clock and ws. No data is obtained.

Hello!

Sounds like you are making good progress. Previously you mentioned that the pinmux for din is …

Bank: 0 Reg: 0x02431050 Val: 0x00000450 -> dap3_din_pt3

This has the input-enable set for the DIN pin and so this configuration looks good. From what you are saying it should like the codec is not outputing any data, if this is the case, then you need to review the codec configuration to see if it is configured correctly.

Regards,
Jon

Hi Jonathan,

Thankyou for your reply.
We are looking into the codec configuration.

We see the below error in dmesg

[ 2.080820] tegra-asoc: sound: ASoC: CODEC DAI zl380tw0-hifi not registered
[ 2.081072] tegra-asoc: sound: snd_soc_register_card failed (-517)

Why is it so?

Hello!

The error code -517 is EPROBE_DEFER and simply means that a resource that the codec needs (such as a clock) is not available yet and so retry the probe of the codec again later. As long as the codec is eventually probed successfully you can ignore these warnings. I recently sent a patch to silence these warnings on more recent kernels because they are mis-leading.

Regards,
Jon

Hi Jonathan,

Thankyou Jonathan for all help. We are able to record and play audio.