本文分别以rk809以及数字麦es7202 为例子,针对音量调节的问题展开介绍,希望对各位同学有一定帮助。
rk809音量的调节;1 首先最直接的就是修改dts里面的spk-volume这个数值,其值不能小于3,3为音量的最大值,值越大,音量就越小;spk-volume会在rk809的codec驱动中去解析,并写入相关的音量寄存器中,所以才会生效;
2.rk817_playback_path_put
该函数里面就是可以实现音量的控制,主要通过修改寄存器
snd_soc_component_write(component, RK817_CODEC_DDAC_VOLL,
rk817->spk_volume);
snd_soc_component_write(component, RK817_CODEC_DDAC_VOLR,
rk817->spk_volume);
当你修改dts后,音量控制不生效,那么就使用第二种方式,创建一个etc/asound.conf文件,添加如下内容, 也就是会在amixer下面新增加一个kcontrol,名字为soft_vol;
pcm.rk809_sound { #rk809_sound这个就是和你dts上的名称一致
type softvol
slave.pcm "hw:0,0" #此处改成hw:0,0指声卡0的设备0,要修改成你们实际的声卡号以及设备号
control {
name "soft_vol"
card 0 #此处需要修改成你们实际的声卡号
}
}
上面步骤弄好后,执行/etc/init.d