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>
This commit is contained in:
Josie Nordrum 2020-08-20 08:50:22 -07:00 committed by Aaron Durbin
parent 0a859522ed
commit 70823a046e
1 changed files with 2 additions and 3 deletions

View File

@ -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;