This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: arecord: pcm_read:2221: read error: Input/output error

Part Number: AM623
Other Parts Discussed in Thread: PCM3168A, TS3A227E, PCM3060, TAS2764, TPA6130A2, TAS5805M, PCM5102A, PCM1681, TAS5086, TAS2562, TAS2770, TAS2552, PCM1789, TAS2781, TAS2780, TAS6424, TLV320AIC23, AM62P

Tool/software:

Hi, TI expert!

I have a development environment for am6234, with our own evaluation board.
The software SDK version is PROCESSOR-SDK-LINUX-RT-AM62X-10.01.10.04.
The model of the audio codec chip is TLV320AIC3101IRHBT.

Set the codec chip as follows:

root@AM62x:~# amixer cset name='Left PGA Mixer Line1L Switch' off
numid=61,iface=MIXER,name='Left PGA Mixer Line1L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Right PGA Mixer Line1L Switch' off
numid=68,iface=MIXER,name='Right PGA Mixer Line1L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Left PGA Mixer Line1R Switch' off
numid=62,iface=MIXER,name='Left PGA Mixer Line1R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Right PGA Mixer Line1R Switch' off
numid=67,iface=MIXER,name='Right PGA Mixer Line1R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Left PGA Mixer Line2L Switch' off
numid=63,iface=MIXER,name='Left PGA Mixer Line2L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Right PGA Mixer Line2R Switch' off
numid=69,iface=MIXER,name='Right PGA Mixer Line2R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Right PGA Mixer Mic3L Switch' off
numid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Left PGA Mixer Mic3L Switch' off
numid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~# amixer cset name='Right PGA Mixer Mic3R Switch' on
numid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
root@AM62x:~# amixer cset name='Left PGA Mixer Mic3R Switch' on
numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
root@AM62x:~#
root@AM62x:~# amixer cset name='PGA Capture Switch' on,on
numid=49,iface=MIXER,name='PGA Capture Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
root@AM62x:~# amixer cset name='PGA Capture Volume' 119,119
numid=48,iface=MIXER,name='PGA Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=119,step=0
  : values=119,119
  | dBscale-min=0.00dB,step=0.50dB,mute=0
root@AM62x:~#
root@AM62x:~# amixer cset name='AGC Switch' on,on
numid=40,iface=MIXER,name='AGC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
root@AM62x:~# amixer cset name='ADC HPF Cut-off' 3,3
numid=50,iface=MIXER,name='ADC HPF Cut-off'
  ; type=ENUMERATED,access=rw------,values=2,items=4
  ; Item #0 'Disabled'
  ; Item #1 '0.0045xFs'
  ; Item #2 '0.0125xFs'
  ; Item #3 '0.025xFs'
  : values=3,3

After performing the recording operation below, the recording cannot be performed normally and the error message above appears:

root@AM62x:~# arecord -D hw:0,0 -f S16_LE -c 2 -r 48000 -d 10 -v -v -v record_48k.wav
Recording WAVE 'record_48k.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Hardware PCM card 0 'AM62x-SKEVM-SLAVE' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 24000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 24000
  silence_threshold: 0
  silence_size : 0
  boundary     : 6755399441055744000
  appl_ptr     : 0
  hw_ptr       : 0
Max peak (12000 samples): 0x00008000 #################### 100%
arecord: pcm_read:2221: read error: Input/output error

But when the sampling rate is set to 44100, recording can be done and I didn't see the error above:

root@AM62x:~# arecord -D hw:0,0 -f S16_LE -c 2 -r 44100 -d 10 -v -v -v record_44k.wav
Recording WAVE 'record_44k.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Hardware PCM card 0 'AM62x-SKEVM-SLAVE' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 22052
  period_size  : 5513
  period_time  : 125011
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 5513
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 22052
  silence_threshold: 0
  silence_size : 0
  boundary     : 6207086186423386112
  appl_ptr     : 0
  hw_ptr       : 0
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00001094 ###                  12%
Max peak (11026 samples): 0x00000e30 ###                  11%
Max peak (11026 samples): 0x000010bc ###                  13%
Max peak (11026 samples): 0x00000de4 ###                  10%
Max peak (11026 samples): 0x00000d7c ###                  10%
Max peak (11026 samples): 0x00000ebb ###                  11%
Max peak (11026 samples): 0x00000ebf ###                  11%
Max peak (11026 samples): 0x00000e81 ###                  11%
Max peak (11026 samples): 0x00000d10 ###                  10%
Max peak (11026 samples): 0x00000e26 ###                  11%
Max peak (11026 samples): 0x00000f3f ###                  11%
Max peak (11026 samples): 0x00000e49 ###                  11%
Max peak (11026 samples): 0x00000fc1 ###                  12%
Max peak (11026 samples): 0x00000e77 ###                  11%
Max peak (11026 samples): 0x000010f9 ###                  13%
Max peak (11026 samples): 0x00000ee7 ###                  11%
Max peak (11026 samples): 0x0000106b ###                  12%
Max peak (11026 samples): 0x00007dda #################### 98%
Max peak (11026 samples): 0x00003b77 ##########           46%
Max peak (11026 samples): 0x00003a81 ##########           45%
Max peak (11026 samples): 0x000017fa ####                 18%
Max peak (11026 samples): 0x0000284d #######              31%
Max peak (11026 samples): 0x0000679c #################    80%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00005280 #############        64%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00007fff #################### 99%
Max peak (11026 samples): 0x0000186b ####                 19%
Max peak (11026 samples): 0x00003131 ########             38%
Max peak (11026 samples): 0x0000285b #######              31%
Max peak (11026 samples): 0x00002ddf ########             35%
Max peak (11026 samples): 0x0000339c #########            40%
Max peak (11026 samples): 0x00001da2 #####                23%
Max peak (11026 samples): 0x0000256d ######               29%
Max peak (11026 samples): 0x000016db ####                 17%
Max peak (11026 samples): 0x00001b76 #####                21%
Max peak (11026 samples): 0x00002f16 ########             36%
Max peak (11026 samples): 0x00001697 ####                 17%
Max peak (11026 samples): 0x00002903 #######              32%
Max peak (11026 samples): 0x000042e9 ###########          52%
Max peak (11026 samples): 0x000047c8 ############         56%
Max peak (11026 samples): 0x00004b64 ############         58%
Max peak (11026 samples): 0x00001d7b #####                23%
Max peak (11026 samples): 0x00002a08 #######              32%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00007dbb #################### 98%
Max peak (11026 samples): 0x0000524c #############        64%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00004454 ###########          53%
Max peak (11026 samples): 0x00004f10 #############        61%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00001150 ###                  13%
Max peak (11026 samples): 0x00000fa0 ###                  12%
Max peak (11026 samples): 0x00001fdd #####                24%
Max peak (11026 samples): 0x00000f73 ###                  12%
Max peak (11026 samples): 0x00001438 ####                 15%
Max peak (11026 samples): 0x00000e42 ###                  11%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00000f00 ###                  11%
Max peak (11026 samples): 0x00001668 ####                 17%
Max peak (11026 samples): 0x00000d5a ###                  10%
Max peak (11026 samples): 0x000011a9 ###                  13%
Max peak (11026 samples): 0x00000f23 ###                  11%
Max peak (11026 samples): 0x00000e50 ###                  11%
Max peak (11026 samples): 0x00000ede ###                  11%
Max peak (11026 samples): 0x000012c6 ###                  14%
Max peak (11026 samples): 0x00001ffb #####                24%
Max peak (11026 samples): 0x00000ee6 ###                  11%
Max peak (11026 samples): 0x0000137b ####                 15%
Max peak (11026 samples): 0x00001803 ####                 18%
Max peak (11026 samples): 0x00000ece ###                  11%
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00000df7 ###                  10%
Max peak (11026 samples): 0x000010ce ###                  13%

The recorded audio with a sampling rate of 44100 is as follows:

Use the following command to set the playback parameters:

root@AM62x:~# amixer cset name='Left HP Mixer DACL1 Switch' on
numid=86,iface=MIXER,name='Left HP Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
root@AM62x:~# amixer cset name='Right HP Mixer DACR1 Switch' on
numid=94,iface=MIXER,name='Right HP Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
root@AM62x:~# amixer cset name='HP DAC Playback Volume' 118,118
numid=31,iface=MIXER,name='HP DAC Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=118,118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
root@AM62x:~# amixer cset name='PCM Playback Volume' 127,127
numid=15,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=127,127
  | dBscale-min=-63.50dB,step=0.50dB,mute=0

Then play the recorded audio:

