AnsweredAssumed Answered

IMX 8 QuadMax MEK, CS42888 does not work..

Question asked by Mustafa Ozcelikors on Dec 11, 2018
Latest reply on Dec 12, 2018 by igorpadykov

I need some help getting IMX-AUD-IO board / CS42888 to work with my iMX8QuadMax Multisensory Enablement Kit. I am using fsl-imx-xwayland distro, 4.9.51_beta2 BSP, fsl-imx-qt5-validation-imx image, and issuing the following commands to record audio from a mic that is connected to MIC 1 in IMX-AUD-IO board.

 

arecord -f dat -d 10 -D hw:0 test.wav
aplay test.wav


But there is no audio.

 

I could see that esai mapping is successful for cs42888 in the dmesg. So I assume driver is succesfully loaded and initialized.

The list of playback devices (aplay -l):

**** List of PLAYBACK Hardware Devices ****
card 0: cs42888audio [cs42888-audio], device 0: HiFi cs42888-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: wm8960audio [wm8960-audio], device 0: HiFi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: wm8960audio [wm8960-audio], device 1: HiFi-ASRC-FE (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: imxaudiohdmi [imx-audio-hdmi], device 0: imx8 hdmi snd-soc-dummy-dai-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The list of recording devices (arecord -l):

**** List of CAPTURE Hardware Devices ****
card 0: cs42888audio [cs42888-audio], device 0: HiFi cs42888-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: wm8960audio [wm8960-audio], device 0: HiFi wm8960-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: wm8960audio [wm8960-audio], device 1: HiFi-ASRC-FE (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Contents (amixer -c 0 contents):

numid=13,iface=MIXER,name='ADC High-Pass Filter Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=21,iface=MIXER,name='ADC Single Volume Control Switch'
  ; type=INTEGER,access=rw------,values=1,min=0,max=1,step=0
  : values=0
numid=22,iface=MIXER,name='ADC Soft Ramp & Zero Cross Control Switch'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 'Immediate Change'
  ; Item #1 'Zero Cross'
  ; Item #2 'Soft Ramp'
  ; Item #3 'Soft Ramp on Zero Cross'
  : values=0
numid=5,iface=MIXER,name='ADC1 Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=176,step=0
  : values=128,128
  | dBscale-min=-64.00dB,step=0.50dB,mute=0
numid=11,iface=MIXER,name='ADC1 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=15,iface=MIXER,name='ADC1 Single Ended Mode Switch'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Differential'
  ; Item #1 'Single-Ended'
  : values=0
numid=6,iface=MIXER,name='ADC2 Capture Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=176,step=0
  : values=128,128
  | dBscale-min=-64.00dB,step=0.50dB,mute=0
numid=12,iface=MIXER,name='ADC2 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=16,iface=MIXER,name='ADC2 Single Ended Mode Switch'
  ; type=ENUMERATED,access=rw------,values=1,items=2
  ; Item #0 'Differential'
  ; Item #1 'Single-Ended'
  : values=0
numid=19,iface=MIXER,name='DAC Auto Mute Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on
numid=14,iface=MIXER,name='DAC De-emphasis Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off
numid=17,iface=MIXER,name='DAC Single Volume Control Switch'
  ; type=INTEGER,access=rw------,values=1,min=0,max=1,step=0
  : values=0
numid=18,iface=MIXER,name='DAC Soft Ramp & Zero Cross Control Switch'
  ; type=ENUMERATED,access=rw------,values=1,items=4
  ; Item #0 'Immediate Change'
  ; Item #1 'Zero Cross'
  ; Item #2 'Soft Ramp'
  ; Item #3 'Soft Ramp on Zero Cross'
  : values=0
numid=7,iface=MIXER,name='DAC1 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=1,iface=MIXER,name='DAC1 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
  : values=255,255
  | dBscale-min=-127.50dB,step=0.50dB,mute=1
numid=8,iface=MIXER,name='DAC2 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=2,iface=MIXER,name='DAC2 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
  : values=255,255
  | dBscale-min=-127.50dB,step=0.50dB,mute=1
numid=9,iface=MIXER,name='DAC3 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=3,iface=MIXER,name='DAC3 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
  : values=255,255
  | dBscale-min=-127.50dB,step=0.50dB,mute=1
numid=10,iface=MIXER,name='DAC4 Invert Switch'
  ; type=BOOLEAN,access=rw------,values=2
  : values=off,off
numid=4,iface=MIXER,name='DAC4 Playback Volume'
  ; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
  : values=255,255
  | dBscale-min=-127.50dB,step=0.50dB,mute=1
numid=20,iface=MIXER,name='Mute ADC Serial Port Switch'
  ; type=BOOLEAN,access=rw------,values=1
  : values=off


I played around with alsamixer, and I don't see anything muted, although amixer contents list some properties as muted. There is no sound coming from the recorded audio. I need some help figuring this out.

 

I made sure that 4.9.51_beta2 BSP Release Notes say that CS42888 works finely in their release, so I doubt it is a BSP-related problem.

 

There is unfortunately no help in the documentation (4.9.51_beta2) for this kind of issue, -that I could see-, other than a few arecord commands. So any guidance is appreciated. Thanks.

Outcomes