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.
Hi Mustafa
one can try unit tests
mxc_alsa_hw_params\test - imx-test - i.MX Driver Test Application Software
mxc_esai_test\test - imx-test - i.MX Driver Test Application Software
and with Linux L4.14.62
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I am able to reproduce even if I do the mentioned tests. Specifically mxc_esai_test/doc/FSL-UT-ESAI-002.txt for recording has the same behavior. Though I needed to set my card -Dhw:0,1, Otherwise it did not work. Mic and recording works through 3.5mm jack, but does not work with IMX-AUD-IO's MIC 1, MIC 2 or LINE IN lines.
please look at latest documentation:
Best regards
igor
@igorpadykovThank you for your response.
I have gone through the documents and nothing help me to solve the issue. Still the sound recorded using the mic connected to the IMX-AUD-IO board is not audible while playing it.
Could you please help me on further to solve the issue?
one can try with latest Demo Image from
and sect.7.5 Audio Mixer (AUDMIX) i.MX Linux Reference Manual
Best regards
igor
Thank you very much@igorpadykov for your support. It's working with latest linux.
So, It is not possible to make it work in the 4.14.98 ? I am following the virtualization guide which is using linux 4.14.98 and android 9 auto. I think android 9could not be used with the latest linux.
Hi shabna_m
one can try attached patch, to test ESAI1 on i.MX8QM MEK board, connect IMX-AUD-IO
board to AUDIO SLOT 2 in MXCIMX8-8X-BB board.
In IMX-AUD-IO board, when playback, connect speaker to OUT-FL and OUT-FR,
when capture, connect line in cable to LINE IN-R and LINE IN-L.
Generally formal support for each peripheral and processor type is described in Release Notes
for each software release
Formal support for functionalities above that is provided using
https://contact.nxp.com/new-prof-svcs-sw-tech
Best regards
igor
Thank you @igorpadykov . I have tried what you have mentioned. Unfortunately it is not working, even the speaker also.
Could you please mention what type of mic you are using? To confirm,it is not a hardware failure.
if, as you said : " It's working with latest linux"
one can port changes to necessary linux revision.
NXP can help with such efforts, there is special service for that:
https://contact.nxp.com/new-prof-svcs-sw-tech
Best regards
igor
@igorpadykovI am extremely sorry for sharing the wrong information before. "Mic is not working in the latest linux bsp".
Thank you for your patience.
Hi Mustafa
this is preproduction part (not publicly released yet) and not officially
supported. Full featured support may be provided with NXP Professional Services
NXP Professional Services|NXP
Best regards
igor