提交 2821ae5f 编写于 作者: K Kent Gibson 提交者: Bartosz Golaszewski

gpiolib: add support for biasing output lines

Allow pull up/down bias to be set on output lines.
Use case is for open source or open drain applications where
internal pull up/down may conflict with external biasing.
Signed-off-by: NKent Gibson <warthog618@gmail.com>
Signed-off-by: NBartosz Golaszewski <bgolaszewski@baylibre.com>
上级 2148ad77
......@@ -556,8 +556,9 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip)
(lflags & GPIOHANDLE_REQUEST_OPEN_SOURCE)))
return -EINVAL;
/* Bias flags only allowed for input mode. */
if (!(lflags & GPIOHANDLE_REQUEST_INPUT) &&
/* Bias flags only allowed for input or output mode. */
if (!((lflags & GPIOHANDLE_REQUEST_INPUT) ||
(lflags & GPIOHANDLE_REQUEST_OUTPUT)) &&
((lflags & GPIOHANDLE_REQUEST_BIAS_DISABLE) ||
(lflags & GPIOHANDLE_REQUEST_BIAS_PULL_UP) ||
(lflags & GPIOHANDLE_REQUEST_BIAS_PULL_DOWN)))
......@@ -3169,6 +3170,9 @@ int gpiod_direction_output(struct gpio_desc *desc, int value)
}
set_output_value:
ret = gpio_set_bias(gc, desc);
if (ret)
return ret;
return gpiod_direction_output_raw_commit(desc, value);
set_output_flag:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册