aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/gale/boardid.c
diff options
context:
space:
mode:
authorKan Yan <kyan@google.com>2016-07-14 18:05:20 -0700
committerMartin Roth <martinroth@google.com>2016-07-25 18:56:58 +0200
commit041bc763865414a099622fb4519c9458dfe923c9 (patch)
tree89ab900b9455d51484a42e0b6c16185cb859b25f /src/mainboard/google/gale/boardid.c
parent8edfc1c51235e9ab306cb7b2f3936518f87ddf2a (diff)
google/gale: Fix board ID and GPIO config.
Fix the board ID handling. Recovery switch and WP status GPIO has been reassigned in board rev3. Configure related GPIOs based on Board ID. BUG=chrome-os-partner:55320 TEST=Verified GPIO assignment for Rev.1 board. BRANCH=None Change-Id: Id8e1ba1c039f8b5b503f0da038e5cfc84b72678f Signed-off-by: Martin Roth <martinroth@chromium.org> Original-Commit-Id: d295ab514e31d9ebd1b77e0af9b769e64cbf567e Original-Change-Id: I6d3d5df2e9017f7845edc3cd0b2c19ad7c58a97c Original-Signed-off-by: Kan Yan <kyan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/361393 Original-Reviewed-by: David Hendricks <dhendrix@chromium.org> Reviewed-on: https://review.coreboot.org/15809 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/mainboard/google/gale/boardid.c')
-rw-r--r--src/mainboard/google/gale/boardid.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/mainboard/google/gale/boardid.c b/src/mainboard/google/gale/boardid.c
index 295550fe2b..3e6fd8a185 100644
--- a/src/mainboard/google/gale/boardid.c
+++ b/src/mainboard/google/gale/boardid.c
@@ -19,18 +19,8 @@
#include <stdlib.h>
/*
- * Storm boards dedicate to the board ID three GPIOs in tertiary mode: 29, 30
- * and 68. On proto0 GPIO68 is used and tied low, so it reads as 'zero' by
- * gpio_base3_value(), whereas the other two pins are not connected
- * and read as 'two'. This results in gpio_base3_value() returning
- * 8 on proto0.
- *
- * Three tertitiary signals could represent 27 different values. To make
- * calculated board ID value continuous and starting at zero, offset the
- * calculated value by 19 (i.e. 27 - 8) and return modulo 27 of the offset
- * number. This results in proto0 returning zero as the board ID, the future
- * revisions will have the inputs configured to match the actual board
- * revision.
+ * Gale boards dedicate to the board ID three GPIOs in ternary mode: 64, 65
+ * and 66.
*/
static int board_id_value = -1;
@@ -38,11 +28,9 @@ static int board_id_value = -1;
static uint8_t get_board_id(void)
{
uint8_t bid;
- gpio_t hw_rev_gpios[] = {[2] = 68, [1] = 30, [0] = 29}; /* 29 is LSB */
- int offset = 19;
+ gpio_t hw_rev_gpios[] = {[2] = 66, [1] = 65, [0] = 64}; /* 64 is LSB */
bid = gpio_base3_value(hw_rev_gpios, ARRAY_SIZE(hw_rev_gpios));
- bid = (bid + offset) % 27;
printk(BIOS_INFO, "Board ID %d\n", bid);
return bid;