WM8960支持耳机插拔检测功能,其中ADCLRC/GPIO1、LINPUT3/JD2和RINPUT3/JD3可以用来作为耳机插拔检测引脚。

需要配置的寄存器有如下几个:
1、R24的5、6位。第6位使能检测功能;第5位为选择极性,0表示检测到高电平为耳机输出,1表示检测到高电平为喇叭输出。

2、R48的第2-3位。用来选择哪个引脚作为检测引脚。

3、R23的0、1位。

设备树中,sound节点下,hp-det的属性是用来选择检测引脚和设置极性的。

sound/soc/fsl/imx-wm8960.c

...
#define WM8960_ADDCTL1      0x17
#define WM8960_ADDCTL2      0x18
...
#define WM8960_ADDCTL4      0x30
...
static void wm8960_init(struct snd_soc_dai *codec_dai)
{struct snd_soc_codec *codec = codec_dai->codec;struct snd_soc_card *card = codec_dai->card;struct imx_wm8960_data *data = snd_soc_card_get_drvdata(card);/** codec ADCLRC pin configured as GPIO, DACLRC pin is used as a frame* clock for ADCs and DACs*/snd_soc_update_bits(codec, WM8960_IFACE2, 1<<6, 1<<6);/** GPIO1 used as headphone detect output*/snd_soc_update_bits(codec, WM8960_ADDCTL4, 7<<4, 3<<4);/** Enable headphone jack detect*/snd_soc_update_bits(codec, WM8960_ADDCTL2, 1<<6, 1<<6);snd_soc_update_bits(codec, WM8960_ADDCTL2, 1<<5, data->hp_det[1]<<5);snd_soc_update_bits(codec, WM8960_ADDCTL4, 3<<2, data->hp_det[0]<<2);snd_soc_update_bits(codec, WM8960_ADDCTL1, 3, 3);/** route left channel to right channel in default.*/snd_soc_update_bits(codec, WM8960_ADDCTL1, 3<<2, 1<<2);
}

WM8960耳机插拔检测相关推荐

  1. Android4.×耳机插拔检测

    Android4.2耳机插拔检测实现方法 1. 耳机检测的硬件原理 一般的耳机检测包含普通的耳机检测和带mic的耳机检测两种,这两种耳机统称为Headset,而对于不带mic的耳机,一般称之为Head ...

  2. 【TopDesk】3.1.1. 利用IMMNotificationClient实现耳机插拔检测

    鉴于本人并非Win32专精,C++也只是学了个大概,因此涉及到底层的部分或有疏漏之处,拙文献丑,还请各位道友多多包涵体谅,能提出修改意见更是感激不尽. 0x00 现代化探索 早在以前写点GDI小程序的 ...

  3. linux耳机插拔检测,Android应用开发之耳机插拔处理两种方式

    本文将带你了解Android应用开发[RK3288][Android6.0] 耳机插拔处理两种方式,希望本文对大家学Android有所帮助. [RK3288][Android6.0]   耳机插拔处理 ...

  4. 高通平台耳机插拔检测

    https://blog.csdn.net/u012899335/article/details/82312766 高通耳机的插拔检测需要配置NC或NO,并且使用匹配的耳机(欧标,美标). 欧标,美标 ...

  5. 【audio】耳机插拔 线控按键识别流程【转】

    耳机插拔/线控按键识别流程 耳机插拔/线控按键识别流程 1.文档概述 本文以msm8909平台,android N为例,介绍了通用情况下,耳机插拔的流程步骤,以及对耳机类型的识别逻辑.以方便在项目工作 ...

  6. 【audio】耳机插拔/线控按键识别流程

    耳机插拔/线控按键识别流程 1.文档概述 本文以msm8909平台,android N为例,介绍了通用情况下,耳机插拔的流程步骤,以及对耳机类型的识别逻辑.以方便在项目工作中经常会遇到耳机不被识别,或 ...

  7. Android耳机耳机,Android 耳机插拔流程源码跟踪浅析

    Android 开发过程中,使用耳机控制拍照,控制音乐播放,控制打电话等,线控再到蓝牙控... 耳机也在不断升级,耳机插拔的程序这一块也在不断完善.因此,在定制开发过程中,阅读这部分流程代码是必修的功 ...

  8. AVPlayer耳机插拔

    AVPlayer耳机插拔暂停播放. //耳机插拔监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector ...

  9. CoreAudioApi-音频端点设备-检测耳机插拔

    术语"端点设备"是指位于数据路径一端的硬件设备,该数据路径源自或终止于应用程序.音频终端设备的例子有扬声器.耳机.麦克风和CD播放器.沿着数据路径移动的音频数据可能在应用程序和端点 ...

最新文章

  1. ContentProvider初探
  2. JavaWeb课程复习资料(四)——创建Servlet
  3. 何佳文(帮别人名字作诗)
  4. python时间差转换成天数_Python实现计算两个时间之间相差天数的方法
  5. 不用电脑怎么设置苹果铃声_苹果手机怎么设置铃声?完整教程分享
  6. 【转】winIO的解释与使用
  7. 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题
  8. 5000+ 字解读 | 产品经理:如何做好元器件选型?
  9. 可信计算理论与技术--远程证明技术
  10. 2018DeeCamp面试问答
  11. Python基础之列表、元组、字典、集合
  12. js中math常用使用方法
  13. Maven之(四)Maven命令
  14. 待飞的蒲公英---拔剑四顾心茫然
  15. SAP MB51选择界面配置
  16. 爬虫中extract的简单用法
  17. “即玩即赚”“从玩到赚”类游戏所面临的问题及方案
  18. vista下安装mysql
  19. 010 Editor没有Template Results -DEX.bt 解决方法
  20. Gazebo下借助ORB_SLAM2进行自定义相机参数的双目视觉仿真

热门文章

  1. python中0代表什么_python语言中,0.1**0.3表示什么_学小易找答案
  2. 江西理工大学南昌校区排名赛 A: 单身狗的卡片游戏
  3. java版商城 springcloud+springboot+mybatis+redis+uniapp 多商户电子商务源码 直播带货源码 短视频带货源码 社交电商源码 分布式 微服务电子商务源码
  4. java抓包asp_asp 之上传漏洞终结篇
  5. 浅谈tcp协议与tcp_tw
  6. IBM大型机技术学习笔记(三) - IBM的RACE技术
  7. uni-app 超详细教程(三)(从菜鸟到大佬)
  8. Android多线程和异步任务
  9. 迅为-i.MX6ULL开发板-QT实战项目DHT11网络编程实战练习(一)
  10. 绿盟赛—鲲鹏软件迁移实践