概要
asoc驱动指基于asoc框架实现的驱动模块,包括platform、codec、DAI、machine。
- platform驱动注册接口snd_soc_register_platform
- codec、codec dai驱动注册接口snd_soc_register_codec
- machine驱动注册接口snd_soc_register_card
- cpu DAI驱动注册接口snd_soc_register_component
asoc core 会为codec、platform、DAI创建相应的component实例。codec创建的component实例会包含所属的所有DAI实例,DAI创建的component实例也是一样。
接口
snd_soc_register_codec
创建codec实例,把codec实例、codec driver实例抽象成component实例、component driver实例。根据codec dai driver创建相应的dai实例并挂在到component实例的链表里。把component实例挂在到全局链表component_list。
snd_soc_register_platform
创建platform实例,把platform实例、driver实例抽象成component实例、component driver实例。把component实例挂在到全局链表component_list。
snd_soc_register_component
创建component实例,根据 dai driver创建相应的dai实例并挂在到component实例的链表里。把component实例挂在到全局链表component_list。