mtk 6771 耳机底层配置分享

(42条消息) MTK6797 Accdet驱动分析总结_kerson的专栏-CSDN博客

(42条消息) 3. MTK 底层耳机中断上报流程_zhigouliu的博客-CSDN博客

这里分享一下本人再耳机调试的心的,理论有不懂的可以参考上面博客。

耳机硬件配置采用Accdet+EINT 方式进行触发,使用TypeC接口,硬件原理如下:

1. 软件中需要对以下两个宏进行配置;

CONFIG_ACCDET_EINT_IRQ = n

CONFIG_ACCDET_EINT = y

2.配置accdet触发中断;

 查看原理图,找一个空闲的中断作为accdet中断触发

gpio设置中断使能,设置上拉模式,引脚配方向为输入,默认为低电平;

eint开启消抖,时间256毫秒,默认极性为低

//xx.dws配置文件
 <gpio2>
                <eint_mode>true</eint_mode>//中断模式
                <def_mode>0</def_mode>
                <inpull_en>true</inpull_en>//上下拉电阻模式使能
                <inpull_selhigh>true</inpull_selhigh>//上拉还是下拉
                <def_dir>IN</def_dir>//管脚方向
                <out_high>false</out_high>//默认极性
                <varName0>GPIO_EARPHONE_DETECT_PIN</varName0>                
                <smt>false</smt>           
                <ies>true</ies>
 </gpio2>

<eint2>
                <varName>ACCDET</varName>
                <debounce_time>256</debounce_time>//消抖时间
                <polarity>Low</polarity>
                <sensitive_level>Level</sensitive_level>
                <debounce_en>Enable</debounce_en>//消抖使能
</eint2>

或者使用Drvgern Tool工具进行gpio配置:

 3.配置麦克gpio管脚-MICGND_SEL

 

<gpio7>
                <eint_mode>false</eint_mode>
                <def_mode>2</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <smt>false</smt>
                <ies>true</ies>
 </gpio7>

4.配置usb管脚-USBLR_SEL

 

<gpio22>
                <eint_mode>false</eint_mode>
                <def_mode>0</def_mode>
                <inpull_en>false</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <smt>false</smt>
                <ies>true</ies>
 </gpio22>

 5.设备树中配置引脚模式

&pio {
	accdet_pins_default: accdetdefault {
	};
	accdet_pins_eint_as_int: accdeteint@0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO2__FUNC_GPIO2>;//accdet中断引脚
			slew-rate = <0>;
			bias-disable;
		};
	};
    /*accdet模式配置*/
	accdet_audio_mode: accdetaudio@0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO22__FUNC_GPIO22>;//usb引脚audio模式
			slew-rate = <1>;
			output-high;
		};
	};
	accdet_usb_mode: accdetusb@0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO22__FUNC_GPIO22>;//usb引脚usb模式
			slew-rate = <1>;
			output-low;
		};
	};
    /*耳机正反面插接配置,配置出错可能倒置耳机正反插效果差异*/
	accdet_micswitch_high: micswitchhigh@0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO7__FUNC_GPIO7>;//麦克TypeC正面接口
			slew-rate = <1>;
			output-high;
		};
	};
	accdet_micswitch_low: micswitchlow@0 {
		pins_cmd_dat {
			pinmux = <PINMUX_GPIO7__FUNC_GPIO7>;麦克TypeC反面接口
			slew-rate = <1>;
			output-low;
		};
	};
};
/* accdet end */

6.其他相关引脚按照硬件原理图进行配置

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值