linux系统 wm9713声卡配置 记要
来源:互联网 发布:笔记本没有com端口 编辑:程序博客网 时间:2024/04/29 05:36
linux系统 wm9713声卡配置 记录
最近在搞wm9713的外音播放和耳机的检测,搞了几天不负所望,终于搞定了。现记录如下,开发板为real210 v6.2版本:
如果要让外音输出,那么确保wm9713的0x1c寄存器的值为0x1200,耳机输出为0x00a0,当然两者也可同时输出,值为0x12a0。
另外还要设置AC97_EXTENDED_MSTATUS寄存器(即0x3e寄存器),设置的值为0xb900(打开喇叭输出使能,第7、8位控制喇叭 9、10位控制耳机,设置为0为开启)。
当然音量的设置也是必须的AC97_MASTER(0x02)设置外音音量,AC97_HEADPHONE(0x04)设置耳机音量,我这里的值设置的为0x0000和0x0606,其中0x0000是为最大声音。
要有耳机检测,那么还要设置两个寄存器(其他开发板可能是由CPU来检测是否有耳机插入,这里是由wm9713自己检测,CPU不干预)AC97_INT_PAGING和AC97_ADDITIONAL_FUNC1(即0x24和0x5a),值分别是0x10和0x40。
下面贴出这些设置的整个函数,需要的话直接使用即可(codecs目录下的wm9713.c文件):
#define AC97_ADDITIONAL_FUNC10x5astatic int wm9713_hifi_hw_params(struct snd_pcm_substream *substream,struct snd_pcm_hw_params *params,struct snd_soc_dai *dai){struct snd_soc_codec *codec = dai->codec;ac97_write(codec, AC97_POWERDOWN, 0x0000);ac97_write(codec, AC97_PHONE, 0x0808);ac97_write(codec, AC97_EXTENDED_MID, 0xf803);ac97_write(codec, AC97_EXTENDED_MSTATUS, 0xb900);//这里要打开喇叭输出使能,第7、8位控制喇叭 9、10位控制耳机,设置为0为开启ac97_write(codec, AC97_MASTER, 0x0000);ac97_write(codec, AC97_HEADPHONE, 0x0606);ac97_write(codec, AC97_REC_GAIN, 0x12a0);//0x00a0 耳机输出 0x1200 喇叭输出ac97_write(codec, AC97_INT_PAGING, 0x10);//使能耳机插入检测ac97_write(codec, AC97_ADDITIONAL_FUNC1, 0x40);//设置检测耳机插入的IO端口#ifdef CONFIG_SOUND_WM9713_INPUT_STREAM_MICac97_write(codec, 0x5c, 0x0002);ac97_write(codec, AC97_LINE, 0x0068);ac97_write(codec, AC97_VIDEO, 0xfe00);#elseac97_write(codec, AC97_VIDEO, 0xd612);#endifreturn 0;}
<pre class="cpp" name="code" code_snippet_id="318423" snippet_file_name="blog_20140429_2_1272125">static struct snd_soc_dai_ops wm9713_dai_ops_hifi = {.hw_params= wm9713_hifi_hw_params,.prepare= ac97_hifi_prepare,.set_clkdiv= wm9713_set_dai_clkdiv,.set_pll= wm9713_set_dai_pll,};
0 0
- linux系统 wm9713声卡配置 记要
- linux系统 wm9713声卡配置 记录
- Linux路由器配置记要
- 6410 声卡wm9713 驱动分析
- ALSA配置Linux声卡
- S3C2416移植内核linux3.1的wm9713声卡过程
- android系统开发记要
- Linux汇编语言学习记要
- SVN服务器安装配置记要
- SVN服务器安装配置记要
- 记要
- Linux ALSA声卡驱动之一:ALSA系统架构
- Linux ALSA声卡驱动之一:ALSA系统架构
- Linux下声卡驱动软件ALSA的安装与配置
- windows操作系统下CVS配置记要
- LVS的NAT模式配置记要
- 检测声卡配置
- Debian 5 配置声卡
- Swift编程资料总结
- 循环-19. 币值转换(20)
- 拿到一个新 bug 怎样分析
- 尝试打破思维枷锁的新习惯
- 代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)
- linux系统 wm9713声卡配置 记要
- Java经典习题(2)
- 继电器的驱动电路——两种电路引发的争论
- leetcode-Binary Tree Zigzag Level Order Traversa
- 删除条目时的确认对话框
- projecteuler---->problem=19----Counting Sundays
- ARM NEON 技术简介
- 《Java并发编程实战》第十六章 Java内存模型 读书笔记
- C#基础知识01------数据类型转换