This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352配置GPIO中断无法生效

Other Parts Discussed in Thread: SYSCONFIG

引脚定义:

                {"gmii1_txd2.gpio0_17",OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP}

                并调用setup_pin_mux进行注册

申请GPIO

               char aTemp[10] = {0};

               gpioNum = 17;

               sprintf(aTemp, "zitgpio%d", gpioNum);

               gpio_request(gpioNum, aTemp);

               gpio_direction_input(gpioNum);

               gpio_export(gpioNum, 1);

中断申请:

              irq_num = gpio_to_irq(gpioNum);

              static int noused;

              request_irq(irq_num, drv_fpga_isr, IRQF_SHARED|IRQF_TRIGGER_FALLING, "Fpga_Int", &noused);

              irq_set_irq_type(irq_num, IRQF_SHARED|IRQF_TRIGGER_FALLING);

上述配置均执行成功,且GPIO各寄存器数值如下:

GPIO_SYSCONFIG           = 0x0000001d
GPIO_IRQSTATUS_SET_0  = 0x00020000
GPIO_IRQSTATUS_SET_1  = 0x00000000
GPIO_LEVELDETECT0       = 0x00000000
GPIO_LEVELDETECT1       = 0x00000000
GPIO_RISINGDETECT       = 0x00000000
GPIO_FALLINGDETECT     = 0x00020000
GPIO_IRQWAKEN_0          = 0x00020000
GPIO_IRQWAKEN_1          = 0x00000000
GPIO_IRQSTATUS_RAW_0  = 0x00000000
GPIO_IRQSTATUS_RAW_1  = 0x00000000
GPIO_IRQSTATUS_CLR_0  = 0x00020000
GPIO_IRQSTATUS_CLR_1  = 0x00000000
GPIO_OE                             = 0xffffffff
GPIO_DATAIN                      = 0x00080000
GPIO_DATAUOT                  = 0x00000000
GPIO_CLEARDATAOUT      = 0x00000000
GPIO_SETDATAOUT           = 0x00000000

查看cat /proc/interrupts 信息如下:

           CPU0       

  4:          0      INTC  omap2_elm

 12:         78      INTC  edma

 14:          0      INTC  edma_error

 16:          0      INTC  tsc, tiadc

 30:          0      INTC  omap_i2c

 36:      45262      INTC  da8xx_lcdc

 40:          0      INTC  cpsw

 43:          0      INTC  cpsw

 64:        184      INTC  mmc0

 68:      77296      INTC  gp timer

 70:       1019      INTC  omap_i2c

 71:          0      INTC  omap_i2c

 72:       2623      INTC  OMAP UART0

 77:          0      INTC  wkup_m3

 78:          1      INTC  wkup_m3_txev

 93:          0      INTC  cpsw

 94:          0      INTC  cpsw

109:         84      INTC  omap4-sham

166:          0      GPIO  mmc0

177:          0      GPIO  Fpga_Int

Err:          0

 

问题:

    外部对GPIO0_17引脚输入低电平时,GPIO0_17引脚仍为高电平,且不会触发中断处理函数drv_fpga_isr的执行,不知道问题出在哪里,多谢!