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??
Solved! Go to Solution.
AdrianAlonso Aug 27, 2013 11:03 AM (in response to imxcommunityscout)
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
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
AdrianAlonso Aug 27, 2013 11:03 AM (in response to imxcommunityscout)
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