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