mirror of https://gitee.com/openkylin/linux.git
gpio: Clarify consumer stubs use-cases
After discussion we add a few blurbs to clarify how the stubs in the consumer API are supposed to be used. Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Cc: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
aa5c2a88bb
commit
a621c99a96
|
@ -10,14 +10,30 @@ Guidelines for GPIOs consumers
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Drivers that can't work without standard GPIO calls should have Kconfig entries
|
Drivers that can't work without standard GPIO calls should have Kconfig entries
|
||||||
that depend on GPIOLIB. The functions that allow a driver to obtain and use
|
that depend on GPIOLIB or select GPIOLIB. The functions that allow a driver to
|
||||||
GPIOs are available by including the following file:
|
obtain and use GPIOs are available by including the following file:
|
||||||
|
|
||||||
#include <linux/gpio/consumer.h>
|
#include <linux/gpio/consumer.h>
|
||||||
|
|
||||||
|
There are static inline stubs for all functions in the header file in the case
|
||||||
|
where GPIOLIB is disabled. When these stubs are called they will emit
|
||||||
|
warnings. These stubs are used for two use cases:
|
||||||
|
|
||||||
|
- Simple compile coverage with e.g. COMPILE_TEST - it does not matter that
|
||||||
|
the current platform does not enable or select GPIOLIB because we are not
|
||||||
|
going to execute the system anyway.
|
||||||
|
|
||||||
|
- Truly optional GPIOLIB support - where the driver does not really make use
|
||||||
|
of the GPIOs on certain compile-time configurations for certain systems, but
|
||||||
|
will use it under other compile-time configurations. In this case the
|
||||||
|
consumer must make sure not to call into these functions, or the user will
|
||||||
|
be met with console warnings that may be perceived as intimidating.
|
||||||
|
|
||||||
All the functions that work with the descriptor-based GPIO interface are
|
All the functions that work with the descriptor-based GPIO interface are
|
||||||
prefixed with gpiod_. The gpio_ prefix is used for the legacy interface. No
|
prefixed with gpiod_. The gpio_ prefix is used for the legacy interface. No
|
||||||
other function in the kernel should use these prefixes.
|
other function in the kernel should use these prefixes. The use of the legacy
|
||||||
|
functions is strongly discouraged, new code should use <linux/gpio/consumer.h>
|
||||||
|
and descriptors exclusively.
|
||||||
|
|
||||||
|
|
||||||
Obtaining and Disposing GPIOs
|
Obtaining and Disposing GPIOs
|
||||||
|
|
Loading…
Reference in New Issue