diff options
-rw-r--r-- | src/soc/intel/apollolake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/common/block/gpio/Kconfig | 6 | ||||
-rw-r--r-- | src/soc/intel/common/block/gpio/gpio.c | 7 |
3 files changed, 13 insertions, 1 deletions
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig index 68291e5a28..fdbd6d7622 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -58,6 +58,7 @@ config CPU_SPECIFIC_OPTIONS select SOC_INTEL_COMMON_BLOCK_CPU select SOC_INTEL_COMMON_BLOCK_FAST_SPI select SOC_INTEL_COMMON_BLOCK_GPIO + select SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES select SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY select SOC_INTEL_COMMON_BLOCK_ITSS diff --git a/src/soc/intel/common/block/gpio/Kconfig b/src/soc/intel/common/block/gpio/Kconfig index bd2651f637..6d712e9585 100644 --- a/src/soc/intel/common/block/gpio/Kconfig +++ b/src/soc/intel/common/block/gpio/Kconfig @@ -34,3 +34,9 @@ config SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS depends on SOC_INTEL_COMMON_BLOCK_GPIO bool default n + +# Indicate if multiple ACPI devices are used for each gpio community. +config SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES + depends on SOC_INTEL_COMMON_BLOCK_GPIO + bool + default n diff --git a/src/soc/intel/common/block/gpio/gpio.c b/src/soc/intel/common/block/gpio/gpio.c index 9b4f8f0247..58bc6d9a81 100644 --- a/src/soc/intel/common/block/gpio/gpio.c +++ b/src/soc/intel/common/block/gpio/gpio.c @@ -306,7 +306,12 @@ void gpio_set(gpio_t gpio_num, int value) uint16_t gpio_acpi_pin(gpio_t gpio_num) { - const struct pad_community *comm = gpio_get_community(gpio_num); + const struct pad_community *comm; + + if (!IS_ENABLED(CONFIG_SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES)) + return gpio_num; + + comm = gpio_get_community(gpio_num); return gpio_num - comm->first_pad; } |