root@AM62x:~# aplay -D hw:0,0 -f S16_LE -c 2 -r 44100 -v -v -v record_44k.wav
Playing WAVE 'record_44k.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Hardware PCM card 0 'AM62x-SKEVM-SLAVE' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 22052
  period_size  : 5513
  period_time  : 125011
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 5513
  period_event : 0
  start_threshold  : 22052
  stop_threshold   : 22052
  silence_threshold: 0
  silence_size : 0
  boundary     : 6207086186423386112
  appl_ptr     : 0
  hw_ptr       : 0
Max peak (11026 samples): 0x00008000 #################### 100%
Max peak (11026 samples): 0x00000c58 ##                   9%
Max peak (11026 samples): 0x00000d38 ###                  10%
Max peak (11026 samples): 0x00000bff ##                   9%
Max peak (11026 samples): 0x00001045 ###                  12%
Max peak (11026 samples): 0x00000a8b ##                   8%
Max peak (11026 samples): 0x00000b15 ##                   8%
Max peak (11026 samples): 0x00000d45 ###                  10%
Max peak (11026 samples): 0x00000ba8 ##                   9%
Max peak (11026 samples): 0x00000f1a ###                  11%
Max peak (11026 samples): 0x000010d2 ###                  13%
Max peak (11026 samples): 0x00000f0e ###                  11%
Max peak (11026 samples): 0x00000bd2 ##                   9%
Max peak (11026 samples): 0x00000b76 ##                   8%
Max peak (11026 samples): 0x00000af2 ##                   8%
Max peak (11026 samples): 0x00000c0d ##                   9%
Max peak (11026 samples): 0x00000ac3 ##                   8%
Max peak (11026 samples): 0x00000c29 ##                   9%
Max peak (11026 samples): 0x00000a7a ##                   8%
Max peak (11026 samples): 0x00000d7b ###                  10%
Max peak (11026 samples): 0x00000aa1 ##                   8%
Max peak (11026 samples): 0x00000c98 ##                   9%
Max peak (11026 samples): 0x00000f69 ###                  12%
Max peak (11026 samples): 0x0000112f ###                  13%
Max peak (11026 samples): 0x00000eff ###                  11%
Max peak (11026 samples): 0x00000b3a ##                   8%
Max peak (11026 samples): 0x00000c1c ##                   9%
Max peak (11026 samples): 0x0000131e ###                  14%
Max peak (11026 samples): 0x00001133 ###                  13%
Max peak (11026 samples): 0x000015fa ####                 17%
Max peak (11026 samples): 0x00001014 ###                  12%
Max peak (11026 samples): 0x00000fc1 ###                  12%
Max peak (11026 samples): 0x00000ba1 ##                   9%
Max peak (11026 samples): 0x00000d0c ###                  10%
Max peak (11026 samples): 0x00000a76 ##                   8%
Max peak (11026 samples): 0x00000b89 ##                   9%
Max peak (11026 samples): 0x00000d26 ###                  10%
Max peak (11026 samples): 0x00000e72 ###                  11%
Max peak (11026 samples): 0x00000da1 ###                  10%
Max peak (11026 samples): 0x00000ead ###                  11%
Max peak (11026 samples): 0x00000f97 ###                  12%
Max peak (11026 samples): 0x00000d29 ###                  10%
Max peak (11026 samples): 0x00000b38 ##                   8%
Max peak (11026 samples): 0x0000102d ###                  12%
Max peak (11026 samples): 0x00000b84 ##                   8%
Max peak (11026 samples): 0x00000aa6 ##                   8%
Max peak (11026 samples): 0x00000c72 ##                   9%
Max peak (11026 samples): 0x00000c06 ##                   9%
Max peak (11026 samples): 0x00000d00 ###                  10%
Max peak (11026 samples): 0x00000ea0 ###                  11%
Max peak (11026 samples): 0x00000c1d ##                   9%
Max peak (11026 samples): 0x00000d34 ###                  10%
Max peak (11026 samples): 0x00000eee ###                  11%
Max peak (11026 samples): 0x00000f5d ###                  12%
Max peak (11026 samples): 0x00000e82 ###                  11%
Max peak (11026 samples): 0x00000b29 ##                   8%
Max peak (11026 samples): 0x000009a3 ##                   7%
Max peak (11026 samples): 0x00000c98 ##                   9%
Max peak (11026 samples): 0x00000c06 ##                   9%
Max peak (11026 samples): 0x00002bf2 #######              34%
Max peak (11026 samples): 0x00000b73 ##                   8%
Max peak (11026 samples): 0x00001118 ###                  13%
Max peak (11026 samples): 0x00000c80 ##                   9%
Max peak (11026 samples): 0x00000c04 ##                   9%
Max peak (11026 samples): 0x00000b8a ##                   9%
Max peak (11026 samples): 0x000011e0 ###                  13%
Max peak (11026 samples): 0x00000e59 ###                  11%
Max peak (11026 samples): 0x00000fc7 ###                  12%
Max peak (11026 samples): 0x0000171e ####                 18%
Max peak (11026 samples): 0x00003088 ########             37%
Max peak (11026 samples): 0x00000ca2 ##                   9%
Max peak (11026 samples): 0x00000e50 ###                  11%
Max peak (11026 samples): 0x000011ea ###                  13%
Max peak (11026 samples): 0x000018ac ####                 19%
Max peak (11026 samples): 0x00001fa5 #####                24%
Max peak (11026 samples): 0x000013f7 ####                 15%
Max peak (11026 samples): 0x00001186 ###                  13%
Max peak (11026 samples): 0x00000dc9 ###                  10%
Max peak (11026 samples): 0x000010ac ###                  13%
Max peak (11026 samples): 0x00000bdc ##                   9%

It can be observed that the recorded audio has been accelerated.

The relevant information of the codec chip is as follows:

root@AM62x:~# lsmod | grep snd
snd_soc_simple_card          16384  0
snd_soc_simple_card_utils    20480  1 snd_soc_simple_card
snd_soc_davinci_mcasp        28672  2
snd_soc_ti_udma              12288  1 snd_soc_davinci_mcasp
snd_soc_ti_edma              12288  1 snd_soc_davinci_mcasp
snd_soc_ti_sdma              12288  1 snd_soc_davinci_mcasp
snd_soc_tlv320aic3x_i2c      12288  1
snd_soc_tlv320aic3x          65536  1 snd_soc_tlv320aic3x_i2c

root@AM62x:~# dmesg | grep sound
[    0.734549]   No soundcards found.
[    5.336987] asoc-simple-card sound: using DT '/sound' for 'simple-audio-card,hp-det' GPIO lookup
[    5.338739] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpios' property of node '/sound[0]'
[    5.338795] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpio' property of node '/sound[0]'
[    5.338811] asoc-simple-card sound: using lookup tables for GPIO lookup
[    5.338820] asoc-simple-card sound: No GPIO consumer simple-audio-card,hp-det found
[    5.338830] asoc-simple-card sound: using DT '/sound' for 'simple-audio-card,mic-det' GPIO lookup
[    5.338847] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpios' property of node '/sound[0]'
[    5.338863] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpio' property of node '/sound[0]'
[    5.338872] asoc-simple-card sound: using lookup tables for GPIO lookup
[    5.338876] asoc-simple-card sound: No GPIO consumer simple-audio-card,mic-det found

root@AM62x:~# cat /sys/kernel/debug/clk/clk_summary | grep tlv320_mclk
 tlv320_mclk                         0       0        0        12288000    0          0     50000      Y   simple-audio-card,codec         no_connection_id
 
root@AM62x:~# i2cdetect -r -y 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- 14 -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

root@AM62x:~# i2cdump -f -y 2 0x18 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

