aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/gpio_banks/gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/gpio_banks/gpio.c')
-rw-r--r--src/soc/amd/common/block/gpio_banks/gpio.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/soc/amd/common/block/gpio_banks/gpio.c b/src/soc/amd/common/block/gpio_banks/gpio.c
index bdc243fa2c..5b0111b28f 100644
--- a/src/soc/amd/common/block/gpio_banks/gpio.c
+++ b/src/soc/amd/common/block/gpio_banks/gpio.c
@@ -1,10 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0-only */
+#include <acpi/acpi_pm.h>
#include <device/mmio.h>
#include <device/device.h>
#include <console/console.h>
#include <elog.h>
#include <gpio.h>
+#include <amdblocks/acpi.h>
#include <amdblocks/acpimmio.h>
#include <amdblocks/gpio_banks.h>
#include <amdblocks/smi.h>
@@ -363,11 +365,17 @@ void gpio_fill_wake_state(struct gpio_wake_state *state)
check_gpios(state->wake_stat[1], 14, 128, state);
}
-void gpio_add_events(const struct gpio_wake_state *state)
+void gpio_add_events(void)
{
+ const struct chipset_power_state *ps;
+ const struct gpio_wake_state *state;
int i;
int end;
+ if (acpi_pm_state_for_elog(&ps) < 0)
+ return;
+ state = &ps->gpio_state;
+
end = MIN(state->num_valid_wake_gpios, ARRAY_SIZE(state->wake_gpios));
for (i = 0; i < end; i++)
elog_add_event_wake(ELOG_WAKE_SOURCE_GPIO, state->wake_gpios[i]);