1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/pincfg-node.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Generic Pin Configuration Node
8
9maintainers:
10  - Linus Walleij <linus.walleij@linaro.org>
11
12description:
13  Many data items that are represented in a pin configuration node are common
14  and generic. Pin control bindings should use the properties defined below
15  where they are applicable; not all of these properties are relevant or useful
16  for all hardware or binding structures. Each individual binding document
17  should state which of these generic properties, if any, are used, and the
18  structure of the DT nodes that contain these properties.
19
20properties:
21  bias-disable:
22    type: boolean
23    description: disable any pin bias
24
25  bias-high-impedance:
26    type: boolean
27    description: high impedance mode ("third-state", "floating")
28
29  bias-bus-hold:
30    type: boolean
31    description: latch weakly
32
33  bias-pull-up:
34    oneOf:
35      - type: boolean
36      - $ref: /schemas/types.yaml#/definitions/uint32
37    description: pull up the pin. Takes as optional argument on hardware
38      supporting it the pull strength in Ohm.
39
40  bias-pull-down:
41    oneOf:
42      - type: boolean
43      - $ref: /schemas/types.yaml#/definitions/uint32
44    description: pull down the pin. Takes as optional argument on hardware
45      supporting it the pull strength in Ohm.
46
47  bias-pull-pin-default:
48    oneOf:
49      - type: boolean
50      - $ref: /schemas/types.yaml#/definitions/uint32
51    description: use pin-default pull state. Takes as optional argument on
52      hardware supporting it the pull strength in Ohm.
53
54  drive-push-pull:
55    oneOf:
56      - type: boolean
57      - $ref: /schemas/types.yaml#/definitions/uint32
58        enum: [ 0, 1 ]
59        deprecated: true
60    description: drive actively high and low
61
62  drive-open-drain:
63    oneOf:
64      - type: boolean
65      - $ref: /schemas/types.yaml#/definitions/uint32
66        const: 1    # No known cases of 0
67        deprecated: true
68    description: drive with open drain
69
70  drive-open-source:
71    type: boolean
72    description: drive with open source
73
74  drive-strength:
75    $ref: /schemas/types.yaml#/definitions/uint32
76    description: sink or source at most X mA
77
78  drive-strength-microamp:
79    description: sink or source at most X uA
80
81  input-enable:
82    type: boolean
83    description: enable input on pin (no effect on output, such as
84      enabling an input buffer)
85
86  input-disable:
87    type: boolean
88    description: disable input on pin (no effect on output, such as
89      disabling an input buffer)
90
91  input-schmitt-enable:
92    type: boolean
93    description: enable schmitt-trigger mode
94
95  input-schmitt-disable:
96    type: boolean
97    description: disable schmitt-trigger mode
98
99  input-debounce:
100    $ref: /schemas/types.yaml#/definitions/uint32
101    description: Takes the debounce time in usec as argument or 0 to disable
102      debouncing
103
104  power-source:
105    $ref: /schemas/types.yaml#/definitions/uint32
106    description: select between different power supplies
107
108  low-power-enable:
109    type: boolean
110    description: enable low power mode
111
112  low-power-disable:
113    type: boolean
114    description: disable low power mode
115
116  output-disable:
117    type: boolean
118    description: disable output on a pin (such as disable an output buffer)
119
120  output-enable:
121    type: boolean
122    description: enable output on a pin without actively driving it
123      (such as enabling an output buffer)
124
125  output-impedance-ohms:
126    description: set the output impedance of a pin to at most X ohms
127
128  output-low:
129    type: boolean
130    description: set the pin to output mode with low level
131
132  output-high:
133    type: boolean
134    description: set the pin to output mode with high level
135
136  sleep-hardware-state:
137    type: boolean
138    description: indicate this is sleep related state which will be
139      programmed into the registers for the sleep state.
140
141  slew-rate:
142    $ref: /schemas/types.yaml#/definitions/uint32
143    description: set the slew rate
144
145  skew-delay:
146    $ref: /schemas/types.yaml#/definitions/uint32
147    description:
148      this affects the expected clock skew on input pins
149      and the delay before latching a value to an output
150      pin. Typically indicates how many double-inverters are
151      used to delay the signal.
152
153additionalProperties: true
154