Linux ALSA聲卡驅動之二:音頻設備與驅動的銜接、註冊

1、背景概述

         本方案基本MT7628平臺,wm8960爲codecs,i2s總線播放,相關代碼隨後上傳,結合代碼進行分析會更清晰

2、設備註冊與驅動觸發

 

綜上所述,soc_mtk_i2s_dev、mt76xx_audio_device、soc_mtk_pcm_dev、設備掛載到platform平臺上,從而觸發mt76xx_i2s_driver、soc_driver、mt76xx_pcm_driver驅動程序的probe,註冊掛載相應的dai結構體,codec_wm8960則是掛載在i2c總線上,觸發wm8960_i2c_driver驅動程序的probe。mt76xx_i2s_dai結構體裏的ops是對cpu以及i2s的處理,即上一節說的cpu_dai,wm8960_dai結構體裏的ops是對codecs的處理,也就是上一節說的codec_dai,就是把模擬的音頻信號,轉化爲數字信號等一系列處理。mt76xx_soc_platform,就是上一節說的platform,就是而是按照一定的格式,一定的規則有序的進行傳輸等操作。而mt76xx_audio_device設備掛載,觸發soc_driver的probe則是一個重點,一個驅動初始化的入口,會初始化一系列動作,後面會詳細的解說。

3、源代碼以及文件分佈

在sound/soc/mtk/mt76xx_machine.c裏面,進行一系列platform_device註冊。

在sound/soc/mtk/mt76xx_i2s.c文件中,註冊驅動程序,在soc_mtk_i2s_dev註冊時通過"mt76xx-i2s"匹配執行相應probe

在sound/soc/mtk/mt76xx_pcm.c文件中,註冊驅動程序,在soc_mtk_pcm_dev註冊時通過"mt76xx-pcm"執行相應probe

在sound/soc/codecs/wm8960.c文件中,註冊驅動程序,在設備註冊時通過"wm8960"匹配執行相應probe

 

在sound/soc/soc-core.c文件中,註冊驅動程序,設備註冊時通過"soc-audio"匹配執行相應probe

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章