-
一、以计步器为例
-
平台: 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 = <PINMUX_GPIO60__FUNC_GPIO60>;
-
+ 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 中断配置_dws_dts
最新推荐文章于 2023-05-29 17:01:06 发布