gpio: cosmetic changes to tristate_gpios.c

This patch makes a few cosmetic changes:
- Rename tristate_gpios.c to gpio.c since it will soon be used for
  binary GPIOs as well.
- Rename gpio_get_tristates() to gpio_base3_value() - The binary
  version will be called gpio_base2_value().
- Updates call sites.
- Change the variable name "id" to something more generic.

BUG=none
BRANCH=none
TEST=compiled for veyron_pinky and storm

Change-Id: Iab7e32f4e9d70853f782695cfe6842accff1df64
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: c47d0f33ea1a6e9515211b834009cf47a171953f
Original-Change-Id: I36d88c67cb118efd1730278691dc3e4ecb6055ee
Original-Signed-off-by: David Hendricks <dhendrix@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/228324
Reviewed-on: http://review.coreboot.org/9411
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
David Hendricks 2014-11-06 15:09:27 -08:00 committed by Patrick Georgi
parent 7a89d8550d
commit 3fc6368e1c
7 changed files with 14 additions and 14 deletions

View File

@ -37,12 +37,12 @@ void gpio_output(gpio_t gpio, int value);
/*
* Read the value presented by the set of GPIOs, when each pin is interpreted
* as a base-3 digit (LOW = 0, HIGH = 1, Z/floating = 2).
* Example: X1 = Z, X2 = 1 -> gpio_get_tristates({GPIO(X1), GPIO(X2)}) = 5
* Example: X1 = Z, X2 = 1 -> gpio_base3_value({GPIO(X1), GPIO(X2)}) = 5
* BASE3() from <base3.h> can generate numbers to compare the result to.
*
* gpio[]: pin positions to read. gpio[0] is less significant than gpio[1].
* num_gpio: number of pins to read.
*/
int gpio_get_tristates(gpio_t gpio[], int num_gpio);
int gpio_base3_value(gpio_t gpio[], int num_gpio);
#endif /* __SRC_INCLUDE_GPIO_H__ */

View File

@ -92,7 +92,7 @@ ramstage-$(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT) += edid.c
ramstage-y += memrange.c
ramstage-$(CONFIG_COOP_MULTITASKING) += thread.c
ramstage-$(CONFIG_TIMER_QUEUE) += timer_queue.c
ramstage-$(CONFIG_TERTIARY_BOARD_ID) += tristate_gpios.c
ramstage-$(CONFIG_TERTIARY_BOARD_ID) += gpio.c
ramstage-$(CONFIG_GENERIC_UDELAY) += timer.c
romstage-y += cbmem_common.c dynamic_cbmem.c

View File

@ -22,7 +22,7 @@
#include <delay.h>
#include <gpio.h>
int gpio_get_tristates(gpio_t gpio[], int num_gpio)
int gpio_base3_value(gpio_t gpio[], int num_gpio)
{
/*
* GPIOs which are tied to stronger external pull up or pull down
@ -36,7 +36,7 @@ int gpio_get_tristates(gpio_t gpio[], int num_gpio)
static const char tristate_char[] = {[0] = '0', [1] = '1', [Z] = 'Z'};
int temp;
int index;
int id = 0;
int result = 0;
char value[num_gpio];
/* Enable internal pull up */
@ -70,13 +70,13 @@ int gpio_get_tristates(gpio_t gpio[], int num_gpio)
temp = gpio_get(gpio[index]);
temp |= ((value[index] ^ temp) << 1);
printk(BIOS_DEBUG, "%c ", tristate_char[temp]);
id = (id * 3) + temp;
result = (result * 3) + temp;
}
printk(BIOS_DEBUG, "= %d\n", id);
printk(BIOS_DEBUG, "= %d\n", result);
/* Disable pull up / pull down to conserve power */
for (index = 0; index < num_gpio; ++index)
gpio_input(gpio[index]);
return id;
return result;
}

View File

@ -29,7 +29,7 @@ uint8_t board_id(void)
[1] = GPIO(T1), [0] = GPIO(Q3),}; /* Q3 is LSB */
if (id < 0) {
id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
id = gpio_base3_value(gpio, ARRAY_SIZE(gpio));
printk(BIOS_SPEW, "Board TRISTATE ID: %d.\n", id);
}

View File

@ -29,7 +29,7 @@ uint8_t board_id(void)
[1] = GPIO(T1), [0] = GPIO(Q3),}; /* Q3 is LSB */
if (id < 0) {
id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
id = gpio_base3_value(gpio, ARRAY_SIZE(gpio));
printk(BIOS_SPEW, "Board TRISTATE ID: %d.\n", id);
}

View File

@ -30,7 +30,7 @@ uint8_t board_id(void)
if (id < 0) {
gpio_t gpio[] = {[1] = BD_ID1, [0] = BD_ID0}; /* ID0 is LSB */
id = gpio_get_tristates(gpio, ARRAY_SIZE(gpio));
id = gpio_base3_value(gpio, ARRAY_SIZE(gpio));
}
return id;

View File

@ -25,8 +25,8 @@
/*
* 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_get_tristates(), whereas the other two pins are not connected
* and read as 'two'. This results in gpio_get_tristates() returning
* 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
@ -45,7 +45,7 @@ static uint8_t get_board_id(void)
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));
bid = gpio_base3_value(hw_rev_gpios, ARRAY_SIZE(hw_rev_gpios));
bid = (bid + offset) % 27;
printk(BIOS_INFO, "Board ID %d\n", bid);