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)
commit39b2bbe3d715cf5013b5c48695ccdd25bd3bf120
tree019129dbc7b1cc10200342602fe7eac47230219e
parent9b5b33f6256a941d9d34f219b508ba7140a39dba
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