[PATCH v4 2/3] irqchip: GIC: Add support for irq_{get, set}_irqchip_state

Feng Kan fkan at apm.com
Wed May 13 08:44:44 PDT 2015

On Wed, May 13, 2015 at 4:58 AM, Linus Walleij <linus.walleij at linaro.org> wrote:
> On Wed, May 13, 2015 at 4:25 AM, Feng Kan <fkan at apm.com> wrote:
>> Marc:
>> Sorry for top posting. It seems with GIC-400, the get_irqstate is not a reliable
>> way of accessing the GPIO status. In our case, the gpio interrupt status can
>> only be read correctly with the SPISR register. So it seems we have to go
>> back to the old way of mapping the SPISR portion of the GIC in our GPIO
>> driver. We wanted to ask you if that is acceptable since SPISR in not
>> standard in all GIC, perhaps we can treat it differently.
> As GPIO maintainer I am curious about what this is...
> Can you describe the scenario where your GPIO (!) driver needs
> to be poking around in the GIC SPISR?

We are using the gpio driver with gpio_key for power button. The gpio
status can only be retrieved from the GIC register when the gpio is
acting as a interrupt. Marc had provided a patch which allow the
getting of the irq status
using the PENDING_SET register, however it seems it is not reliable.
Another register in the GIC call the SPISR always give the correct
status but it is only available in the GIC-400 and hence not likely to
be incorporated into the general GIC code. We would like to go back
the version 1 of the patch and ioremap the region in the gpio driver
and access the status that way. Please let us know what you think.

> Yours,
> Linus Walleij

More information about the linux-arm-kernel mailing list