Re: [PATCH v5] gpio: Add driver for ACPI INT0002 Virtual GPIO device

Hans de Goede
2017-05-24T12:10:20Z

Hi,

On 24-05-17 13:23, Andy Shevchenko wrote:
> On Wed, 2017-05-24 at 12:42 +0200, Hans de Goede wrote:
>> Some peripherals on Bay Trail and Cherry Trail platforms signal PME to
>> the
>> PMC to wakeup the system. When this happens software needs to clear
>> the
>> PME_B0_STS bit in the GPE0a_STS register to avoid an IRQ storm on IRQ
>> 9.
>>
>> This is modeled in ACPI through the INT0002 ACPI Virtual GPIO device.
>>
>> 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@suse.com>
>> Cc: Takashi Iwai <tiwai@suse.de>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> In addition to my comment to v4 (if you are going to apply it) couple of
> nits below. (I'm fine with current version, as tag says, though consider
> them anyway)

I prefer to stick with the current version (v5) unless something
bigger comes up.

Regards,

Hans

>
>> +#define GPE0A_PME_B0_STS_BIT BIT(13)
>> +#define GPE0A_PME_B0_EN_BIT BIT(13)
>> +#define GPE0A_STS_PORT 0x420
>> +#define GPE0A_EN_PORT 0x428
>
> Perhaps squeeze bits after actual ports like
>
> ADDRESSa
> ADDRa_BITa
>
> ADDRESSb
> ADDRb_BITa
>
>> + for (i = 0; i < GPE0A_PME_B0_VIRT_GPIO_PIN; i++)
>> + clear_bit(i, chip->irq_valid_mask);
>
> bitmap_zero() ?
>