aboutsummaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/gpio_banks/gpio.c
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2020-06-27 16:38:44 -0700
committerFurquan Shaikh <furquan@google.com>2020-06-30 23:31:27 +0000
commit84b9653b38fd4653cd094105150d1e11b3f3ecdb (patch)
treee3717126fc33db673d1d3cc8e064f9e9ce405fc6 /src/soc/amd/common/block/gpio_banks/gpio.c
parente9fe3661b3de1916af7d82bbb78dc3f8a2a5e1b2 (diff)
soc/amd/common/gpio: Clear interrupt and wake status when configuring pads
This change clears interrupt and wake status for a pad when configuring it. This ensures that stale interrupts/wake notifications are flushed out and do not cause spurious wakes in future suspends. BUG=b:159944426 Change-Id: Ia4ebd975312a4136f1d0690d7af7372615e31f0f Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42877 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd/common/block/gpio_banks/gpio.c')
-rw-r--r--src/soc/amd/common/block/gpio_banks/gpio.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/gpio_banks/gpio.c b/src/soc/amd/common/block/gpio_banks/gpio.c
index 883dcfa783..ebb29360ac 100644
--- a/src/soc/amd/common/block/gpio_banks/gpio.c
+++ b/src/soc/amd/common/block/gpio_banks/gpio.c
@@ -207,6 +207,9 @@ void program_gpios(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
iomux_read8(gpio); /* Flush posted write */
soc_gpio_hook(gpio, mux);
+
+ /* Clear interrupt and wake status (write 1-to-clear bits) */
+ control |= GPIO_INT_STATUS | GPIO_WAKE_STATUS;
__gpio_setbits32(gpio, PAD_CFG_MASK, control);
if (control_flags == 0)