root@AM62x:~#
root@AM62x:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: AM62xSKEVMSLAVE [AM62x-SKEVM-SLAVE], device 0: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 [2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@AM62x:~#
root@AM62x:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AM62xSKEVMSLAVE [AM62x-SKEVM-SLAVE], device 0: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 [2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
root@AM62x:~#
root@AM62x:~# arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=AM62xSKEVMSLAVE
    AM62x-SKEVM-SLAVE, 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
    Default Audio Device
sysdefault:CARD=AM62xSKEVMSLAVE
    AM62x-SKEVM-SLAVE, 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
    Default Audio Device
root@AM62x:~#
root@AM62x:~# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=AM62xSKEVMSLAVE
    AM62x-SKEVM-SLAVE, 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
    Default Audio Device
sysdefault:CARD=AM62xSKEVMSLAVE
    AM62x-SKEVM-SLAVE, 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
    Default Audio Device
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# arecord -D hw:0,0 --dump-hw-params
Warning: Some sources (like microphones) may produce inaudiable results
         with 8-bit sampling. Use '-f' argument to increase resolution
         e.g. '-f S16_LE'.
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
HW Params of device "hw:0,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S16_LE S24_LE S32_LE S24_3LE
SUBFORMAT:  STD
SAMPLE_BITS: [16 32]
FRAME_BITS: [32 64]
CHANNELS: 2
RATE: [8000 96000]
PERIOD_TIME: (333 2048000]
PERIOD_SIZE: [32 16384]
PERIOD_BYTES: [128 65536]
PERIODS: [2 4096]
BUFFER_TIME: (666 16384000]
BUFFER_SIZE: [64 131072]
BUFFER_BYTES: [256 524288]
TICK_TIME: ALL
--------------------
arecord: set_params:1352: Sample format non available
Available formats:
- S16_LE
- S24_LE
- S32_LE
- S24_3LE
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# amixer -c 0
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 80 [63%] [-23.50dB]
  Front Right: Playback 80 [63%] [-23.50dB]
Simple mixer control 'Line',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 9
  Mono:
  Front Left: Playback 0 [0%] [0.00dB] [on]
  Front Right: Playback 0 [0%] [0.00dB] [on]
Simple mixer control 'Line DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 71 [60%] [-23.50dB]
  Front Right: Playback 71 [60%] [-23.50dB]
Simple mixer control 'Line Line2 Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'Line PGA Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'Mono',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 9
  Mono: Playback 0 [0%] [0.00dB] [on]
Simple mixer control 'Mono DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 71 [60%] [-23.50dB]
  Front Right: Playback 71 [60%] [-23.50dB]
Simple mixer control 'Mono Line2 Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'Mono Mixer DACL1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Mono Mixer DACR1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Mono Mixer Line2L Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mono Mixer Line2R Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mono Mixer PGAL Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mono Mixer PGAR Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Mono PGA Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'ADC HPF Cut-off',0
  Capabilities: enum
  Items: 'Disabled' '0.0045xFs' '0.0125xFs' '0.025xFs'
  Item0: 'Disabled'
  Item1: 'Disabled'
Simple mixer control 'AGC',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [off]
  Front Right: Playback [off]
Simple mixer control 'De-emphasis',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [off]
  Front Right: Playback [off]
Simple mixer control 'HP',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 9
  Mono:
  Front Left: Playback 0 [0%] [0.00dB] [on]
  Front Right: Playback 0 [0%] [0.00dB] [on]
Simple mixer control 'HP DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 71 [60%] [-23.50dB]
  Front Right: Playback 71 [60%] [-23.50dB]
Simple mixer control 'HP Line2 Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'HP PGA Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'HPCOM',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 9
  Mono:
  Front Left: Playback 0 [0%] [0.00dB] [on]
  Front Right: Playback 0 [0%] [0.00dB] [on]
Simple mixer control 'HPCOM DAC',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 118
  Mono:
  Front Left: Playback 71 [60%] [-23.50dB]
  Front Right: Playback 71 [60%] [-23.50dB]
Simple mixer control 'HPCOM Line2 Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'HPCOM PGA Bypass',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 118
  Front Left: 71 [60%] [-23.50dB]
  Front Right: 71 [60%] [-23.50dB]
Simple mixer control 'Left AGC Attack time',0
  Capabilities: enum
  Items: '8ms' '11ms' '16ms' '20ms'
  Item0: '8ms'
Simple mixer control 'Left AGC Decay time',0
  Capabilities: enum
  Items: '100ms' '200ms' '400ms' '500ms'
  Item0: '100ms'
Simple mixer control 'Left AGC Target level',0
  Capabilities: enum
  Items: '-5.5dB' '-8dB' '-10dB' '-12dB' '-14dB' '-17dB' '-20dB' '-24dB'
  Item0: '-5.5dB'
Simple mixer control 'Left DAC Mux',0
  Capabilities: enum
  Items: 'DAC_L1' 'DAC_L3' 'DAC_L2'
  Item0: 'DAC_L1'
Simple mixer control 'Left HP Mixer DACL1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Left HP Mixer DACR1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Left HP Mixer Line2L Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left HP Mixer Line2R Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left HP Mixer PGAL Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left HP Mixer PGAR Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left HPCOM Mixer DACL1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Left HPCOM Mixer DACR1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Left HPCOM Mixer Line2L Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left HPCOM Mixer Line2R Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left HPCOM Mixer PGAL Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left HPCOM Mixer PGAR Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left HPCOM Mux',0
  Capabilities: enum
  Items: 'differential of HPLOUT' 'constant VCM' 'single-ended'
  Item0: 'differential of HPLOUT'
Simple mixer control 'Left Line Mixer DACL1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Left Line Mixer DACR1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Left Line Mixer Line2L Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Line Mixer Line2R Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left Line Mixer PGAL Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left Line Mixer PGAR Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Left Line1L Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Left Line1R Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Left Line2L Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Left PGA Mixer Line1L',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Left PGA Mixer Line1R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left PGA Mixer Line2L',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left PGA Mixer Mic3L',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Left PGA Mixer Mic3R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Output Driver Power-On time',0
  Capabilities: enum
  Items: '0us' '10us' '100us' '1ms' '10ms' '50ms' '100ms' '200ms' '400ms' '800ms' '2s' '4s'
  Item0: '0us'
Simple mixer control 'Output Driver Ramp-up step',0
  Capabilities: enum
  Items: '0ms' '1ms' '2ms' '4ms'
  Item0: '0ms'
Simple mixer control 'PGA',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 119
  Front Left: Capture 32 [27%] [16.00dB] [on]
  Front Right: Capture 32 [27%] [16.00dB] [on]
Simple mixer control 'Right AGC Attack time',0
  Capabilities: enum
  Items: '8ms' '11ms' '16ms' '20ms'
  Item0: '8ms'
Simple mixer control 'Right AGC Decay time',0
  Capabilities: enum
  Items: '100ms' '200ms' '400ms' '500ms'
  Item0: '100ms'
Simple mixer control 'Right AGC Target level',0
  Capabilities: enum
  Items: '-5.5dB' '-8dB' '-10dB' '-12dB' '-14dB' '-17dB' '-20dB' '-24dB'
  Item0: '-5.5dB'
Simple mixer control 'Right DAC Mux',0
  Capabilities: enum
  Items: 'DAC_R1' 'DAC_R3' 'DAC_R2'
  Item0: 'DAC_R1'
Simple mixer control 'Right HP Mixer DACL1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Right HP Mixer DACR1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Right HP Mixer Line2L Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right HP Mixer Line2R Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right HP Mixer PGAL Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right HP Mixer PGAR Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right HPCOM Mixer DACL1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Right HPCOM Mixer DACR1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Right HPCOM Mixer Line2L Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right HPCOM Mixer Line2R Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right HPCOM Mixer PGAL Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right HPCOM Mixer PGAR Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right HPCOM Mux',0
  Capabilities: enum
  Items: 'differential of HPROUT' 'constant VCM' 'single-ended' 'differential of HPLCOM' 'external feedback'
  Item0: 'differential of HPROUT'
Simple mixer control 'Right Line Mixer DACL1',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 118
  Mono: Playback 118 [100%] [0.00dB] [off]
Simple mixer control 'Right Line Mixer DACR1',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Right Line Mixer Line2L Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right Line Mixer Line2R Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right Line Mixer PGAL Bypass',0
  Capabilities: volume volume-joined pswitch pswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: 0 - 118
  Mono: 118 [100%] [0.00dB] Playback [off]
Simple mixer control 'Right Line Mixer PGAR Bypass',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right Line1L Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Right Line1R Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Right Line2R Mux',0
  Capabilities: enum
  Items: 'single-ended' 'differential'
  Item0: 'single-ended'
Simple mixer control 'Right PGA Mixer Line1L',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right PGA Mixer Line1R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Right PGA Mixer Line2R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right PGA Mixer Mic3L',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Right PGA Mixer Mic3R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# amixer -c 0 contents
numid=15,iface=MIXER,name='PCM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
  : values=80,80
  | dBscale-min=-63.50dB,step=0.50dB,mute=0
numid=29,iface=MIXER,name='Line DAC Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=7,iface=MIXER,name='Line Line2 Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=28,iface=MIXER,name='Line PGA Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=35,iface=MIXER,name='Line Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
numid=34,iface=MIXER,name='Line Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
  : values=0,0
  | dBscale-min=0.00dB,step=1.00dB,mute=0
numid=12,iface=MIXER,name='Mono DAC Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=10,iface=MIXER,name='Mono Line2 Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=111,iface=MIXER,name='Mono Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=114,iface=MIXER,name='Mono Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=109,iface=MIXER,name='Mono Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=112,iface=MIXER,name='Mono Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=110,iface=MIXER,name='Mono Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=113,iface=MIXER,name='Mono Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=11,iface=MIXER,name='Mono PGA Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=13,iface=MIXER,name='Mono Playback Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=14,iface=MIXER,name='Mono Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=9,step=0
  : values=0
  | dBscale-min=0.00dB,step=1.00dB,mute=0
numid=50,iface=MIXER,name='ADC HPF Cut-off'
  ; type=ENUMERATED,access=rw------,values=2,items=4
  ; Item #0 'Disabled'
  ; Item #1 '0.0045xFs'
  ; Item #2 '0.0125xFs'
  ; Item #3 '0.025xFs'
  : values=0,0
numid=40,iface=MIXER,name='AGC Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=47,iface=MIXER,name='De-emphasis Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=31,iface=MIXER,name='HP DAC Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=8,iface=MIXER,name='HP Line2 Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=30,iface=MIXER,name='HP PGA Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=37,iface=MIXER,name='HP Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
numid=36,iface=MIXER,name='HP Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
  : values=0,0
  | dBscale-min=0.00dB,step=1.00dB,mute=0
numid=33,iface=MIXER,name='HPCOM DAC Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=9,iface=MIXER,name='HPCOM Line2 Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=32,iface=MIXER,name='HPCOM PGA Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0
  : values=71,71
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=39,iface=MIXER,name='HPCOM Playback Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
numid=38,iface=MIXER,name='HPCOM Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0
  : values=0,0
  | dBscale-min=0.00dB,step=1.00dB,mute=0
numid=43,iface=MIXER,name='Left AGC Attack time'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 '8ms'
  ; Item #1 '11ms'
  ; Item #2 '16ms'
  ; Item #3 '20ms'
  : values=0
numid=45,iface=MIXER,name='Left AGC Decay time'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 '100ms'
  ; Item #1 '200ms'
  ; Item #2 '400ms'
  ; Item #3 '500ms'
  : values=0
numid=41,iface=MIXER,name='Left AGC Target level'
  ; type=ENUMERATED,access=rw------,values=1,items=8
  ; Item #0 '-5.5dB'
  ; Item #1 '-8dB'
  ; Item #2 '-10dB'
  ; Item #3 '-12dB'
  ; Item #4 '-14dB'
  ; Item #5 '-17dB'
  ; Item #6 '-20dB'
  ; Item #7 '-24dB'
  : values=0
numid=53,iface=MIXER,name='Left DAC Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'DAC_L1'
  ; Item #1 'DAC_L3'
  ; Item #2 'DAC_L2'
  : values=0
numid=86,iface=MIXER,name='Left HP Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=21,iface=MIXER,name='Left HP Mixer DACR1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=88,iface=MIXER,name='Left HP Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=89,iface=MIXER,name='Left HP Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=90,iface=MIXER,name='Left HP Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=3,iface=MIXER,name='Left HP Mixer Line2R Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=85,iface=MIXER,name='Left HP Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=87,iface=MIXER,name='Left HP Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=20,iface=MIXER,name='Left HP Mixer PGAR Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=98,iface=MIXER,name='Left HPCOM Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=25,iface=MIXER,name='Left HPCOM Mixer DACR1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=100,iface=MIXER,name='Left HPCOM Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=101,iface=MIXER,name='Left HPCOM Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=102,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=5,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=97,iface=MIXER,name='Left HPCOM Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=99,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=24,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=54,iface=MIXER,name='Left HPCOM Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'differential of HPLOUT'
  ; Item #1 'constant VCM'
  ; Item #2 'single-ended'
  : values=0
numid=74,iface=MIXER,name='Left Line Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=17,iface=MIXER,name='Left Line Mixer DACR1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=76,iface=MIXER,name='Left Line Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=77,iface=MIXER,name='Left Line Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=78,iface=MIXER,name='Left Line Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=1,iface=MIXER,name='Left Line Mixer Line2R Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=73,iface=MIXER,name='Left Line Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=75,iface=MIXER,name='Left Line Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=16,iface=MIXER,name='Left Line Mixer PGAR Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=57,iface=MIXER,name='Left Line1L Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=58,iface=MIXER,name='Left Line1R Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=66,iface=MIXER,name='Left Line2L Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=61,iface=MIXER,name='Left PGA Mixer Line1L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=62,iface=MIXER,name='Left PGA Mixer Line1R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=63,iface=MIXER,name='Left PGA Mixer Line2L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=51,iface=MIXER,name='Output Driver Power-On time'
  ; type=ENUMERATED,access=rw------,values=1,items=12
  ; Item #0 '0us'
  ; Item #1 '10us'
  ; Item #2 '100us'
  ; Item #3 '1ms'
  ; Item #4 '10ms'
  ; Item #5 '50ms'
  ; Item #6 '100ms'
  ; Item #7 '200ms'
  ; Item #8 '400ms'
  ; Item #9 '800ms'
  ; Item #10 '2s'
  ; Item #11 '4s'
  : values=0
numid=52,iface=MIXER,name='Output Driver Ramp-up step'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 '0ms'
  ; Item #1 '1ms'
  ; Item #2 '2ms'
  ; Item #3 '4ms'
  : values=0
numid=49,iface=MIXER,name='PGA Capture Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=on,on
numid=48,iface=MIXER,name='PGA Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=119,step=0
  : values=32,32
  | dBscale-min=0.00dB,step=0.50dB,mute=0
numid=44,iface=MIXER,name='Right AGC Attack time'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 '8ms'
  ; Item #1 '11ms'
  ; Item #2 '16ms'
  ; Item #3 '20ms'
  : values=0
numid=46,iface=MIXER,name='Right AGC Decay time'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 '100ms'
  ; Item #1 '200ms'
  ; Item #2 '400ms'
  ; Item #3 '500ms'
  : values=0
numid=42,iface=MIXER,name='Right AGC Target level'
  ; type=ENUMERATED,access=rw------,values=1,items=8
  ; Item #0 '-5.5dB'
  ; Item #1 '-8dB'
  ; Item #2 '-10dB'
  ; Item #3 '-12dB'
  ; Item #4 '-14dB'
  ; Item #5 '-17dB'
  ; Item #6 '-20dB'
  ; Item #7 '-24dB'
  : values=0
numid=55,iface=MIXER,name='Right DAC Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'DAC_R1'
  ; Item #1 'DAC_R3'
  ; Item #2 'DAC_R2'
  : values=0
numid=23,iface=MIXER,name='Right HP Mixer DACL1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=92,iface=MIXER,name='Right HP Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=94,iface=MIXER,name='Right HP Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=95,iface=MIXER,name='Right HP Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=4,iface=MIXER,name='Right HP Mixer Line2L Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=96,iface=MIXER,name='Right HP Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=91,iface=MIXER,name='Right HP Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=22,iface=MIXER,name='Right HP Mixer PGAL Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=93,iface=MIXER,name='Right HP Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=27,iface=MIXER,name='Right HPCOM Mixer DACL1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=104,iface=MIXER,name='Right HPCOM Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=106,iface=MIXER,name='Right HPCOM Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=107,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=6,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=108,iface=MIXER,name='Right HPCOM Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=103,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=26,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=105,iface=MIXER,name='Right HPCOM Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=56,iface=MIXER,name='Right HPCOM Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=5
  ; Item #0 'differential of HPROUT'
  ; Item #1 'constant VCM'
  ; Item #2 'single-ended'
  ; Item #3 'differential of HPLCOM'
  ; Item #4 'external feedback'
  : values=0
numid=19,iface=MIXER,name='Right Line Mixer DACL1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=80,iface=MIXER,name='Right Line Mixer DACL1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=82,iface=MIXER,name='Right Line Mixer DACR1 Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=83,iface=MIXER,name='Right Line Mixer Line2L Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=2,iface=MIXER,name='Right Line Mixer Line2L Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=84,iface=MIXER,name='Right Line Mixer Line2R Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=79,iface=MIXER,name='Right Line Mixer PGAL Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=18,iface=MIXER,name='Right Line Mixer PGAL Bypass Volume'
  ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0
  : values=118
  | dBscale-min=-59.00dB,step=0.50dB,mute=1
numid=81,iface=MIXER,name='Right Line Mixer PGAR Bypass Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=59,iface=MIXER,name='Right Line1L Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=60,iface=MIXER,name='Right Line1R Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=72,iface=MIXER,name='Right Line2R Mux'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'single-ended'
  ; Item #1 'differential'
  : values=0
numid=68,iface=MIXER,name='Right PGA Mixer Line1L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=67,iface=MIXER,name='Right PGA Mixer Line1R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=69,iface=MIXER,name='Right PGA Mixer Line2R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# ll /proc/asound
total 0
lrwxrwxrwx 1 root root 5 10月 22 04:04 AM62xSKEVMSLAVE -> card0
dr-xr-xr-x 5 root root 0 10月 22 04:04 card0
-r--r--r-- 1 root root 0 10月 22 04:04 cards
-r--r--r-- 1 root root 0 10月 22 04:04 devices
-r--r--r-- 1 root root 0 10月 22 04:04 pcm
-r--r--r-- 1 root root 0 10月 22 04:04 timers
-r--r--r-- 1 root root 0 10月 22 04:04 version
root@AM62x:~#
root@AM62x:~# cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k6.6.58-rt45.
root@AM62x:~#
root@AM62x:~# cat /proc/asound/cards
 0 [AM62xSKEVMSLAVE]: simple-card - AM62x-SKEVM-SLAVE
                      AM62x-SKEVM-SLAVE
root@AM62x:~#
root@AM62x:~# cat /proc/asound/devices
  2: [ 0- 0]: digital audio playback
  3: [ 0- 0]: digital audio capture
  4: [ 0]   : control
 33:        : timer
root@AM62x:~#
root@AM62x:~# cat /proc/asound/pcm
00-00: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 : 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0 : playback 1 : capture 1
root@AM62x:~#
root@AM62x:~# cat /proc/asound/timers
G0: system timer : 1000.000us (10000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE
root@AM62x:~#
root@AM62x:~# ll /proc/asound/card0/
total 0
-r--r--r-- 1 root root 0 10月 22 04:04 id
dr-xr-xr-x 4 root root 0 10月 22 04:04 pcm0c
dr-xr-xr-x 4 root root 0 10月 22 04:04 pcm0p
root@AM62x:~#
root@AM62x:~# ll /proc/asound/card0/pcm0c
total 0
-r--r--r-- 1 root root 0 10月 22 04:04 info
dr-xr-xr-x 8 root root 0 10月 22 04:04 sub0
root@AM62x:~#
root@AM62x:~# ll /proc/asound/card0/pcm0c/sub0/
total 0
-r--r--r-- 1 root root 0 10月 22 04:04 hw_params
-r--r--r-- 1 root root 0 10月 22 04:04 info
-rw-r--r-- 1 root root 0 10月 22 04:04 prealloc
-r--r--r-- 1 root root 0 10月 22 04:04 prealloc_max
-r--r--r-- 1 root root 0 10月 22 04:04 status
-r--r--r-- 1 root root 0 10月 22 04:04 sw_params
root@AM62x:~#
root@AM62x:~# ll /proc/asound/card0/pcm0p
total 0
-r--r--r-- 1 root root 0 10月 22 04:04 info
dr-xr-xr-x 8 root root 0 10月 22 04:04 sub0
root@AM62x:~#
root@AM62x:~# ll /proc/asound/card0/pcm0p/sub0/
total 0
-r--r--r-- 1 root root 0 10月 22 04:04 hw_params
-r--r--r-- 1 root root 0 10月 22 04:04 info
-rw-r--r-- 1 root root 0 10月 22 04:04 prealloc
-r--r--r-- 1 root root 0 10月 22 04:04 prealloc_max
-r--r--r-- 1 root root 0 10月 22 04:04 status
-r--r--r-- 1 root root 0 10月 22 04:04 sw_params
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/id
AM62xSKEVMSLAVE
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/info
card: 0
device: 0
subdevice: 0
stream: CAPTURE
id: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
name: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/sub0/status
closed
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/sub0/prealloc
512
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/sub0/prealloc_max
18014398509481983
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/sub0/hw_params
closed
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0c/sub0/sw_params
closed
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/info
card: 0
device: 0
subdevice: 0
stream: PLAYBACK
id: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
name: 2b10000.audio-controller-tlv320aic3x-hifi tlv320aic3x-hifi-0
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/sub0/status
closed
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/sub0/prealloc
512
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/sub0/prealloc_max
18014398509481983
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/sub0/hw_params
closed
root@AM62x:~#
root@AM62x:~# cat /proc/asound/card0/pcm0p/sub0/sw_params
closed
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/
total 0
drwxr-xr-x 6 root root 0 10月 22 04:02 AM62x-SKEVM-SLAVE
-r--r--r-- 1 root root 0  1月  1  1970 components
-r--r--r-- 1 root root 0  1月  1  1970 dais
root@AM62x:~#
root@AM62x:~# cat /sys/kernel/debug/asoc/dais
2b10000.audio-controller
tlv320aic3x-hifi
snd-soc-dummy-dai
root@AM62x:~#
root@AM62x:~# cat /sys/kernel/debug/asoc/components
2b10000.audio-controller
2b10000.audio-controller
tlv320aic3x.2-0018
snd-soc-dummy
snd-soc-dummy
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE
total 0
drwxr-xr-x 3 root root 0 10月 22 04:02 2b10000.audio-controller
drwxr-xr-x 2 root root 0 10月 22 04:02 dapm
-rw-r--r-- 1 root root 0 10月 22 04:02 dapm_pop_time
drwxr-xr-x 3 root root 0 10月 22 04:02 dma:2b10000.audio-controller
drwxr-xr-x 3 root root 0 10月 22 04:02 tlv320aic3x.2-0018
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/2b10000.mcasp
ls: cannot access '/sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/2b10000.mcasp': No such file or directory
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/2b10000.audio-controller
total 0
drwxr-xr-x 2 root root 0 10月 22 04:02 dapm
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/2b10000.audio-controller/dapm/
total 0
-r--r--r-- 1 root root 0 10月 22 04:02  bias_level
-r--r--r-- 1 root root 0 10月 22 04:02 'IIS Capture'
-r--r--r-- 1 root root 0 10月 22 04:02 'IIS Playback'
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dapm
total 0
-r--r--r-- 1 root root 0 10月 22 04:02  bias_level
-r--r--r-- 1 root root 0 10月 22 04:02 'Headphone Jack'
-r--r--r-- 1 root root 0 10月 22 04:02 'Microphone Jack'
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dma:2b10000.audio-controller
total 0
drwxr-xr-x 2 root root 0 10月 22 04:02 dapm
root@AM62x:~#
root@AM62x:~#
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dma:2b10000.audio-controller/dapm
'/sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dma:2b10000.audio-controller/dapm':
total 0
-r--r--r-- 1 root root 0 10月 22 04:02 bias_level
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dma:2b10000.audio-controller/dapm
total 0
-r--r--r-- 1 root root 0 10月 22 04:02 bias_level
root@AM62x:~#
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/tlv320aic3x.2-0018
total 0
drwxr-xr-x 2 root root 0 10月 22 04:02 dapm
root@AM62x:~# ll /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/tlv320aic3x.2-0018/dapm/
total 0
-r--r--r-- 1 root root 0 10月 22 04:02  bias_level
-r--r--r-- 1 root root 0 10月 22 04:02  Capture
-r--r--r-- 1 root root 0 10月 22 04:02  Detection
-r--r--r-- 1 root root 0 10月 22 04:02 'DMic Rate 128'
-r--r--r-- 1 root root 0 10月 22 04:02 'DMic Rate 32'
-r--r--r-- 1 root root 0 10月 22 04:02 'DMic Rate 64'
-r--r--r-- 1 root root 0 10月 22 04:02 'GPIO1 dmic modclk'
-r--r--r-- 1 root root 0 10月 22 04:02  HPLCOM
-r--r--r-- 1 root root 0 10月 22 04:02  HPLOUT
-r--r--r-- 1 root root 0 10月 22 04:02  HPRCOM
-r--r--r-- 1 root root 0 10月 22 04:02  HPROUT
-r--r--r-- 1 root root 0 10月 22 04:02 'Left ADC'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left DAC'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left DAC Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left HP Com'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left HPCOM Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left HPCOM Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left HP Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left HP Out'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left Line1L Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left Line1R Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left Line2L Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left Line Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left Line Out'
-r--r--r-- 1 root root 0 10月 22 04:02 'Left PGA Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02  LINE1L
-r--r--r-- 1 root root 0 10月 22 04:02  LINE1R
-r--r--r-- 1 root root 0 10月 22 04:02  LINE2L
-r--r--r-- 1 root root 0 10月 22 04:02  LINE2R
-r--r--r-- 1 root root 0 10月 22 04:02  LLOUT
-r--r--r-- 1 root root 0 10月 22 04:02  MIC3L
-r--r--r-- 1 root root 0 10月 22 04:02  MIC3R
-r--r--r-- 1 root root 0 10月 22 04:02 'Mic Bias'
-r--r--r-- 1 root root 0 10月 22 04:02  MONO_LOUT
-r--r--r-- 1 root root 0 10月 22 04:02 'Mono Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Mono Out'
-r--r--r-- 1 root root 0 10月 22 04:02  Playback
-r--r--r-- 1 root root 0 10月 22 04:02 'Right ADC'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right DAC'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right DAC Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right HP Com'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right HPCOM Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right HPCOM Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right HP Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right HP Out'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right Line1L Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right Line1R Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right Line2R Mux'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right Line Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right Line Out'
-r--r--r-- 1 root root 0 10月 22 04:02 'Right PGA Mixer'
-r--r--r-- 1 root root 0 10月 22 04:02  RLOUT
root@AM62x:~# cat /sys/kernel/debug/asoc/AM62x-SKEVM-SLAVE/dapm_pop_time
0

The configuration of the device tree is as follows:

&{/} {
        mcasp1: mcasp@2b10000 {
                compatible = "ti,am33xx-mcasp-audio";
                reg = <0x00 0x02b10000 0x00 0x2000>,
                      <0x00 0x02b18000 0x00 0x400>;
                reg-names = "mpu","dat";
                interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
                                <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "tx", "rx";

                dmas = <&main_bcdma 0 0xc501 0>, <&main_bcdma 0 0x4501 0>;
                dma-names = "tx", "rx";

                clocks = <&k3_clks 191 0>;
                clock-names = "fck";
                power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
                assigned-clocks = <&k3_clks 191 0>;
                assigned-clock-parents = <&k3_clks 191 2>;
                status = "disabled";
        };
    
	tlv320_mclk: tlv320_mclk {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <12288000>;
	};

	codec_audio: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "AM62x-SKEVM-SLAVE";
 		simple-audio-card,widgets =
 			"Headphone",    "Headphone Jack",
 			"Microphone",   "Microphone Jack";
 		simple-audio-card,routing =
 			"Headphone Jack",       "HPLOUT",
 			"Headphone Jack",       "HPROUT",
 			"MIC3L",                "Microphone Jack",
			"MIC3R",                "Microphone Jack",
 			"Microphone Jack",      "Mic Bias";
		simple-audio-card,format = "dsp_b";
		simple-audio-card,bitclock-master = <&sound_master>;
		simple-audio-card,frame-master = <&sound_master>;
		simple-audio-card,bitclock-inversion;

		simple-audio-card,cpu {
			sound-dai = <&mcasp1>;
		};

		sound_master: simple-audio-card,codec {
			sound-dai = <&tlv320aic3101>;
			clocks = <&tlv320_mclk>;
		};
	};
};

&main_pmx0 {
	main_mcasp1_rst_pins_default: main-mcasp1-rst-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x007c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
		>;
	};

	main_mcasp1_pins_default: main-mcasp1-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0024, PIN_INPUT, 2) /* (H25) OSPI0_D6.MCASP1_ACLKX */
			AM62X_IOPAD(0x0028, PIN_INPUT, 2) /* (J22) OSPI0_D7.MCASP1_AFSX */
			AM62X_IOPAD(0x0020, PIN_INPUT, 2) /* (J25) OSPI0_D5.MCASP1_AXR0 */
			AM62X_IOPAD(0x001c, PIN_OUTPUT, 2) /* (J23) OSPI0_D4.MCASP1_AXR1 */
		>;
	};
};

