summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosie Nordrum <JosieNordrum@google.com>2020-08-20 08:50:22 -0700
committerAaron Durbin <adurbin@chromium.org>2020-08-24 19:58:15 +0000
commit70823a046e08d44f4e578fbf42afabbfbb821aec (patch)
treee7e56f30416b3eaef54ad551b2f7bd1d803467e0
parent0a859522edf75bab86d9c94409485663cbe25cf2 (diff)
downloadcoreboot-70823a046e08d44f4e578fbf42afabbfbb821aec.tar.xz
soc/amd/common: Move interrupt and wake status clear
Move interrupt status and wake status clearing to after GPIO config so that configuration does not incorrectly set interrupt or wake status. i.e. when PULL_UP is configured on a pad, it incorrectly sets in the interrupt status bit. Thus, the interrupt status bit must be cleared after initial pad configuration is complete. BUG=b:164892883, b:165342107 TEST=None BRANCH=None Signed-off-by: Josie Nordrum <josienordrum@google.com> Change-Id: If4a5db4bfa6a2ee9827f38e9595f487a4dcfac2c Reviewed-on: https://review.coreboot.org/c/coreboot/+/44640 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/soc/amd/common/block/gpio_banks/gpio.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/soc/amd/common/block/gpio_banks/gpio.c b/src/soc/amd/common/block/gpio_banks/gpio.c
index 7fb6622f0a..74ea696448 100644
--- a/src/soc/amd/common/block/gpio_banks/gpio.c
+++ b/src/soc/amd/common/block/gpio_banks/gpio.c
@@ -214,10 +214,9 @@ void program_gpios(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
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);
-
+ /* Clear interrupt and wake status (write 1-to-clear bits) */
+ __gpio_or32(gpio, GPIO_INT_STATUS | GPIO_WAKE_STATUS);
if (control_flags == 0)
continue;