"); //-->
挂载文件节点,并进入相应目录:mount -t debugfs none /sys/kernel/debug
cd /sys/kernel/debug/sunxi_pinctrl
echo PE18 > sunxi_pin
cat sunxi_pin_configure
可以看见PE18被配置为中断执行下面命令cat /proc/interrupts
这里可以显示从开机到现在注册的中断以及其触发次数找到gt911中断(即PE18),此处显示,开机到现在有117次中断触发:点击屏幕然后再次输入指令:cat /proc/interrupts
可以看到中断次数增加
每个 pin 都有四种属性,如复用 (function),数据 (data),驱动能力 (dlevel),上下拉 (pull), 当 (function) 为0时,表示输入, 为1输出,其它功能请具体请参考《T5_Series_User Manual_V1.0(Draft).pdf》中的<10.6 port control>小节。另外,不是所有引脚都有中断功能,中断一般是(function)6执行下面命令cat /proc/interrupts
这里可以显示从开机到现在注册的中断以及其触发次数找到gt911中断(即PE18),此处显示,开机到现在有117次中断触发:点击屏幕然后再次输入指令:cat /proc/interrupts
可以看到中断次数增加 将PE18修改为输出模式:echo PE18 1 > function //将PE18设置成输出
cat sunxi_pin_configure //查看修改情况
点击屏幕然后再次输入指令:cat /proc/interrupts
发现中断次数不再变化将PE18修改为中断模式: echo PE18 6 > function //将PE18设置成输出
cat sunxi_pin_configure //查看修改情况
点击屏幕然后再次输入指令:cat /proc/interrupts
发现中断次数变化
gpio口对应手册《T5_Series_User Manual_V1.0(Draft).pdff》的<10.6port control>小节,请参考手册来阅读。对应驱动为与 dts 为:kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sun50iw9p1.c
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sun50iw9p1-r.c
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sunxi.c
要添加或者修改 io 口时,可以通过 dts 文件, 一般在 dts 中引脚以以下方式出现 :goodix_int = <&pio PE 18 1 0 1 0>;
其具体格式为:name = <&pio P[A-I] [0-32] func drv_level pull value>;
其中: name:驱动中使用的名子 [A-I]:表示端口号 [0-32]:表示此端口中的引脚号 <func>:表示此引脚要用作的功能,0 为输入,1 为输出,其它功能请具体请参考《T5_Series_User Manual_V1.0(Draft).pdf》中的<10.6 port control>小节。另外,不是所有引脚都有中断功能,中断一般是 func6,具体见手册。当找不到对应功能时(如常见的 func 7)表io disabled。 <pull>:是否使用上拉,0:不上下拉,1:上拉,2:下拉 <drv_level>:驱动能力(上下拉力度),可取值 0~3,越高驱动能越高。 <value>:io 的初始值如果把引脚配置为中断功能,一般在上写上6。另外,不是所有引脚都有中断功能,中断一般是 func6,具体见手册。下图是触摸屏中断引脚配置
-END-
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。