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:
@@ -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,
|
||||
|
Reference in New Issue
Block a user