23. 中断配置_dws_dts

一、以计步器为例
平台: androidN,MTK6737
芯片: qma6981

1. 查看硬件连接或excel表格,确定中断脚 :GPIO60

2. 配置dws:
	GPIO60:  M0  Def.Dir:IN  In  GPIO_GSE_1_EINT_PIN 
	EINT60:  GSE_1	Debounce:0  Polarity:Low  Sensitive_Level:Level  DebounceEn:disable
			
3. 修改dts添加中断控制引脚
		/* sensor gpio standization */
	+	&pio {
	+		/*   qma6981  interrupt setting */
	+		QMA6981_pins_eint_int: eintconfig {
	+			pins_cmd_dat {
	+				pins = ;
	+				slew-rate = <0>;
	+				bias-disable;
	+			};
	+		};
	+
	+		QMA6981_pins_default: eintdefault {
	+		};
			
		alsps_intpin_cfg: alspspincfg {
		....
		
		/*   qma6981  interrupt setting */
	+	&gsensor {
	+		pinctrl-names = "default", "qma6981_eint_as_int";  
	+		pinctrl-0 = <&QMA6981_pins_default>;
	+		pinctrl-1 = <&QMA6981_pins_eint_int>;
	+		status = "okay";    
	+	};
		&alsps {

	修改dtsi,不然编译报错	
	-	gsensor@0 {
	+	gsensor:gsensor@0 {
			compatible = "mediatek,gsensor";
		};
		
		/*qma6981  interrupt setting (dummy nodes)*/
		gse_1: gse_1 {
			compatible = "mediatek, gse_1-eint";
	-		status = "disabled";
	+		status = "okay";		// 使能中断
		};


二、 中断调试
	1. 查看中断
		--  查看中断是否注册成功
		cat /proc/interrupts
				CPU0		CPU1
		...
		196:          0       GIC 	196  mtk-kpd
		298:          0   mt-eint  	10   TOUCH_PANEL-eint

	2. 查看pin脚模式
		cat /sys/class/misc/mtgpio/pin
		PIN:MODE,PULL_SEL,DIN,DOUT,PULL EN,DIR,IES,SMT
		0:	1	 1		  1	  0	   1	   0   1   0
		1:  0	 0		  0	  0	   1	   0   1   0
		
		【DIR】0 - in  1 - out
		中断方向因为in,如果查看反向不对,说明在别的地方被修改了
		
		写值
		echo \"-w=99:0 1 0 0 0 0 0 1\" > /sys/class/misc/mygpio/pin

	3. 检查dts与dtsi 看中段的GPIO口是否被复用了


你可能感兴趣的:(mtk驱动)