e10f72bf4b
General support for state persistence is added to gpiolib with the introduction of a new pinconf parameter to propagate the request to hardware. The existing persistence support for sleep is adapted to include hardware support if the GPIO driver provides it. Persistence continues to be enabled by default; in-kernel consumers can opt out, but userspace (currently) does not have a choice. The *_SLEEP_MAY_LOSE_VALUE and *_SLEEP_MAINTAIN_VALUE symbols are renamed, dropping the SLEEP prefix to reflect that the concept is no longer sleep-specific. I feel that renaming to just *_MAY_LOSE_VALUE could initially be misinterpreted, so I've further changed the symbols to *_TRANSITORY and *_PERSISTENT to address this. The sysfs interface is modified only to keep consistency with the chardev interface in enforcing persistence for userspace exports. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
37 lines
1.0 KiB
C
37 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* This header provides constants for most GPIO bindings.
|
|
*
|
|
* Most GPIO bindings include a flags cell as part of the GPIO specifier.
|
|
* In most cases, the format of the flags cell uses the standard values
|
|
* defined in this header.
|
|
*/
|
|
|
|
#ifndef _DT_BINDINGS_GPIO_GPIO_H
|
|
#define _DT_BINDINGS_GPIO_GPIO_H
|
|
|
|
/* Bit 0 express polarity */
|
|
#define GPIO_ACTIVE_HIGH 0
|
|
#define GPIO_ACTIVE_LOW 1
|
|
|
|
/* Bit 1 express single-endedness */
|
|
#define GPIO_PUSH_PULL 0
|
|
#define GPIO_SINGLE_ENDED 2
|
|
|
|
/* Bit 2 express Open drain or open source */
|
|
#define GPIO_LINE_OPEN_SOURCE 0
|
|
#define GPIO_LINE_OPEN_DRAIN 4
|
|
|
|
/*
|
|
* Open Drain/Collector is the combination of single-ended open drain interface.
|
|
* Open Source/Emitter is the combination of single-ended open source interface.
|
|
*/
|
|
#define GPIO_OPEN_DRAIN (GPIO_SINGLE_ENDED | GPIO_LINE_OPEN_DRAIN)
|
|
#define GPIO_OPEN_SOURCE (GPIO_SINGLE_ENDED | GPIO_LINE_OPEN_SOURCE)
|
|
|
|
/* Bit 3 express GPIO suspend/resume and reset persistence */
|
|
#define GPIO_PERSISTENT 0
|
|
#define GPIO_TRANSITORY 8
|
|
|
|
#endif
|