linux音频驱动架构

来源:互联网 发布:php沐辰的博客 编辑:程序博客网 时间:2024/05/16 08:43

1、linux音频驱动架构分为3部分组成:硬件无关层(核心层ALSA)、板级音频数字接口层驱动(McASP、McBSP等)、外部codes驱动


sound/soc/davinci/ti81xx-etv.c;文件定义了板级数字音频接口驱动和外部code驱动的关联关系

static struct snd_soc_dai_link ti81xx_mcasp_dai[] = {
{
.name = "TLV320AIC3X",
.stream_name = "AIC3X",
.cpu_dai_name= "davinci-mcasp.2",
.codec_dai_name = "tlv320aic3x-hifi",
.codec_name = "tlv320aic3x-codec.1-0018",
.platform_name = "davinci-pcm-audio",
.init = ti81xx_evm_aic3x_init,
.ops = &ti81xx_evm_ops,
},
#ifdef CONFIG_SND_SOC_TI81XX_HDMI
{
.name = "HDMI_SOC_LINK",
.stream_name = "hdmi",
.cpu_dai_name = "hdmi-dai",
.platform_name = "davinci-pcm-audio",
.codec_dai_name = "HDMI-DAI-CODEC",     /* DAI name */
.codec_name = "hdmi-dummy-codec",
},
#endif
};

上面代码中定义了两路音频通道,每路通道都将其对应的外部code驱动、板级数字音频接口驱动绑在了一起。其中板级数字音频接口驱动包括两部分:McASP驱动(这个主要是负责McASP接口的寄存器配置)、davinci-pcm驱动(McASP接口其实就是一个PCM数字音频接口,这个驱动主要是负责一些DMA调度)


sound/soc/davinci/davinci-mcasp.c这个源码是负责McASP接口的配置工作。
sound/soc/davinci/davinci-pcm.c这个驱动是负责pcm数字音频接口的相关DMA调度工作。


sound/soc/codecs/sii9233a_audio.c

sound/soc/codecs/tlv320aic3x.c 

这两个驱动是外部code驱动,负责外部code的配置工作。








原创粉丝点击