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函数获取音量
那么设置完后编译通过后下到板子里就可以正常驱动了。
还有一个问题,当耳机插入时,调节音量,耳机在放,喇叭也在放,怎么解决?
在耳机插入时:
只要将喇叭关掉,将耳机开启就可以了。
下面的这两步操作最为关键,当耳机插入时,关闭喇叭,将音源更新到耳机里。