ASoC框架分为3部分:框架
1. platform(用来描述芯片的DAI接口,负责数据传输):函数
DAI:snd_soc_dai_driver,code
用来表示支持哪些格式数据,orm
提供设置格式的函数,接口
启动数据传输io
数据传输:snd_soc_platform_driverform
2. codec (用来描述音频编解码芯片,含有2部分:DAI接口,控制接口):音频
DAI:snd_soc_dai_driver,数据
用来表示支持哪些格式数据,di
提供设置格式的函数
控制接口:snd_soc_codec_driver
读写芯片的寄存器
3. machine (snd_soc_card,snd_soc_dai_link,
用来肯定使用哪个platform,哪个codec芯片)
最后会注册一个名为“soc-audio”的平台设备,
致使soc-core.c中的soc_probe函数被调用,
进而分配/设置/注册 snd_card