mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 13:23:18 +00:00
gpiolib: add support for bias pull disable
This change prepares the gpio core to look at firmware flags and set 'FLAG_BIAS_DISABLE' if necessary. It works in similar way to 'GPIO_PULL_DOWN' and 'GPIO_PULL_UP'. Signed-off-by: Nuno Sá <nuno.sa@analog.com> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
This commit is contained in:
parent
28ba057456
commit
c269df8c5a
@ -3945,9 +3945,11 @@ int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id,
|
||||
if (lflags & GPIO_OPEN_SOURCE)
|
||||
set_bit(FLAG_OPEN_SOURCE, &desc->flags);
|
||||
|
||||
if ((lflags & GPIO_PULL_UP) && (lflags & GPIO_PULL_DOWN)) {
|
||||
if (((lflags & GPIO_PULL_UP) && (lflags & GPIO_PULL_DOWN)) ||
|
||||
((lflags & GPIO_PULL_UP) && (lflags & GPIO_PULL_DISABLE)) ||
|
||||
((lflags & GPIO_PULL_DOWN) && (lflags & GPIO_PULL_DISABLE))) {
|
||||
gpiod_err(desc,
|
||||
"both pull-up and pull-down enabled, invalid configuration\n");
|
||||
"multiple pull-up, pull-down or pull-disable enabled, invalid configuration\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -3955,6 +3957,8 @@ int gpiod_configure_flags(struct gpio_desc *desc, const char *con_id,
|
||||
set_bit(FLAG_PULL_UP, &desc->flags);
|
||||
else if (lflags & GPIO_PULL_DOWN)
|
||||
set_bit(FLAG_PULL_DOWN, &desc->flags);
|
||||
else if (lflags & GPIO_PULL_DISABLE)
|
||||
set_bit(FLAG_BIAS_DISABLE, &desc->flags);
|
||||
|
||||
ret = gpiod_set_transitory(desc, (lflags & GPIO_TRANSITORY));
|
||||
if (ret < 0)
|
||||
|
@ -14,6 +14,7 @@ enum gpio_lookup_flags {
|
||||
GPIO_TRANSITORY = (1 << 3),
|
||||
GPIO_PULL_UP = (1 << 4),
|
||||
GPIO_PULL_DOWN = (1 << 5),
|
||||
GPIO_PULL_DISABLE = (1 << 6),
|
||||
|
||||
GPIO_LOOKUP_FLAGS_DEFAULT = GPIO_ACTIVE_HIGH | GPIO_PERSISTENT,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user