我是靠谱客的博主 强健灯泡,这篇文章主要介绍asoc 总结 1,现在分享给大家,希望可以做个参考。

ASoC框架分为3部分:

  1. platform(用来描述芯片的DAI接口,负责数据传输):含有 DMA

DAI:snd_soc_dai_driver,

用来表示支持哪些格式数据,

提供设置格式的函数,

启动数据传输

数据传输:snd_soc_platform_driver

  1. codec (用来描述音频编解码芯片,含有2部分:DAI接口,控制接口):

DAI:snd_soc_dai_driver,

用来表示支持哪些格式数据,

提供设置格式的函数

控制接口:snd_soc_codec_driver

读写芯片的寄存器

  1. machine (snd_soc_card,snd_soc_dai_link,

用来确定使用哪一个platform,哪一个codec芯片)

最后会注册一个名为“soc-audio”的平台设备,

导致soc-core.c中的soc_probe函数被调用,

进而分配/设置/注册 snd_card
 ****************************************************

  1. 分配注册一个名为soc-audio的平台设备
  2. 这个平台设备有一个私有数据 snd_soc_card
    snd_soc_card里有一项snd_soc_dai_link
    snd_soc_dai_link被用来决定ASOC各部分的驱动
    3 snd_soc_dai_link 描述
    A snd_soc_dai_link结构体中的部分成员,通过各种name的字符串描述了框架中使用的是哪一个平台,哪一个CPU DAI接口,哪一个codec,codec中的DAI接口等信息。
    B 其中 平台 、CPU的DAI接口 、codec的名字 都使用的是 platform_device 和对应的 platform_driver的 .name
    (name 会被相关的函数 继承给 各个模块的结构体)
    而 codec中的DAI 使用的是 static struct snd_soc_dai_driver 的 .name
     ****************************************************

最后

以上就是强健灯泡最近收集整理的关于asoc 总结 1的全部内容,更多相关asoc内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部