前言
ASoC–ALSA System on Chip,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系,我们使用ASOC框架的话就不用调用snd_card_create等函数来创建我们的声卡,目前已经被整合至内核的代码树中:sound/soc,ASOC把声卡的驱动分为三部分,分别为machine,platform,codec
如上图所示,我们对machine,platform,codec三部分做简要的介绍
machine:单板相关,表明platform是哪个,CPU DAI是哪个,DMA是哪个,表明codec是哪个,code DAI是哪个,驱动负责处理机器特有的一些控件和音频事件,单独的Platform和Codec驱动是不能工作的,它必须由Machine驱动把它们结合在一起才能完成整个设备的音频处理工
platform:DAI设置接口,DMA传数据,包含了该SoC平台的音频DMA和音频接口的配置和控制
codec:DAI,控制接口,Codec驱动是平台无关的
深一步分析