&mcasp1 {
	status = "okay";
	#sound-dai-cells = <0>;

	pinctrl-names = "default";
	pinctrl-0 = <&main_mcasp1_pins_default &main_mcasp1_rst_pins_default>;

	op-mode = <0>;          /* MCASP_IIS_MODE */
	tdm-slots = <2>;

	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
	       2 1 0 0
	       0 0 0 0
	       0 0 0 0
	       0 0 0 0
	>;
	tx-num-evt = <32>;
	rx-num-evt = <32>;
};

&main_i2c2 {
	status = "okay";
	tlv320aic3101: audio-codec@18 {
		#sound-dai-cells = <0>;
		compatible = "ti,tlv320aic3x";
		reg = <0x18>;
		ai3x-micbias-vg = <1>;		/* 2.0V */
		reset-gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>;

		/* Regulators */
		AVDD-supply = <&vcc_3v3_sys>;
		IOVDD-supply = <&vcc_3v3_sys>;
		DRVDD-supply = <&vcc_3v3_sys>;
		DVDD-supply = <&vcc_1v8>;
	};
};

The kernel configuration is as follows:

# CONFIG_DRM_ACCEL is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_PCM_ELD=y
CONFIG_SND_PCM_IEC958=y
CONFIG_SND_DMAENGINE_PCM=y
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=y
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_OSSEMUL is not set
CONFIG_SND_PCM_TIMER=y
# CONFIG_SND_HRTIMER is not set
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_CTL_FAST_LOOKUP=y
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_CTL_INPUT_VALIDATION is not set
# CONFIG_SND_SEQUENCER is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_ALOOP is not set
# CONFIG_SND_PCMTEST is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_SERIAL_GENERIC is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CTXFI is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LOLA is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SE6X is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set

