]> git.baikalelectronics.ru Git - kernel.git/commit
gpio: add flags argument to gpiod_get*() functions
authorAlexandre Courbot <acourbot@nvidia.com>
Fri, 25 Jul 2014 14:38:36 +0000 (23:38 +0900)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 28 Jul 2014 10:28:05 +0000 (12:28 +0200)
commitf9251f4c2347a81ee441bb956ad0afc65260402f
tree019129dbc7b1cc10200342602fe7eac47230219e
parent18d70c504b389acc4664120f68d5d0db4f320ba5
gpio: add flags argument to gpiod_get*() functions

The huge majority of GPIOs have their direction and initial value set
right after being obtained by one of the gpiod_get() functions. The
integer GPIO API had gpio_request_one() that took a convenience flags
parameter allowing to specify an direction and value applied to the
returned GPIO. This feature greatly simplifies client code and ensures
errors are always handled properly.

A similar feature has been requested for the gpiod API. Since setting
the direction of a GPIO is so often the very next action done after
obtaining its descriptor, we prefer to extend the existing functions
instead of introducing new functions that would raise the
number of gpiod getters to 16 (!).

The drawback of this approach is that all gpiod clients need to be
updated. To limit the pain, temporary macros are introduced that allow
gpiod_get*() to be called with or without the extra flags argument. They
will be removed once all consumer code has been updated.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/gpio/consumer.txt
drivers/gpio/devres.c
drivers/gpio/gpiolib.c
include/linux/gpio/consumer.h