diff options
author | Kan Yan <kyan@google.com> | 2016-07-14 18:05:20 -0700 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-07-25 18:56:58 +0200 |
commit | 041bc763865414a099622fb4519c9458dfe923c9 (patch) | |
tree | 89ab900b9455d51484a42e0b6c16185cb859b25f /src/mainboard/google/gale/boardid.c | |
parent | 8edfc1c51235e9ab306cb7b2f3936518f87ddf2a (diff) | |
download | coreboot-041bc763865414a099622fb4519c9458dfe923c9.tar.gz coreboot-041bc763865414a099622fb4519c9458dfe923c9.tar.bz2 coreboot-041bc763865414a099622fb4519c9458dfe923c9.zip |
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.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/src/mainboard/google/gale/boardid.c b/src/mainboard/google/gale/boardid.c index 295550fe2b97..3e6fd8a18581 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; |