#
# HD-Audio
#
# CONFIG_SND_HDA_INTEL is not set
# end of HD-Audio

CONFIG_SND_HDA_PREALLOC_SIZE=64
# CONFIG_SND_SPI is not set
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set
CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
# CONFIG_SND_USB_UA101 is not set
# CONFIG_SND_USB_CAIAQ is not set
# CONFIG_SND_USB_6FIRE is not set
# CONFIG_SND_USB_HIFACE is not set
# CONFIG_SND_BCD2000 is not set
# CONFIG_SND_USB_POD is not set
# CONFIG_SND_USB_PODHD is not set
# CONFIG_SND_USB_TONEPORT is not set
# CONFIG_SND_USB_VARIAX is not set
CONFIG_SND_SOC=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
# CONFIG_SND_SOC_ADI is not set
# CONFIG_SND_SOC_AMD_ACP is not set
# CONFIG_SND_AMD_ACP_CONFIG is not set
# CONFIG_SND_ATMEL_SOC is not set
# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
# CONFIG_SND_DESIGNWARE_I2S is not set

#
# SoC Audio for Freescale CPUs
#

#
# Common SoC Audio options for Freescale CPUs:
#
# CONFIG_SND_SOC_FSL_ASRC is not set
# CONFIG_SND_SOC_FSL_SAI is not set
# CONFIG_SND_SOC_FSL_AUDMIX is not set
# CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_FSL_MICFIL is not set
# CONFIG_SND_SOC_FSL_XCVR is not set
# CONFIG_SND_SOC_FSL_RPMSG is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# end of SoC Audio for Freescale CPUs

