summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/gpiolib.h4
-rw-r--r--src/lib/tristate_gpios.c2
-rw-r--r--src/mainboard/google/storm/boardid.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/include/gpiolib.h b/src/include/gpiolib.h
index 850a661559..436f26ac04 100644
--- a/src/include/gpiolib.h
+++ b/src/include/gpiolib.h
@@ -31,6 +31,10 @@ typedef unsigned gpio_t;
* bit fields, each representing one GPIO value, or a number where each GPIO is
* included multiplied by 3^gpio_num, resulting in a true tertiary value.
*
+ * gpio[]: pin positions to read. little-endian (less significant value first).
+ * num_gpio: number of pins to read.
+ * tertiary: 1: pins are interpreted as a quad coded tertiary.
+ * 0: pins are interpreted as a set of two bit fields.
*/
int gpio_get_in_tristate_values(gpio_t gpio[], int num_gpio, int tertiary);
diff --git a/src/lib/tristate_gpios.c b/src/lib/tristate_gpios.c
index 49f060c9c2..8e93e3704a 100644
--- a/src/lib/tristate_gpios.c
+++ b/src/lib/tristate_gpios.c
@@ -62,7 +62,7 @@ int gpio_get_in_tristate_values(gpio_t gpio[], int num_gpio, int tertiary)
* 1: pull up
* 2: floating
*/
- for (index = 0; index < num_gpio; ++index) {
+ for (index = num_gpio - 1; index >= 0; --index) {
if (tertiary)
id *= 3;
else
diff --git a/src/mainboard/google/storm/boardid.c b/src/mainboard/google/storm/boardid.c
index c4a1af3da8..6d7a918088 100644
--- a/src/mainboard/google/storm/boardid.c
+++ b/src/mainboard/google/storm/boardid.c
@@ -40,7 +40,7 @@
uint8_t board_id(void)
{
uint8_t bid;
- gpio_t hw_rev_gpios[] = {68, 30, 29};
+ gpio_t hw_rev_gpios[] = {29, 30, 68};
int offset = 19;
bid = gpio_get_in_tristate_values(hw_rev_gpios,