mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
gpiolib: of: support bias pull disable
On top of looking at PULL_UP and PULL_DOWN flags, also look at PULL_DISABLE and set the appropriate GPIO flag. The GPIO core will then pass down this to controllers that support it. Signed-off-by: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
This commit is contained in:
parent
c269df8c5a
commit
31bea23119
@ -354,6 +354,9 @@ struct gpio_desc *gpiod_get_from_of_node(const struct device_node *node,
|
||||
if (flags & OF_GPIO_PULL_DOWN)
|
||||
lflags |= GPIO_PULL_DOWN;
|
||||
|
||||
if (flags & OF_GPIO_PULL_DISABLE)
|
||||
lflags |= GPIO_PULL_DISABLE;
|
||||
|
||||
ret = gpiod_configure_flags(desc, propname, lflags, dflags);
|
||||
if (ret < 0) {
|
||||
gpiod_put(desc);
|
||||
@ -556,6 +559,8 @@ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
|
||||
*flags |= GPIO_PULL_UP;
|
||||
if (of_flags & OF_GPIO_PULL_DOWN)
|
||||
*flags |= GPIO_PULL_DOWN;
|
||||
if (of_flags & OF_GPIO_PULL_DISABLE)
|
||||
*flags |= GPIO_PULL_DISABLE;
|
||||
|
||||
return desc;
|
||||
}
|
||||
@ -621,6 +626,8 @@ static struct gpio_desc *of_parse_own_gpio(struct device_node *np,
|
||||
*lflags |= GPIO_PULL_UP;
|
||||
if (xlate_flags & OF_GPIO_PULL_DOWN)
|
||||
*lflags |= GPIO_PULL_DOWN;
|
||||
if (xlate_flags & OF_GPIO_PULL_DISABLE)
|
||||
*lflags |= GPIO_PULL_DISABLE;
|
||||
|
||||
if (of_property_read_bool(np, "input"))
|
||||
*dflags |= GPIOD_IN;
|
||||
|
@ -29,6 +29,7 @@ enum of_gpio_flags {
|
||||
OF_GPIO_TRANSITORY = 0x8,
|
||||
OF_GPIO_PULL_UP = 0x10,
|
||||
OF_GPIO_PULL_DOWN = 0x20,
|
||||
OF_GPIO_PULL_DISABLE = 0x40,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OF_GPIO
|
||||
|
Loading…
Reference in New Issue
Block a user