[coreboot-gerrit] New patch to review for coreboot: c06dd33 Add delay before reading GPIOs in gpio_base2_value()

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Apr 16 10:26:45 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9725

-gerrit

commit c06dd33456ad5401a89be662fe624999d000ba3f
Author: David Hendricks <dhendrix at chromium.org>
Date:   Wed Jan 14 20:41:30 2015 -0800

    Add delay before reading GPIOs in gpio_base2_value()
    
    This adds a 10us delay in between (re-)configuring and reading
    GPIOs in gpio_base2_value() to give the values stored some time
    to update.
    
    As far as I know this hasn't bitten us since the function was
    added, but adding a short delay here seems like the right thing
    to do.
    
    BUG=none
    BRANCH=none
    TEST=built and booted on Brain
    
    Change-Id: I869cf375680435ad87729f93d29a623bdf09dfbc
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 2484900fc9ceba87220a293de8ef20c3b9b20cfd
    Original-Signed-off-by: David Hendricks <dhendrix at chromium.org>
    Original-Change-Id: I79616a09d8d2ce4e416ffc94e35798dd25a6250d
    Original-Reviewed-on: https://chromium-review.googlesource.com/240854
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
---
 src/lib/gpio.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/lib/gpio.c b/src/lib/gpio.c
index 0875538..633eabb 100644
--- a/src/lib/gpio.c
+++ b/src/lib/gpio.c
@@ -26,10 +26,14 @@ int gpio_base2_value(gpio_t gpio[], int num_gpio)
 {
 	int i, result = 0;
 
-	for (i = 0; i < num_gpio; i++) {
+	for (i = 0; i < num_gpio; i++)
 		gpio_input(gpio[i]);
+
+	/* Wait until signals become stable */
+	udelay(10);
+
+	for (i = 0; i < num_gpio; i++)
 		result |= gpio_get(gpio[i]) << i;
-	}
 
 	return result;
 }



More information about the coreboot-gerrit mailing list