Linux asoc codec驅動調試小結

本篇記錄下自己在調試codec驅動時的經驗及注意事項,這裏主要是放音playback調試

需要什麼:

標準的linux codec驅動,如何編寫驅動以後有時間再寫一篇吧

原理圖,需要查看對應的引腳,I2S的clck和data腳以及是否有reset pin腳和pdn引腳等

步驟:

1.編寫好驅動,更改相關目錄makfile和kconfig確認驅動可以編譯通過並能編譯進內核之中。

2.根據原理圖和soc pinmux手冊配置相關的gpio選擇所要的通途,MCLK,BCLK,LRCLCK和DATA等

3.配置dts的pinmux,以及codec,codec配置方法根據驅動的註冊方式可以放在i2c節點,也可以放在聲卡節點。

調試之前可以先使用i2ctool工具驗證i2c即硬件是否通了,i2c tools命令有i2cdetect,i2cset,i2cget,i2cdump四組,i2cdetect 檢測掛在總線上的設備;i2cset 寫命令;i2cget讀命令;i2cdump 批量讀命令,可以將i2cdetect ,i2cset等可執行文件拷貝到開發板data目錄下。

#./i2cdetect -l

查看註冊到內核的i2c 控制器

#./i2cdetect -y -r 4

查看掛在i2c-4總線上的設備地址

示例探測到設備地址爲0x30

筆者在調試的時候碰到過幾次i2c註冊失敗的 kernel直接掛死的log

通過i2cdetect確認設備存在之後多半就是驅動的問題,先確認是否驅動被編譯進了內核

還遇到一個就是dts的配置的codec名字與驅動的i2c註冊的名字不匹配

如果板子成功跑起來,通過timymix看一下驅動的konctrol接口能不能設置成功。比如操作我們加的音量控制kcontrol接口

如果操作報錯 一般是pin腳沒拉好 codec沒有正常操作。

一切正常的話我們就播放文件驗證是否能出聲,沒有聲音怎麼辦

量一下clck和data,檢查pinmux配置錯了沒有

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