On Fri, Jun 2, 2017 at 5:15 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > Some peripherals on Bay Trail and Cherry Trail platforms signal a > Power Management Event (PME) to the Power Management Controller (PMC) > to wakeup the system. When this happens software needs to explicitly > clear the PME bus 0 status bit in the GPE0a_STS register to avoid an > IRQ storm on IRQ 9. > > This is modelled in ACPI through the INT0002 ACPI device, which is > called a "Virtual GPIO controller" in ACPI because it defines the > event handler to call when the PME triggers through _AEI and _L02 > methods as would be done for a real GPIO interrupt in ACPI. > > This commit adds a driver which registers the Virtual GPIOs expected > by the DSDT on these devices, letting gpiolib-acpi claim the > virtual GPIO and install a GPIO-interrupt handler which call the _L02 > handler as it would for a real GPIO controller. > > Cc: joeyli <jlee@xxxxxxxx> > Cc: Takashi Iwai <tiwai@xxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > Changes in v2: > -Remove dev_err after malloc failure > -Remove unused empty runtime pm callbacks > -s/GPE0A_PME_/GPE0A_PME_B0_/ > -Fixed some checkpatch warnings (I forgot to run checkpatch on v1) > Changes in v3: > -Rewrite as gpiochip driver letting gpiolib-acpi deal with claiming the pin > 0x0002 and calling the _L02 event handler when the virtual gpio-irq triggers > -Rebase on 4.12-rc1 > Changes in v4: > -Drop device_init_wakeup() from _probe(), use pm_system_wakeup() instead > of pm_wakeup_hard_event(chip->parent) > -Improve commit message > Changes in v5: > -Use BIT() macro for FOO_BIT defines > -Drop unneeded ACPI_PTR macro usage > Changes in v6: > -Move back to drivers/platform/x86 > -Expand certain acronyms (PME, PMC) > -Use linux/gpio/driver.h include instead of linux/gpio.h > -Document why the get / set / direction_output functions are dummys > -No functional changes Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> With Andy's changes. Please feel free to push this upstream through the platform tree or similar. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html