• M
    gpio / ACPI: Add support for retrieving GpioInt resources from a device · c884fbd4
    Mika Westerberg 提交于
    ACPI specification knows two types of GPIOs: GpioIo and GpioInt. The latter
    is used to describe that a given device interrupt line is connected to a
    specific GPIO pin. Typical ACPI _CRS entry for such device looks like
    below:
    
        Name (_CRS, ResourceTemplate ()
        {
            I2cSerialBus (0x004A, ControllerInitiated, 0x00061A80,
                          AddressingMode7Bit, "\\_SB.PCI0.I2C6",
                          0x00, ResourceConsumer)
            GpioIo (Exclusive, PullDefault, 0x0000, 0x0000,
                    IoRestrictionOutputOnly, "\\_SB.GPO0",
                    0x00, ResourceConsumer)
            {
                0x004B
            }
            GpioInt (Level, ActiveLow, Shared, PullDefault, 0x0000,
                     "\\_SB.GPO0", 0x00, ResourceConsumer)
            {
                0x004C
            }
        })
    
    Currently drivers need to request a GPIO corresponding to the right GpioInt
    and then translate that to Linux IRQ number. This adds unnecessary lines of
    boiler-plate code.
    
    We can ease this a bit by introducing acpi_dev_gpio_irq_get() analogous to
    of_irq_get(). This function translates given GpioInt resource under the
    device in question to the suitable Linux IRQ number.
    Signed-off-by: NMika Westerberg <mika.westerberg@linux.intel.com>
    Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
    c884fbd4
acpi.h 24.7 KB