summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/nyan_big/boardid.c8
-rw-r--r--src/mainboard/google/nyan_blaze/boardid.c8
-rw-r--r--src/mainboard/google/rush_ryu/boardid.c46
-rw-r--r--src/mainboard/google/storm/boardid.c4
-rw-r--r--src/mainboard/google/veyron_pinky/boardid.c10
5 files changed, 25 insertions, 51 deletions
diff --git a/src/mainboard/google/nyan_big/boardid.c b/src/mainboard/google/nyan_big/boardid.c
index 00f646d392..b420f5aca0 100644
--- a/src/mainboard/google/nyan_big/boardid.c
+++ b/src/mainboard/google/nyan_big/boardid.c
@@ -25,13 +25,13 @@
uint8_t board_id(void)
{
static int id = -1;
+ gpio_t gpio[] = {[3] = GPIO(X4), [2] = GPIO(X1), /* X4 is MSB */
+ [1] = GPIO(T1), [0] = GPIO(Q3),}; /* Q3 is LSB */
if (id < 0) {
- gpio_t gpio[] = {GPIO(Q3), GPIO(T1), GPIO(X1), GPIO(X4)};
+ id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
- id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio), 0);
-
- printk(BIOS_SPEW, "Board TRISTATE ID: %#x.\n", id);
+ printk(BIOS_SPEW, "Board TRISTATE ID: %d.\n", id);
}
return id;
diff --git a/src/mainboard/google/nyan_blaze/boardid.c b/src/mainboard/google/nyan_blaze/boardid.c
index 00f646d392..b420f5aca0 100644
--- a/src/mainboard/google/nyan_blaze/boardid.c
+++ b/src/mainboard/google/nyan_blaze/boardid.c
@@ -25,13 +25,13 @@
uint8_t board_id(void)
{
static int id = -1;
+ gpio_t gpio[] = {[3] = GPIO(X4), [2] = GPIO(X1), /* X4 is MSB */
+ [1] = GPIO(T1), [0] = GPIO(Q3),}; /* Q3 is LSB */
if (id < 0) {
- gpio_t gpio[] = {GPIO(Q3), GPIO(T1), GPIO(X1), GPIO(X4)};
+ id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
- id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio), 0);
-
- printk(BIOS_SPEW, "Board TRISTATE ID: %#x.\n", id);
+ printk(BIOS_SPEW, "Board TRISTATE ID: %d.\n", id);
}
return id;
diff --git a/src/mainboard/google/rush_ryu/boardid.c b/src/mainboard/google/rush_ryu/boardid.c
index ba3a4be9e9..5b4c1cd73f 100644
--- a/src/mainboard/google/rush_ryu/boardid.c
+++ b/src/mainboard/google/rush_ryu/boardid.c
@@ -17,35 +17,13 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <base3.h>
#include <boardid.h>
#include <console/console.h>
#include <stdlib.h>
#include "gpio.h"
-/*
- * +------------------+---------+
- * | BD_ID_STRAP[1:0] | PHASE |
- * +------------------+---------+
- * | 00 | PROTO0 |
- * +------------------+---------+
- * | 01 | PROTO1 |
- * +------------------+---------+
- * | 0Z | EVT |
- * +------------------+---------+
- * | 10 | DVT |
- * +------------------+---------+
- * | 11 | PVT |
- * +------------------+---------+
- * | 1Z | MP |
- * +------------------+---------+
- * | Z0 | |
- * +------------------+---------+
- * | Z1 | |
- * +------------------+---------+
- * | ZZ | |
- * +------------------+---------+
- */
struct id_to_str {
const char *str;
int tri_state_value;
@@ -53,15 +31,15 @@ struct id_to_str {
};
static const struct id_to_str bdid_map[] = {
- { "PROTO 0", 0x00, BOARD_ID_PROTO_0 },
- { "PROTO 1", 0x01, BOARD_ID_PROTO_1 },
- { "EVT", 0x02, BOARD_ID_EVT },
- { "DVT", 0x04, BOARD_ID_DVT },
- { "PVT", 0x05, BOARD_ID_PVT },
- { "MP", 0x06, BOARD_ID_MP },
- { "Z0", 0x08, -1 },
- { "Z1", 0x09, -1 },
- { "ZZ", 0x0a, -1 },
+ { "PROTO 0", BASE3(0, 0), BOARD_ID_PROTO_0 },
+ { "PROTO 1", BASE3(0, 1), BOARD_ID_PROTO_1 },
+ { "EVT", BASE3(0, Z), BOARD_ID_EVT },
+ { "DVT", BASE3(1, 0), BOARD_ID_DVT },
+ { "PVT", BASE3(1, 1), BOARD_ID_PVT },
+ { "MP", BASE3(1, Z), BOARD_ID_MP },
+ { "Z0", BASE3(Z, 0), -1 },
+ { "Z1", BASE3(Z, 1), -1 },
+ { "ZZ", BASE3(Z, Z), -1 },
};
uint8_t board_id(void)
@@ -72,9 +50,9 @@ uint8_t board_id(void)
const char *idstr = "Unknown";
int i;
int tristate_id;
- gpio_t gpio[] = { BD_ID0, BD_ID1 };
+ gpio_t gpio[] = {[1] = BD_ID1, [0] = BD_ID0}; /* ID0 is LSB */
- tristate_id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio), 0);
+ tristate_id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
for (i = 0; i < ARRAY_SIZE(bdid_map); i++) {
if (tristate_id != bdid_map[i].tri_state_value)
diff --git a/src/mainboard/google/storm/boardid.c b/src/mainboard/google/storm/boardid.c
index 878598bf92..c32567e273 100644
--- a/src/mainboard/google/storm/boardid.c
+++ b/src/mainboard/google/storm/boardid.c
@@ -42,10 +42,10 @@ static int board_id_value = -1;
static uint8_t get_board_id(void)
{
uint8_t bid;
- gpio_t hw_rev_gpios[] = {29, 30, 68};
+ gpio_t hw_rev_gpios[] = {[2] = 68, [1] = 30, [0] = 29}; /* 29 is LSB */
int offset = 19;
- bid = gpio_get_tristates(hw_rev_gpios, ARRAY_SIZE(hw_rev_gpios), 1);
+ bid = gpio_get_tristates(hw_rev_gpios, ARRAY_SIZE(hw_rev_gpios));
bid = (bid + offset) % 27;
printk(BIOS_INFO, "Board ID %d\n", bid);
diff --git a/src/mainboard/google/veyron_pinky/boardid.c b/src/mainboard/google/veyron_pinky/boardid.c
index d8f4a3d7f7..8d3e183ed1 100644
--- a/src/mainboard/google/veyron_pinky/boardid.c
+++ b/src/mainboard/google/veyron_pinky/boardid.c
@@ -25,12 +25,8 @@
uint8_t board_id(void)
{
static int id = -1;
- static const gpio_t pins[] = {
- { .port = 2, .bank = GPIO_A, .idx = 0 },
- { .port = 2, .bank = GPIO_A, .idx = 1 },
- { .port = 2, .bank = GPIO_A, .idx = 2 },
- { .port = 2, .bank = GPIO_A, .idx = 7 },
- };
+ static const gpio_t pins[] = {[3] = GPIO(2, A, 7), [2] = GPIO(2, A, 2),
+ [1] = GPIO(2, A, 1), [0] = GPIO(2, A, 0)}; /* GPIO2_A0 is LSB */
if (id < 0) {
int i;
@@ -40,7 +36,7 @@ uint8_t board_id(void)
gpio_input(pins[i]);
id |= gpio_get(pins[i]) << i;
}
- printk(BIOS_SPEW, "Board ID: %#x.\n", id);
+ printk(BIOS_SPEW, "Board ID: %d.\n", id);
}
return id;