1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 08:42:12 +02:00

gpio: Add a function to obtain a GPIO vector value

We can use GPIOs as binary digits for reading 'strapping' values. Each GPIO
is assigned a single bit and can be set high or low on the circuit board. We
already have a legacy function for reading these values. Add one that
supports driver model.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
Simon Glass
2016-03-06 19:27:50 -07:00
committed by Bin Meng
parent 740d5d34b1
commit bbf2478026
2 changed files with 30 additions and 0 deletions

View File

@@ -577,6 +577,24 @@ int gpio_get_values_as_int(const int *gpio_list)
return vector;
}
int dm_gpio_get_values_as_int(struct gpio_desc *desc_list, int count)
{
unsigned bitmask = 1;
unsigned vector = 0;
int ret, i;
for (i = 0; i < count; i++) {
ret = dm_gpio_get_value(&desc_list[i]);
if (ret < 0)
return ret;
else if (ret)
vector |= bitmask;
bitmask <<= 1;
}
return vector;
}
static int _gpio_request_by_name_nodev(const void *blob, int node,
const char *list_name, int index,
struct gpio_desc *desc, int flags,