AnsweredAssumed Answered

Trying to register IRQ for GPT2 capture event on IMX6ULL board

Question asked by Phani Teja on Jun 22, 2018
Latest reply on Jul 16, 2018 by igorpadykov

Hello,

Here is my code snippet

platform_get_resource(pdev, IORESOURCE_MEM, 0);
devm_ioremap_resource(&pdev->dev, mem);
timer->irq = platform_get_irq(pdev, 0);
devm_request_irq(p_dev, timer->irq, r_irq_handler, 2, INPUT_PIN_DESC, pdev->dev.of_node);

 

DTS file:

gpttest: gpttest@020e8000 {
compatible = "fsl,imx-gpttest";
reg = <0x020e8000 0x4000>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_GPT2_BUS>,
<&clks IMX6UL_CLK_GPT2_SERIAL>;
clock-names = "ipg", "per";
};

My devm_request_irq call is failing here with the following out:

   genirq: Setting trigger mode 2 for irq 36 failed (irq_chip_set_type_parent+0x0/0x20)
   DRIVER_NAME: probe of 20e8000.gpio failed with error -22

 

I have done some debugging, from the function __irq_set_trigger() in manage.c while validating the chip->irq_set_type() its returning -22 (invald argument) error

 

Queries:

  1. When I tried to register for IRQ 109, why it is taking as 36?
  2. Is there any chip level limitation for FALLING_EDGE interrupt for this particular gpt2 capture pin?
  3. Am I missing anything to register this?

 

Thanks,

Phani Movva

Outcomes