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_FUNC1 0x5a
static 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);//设置检測耳机插入的IOport
#ifdef CONFIG_SOUND_WM9713_INPUT_STREAM_MIC
ac97_write(codec, 0x5c, 0x0002);
ac97_write(codec, AC97_LINE, 0x0068);
ac97_write(codec, AC97_VIDEO, 0xfe00);
#else
ac97_write(codec, AC97_VIDEO, 0xd612);
#endif
return 0;
}
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,
};
linux系统 wm9713声卡配置 记录的更多相关文章
- Oracle 11g客户端在Linux系统上的配置步骤详解
Oracle 11g客户端在Linux系统上的配置步骤详解 2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T 本文我们主要介绍了Oracle 11g客户端在L ...
- Linux系统Apache服务 - 配置 HTTP 的虚拟机主机
接Linux系统Apache服务 - 配置HTTP的默认主页 1.创建/srv目录,作为httpd的文件目录,并创建/srv/default/www和/srv/www1.example.com/www ...
- Linux系统基本网络配置之ifconfig命令
Linux系统基本网络配置之ifconfig命令 一.Linux系统的网络配置基本包括:网络IP的配置.网关路由的配置.主机DNS的配置.主机名的配置等,本篇注重介绍网络IP的配置. 二.Linux系 ...
- 查看linux系统各种参数配置的命令
查看linux系统各种参数配置的命令 last |grep shutdown //查看上次关机时间 last |grep reboot ...
- (转)Linux系统基础网络配置老鸟精华篇
Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太 ...
- Linux系统下如何配置JDK1.8
Linux系统下如何配置jdk1.8 1 jdk的下载 文件名称 jdk-8u121-linux-x64.tar.gz 下载地址 http://www.oracle.com/technetwork/j ...
- Linux系统下安装配置JDK(rpm方式及tar.gz方式)
以前都是在Windows环境进行开发的,最近因工作需要:学习在Linux系统下搭建开发环境,自此记录搭建过程,以方便查阅. 本文借鉴了 Angel挤一挤 .小五 两位的博客. 准备材料: JDK下载链 ...
- Linux系统下如何配置SSH?如何开启SSH
查询\安装SSH服务 1.登陆linux系统,打开终端命令.输入 rpm -qa |grep ssh 查找当前系统是否已经安装 2.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装( ...
- Linux系统下如何配置SSH?如何开启SSH?
SSH作为Linux远程连接重要的方式,如何配置安装linux系统的SSH服务,如何开启SSH?下面来看看吧(本例为centos系统演示如何开启SSH服务). 查询\安装SSH服务 1.登陆linux ...
随机推荐
- VMwarep挂载镜像及配置本地Yum源
1.挂载镜像: *. 通过mount命令 linux mount挂载设备(u盘,光盘,iso等 )使用说明 *. 通过VMware的控制页面手工挂载 1.1 打开Vmware软 ...
- 【DRF频率】
目录 使用自带的频率限制类 使用自定义的频率限制类 开发平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. DRF就为我们提供了一些频率限制的方法. DRF中的版本.认证.权限 ...
- 003 python 注释/数据类型/运算符/输入输出/格式化输出
集成开发环境 pycharm 工欲善其事,必先利其器 pycharm是具备一般的python ide的功能,同时呢支持调试,语法高亮,代码管理,智能提示 加快快发的速度,提高开发效率 注释 what ...
- 【Cocos2d-x 017】 多分辨率适配全然解析
转:http://blog.csdn.net/w18767104183/article/details/22668739 文件夹从Cocos2d-x 2.0.4開始,Cocos2d-x提出了自己的多分 ...
- JAVA Mail邮件实现发送
package com.test;import java.util.Date;import java.util.Properties;import javax.mail.Message;import ...
- Trie&可持久化Trie
WARNING:以下代码未经测试,若发现错误,欢迎指出qwq~ Trie树(字典树) 一种简单的数据结构,可存储大量字符串,可在$O(len)$的时间内完成插入,删除,查找等操作. 下面是一个简单的例 ...
- BZOJ3998: [TJOI2015]弦论(后缀自动机,Parent树)
Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...
- Appium_python3 抓取客户端toast
在客户端登录或者退出登录的时候会有吐司提示,因此需要抓取来验证用户登录成功或者注销成功: 在获取toast之前需要添加 desired_caps['automationName'] = 'Uiau ...
- liunx中安装禅道
本文转自:https://www.cnblogs.com/bendouyao/p/10026746.html 一.准备工作 禅道安装包ZenTaoPMS.8.1.3.zbox_64.gz,上传至服务器 ...
- ecshop微信接口基础认识
ecshop微信接口基础认识,当你要学习ecshop和微信整合的时候,你就必须研究ecshop的数据结构对接以及微信数据接口的基本知识.我们知道微信其实就是通过有效的消息推送,用JSON格式的数据或者 ...