xref: /openbmc/linux/include/dt-bindings/gpio/gpio.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1*323b8d0dSEtienne Carriere /* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */
271fab21fSStephen Warren /*
371fab21fSStephen Warren  * This header provides constants for most GPIO bindings.
471fab21fSStephen Warren  *
571fab21fSStephen Warren  * Most GPIO bindings include a flags cell as part of the GPIO specifier.
671fab21fSStephen Warren  * In most cases, the format of the flags cell uses the standard values
771fab21fSStephen Warren  * defined in this header.
871fab21fSStephen Warren  */
971fab21fSStephen Warren 
1071fab21fSStephen Warren #ifndef _DT_BINDINGS_GPIO_GPIO_H
1171fab21fSStephen Warren #define _DT_BINDINGS_GPIO_GPIO_H
1271fab21fSStephen Warren 
1369d301fdSLinus Walleij /* Bit 0 express polarity */
1471fab21fSStephen Warren #define GPIO_ACTIVE_HIGH 0
1571fab21fSStephen Warren #define GPIO_ACTIVE_LOW 1
1671fab21fSStephen Warren 
1769d301fdSLinus Walleij /* Bit 1 express single-endedness */
1869d301fdSLinus Walleij #define GPIO_PUSH_PULL 0
1969d301fdSLinus Walleij #define GPIO_SINGLE_ENDED 2
2069d301fdSLinus Walleij 
214c0facddSLaxman Dewangan /* Bit 2 express Open drain or open source */
224c0facddSLaxman Dewangan #define GPIO_LINE_OPEN_SOURCE 0
234c0facddSLaxman Dewangan #define GPIO_LINE_OPEN_DRAIN 4
244c0facddSLaxman Dewangan 
2569d301fdSLinus Walleij /*
264c0facddSLaxman Dewangan  * Open Drain/Collector is the combination of single-ended open drain interface.
274c0facddSLaxman Dewangan  * Open Source/Emitter is the combination of single-ended open source interface.
2869d301fdSLinus Walleij  */
294c0facddSLaxman Dewangan #define GPIO_OPEN_DRAIN (GPIO_SINGLE_ENDED | GPIO_LINE_OPEN_DRAIN)
304c0facddSLaxman Dewangan #define GPIO_OPEN_SOURCE (GPIO_SINGLE_ENDED | GPIO_LINE_OPEN_SOURCE)
3169d301fdSLinus Walleij 
32e10f72bfSAndrew Jeffery /* Bit 3 express GPIO suspend/resume and reset persistence */
33e10f72bfSAndrew Jeffery #define GPIO_PERSISTENT 0
34e10f72bfSAndrew Jeffery #define GPIO_TRANSITORY 8
3505f479bfSCharles Keepax 
36ede033e1SThomas Petazzoni /* Bit 4 express pull up */
37ede033e1SThomas Petazzoni #define GPIO_PULL_UP 16
38ede033e1SThomas Petazzoni 
39ede033e1SThomas Petazzoni /* Bit 5 express pull down */
40ede033e1SThomas Petazzoni #define GPIO_PULL_DOWN 32
41ede033e1SThomas Petazzoni 
42d042656aSNuno Sá /* Bit 6 express pull disable */
43d042656aSNuno Sá #define GPIO_PULL_DISABLE 64
44d042656aSNuno Sá 
4571fab21fSStephen Warren #endif
46