我们现在遇到一个问题,我们申请了 GPIO_0_14下降沿中断,但是进中断函数后,我们获取IO的状态并打印的时候,发现值为1,下降沿中断本应该为零才对,我们给GPIO_0_14低电平时间约为50us,我们想知道GPIO中断产生到进入中断函数,时间消耗是多少
以下为部分代码
ret = request_irq(gpio_to_irq(GPIO_TO_PIN(0,14)), PS2_exint_isr, IRQ_TYPE_EDGE_FALLING, DEVICE_NAME, NULL);
;;;;
static irqreturn_t PS2_exint_isr(int irq,void *dev_id)
{
int a = AM335X_GPIO_GET_PIN(PS2_CLK);
printk("a=%d\n",a);
return IRQ_HANDLED;
}
我们得到的打印值都是a=1
下面是驱动初始化时打印的部分寄存器。
[ 231.388556] GPIO_VERSON Register=50600801
[ 231.392784] GPIO_DEBOUNCENABLE Register=0
[ 231.404147] GPIO_DEBOUNCTIME Register=0
[ 231.408262] GPIO_fall Register=0
[ 231.411641] GPIO_irqset0 Register=0
[ 231.415280] GPIO_irqset1 Register=0
[ 231.419818] IRQ 174 has been attached to s3c2410 PS/2 !
[ 231.425286] GPIO_DEBOUNCENABLE Register=0
[ 231.437170] GPIO_DEBOUNCTIME Register=0
[ 231.441194] GPIO_fall Register=4000
[ 231.444832] GPIO_irqset0 Register=4000
[ 231.448782] GPIO_irqset1 Register=0
hongling liao:
目前测到的是GPIO0的所有IO中断都要几ms的消耗,,但是GPIO1~3都不需要,
估计跟GPIO0 wakeup 有关系
谁知道怎么关闭GPIO0的wake up 吗?
我用的是linux-3.2-psp04.06.00.07.sdk
Yaoming Qin:
回复 hongling liao:
这个问题,我也会继续看看