PM8916 Codec Hardware Multibutton Headset Control (MBHC)

PM8916 Codec Hardware Multibutton Headset Control (MBHC)_第1张图片
这个是NC和NO的区别在det脚的初始的状态。
qcom,msm-mbhc-hphl-swh = <0>;
拉低中断,
简单的理解就是低电平检测还是高电平检测
PM8916 Codec Hardware Multibutton Headset Control (MBHC)_第2张图片

static const struct wcd_mbhc_intr intr_ids = {  
    .mbhc_sw_intr =  MSM8X16_WCD_IRQ_MBHC_HS_DET,  
    .mbhc_btn_press_intr = MSM8X16_WCD_IRQ_MBHC_PRESS,  
    .mbhc_btn_release_intr = MSM8X16_WCD_IRQ_MBHC_RELEASE,  
    .mbhc_hs_ins_intr = MSM8X16_WCD_IRQ_MBHC_INSREM_DET1,  
    .mbhc_hs_rem_intr = MSM8X16_WCD_IRQ_MBHC_INSREM_DET,  
    .hph_left_ocp = MSM8X16_WCD_IRQ_HPHL_OCP,  
    .hph_right_ocp = MSM8X16_WCD_IRQ_HPHR_OCP,  
}; 

重要的函数

1.耳机插入检测
当中断触发,MBHC机械检测是通过hsdet销连接
在软件中使用的配置来检测插入和移除插入3.5毫米的插头
耳机插孔连接器。与一个比较器的阈值相比,hsdet针的电压被比较了。
这里是固定在1.62 V,软件中可以设置到1.8V,用于支持更多不同的阻值的耳机类型。
NO 就是HSDET从上拉到低电平
NC 就是HSDET从HPH_L的接触到断开,上拉到1.8V

PM8916 Codec Hardware Multibutton Headset Control (MBHC)_第3张图片
通过设置寄存器来选择不同的逻辑

Microphone clamp control for pop-noise suppression
0x0001F159 CDC_A_MBHC_RESULT_2[4]
Insertion detected
S1 and S2 are disabled and S4 is enabled 0

S1 and S2 are enabled and S4 is disabled 1

The debounce time is programmable from 8 to 2048 ms and is set through register 0x0001F152
CDC_A_MBHC_DBNC_TIMER[7:4], INSREM_DBNC. The recommended and default
debounce value used in the QTI software baseline is 256 ms.

PM8916 Codec Hardware Multibutton Headset Control (MBHC)_第4张图片

你可能感兴趣的:(LINUX,android,codec)