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);//设置检测耳机插入的IO端口
#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,
};
				
时间: 2024-08-05 11:18:44

linux系统 wm9713声卡配置 记录的相关文章

LINUX系统查看相关配置命令

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 #

​查看Linux系统的所有配置命令

查看Linux系统的所有配置命令     1.查看主板的序列号: dmidecode | grep -i 'serial number'     2.查看CPU信息: cat /proc/cpuinfo dmesg | grep -i 'cpu' dmidecode -t processor     3.查看内存信息: cat /proc/meminfo free -m vmstat     5.查看网卡信息: dmesg | grep -i 'eth' cat /etc/sysconfig/h

Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置

转自:http://www.linuxdown.net/install/config/2016/0611/5853.html Linux系统下如何配置SSH_Centos7 ssh连接配置 CentOS7下安全配置SSH 时间:2016-06-11 11:13来源:未知 作者:Linux先生 举报 点击:1804次 SSH 通常是我们进入新伺服器的第一个应用程式,它也取代了telnet 和rsh 成为管理伺服器的最主要介面. SSH 通常是我们进入新伺服器的第一个应用程式,它也取代了telnet

(转)Linux系统基础网络配置老鸟精华篇

Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太多的初学者徘徊在门外就不奇怪了,这里,老男孩老师花了一些时间总结了这个文档小结,也还不够完善,欢迎大家补充,交流.谢谢大家!20120827补充:http://oldboy.blog.51cto.com/2561410/974194 深入浅出route命令小结目录:1)配置修改主机名hostname

Linux系统 无需JRE配置Java

Linux系统 无需JRE配置Java 最近使用Deepin想要搞搞Spring项目,所以必须要配置java以及maven,这里详细描述一下两套方法部署Java 案例一:低版本配置方法(不高于11版本,这些版本需要配置JRE) 1.下载 JDK 进入 Oracle 官方网站 下载合适的 JDK 版本,准备安装. 注意:这里需要下载 Linux 版本.这里以jdk-8u151-linux-x64.tar.gz为例,你下载的文件可能不是这个版本,这没关系,只要后缀(.tar.gz)一致即可. 2.

Linux 系统中 如何配置自定义命令 (Mac本同样适用)

我相信  熟悉Linux的同学们  都有一个烦恼  就是 如果要查看某一个文件的时候   要一级或者多级的去cd切换目录,哪有木有便捷的方法来随意切换呢?  就像快捷键一样这就是在 Linux 系统中配置自定义命令,很简单?? 在文件/root/.bashrc中,添加以下行: alias mycommand = "cd /root" 在终端直接执行mycommand就会执行cd /root ??:    source ~/.bash_profile  这个命令一定要记得执行,这一行命令

U盘安装CentOS7.2 Linux系统和基础配置

通过U盘安装Linux系统,基本步骤如下: 首先需要一个8gb左右的U盘,容量越大越好,CentOs 7.2版本的完整ISO镜像文件已经达到7GB左右. 从163开源站(http://mirrors.163.com)下载CentOs7.2的ISO镜像文件,这里下载的是4GB大小的ISO文件CentOS-7-x86_64-DVD-1511.iso 从网上下载一个U盘刻录工具,常见的U盘刻录工具有U1traISO.USBWriter等,这里推荐使用USBWirter,因为USBWriter使用简单,

Linux系统下如何配置SSH?如何开启SSH?

SSH作为Linux远程连接重要的方式,如何配置安装linux系统的SSH服务,如何开启SSH?下面来看看吧(本例为centos系统演示如何开启SSH服务) 1.登陆linux系统,打开终端命令.输入 rpm -qa |grep ssh 查找当前系统是否已经安装 2.如果没有安装SSH软件包,可以通过yum  或rpm安装包进行安装(具体就不截图了) 启动SSH服务 安装好了之后,就开启ssh服务.Ssh服务一般叫做 SSHD 命令行输入  service sshd start 可以启动  或者

linux下apache+openssl配置记录

最近在研究linux下的apache-ssl配置,写点个人小心得,新人发博,敬请见谅. 软件环境 Apache Httpd 2.2.29 (http://httpd.apache.org ) OpenSSL 1.0.1h (http://www.openssl.org/source ) SSL-Tools (http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz ) 1. OpenSSL #tar zxvf openssl-1.0.1h.tar.gz #