1# Copyright (c) 2020, Linaro Limited
2# SPDX-License-Identifier: Apache-2.0
3
4description: Generic pin configuration schema
5
6child-binding:
7    description: |
8      Many data items that are represented in a pin configuration node are
9      common and generic. Pin control bindings should use the properties
10      defined below where they are applicable; not all of these properties are
11      relevant or useful for all hardware or binding structures. Each
12      individual binding document should state which of these generic
13      properties, if any, are used, and the structure of the DT nodes that
14      contain these properties.
15
16      This is based on Linux, documentation:
17        https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml
18
19    properties:
20      bias-disable:
21        required: false
22        type: boolean
23        description: disable any pin bias
24
25      bias-high-impedance:
26        required: false
27        type: boolean
28        description: high impedance mode ("third-state", "floating")
29
30      bias-bus-hold:
31        required: false
32        type: boolean
33        description: latch weakly
34
35      bias-pull-up:
36        required: false
37        type: boolean
38        description: enable pull-up resistor
39
40      bias-pull-down:
41        required: false
42        type: boolean
43        description: enable pull-down resistor
44
45      bias-pull-pin-default:
46        required: false
47        type: boolean
48        description: use pin's default pull state
49
50      drive-push-pull:
51        required: false
52        type: boolean
53        description: drive actively high and low
54
55      drive-open-drain:
56        required: false
57        type: boolean
58        description: drive with open drain (hardware AND)
59
60      drive-open-source:
61        required: false
62        type: boolean
63        description: drive with open source (hardware OR)
64
65      drive-strength:
66        required: false
67        type: int
68        description: maximum sink or source current in mA
69
70      drive-strength-microamp:
71        required: false
72        type: int
73        description: maximum sink or source current in μA
74
75      input-enable:
76        required: false
77        type: boolean
78        description: |
79          enable input on pin (no effect on output, such as enabling an input
80          buffer)
81
82      input-disable:
83        required: false
84        type: boolean
85        description: |
86          disable input on pin (no effect on output, such as disabling an input
87          buffer)
88
89      input-schmitt-enable:
90        required: false
91        type: boolean
92        description: enable schmitt-trigger mode
93
94      input-schmitt-disable:
95        required: false
96        type: boolean
97        description: disable schmitt-trigger mode
98
99      input-debounce:
100        required: false
101        type: int
102        description: |
103          Takes the debounce time in μsec, as argument or 0 to disable debouncing
104
105      power-source:
106        required: false
107        type: int
108        description: select between different power supplies
109
110      low-power-enable:
111        required: false
112        type: boolean
113        description: enable low power mode
114
115      low-power-disable:
116        required: false
117        type: boolean
118        description: disable low power mode
119
120      output-disable:
121        required: false
122        type: boolean
123        description: disable output on a pin (such as disable an output buffer)
124
125      output-enable:
126        required: false
127        type: boolean
128        description: |
129          enable output on a pin without actively driving it (such as enabling
130          an output buffer)
131
132      output-low:
133        required: false
134        type: boolean
135        description: set the pin to output mode with low level
136
137      output-high:
138        required: false
139        type: boolean
140        description: set the pin to output mode with high level
141
142      sleep-hardware-state:
143        required: false
144        type: boolean
145        description: |
146          indicate this is sleep related state which will be programmed into
147          the registers for the sleep state
148
149      slew-rate:
150        required: false
151        type: int
152        description: set the slew rate
153
154      skew-delay:
155        required: false
156        type: int
157        description: |
158          This affects the expected clock skew on input pins and the delay
159          before latching a value to an output pin. Typically indicates how
160          many double-inverters are used to delay the signal.
161