http://blog.csdn.net/morixinguan/article/details/56514356
之前寫過一篇文章,是對alc5623.c codec部分進行了大緻架構的分析,現在要解決一些實際問題,關于上層的代碼我就不公布了,隻公布在驅動的代碼:
在手冊中,我們看到一個這樣的寄存器設定。
先來看看說明文檔,主要是做主音量的輸出。
下面就是詳細的如何配置0x0C的寄存器
我遇到的問題是,到了上層應用,無法通過按鍵調節主音量,并會提示:
can't find simple control"Master",0
如何解決?
在kcontrol中添加一個Master,用它來做主音量控制。
SOC_DOUBLE_TLV在這個宏中已經配置了info和put函數,意思就是設定音量還有擷取音量。
//set函數設定音量
//put函數擷取音量
那麼設定完後編譯通過後下到闆子裡就可以正常驅動了。
還有一個問題,當耳機插入時,調節音量,耳機在放,喇叭也在放,怎麼解決?
在耳機插入時:
隻要将喇叭關掉,将耳機開啟就可以了。
下面的這兩步操作最為關鍵,當耳機插入時,關閉喇叭,将音源更新到耳機裡。