ryu: remove board id normalization

The gpio_get_tristates() function prints out the values
observed while processing the GPIOs. Additionally, the
values for the normalization were completely consecutive.
Therefore, this indirection can be removed.

BUG=chrome-os-partner:33578
BRANCH=None
TEST=Built and booted.

Change-Id: I088a2f1c7601c014a7f8a9eb228efa9bb80f1e01
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 02e52554b9cbf85034feb9aedc50f09b70893e32
Original-Change-Id: I17d85891087e3128790329a5f05cbdab4cbc950e
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/227680
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9406
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Aaron Durbin 2014-11-05 14:01:29 -06:00 committed by Patrick Georgi
parent 1fd91a1966
commit 33b31152b0
1 changed files with 2 additions and 34 deletions

View File

@ -17,53 +17,21 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <base3.h>
#include <boardid.h> #include <boardid.h>
#include <console/console.h> #include <console/console.h>
#include <stdlib.h> #include <stdlib.h>
#include "gpio.h" #include "gpio.h"
struct id_to_str {
const char *str;
int tri_state_value;
int normalized_id;
};
static const struct id_to_str bdid_map[] = {
{ "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) uint8_t board_id(void)
{ {
static int id = -1; static int id = -1;
if (id < 0) { if (id < 0) {
const char *idstr = "Unknown";
int i;
int tristate_id;
gpio_t gpio[] = {[1] = BD_ID1, [0] = BD_ID0}; /* ID0 is LSB */ gpio_t gpio[] = {[1] = BD_ID1, [0] = BD_ID0}; /* ID0 is LSB */
tristate_id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio)); 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)
continue;
idstr = bdid_map[i].str;
id = bdid_map[i].normalized_id;
break;
}
printk(BIOS_SPEW, "Board ID: '%s' %d (%#x)\n", idstr, id,
tristate_id);
} }
return id; return id;
} }