# CONFIG_SND_SOC_CHV3_I2S is not set
# CONFIG_SND_I2S_HI6210_I2S is not set
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_MTK_BTCVSD is not set
# CONFIG_SND_SOC_SOF_TOPLEVEL is not set

#
# STMicroelectronics STM32 SOC audio support
#
# end of STMicroelectronics STM32 SOC audio support

#
# Audio support for Texas Instruments SoCs
#
CONFIG_SND_SOC_TI_EDMA_PCM=m
CONFIG_SND_SOC_TI_SDMA_PCM=m
CONFIG_SND_SOC_TI_UDMA_PCM=m

#
# Texas Instruments DAI support for:
#
CONFIG_SND_SOC_DAVINCI_MCASP=m

#
# Audio support for boards with Texas Instruments SoCs
#
CONFIG_SND_SOC_J721E_EVM=m
# end of Audio support for Texas Instruments SoCs

# CONFIG_SND_SOC_XILINX_I2S is not set
# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
# CONFIG_SND_SOC_XILINX_SPDIF is not set
# CONFIG_SND_SOC_XTFPGA_I2S is not set
CONFIG_SND_SOC_I2C_AND_SPI=y

#
# CODEC drivers
#
# CONFIG_SND_SOC_AC97_CODEC is not set
# CONFIG_SND_SOC_ADAU1372_I2C is not set
# CONFIG_SND_SOC_ADAU1372_SPI is not set
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_ADAU1761_I2C is not set
# CONFIG_SND_SOC_ADAU1761_SPI is not set
CONFIG_SND_SOC_ADAU7002=m
# CONFIG_SND_SOC_ADAU7118_HW is not set
# CONFIG_SND_SOC_ADAU7118_I2C is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
# CONFIG_SND_SOC_AK4375 is not set
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
# CONFIG_SND_SOC_ALC5623 is not set
# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set
# CONFIG_SND_SOC_AW8738 is not set
# CONFIG_SND_SOC_AW88395 is not set
# CONFIG_SND_SOC_AW88261 is not set
# CONFIG_SND_SOC_BD28623 is not set
# CONFIG_SND_SOC_BT_SCO is not set
# CONFIG_SND_SOC_CHV3_CODEC is not set
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
# CONFIG_SND_SOC_CS35L34 is not set
# CONFIG_SND_SOC_CS35L35 is not set
# CONFIG_SND_SOC_CS35L36 is not set
# CONFIG_SND_SOC_CS35L41_SPI is not set
# CONFIG_SND_SOC_CS35L41_I2C is not set
# CONFIG_SND_SOC_CS35L45_SPI is not set
# CONFIG_SND_SOC_CS35L45_I2C is not set
# CONFIG_SND_SOC_CS35L56_I2C is not set
# CONFIG_SND_SOC_CS35L56_SPI is not set
# CONFIG_SND_SOC_CS35L56_SDW is not set
# CONFIG_SND_SOC_CS42L42 is not set
# CONFIG_SND_SOC_CS42L42_SDW is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
# CONFIG_SND_SOC_CS42L83 is not set
# CONFIG_SND_SOC_CS4234 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS43130 is not set
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_CX2072X is not set
# CONFIG_SND_SOC_DA7213 is not set
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_ES7134 is not set
# CONFIG_SND_SOC_ES7241 is not set
# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8326 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
# CONFIG_SND_SOC_ES8328_SPI is not set
CONFIG_SND_SOC_GTM601=m
# CONFIG_SND_SOC_HDA is not set
# CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_IDT821034 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC_MAX98088 is not set
# CONFIG_SND_SOC_MAX98090 is not set
CONFIG_SND_SOC_MAX98357A=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9867 is not set
CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MAX98520 is not set
# CONFIG_SND_SOC_MAX98363 is not set
# CONFIG_SND_SOC_MAX98373_I2C is not set
# CONFIG_SND_SOC_MAX98373_SDW is not set
# CONFIG_SND_SOC_MAX98388 is not set
# CONFIG_SND_SOC_MAX98390 is not set
# CONFIG_SND_SOC_MAX98396 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM1789_I2C is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
# CONFIG_SND_SOC_PCM186X_I2C is not set
# CONFIG_SND_SOC_PCM186X_SPI is not set
# CONFIG_SND_SOC_PCM3060_I2C is not set
# CONFIG_SND_SOC_PCM3060_SPI is not set
CONFIG_SND_SOC_PCM3168A=m
CONFIG_SND_SOC_PCM3168A_I2C=m
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM5102A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_PEB2466 is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
# CONFIG_SND_SOC_RT1017_SDCA_SDW is not set
# CONFIG_SND_SOC_RT1308_SDW is not set
# CONFIG_SND_SOC_RT1316_SDW is not set
# CONFIG_SND_SOC_RT1318_SDW is not set
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_RT5640 is not set
CONFIG_SND_SOC_RT5659=m
# CONFIG_SND_SOC_RT5682_SDW is not set
# CONFIG_SND_SOC_RT700_SDW is not set
# CONFIG_SND_SOC_RT711_SDW is not set
# CONFIG_SND_SOC_RT711_SDCA_SDW is not set
# CONFIG_SND_SOC_RT712_SDCA_SDW is not set
# CONFIG_SND_SOC_RT712_SDCA_DMIC_SDW is not set
# CONFIG_SND_SOC_RT722_SDCA_SDW is not set
# CONFIG_SND_SOC_RT715_SDW is not set
# CONFIG_SND_SOC_RT715_SDCA_SDW is not set
# CONFIG_SND_SOC_RT9120 is not set
# CONFIG_SND_SOC_SDW_MOCKUP is not set
CONFIG_SND_SOC_SGTL5000=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
# CONFIG_SND_SOC_SMA1303 is not set
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SRC4XXX_I2C is not set
# CONFIG_SND_SOC_SSM2305 is not set
# CONFIG_SND_SOC_SSM2518 is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
# CONFIG_SND_SOC_SSM3515 is not set
# CONFIG_SND_SOC_SSM4567 is not set
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
# CONFIG_SND_SOC_TAS2562 is not set
# CONFIG_SND_SOC_TAS2764 is not set
# CONFIG_SND_SOC_TAS2770 is not set
# CONFIG_SND_SOC_TAS2780 is not set
# CONFIG_SND_SOC_TAS2781_I2C is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TAS5720 is not set
# CONFIG_SND_SOC_TAS5805M is not set
# CONFIG_SND_SOC_TAS6424 is not set
# CONFIG_SND_SOC_TDA7419 is not set
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TFA989X is not set
# CONFIG_SND_SOC_TLV320ADC3XXX is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
CONFIG_SND_SOC_TLV320AIC31XX=m
CONFIG_SND_SOC_TLV320AIC32X4=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TLV320AIC3X_I2C=m
# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
# CONFIG_SND_SOC_TLV320ADCX140 is not set
# CONFIG_SND_SOC_TS3A227E is not set
# CONFIG_SND_SOC_TSCS42XX is not set
# CONFIG_SND_SOC_TSCS454 is not set
# CONFIG_SND_SOC_UDA1334 is not set
CONFIG_SND_SOC_WCD_CLASSH=m
CONFIG_SND_SOC_WCD_MBHC=m
CONFIG_SND_SOC_WCD938X=m
CONFIG_SND_SOC_WCD938X_SDW=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
# CONFIG_SND_SOC_WM8731_I2C is not set
# CONFIG_SND_SOC_WM8731_SPI is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8782 is not set
# CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
CONFIG_SND_SOC_WM8904=m
# CONFIG_SND_SOC_WM8940 is not set
CONFIG_SND_SOC_WM8960=m
# CONFIG_SND_SOC_WM8961 is not set
CONFIG_SND_SOC_WM8962=m
# CONFIG_SND_SOC_WM8974 is not set
CONFIG_SND_SOC_WM8978=m
# CONFIG_SND_SOC_WM8985 is not set
CONFIG_SND_SOC_WSA881X=m
# CONFIG_SND_SOC_WSA883X is not set
# CONFIG_SND_SOC_WSA884X is not set
# CONFIG_SND_SOC_ZL38060 is not set
# CONFIG_SND_SOC_MAX9759 is not set
# CONFIG_SND_SOC_MT6351 is not set
# CONFIG_SND_SOC_MT6358 is not set
# CONFIG_SND_SOC_MT6660 is not set
# CONFIG_SND_SOC_NAU8315 is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
# CONFIG_SND_SOC_NAU8821 is not set
CONFIG_SND_SOC_NAU8822=m
# CONFIG_SND_SOC_NAU8824 is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_LPASS_MACRO_COMMON=m
CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
CONFIG_SND_SOC_LPASS_RX_MACRO=m
CONFIG_SND_SOC_LPASS_TX_MACRO=m
# end of CODEC drivers

