demuxing irqs

Jon Smirl jonsmirl at gmail.com
Tue Sep 16 22:37:55 EST 2008


On Tue, Sep 16, 2008 at 8:17 AM, Anton Vorontsov
<avorontsov at ru.mvista.com> wrote:
> Hi Jon,
>
> On Sun, Sep 14, 2008 at 11:06:23PM -0400, Jon Smirl wrote:
>> I have demultiplexing the GPIO interrupts working well enough to make
>> my hardware work. But now I've discovered that these interrupts can't
>> do what I need.
>>
>> Anton, Grant - are either of you interested in this code? It's not
>> finished but the main ideas are in place.
>
> I think there is a small issue that ruins the whole approach.. :-/
>
>> --- a/arch/powerpc/include/asm/gpio.h
>> +++ b/arch/powerpc/include/asm/gpio.h
>> @@ -38,17 +38,14 @@ static inline int gpio_cansleep(unsigned int gpio)
>>         return __gpio_cansleep(gpio);
>> }
>>
>> -/*
>> - * Not implemented, yet.
>> - */
>> -static inline int gpio_to_irq(unsigned int gpio)
>> +static inline unsigned int gpio_to_irq(unsigned int gpio)
>>  {
>> -       return -ENOSYS;
>> +       return gpio;
>
> "GPIO 0" is valid gpio, but "IRQ 0" isn't valid virq. So you
> can't do 1:1 mapping. :-(

I changed the GPIO numbers inside of Linux to match the virqs.

	ofchip->gc.base             = IRQ_GPIO_WKUP(0);


>
> --
> Anton Vorontsov
> email: cbouatmailru at gmail.com
> irc://irc.freenode.net/bd2
>



-- 
Jon Smirl
jonsmirl at gmail.com



More information about the Linuxppc-dev mailing list