linux 音频架构绕过,linux音频驱动架构

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的配置工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值