driver: platform: Support parsing GpioInt 0 in platform_get_irq()
authorEnrico Granata <egranata@chromium.org>
Mon, 11 Feb 2019 19:01:12 +0000 (11:01 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 09:36:49 +0000 (10:36 +0100)
commitdaaef255dc96834aaaad627d3271504cba3ac2dc
tree7aca979c0f93f168e293a0b941e510e575abec6f
parent4417967bf2479020652049155c11a2d5b3a0136e
driver: platform: Support parsing GpioInt 0 in platform_get_irq()

ACPI 5 added support for GpioInt resources as a way to provide
information about interrupts mediated via a GPIO controller.

Several device buses (e.g. SPI, I2C) have support for retrieving
an IRQ specified via this type of resource, and providing it
directly to the driver as an IRQ number.

This is not currently done for the platform drivers, as platform_get_irq()
does not try to parse GpioInt() resources. This requires drivers to
either have to support only one possible IRQ resource, or to have code
in place to try both as a failsafe.

While there is a possibility of ambiguity for devices that exposes
multiple IRQs, it is easy and feasible to support the common case
of devices that only expose one IRQ which would be of either type
depending on the underlying system's architecture.

This commit adds support for parsing a GpioInt resource in order
to fulfill a request for the index 0 IRQ for a platform device.

Signed-off-by: Enrico Granata <egranata@chromium.org>
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/platform.c