ASOC (ALSA system on chip) // 主要為嵌入式系統專門開發的sound管理體系結構[luther.gliethttp].
Digital Audio Interface (DAI) types
/* SoC machine */
struct snd_soc_machine { // snd_soc_machine集cpu內部音頻控制邏輯和cpu外部音頻解碼芯片通信邏輯於一體[luther.gliethttp].
...... // audio machine driver表示音頻設備結構體,我的ep9312作為一個arm-SoC芯片,
// 就是這里的machine,一個machine當然要包含自己內部的音頻控制接口單元--cpu_dai和
// 外部音頻設備通信協議轉換接口單元--codec_dai這兩部分,這樣ep9312才能使用自己
// 內部的一個音頻控制通道,通過數據交互總線協議(如:PCM,IIS或AC97)
// 控制接口單元--codec_dai,向外部的具體芯片發送或接收音頻數據[luther.gliethttp].
/* CPU <--> Codec DAI links */
struct snd_soc_dai_link *dai_link; // 核心單元,一個黏結器,黏結了cpu內部音頻控制器接口和arm開發板中cpu外置音頻解碼芯片通信接口
int num_links;
};
/* SoC machine DAI configuration, glues a codec and cpu DAI together */
struct snd_soc_dai_link { // 當然就是指該SoC芯片的DAI接口鏈接了,它主要包含下面2個內容.cpu_dai和.codec_dai
......
/* DAI */
struct snd_soc_codec_dai *codec_dai;// cpu外置的解碼芯片的DAI數字音頻控制接口[luther.gliethttp]
struct snd_soc_cpu_dai *cpu_dai; // cpu內部支持的DAI數字音頻控制接口,比如ssp,IIS等
...... // cpu_dai和codec_dai將被強制綁定在一起,實現一對一,點對點數據和控制信息彼此交互.
}
