acpi_device: Replace polarity with active_low in acpi_gpio for GpioIo
commitd2d5e44a67f6e7bb80a22822f34397b03426851b
authorFurquan Shaikh <furquan@google.com>
Wed, 1 Jul 2020 08:37:13 +0000 (1 01:37 -0700)
committerFurquan Shaikh <furquan@google.com>
Thu, 2 Jul 2020 19:12:46 +0000 (2 19:12 +0000)
treea2e74c878fff29047dd6d06e17160f212610b8d2
parent7245100cddbef2626cbc208b79c889f8ac642298
acpi_device: Replace polarity with active_low in acpi_gpio for GpioIo

As per ACPI spec, GpioIo does not have any polarity associated with
it. Linux kernel uses `active_low` argument within GPIO _DSD property
to allow BIOS to indicate if the corresponding GPIO should be treated
as active low. Thus, if GPIO has active high polarity or if it does
not have any polarity associated with it, then the `active_low`
argument is supposed to be set to 0.

Having a `polarity` field in acpi_gpio seems confusing because GPIOs
might not always have polarity associated with them. Example, in case
of DMIC-select GPIO where 0 means select DMIC0 and 1 means select
DMIC1, there is no polarity associated with the GPIO. Thus, it would
be clearer for mainboard to use macros without having to specify a
particular polarity. In order to enable mainboards to provide GPIO
information without polarity for GpioIo usage, this change also adds
`ACPI_GPIO_OUTPUT` and `ACPI_GPIO_INPUT` macros.

BUG=b:157603026

Change-Id: I39d2a6ac8f149a74afeb915812fece86c9b9ad93
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42968
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
src/acpi/acpigen.c
src/drivers/generic/gpio_keys/gpio_keys.c
src/drivers/generic/max98357a/max98357a.c
src/drivers/i2c/generic/generic.c
src/drivers/i2c/rt5663/rt5663.c
src/drivers/spi/acpi/acpi.c
src/drivers/uart/acpi/acpi.c
src/drivers/usb/acpi/usb_acpi.c
src/include/acpi/acpi_device.h