pon., 4 lis 2019 o 16:39 Kent Gibson <warthog618@xxxxxxxxx> napisał(a): > > 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: Kent Gibson <warthog618@xxxxxxxxx> > --- > drivers/gpio/gpiolib.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 7d8ff52ada42..de08d1a4a3fb 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -555,8 +555,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))) > @@ -3144,6 +3145,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); Ugh, I missed one thing here - my for-next branch doesn't contain the following commit e735244e2cf0 ("gpiolib: don't clear FLAG_IS_OUT when emulating open-drain/open-source") which happens to modify this function. If I provided you with a branch containing it - would it be a lot of effort on your part to rebase it on top of it? If so - I can do it myself. Bart > } > EXPORT_SYMBOL_GPL(gpiod_direction_output); > -- > 2.23.0 >