Win10 IoT on customized i.mx8m board, Audio microphone not found

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

Win10 IoT on customized i.mx8m board, Audio microphone not found

Jump to solution
351 Views
james_lin
Contributor II

Hi team

platform: imx8m Quad
build command we use:    ./buildme64.sh -b MX8M_EVK -t all -c


The Win10 IoT BSP version 1.5.1 already run well on my custom board.   In addition, we already create a driver for the audio codec chip we use "ES8388". The codec driver references the design of WM8962 in BSP driver folder.

Issue:

Sound play is work !  But recording is not. After checking device manerger and audio setting in win10, seems like the microphone device is missing. I have attached the windows screentshot for this.

I think the correct situation will see a microphone device in audio setting interface. Such like microphone(i.MX Audio Controller with DMA support).

update:
We use SAI2 to connect with codec,  here is my modification in iMX8BoardInit.c. I added the SAI2 RX pin initial in AudioInit().

/**
Initalize the Audio system
**/
#define SAI_PAD_CFG_OUT (IOMUXC_PAD_PUE_ENABLE | IOMUXC_PAD_DSE_R0_DIV_3 | IOMUXC_PAD_SRE_FAST)
#define SAI_PAD_CFG_IN (SAI_PAD_CFG_OUT | IOMUXC_PAD_HYS_ENABLED)
VOID AudioInit(VOID)
{
    EFI_STATUS status;
    // Mux the SAI2 pins to wm8524 codec
    IOMUXC_SW_MUX_CTL_PAD_SAI2_TXFS = IOMUXC_MUX_ALT0;
    IOMUXC_SW_MUX_CTL_PAD_SAI2_TXC = IOMUXC_MUX_ALT0;
    IOMUXC_SW_MUX_CTL_PAD_SAI2_TXD0 = IOMUXC_MUX_ALT0;
    IOMUXC_SW_MUX_CTL_PAD_SAI2_RXD0 = IOMUXC_MUX_ALT0;
    IOMUXC_SW_MUX_CTL_PAD_SAI2_MCLK = IOMUXC_MUX_ALT0;

    IOMUXC_SW_PAD_CTL_PAD_SAI2_TXFS = SAI_PAD_CFG_OUT;
    IOMUXC_SW_PAD_CTL_PAD_SAI2_TXC = SAI_PAD_CFG_OUT;
    IOMUXC_SW_PAD_CTL_PAD_SAI2_TXD0 = SAI_PAD_CFG_OUT;
    IOMUXC_SW_PAD_CTL_PAD_SAI2_RXD0 = SAI_PAD_CFG_IN;
    IOMUXC_SW_PAD_CTL_PAD_SAI2_MCLK = SAI_PAD_CFG_OUT;

    // unmute audio
    IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO08 = IOMUXC_MUX_ALT0;
    GPIO1_DR |= GPIO_DR_DR(1 << 8);
    GPIO1_GDIR |= GPIO_DR_DR(1 << 8);
    // enable the AUDIO_PLL - 44,100 Hz * 256
    status = ImxSetSAI2ClockRate (11289600);
     if (EFI_ERROR (status)) {
    DebugPrint (DEBUG_ERROR, "AudioInit - ImxSetAudioMclkClockRate failed");
    }
}

Please give me some hints to trace root cause.  
Thanks.

0 Kudos
Reply
1 Solution
312 Views
james_lin
Contributor II

I found the solution.

In file "AcpiTables/Dsdt-Audio.asl", the SAI2 capture interface is disabled for IMX8MEVK !  After enable this, now we can see the microphone device in win10 audio interface. Also it work fine right now.  

View solution in original post

0 Kudos
Reply
1 Reply
313 Views
james_lin
Contributor II

I found the solution.

In file "AcpiTables/Dsdt-Audio.asl", the SAI2 capture interface is disabled for IMX8MEVK !  After enable this, now we can see the microphone device in win10 audio interface. Also it work fine right now.  

0 Kudos
Reply