Handling multiple GPIO controllers in 8xxx GPIO driver

Felix Radensky felix at embedded-sol.com
Wed Sep 28 08:07:00 EST 2011


Hi Grant,

On 09/27/2011 09:29 PM, Grant Likely wrote:
> On Tue, Sep 27, 2011 at 04:59:28PM +0300, Felix Radensky wrote:
>> Hi,
>>
>> Looks like  8xxx GPIO driver cannot properly handle interrupts
>> when multiple GPIO controllers exist in the system.
>>
>> On Freescale P1022 there are 3 GPIO controllers. All 3 use
>> the same interrupt line, internal interrupt 31. If all controllers
>> are defined in device tree set_irq_chained_handler() is invoked
>> 3 times with same  hardware irq number. The result is interrupt
>> storm,  mpc8xxx_gpio_irq_cascade() is invoked indefinitely.
>>
>> What would be the best way to fix the problem ?
> The solution is to make the gpio driver register as a regular
> interrupt handler, and not as a chained handler.
>
> g.
>

You mean interrupt handler per GPIO pin ?

Felix.




More information about the Linuxppc-dev mailing list