GPIO IRQ on P1022

Wolfgang Grandegger wg at grandegger.com
Mon Aug 1 03:49:42 EST 2011


Hi Felix,

On 07/31/2011 05:51 PM, Felix Radensky wrote:
> Hi Wolfgang,
> 
> On 07/31/2011 06:19 PM, Wolfgang Grandegger wrote:
>> On 07/31/2011 12:38 PM, Felix Radensky wrote:
>>> Hi,
>>>
>>> I'm running kernel 3.0 on a custom board based on Freescale P1022.
>>> The interrupt line of on-board FPGA is connected to GPIO2_9. FPGA
>>> IRQ is level, active low. The GPIOs are mapped like this:

Here you say that it's a level sensitive interrupt but ...

>>> GPIOs 160-191, /soc at ffe00000/gpio-controller at f200:
>>>
>>> GPIOs 192-223, /soc at ffe00000/gpio-controller at f100:
>>>
>>> GPIOs 224-255, /soc at ffe00000/gpio-controller at f000:
>>>
>>> I've verified that pin mixing is done correctly, and the
>>> FPGA IRQ line is indeed configured as GPIO.
>>>
>>> I have the following code in my driver:
>>>
>>>      #define FPGA_IRQ_GPIO 169
>>>
>>>      err = gpio_request(FPGA_IRQ_GPIO, "FPGA IRQ");
>>>      if (err) {
>>>          printk(KERN_ERR "Failed to request FPGA IRQ GPIO, err=%d\n",
>>> err);
>>>          goto out;
>>>      }
>>>
>>>      gpio_direction_input(FPGA_IRQ_GPIO);
>>>
>>>      irq = gpio_to_irq(FPGA_IRQ_GPIO);
>>>      if (irq<  0) {
>>>          printk(KERN_ERR "Failed to map FPGA GPIO to IRQ\n");
>>>          goto out;
>>>      }
>>>
>>>      err = request_irq(irq, gsat_interrupt,
>>>                IRQF_TRIGGER_FALLING, DRVNAME, priv);

.. you request here an edge triggered interrupt.

Wolfgang.



More information about the Linuxppc-dev mailing list