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