DM8168 内核中GPIO复用管脚的配置

1.进入8168芯片手册,查找管脚复用控制部分,找到相应GPIO的地址,以及对应的模式。

2.在kernel代码里,进入arch/arm/mach-omap2/, 在board-ti8168evm.c文件中找到struct omap_board_mux 结构体。

3.在Mux81xx.h中,根据1中查到的GPIO地址以及模式,找到对应的宏定义,然后返回到步骤2中,在结构体中进行对应的修改。

4.GPIO模式在芯片手册中表示为:MUXMODE,由后三位组成。

5.在捕捉gpio中断时,上升下降沿均有可能出现大量的毛刺。

DM8168 内核中GPIO复用管脚的配置

波形A,当有高电平到来(t0)时,会临时产生一点毛刺(t0-t1),此时用上升沿判定中断比较准确。但是在波形B中,当遇到下降沿(t1)时,还会产生毛刺(t2-t3),会继续产生上升沿中断(t2)。此时会出现多处很多中断的处理。

当使用下降沿作为中断,当高电平到来时,A波形的毛刺(t0-t2)不会太多或者不会出现。或者也会在(t0)后第一个下降沿判定中断,此时加上延时,就可以忽略(t0-t3)的所有中断。B波形中,会在(t1)时刻捕捉到一个中断(t2-t3)的毛刺均被延时忽略。

处理方案:使用毛刺的短时、自动回落的特性,在每次捕捉到中断后,使用延时读取value。如果与预期值相同,则为真实中断。若不同,则可以判定为毛刺。