I.MX6 Audio through I2S through AUDMUX using DMA to a kernel buffer by bypassing ALSA

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

I.MX6 Audio through I2S through AUDMUX using DMA to a kernel buffer by bypassing ALSA

Jump to solution
5,273 Views
sebimohan
Contributor III

We are trying to create a custom I.MX6 board. I it we need to connect a audio source(PCM samples) via I2S to AUDMUX. We need to get this PCM data as such to a kernel buffer(With my understandig throug DMA). The kernel buffer need to know it only as a raw data. So we dont want the ALSA driver actualy. I there any way to bypass the ALSA driver?. Can we use any existing Freescale BSP for this purpose??

Labels (6)
0 Kudos
1 Solution
968 Views
karina_valencia
NXP Apps Support
NXP Apps Support
Re: I.MX6 Audio through I2S through AUDMUX using DMA to a kernel buffer by bypassing ALSA

Adrian Alonso LazcanoEmployee

Hi,

Linux software stack expects to relay on ALSA so user space applications can use any of the present audio devices, drivers for all of iMX audio IP (ESAI, SSI, SPDIF) drivers exposes functionality that ALSA model expects.

So applications like Gstreamer, Mplayer can use those devices to redirect audio for play or capture and expose controls to change properties like volume.

In other hand the iMX Audio drivers use DMA to transfer raw audio from iMX to codec and viceversa

For example iMX6 SabreSD board SSI driver uses a macro to enable DMA support in the board definition (linux-2.6-imx/arch/arm/mac-mx6/board-mx6q_sabresd.c)

imx_ssi_platform_data structure has the flags:

IMX_SSI_DMA which instructs to enable the driver with DMA support.

Regards

Adrian

View solution in original post

0 Kudos
2 Replies
967 Views
nagendrasarma
Contributor III

hi  all

i have same requirement

could you please help me in this ? how to capture more than 2 channel audio directly from i2s ?

regards

Nagendra

0 Kudos
969 Views
karina_valencia
NXP Apps Support
NXP Apps Support
Re: I.MX6 Audio through I2S through AUDMUX using DMA to a kernel buffer by bypassing ALSA

Adrian Alonso LazcanoEmployee

Hi,

Linux software stack expects to relay on ALSA so user space applications can use any of the present audio devices, drivers for all of iMX audio IP (ESAI, SSI, SPDIF) drivers exposes functionality that ALSA model expects.

So applications like Gstreamer, Mplayer can use those devices to redirect audio for play or capture and expose controls to change properties like volume.

In other hand the iMX Audio drivers use DMA to transfer raw audio from iMX to codec and viceversa

For example iMX6 SabreSD board SSI driver uses a macro to enable DMA support in the board definition (linux-2.6-imx/arch/arm/mac-mx6/board-mx6q_sabresd.c)

imx_ssi_platform_data structure has the flags:

IMX_SSI_DMA which instructs to enable the driver with DMA support.

Regards

Adrian

0 Kudos