i.MX8MM MiCFiL in Machine driver (imx-micfil) DAI fmt query

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8MM MiCFiL in Machine driver (imx-micfil) DAI fmt query

712 Views
sreedhar_appala
Contributor IV

Hi,

We are working with i.MX8MM EVK + i.MX 8MIC-RPI-MX8 Board.

i.MX 8MIC-RPI-MX8 Board is interfaced to i.MX8MM EVK through MICFIL (PDM) interface

arecord of mic capture at 16KHz randomly observed spike. this behavior is random.

we are testing with the test application as suggested by "igor"

https://source.codeaurora.org/external/imx/imx-test/tree/test/mxc_pdm_test?h=imx_5.4.47_2.2.0

Meanwhile, when we observe the machine driver code for micfil   "imx-micfil.c"

/* For playback the XTOR is slave, and for record is master */
fmt |= tx ? SND_SOC_DAIFMT_CBS_CFS : SND_SOC_DAIFMT_CBM_CFM;
dir = tx ? SND_SOC_CLOCK_OUT : SND_SOC_CLOCK_IN;

For rx , The MiCFiL is Slave (SND_SOC_DAIFMT_CBM_CFM), 

Is my understanding is correct?

And can we change it as Master and clock direction as "out"

Kindly let us know.

Thank you, Sreedhar

0 Kudos
3 Replies

705 Views
igorpadykov
NXP Employee
NXP Employee

Hi Sreedhar

 

>For rx , The MiCFiL is Slave (SND_SOC_DAIFMT_CBM_CFM), 

>Is my understanding is correct?

 

yes correct

 

>And can we change it as Master and clock direction as "out"

 

in general one can change it, however for i.MX 8MIC-RPI-MX8 Board

no manual driver changes are needed. One can follow 

sect.3 Record  Audio    i.MX 8MIC-RPI-MX8 Board Quick Start Guide

 

Best regards
igor

0 Kudos

699 Views
sreedhar_appala
Contributor IV

Thank you Igor!!

"

>For rx , The MiCFiL is Slave (SND_SOC_DAIFMT_CBM_CFM), 

>Is my understanding is correct?

yes correct

"

If MiCFIL interface is Slave during receive operation. Could you please clarify me who is the master sending the clock? Is it PDM MiC?

Thank you, Sreedhar

0 Kudos

692 Views
igorpadykov
NXP Employee
NXP Employee

Hi Sreedhar

 

based on below driver comments, for XTOR slave clock is provided from PDM microphone side

 

/* For playback the XTOR is slave, and for record is master */
fmt |= tx ? SND_SOC_DAIFMT_CBS_CFS : SND_SOC_DAIFMT_CBM_CFM;
dir = tx ? SND_SOC_CLOCK_OUT : SND_SOC_CLOCK_IN;

 

Best regards
igor

0 Kudos