CONFIG_SND_SIMPLE_CARD_UTILS=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD2=m
# CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE is not set
# CONFIG_SND_TEST_COMPONENT is not set
# CONFIG_SND_VIRTIO is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_BATTERY_STRENGTH is not set
# CONFIG_HIDRAW is not set
# CONFIG_UHID is not set
CONFIG_HID_GENERIC=y

But,when we use the SDK PROCESS SDK-LINUX-RT-AM62X-08.06.00.42, it can perform recording operations normally without any errors.

The recorded audio file is as follows:


May I ask how to solve this problem?

Regards,
Li

  • Hi Li,

    Does changing the mic bias voltage make any difference?

    Best Regards,

    Suren

  • Hi Suren,

    Modifying the value of mic bias voltage, the result is still the same, but there are still errors. The test results are as follows:

    Best Regards,
    Li

  • Hi Li,

    You mentioned that on SDK 8.6 the audio can be recorded correctly on 44.1KHz and 48Khz as well?

    Are you sure your BCLK and WCLK/Frame Sync is correctly configured? 

    The only changes that have gone in post 8.6 are the latency improvements in audio. 

    Same configuration can't work on 10.1 released SDK code, is my understanding correct?

    Best Regards,

    Suren

  • Hi Suren,

    You mentioned that on SDK 8.6 the audio can be recorded correctly on 44.1KHz and 48Khz as well?

    Yes, on SDK 8.6, audio can be recorded correctly at 44.1KHz and 48Khz.

    Are you sure your BCLK and WCLK/Frame Sync is correctly configured? 

    It can be confirmed that the BCLK and WCLK/frame synchronization configurations are correct.

    Same configuration can't work on 10.1 released SDK code, is my understanding correct?

    As you understand, the same configuration does not work on the SDK 10.1.

    Best Regards,
    Li

  • Hi Suren,

    Is there any new progress on this issue?


    Best Regards,
    Li

  • Hi Li,

    I ran on my AM62P board with 10.1 SDK and don't see any issues.

    [2025-02-10 15:14:45.200] root@am62pxx-evm:/home/venc_leak# amixer -c 0 cset numid=71 on
    [2025-02-10 15:20:20.741] -c 0 cset numnumid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
    [2025-02-10 15:20:20.741]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 15:20:20.741]   : values=on
    [2025-02-10 15:20:20.791] id=70 on
    [2025-02-10 15:20:20.791] amixerroot@am62pxx-evm:/home/venc_leak# amixer -c 0 cset numid=70 on
    [2025-02-10 15:20:20.791] set numid=6numid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
    [2025-02-10 15:20:20.841]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 15:20:20.841]   : values=on
    [2025-02-10 15:20:20.841] 4 on
    [2025-02-10 15:20:20.841] amixeroot@am62pxx-evm:/home/venc_leak# amixer -c 0 cset numid=64 on
    [2025-02-10 15:20:20.869]  numid=65 numid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
    [2025-02-10 15:20:20.869]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 15:20:20.871]   : values=on
    [2025-02-10 15:20:20.871] on
    [2025-02-10 15:20:20.871] amixer root@am62pxx-evm:/home/venc_leak# amixer -c 0 cset numid=65 on
    [2025-02-10 15:20:20.871] t numid=15numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
    [2025-02-10 15:20:20.877]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 15:20:20.877]   : values=on
    [2025-02-10 15:20:20.877]  127root@am62pxx-evm:/home/venc_leak# amixer -c 0 cset numid=15 127
    [2025-02-10 15:20:22.205] numid=15,iface=MIXER,name='PCM Playback Volume'
    [2025-02-10 15:20:22.222]   ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
    [2025-02-10 15:20:22.222]   : values=127,127
    [2025-02-10 15:20:22.222]   | dBscale-min=-63.50dB,step=0.50dB,mute=0
    [2025-02-10 15:20:22.237] root@am62pxx-evm:/home/venc_leak# 
    [2025-02-10 15:20:24.301] root@am62pxx-evm:/home/venc_leak# 
    [2025-02-10 15:20:24.573] root@am62pxx-evm:/home/venc_leak# 
    [2025-02-10 15:20:24.733] root@am62pxx-evm:/home/venc_leak# 
    [2025-02-10 15:20:24.893] root@am62pxx-evm:/home/venc_leak# arecord -D hw:0,0 -r 48000 -c 2 -f S16_LE test.wav -d 20
    [2025-02-10 15:21:04.735] Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    [2025-02-10 15:21:24.735] root@am62pxx-evm:/home/venc_leak# aplay test.wav 
    [2025-02-10 15:21:30.686] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    [2025-02-10 15:21:50.749] root@am62pxx-evm:/home/venc_leak# arecord -D hw:0,0 -r 44100 -c 2 -f S16_LE test-44.wav -d 20                                                                                                                                                                                           
    [2025-02-10 15:22:06.348] Recording WAVE 'test-44.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62pxx-evm:/home/venc_leak# aplay test-44.wav                                                                                                                                                                                                                                                               
    [2025-02-10 15:22:36.921] Playing WAVE 'test-44.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [2025-02-10 15:22:57.000] root@am62pxx-evm:/home/venc_leak# 

    Can you cross check if any of your code changes from 8.6 to 10.1 have made a difference and the audio functionality has been broken on your end?

    Best Regards,

    Suren

  • Hi Suren,

    We didn't use am62p, we used am6234 / am6232 / am6231, Can you use these SoCs for testing?

    Can you also help me check if there are any issues with my device tree and kernel configuration in this post?

    The model of the audio chip we use is TLV320AIC3101IRHBT.


    Best Regards,
    Li

  • Hi Li,

    I also tested on AM62x board and I dont see any issues.

    [2025-02-10 22:00:47.679] root@am62xx-evm:~# amixer -c 0 cset numid=71 on
    [2025-02-10 22:01:01.154] er -c 0 cset nnumid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
    [2025-02-10 22:01:01.154]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 22:01:01.154]   : values=on
    [2025-02-10 22:01:01.200] umid=70 on
    [2025-02-10 22:01:01.200] root@am62xx-evm:~# amixer -c 0 cset numid=70 on
    [2025-02-10 22:01:01.200] c 0 cset numinumid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
    [2025-02-10 22:01:01.246]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 22:01:01.246]   : values=on
    [2025-02-10 22:01:01.246] d=64 on
    [2025-02-10 22:01:01.246] aroot@am62xx-evm:~# amixer -c 0 cset numid=64 on
    [2025-02-10 22:01:01.246]  0 cset numinumid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
    [2025-02-10 22:01:01.269] d  ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 22:01:01.269]   : values=on
    [2025-02-10 22:01:01.269] =65 on
    [2025-02-10 22:01:01.270] amixroot@am62xx-evm:~# amixer -c 0 cset numid=65 on
    [2025-02-10 22:01:01.270] t numid=15 12numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
    [2025-02-10 22:01:01.278]   ; type=BOOLEAN,access=rw------,values=1
    [2025-02-10 22:01:01.278]   : values=on
    [2025-02-10 22:01:01.294] 7root@am62xx-evm:~# amixer -c 0 cset numid=15 127
    [2025-02-10 22:01:06.222] numid=15,iface=MIXER,name='PCM Playback Volume'
    [2025-02-10 22:01:06.238]   ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0
    [2025-02-10 22:01:06.238]   : values=127,127
    [2025-02-10 22:01:06.238]   | dBscale-min=-63.50dB,step=0.50dB,mute=0
    [2025-02-10 22:01:06.254] root@am62xx-evm:~# 
    [2025-02-10 22:01:07.470] root@am62xx-evm:~# 
    [2025-02-10 22:01:07.678] root@am62xx-evm:~# 
    [2025-02-10 22:01:07.854] root@am62xx-evm:~# 
    [2025-02-10 22:01:08.030] root@am62xx-evm:~# 
    [2025-02-10 22:01:08.206] root@am62xx-evm:~# arecord -D hw:0,0 -r 48000 -c 2 -f S16_LE test.wav -d 10 --period-size=64
    [2025-02-10 22:01:59.914] Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    root@am62xx-evm:~# arecord -D hw:0,0 -r 48000 -c 2 -f S16_LE test.wav -d 10 --period-size=64^C
    [2025-02-10 22:02:18.520] root@am62xx-evm:~# aplay -D hw:0,0 test.wav 
    [2025-02-10 22:02:34.951] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
    root@am62xx-evm:~# arecord -D hw:0,0 -r 44100 -c 2 -f S16_LE test.wav -d 10 --period-size=64                                                                                                                                                                                                                     
    [2025-02-10 22:03:00.341] Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62xx-evm:~# aplay -D hw:0,0 test.wav 
    [2025-02-10 22:03:15.444] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62xx-evm:~# arecord -D hw:0,0 -r 44100 -c 2 -f S16_LE test.wav -d 10                 
    [2025-02-10 22:03:33.139] Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62xx-evm:~# aplay -D hw:0,0 test.wav  -f S16_LE test.wav -d 10 
    [2025-02-10 22:03:49.410] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [2025-02-10 22:03:59.473] root@am62xx-evm:~# aplay -D hw:0,0 test.wav 
    [2025-02-10 22:04:04.417] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62xx-evm:~# arecord -D hw:0,0 -r 44100 -c 2 -f S16_LE test.wav -d 10 
    [2025-02-10 22:04:20.800] Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    root@am62xx-evm:~# aplay -D hw:0,0 test.wav  -f S16_LE test.wav -d 10 
    [2025-02-10 22:04:34.159] Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [2025-02-10 22:04:44.238] root@am62xx-evm:~# 
    

    also we have disabled the fifo on our SDK software post 9.2 release. Refer the DTS file:

    git.ti.com/.../k3-am62x-sk-common.dtsi

    See if this helps.

    Best Regards,

    Suren

  • Hi Suren,
    Thank you for your patient support. The audio module can now record and play audio normally.
    Best Regards,
    Li