對soc-audio體系snd_soc_machine和snd_soc_dai_link簡單理解


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將被強制綁定在一起,實現一對一,點對點數據和控制信息彼此交互.
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM