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