耳机按键检测阈值

1、使能micbias的时候会编程阈值寄存器。

vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd-mbhc-v2.c

enum wcd_mbhc_cs_mb_en_flag {
	WCD_MBHC_EN_CS = 0,
	WCD_MBHC_EN_MB,
	WCD_MBHC_EN_PULLUP,
	WCD_MBHC_EN_NONE,
};

  wcd_enable_curr_micbias()

耳机按键检测阈值

 2、调用函数指针去设置按键阈值

vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd-mbhc-v2.c

wcd_program_btn_threshold()

        mbhc->mbhc_cb->set_btn_thr(component, btn_low, btn_high,
				btn_det->num_btn, micbias);

 3、对应的函数

vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd937x/wcd937x-mbhc.c

static const struct wcd_mbhc_cb mbhc_cb = {
        .set_btn_thr = wcd937x_mbhc_program_btn_thr,

4、

vendor/qcom/opensource/audio-kernel/asoc/codecs/wcd937x/wcd937x-mbhc.c

wcd937x_mbhc_program_btn_thr()

耳机按键检测阈值

 可以看出btn_hight最高不能超过787,超过后&0x3F会变成一个很小的值。

5、上报键值

snd_jack_report()

耳机按键检测阈值

 

上一篇:案例 -- 用户注册倒计时


下一篇:网页超大文件上传解决方案:分片断点上传(一)