mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 17:41:44 +00:00
ede033e1e8
This commit extends the flags that can be used in GPIO specifiers to indicate if a pull-up resistor or pull-down resistor should be enabled. While some pinctrl DT bindings already offer the capability of configuring pull-up/pull-down resistors at the pin level, a number of simple GPIO controllers don't have any pinmuxing capability, and therefore do not rely on the pinctrl DT bindings. Such simple GPIO controllers however sometimes allow to configure pull-up and pull-down resistors on a per-pin basis, and whether such resistors should be enabled or not is a highly board-specific HW characteristic. By using two additional bits of the GPIO flag specifier, we can easily allow the Device Tree to describe which GPIOs should have their pull-up or pull-down resistors enabled. Even though the two options are mutually exclusive, we still need two bits to encode at least three states: no pull-up/pull-down, pull-up, pull-down. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
43 lines
1.1 KiB
C
43 lines
1.1 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
|
|
|
|
/* Bit 4 express pull up */
|
|
#define GPIO_PULL_UP 16
|
|
|
|
/* Bit 5 express pull down */
|
|
#define GPIO_PULL_DOWN 32
|
|
|
|
#endif
|