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 <linusw@kernel.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-schmitt-microvolt: 100 description: threshold strength for schmitt-trigger 101 102 input-debounce: 103 $ref: /schemas/types.yaml#/definitions/uint32-array 104 description: Takes the debounce time in usec as argument or 0 to disable 105 debouncing 106 107 power-source: 108 $ref: /schemas/types.yaml#/definitions/uint32 109 description: select between different power supplies 110 111 low-power-enable: 112 type: boolean 113 description: enable low power mode 114 115 low-power-disable: 116 type: boolean 117 description: disable low power mode 118 119 output-disable: 120 type: boolean 121 description: disable output on a pin (such as disable an output buffer) 122 123 output-enable: 124 type: boolean 125 description: enable output on a pin without actively driving it 126 (such as enabling an output buffer) 127 128 output-impedance-ohms: 129 description: set the output impedance of a pin to at most X ohms 130 131 output-low: 132 type: boolean 133 description: set the pin to output mode with low level 134 135 output-high: 136 type: boolean 137 description: set the pin to output mode with high level 138 139 sleep-hardware-state: 140 type: boolean 141 description: indicate this is sleep related state which will be 142 programmed into the registers for the sleep state. 143 144 slew-rate: 145 $ref: /schemas/types.yaml#/definitions/uint32 146 description: set the slew rate 147 148 skew-delay: 149 $ref: /schemas/types.yaml#/definitions/uint32 150 description: 151 this affects the expected clock skew on input pins 152 and the delay before latching a value to an output 153 pin. Typically indicates how many double-inverters are 154 used to delay the signal. 155 156 skew-delay-input-ps: 157 description: 158 this affects the expected clock skew in ps on an input pin. 159 160 skew-delay-output-ps: 161 description: 162 this affects the expected delay in ps before latching a value to 163 an output pin. 164 165 input-threshold-voltage-microvolt: 166 description: Specifies the input voltage level of the pin in microvolts. 167 This defines the reference for VIH (Input High Voltage) and VIL 168 (Input Low Voltage) thresholds for proper signal detection. 169 170allOf: 171 - if: 172 required: 173 - skew-delay 174 then: 175 properties: 176 skew-delay-input-ps: false 177 skew-delay-output-ps: false 178 179 - if: 180 required: 181 - input-disable 182 then: 183 properties: 184 input-enable: false 185 input-threshold-voltage-microvolt: false 186 187 - if: 188 required: 189 - output-disable 190 then: 191 properties: 192 output-enable: false 193 output-impedance-ohms: false 194 195 - if: 196 required: 197 - output-low 198 then: 199 properties: 200 output-high: false 201 202 - if: 203 required: 204 - low-power-enable 205 then: 206 properties: 207 low-power-disable: false 208 209 - if: 210 required: 211 - input-schmitt-disable 212 then: 213 properties: 214 input-schmitt-enable: false 215 input-schmitt-microvolt: false 216 217 - if: 218 required: 219 - drive-strength 220 then: 221 properties: 222 drive-strength-microamp: false 223 224 - if: 225 anyOf: 226 - required: 227 - drive-open-source 228 - required: 229 - drive-open-drain 230 - required: 231 - drive-push-pull 232 then: 233 oneOf: 234 - required: 235 - drive-open-source 236 - required: 237 - drive-open-drain 238 - required: 239 - drive-push-pull 240 241 - if: 242 anyOf: 243 - required: 244 - bias-disable 245 - required: 246 - bias-bus-hold 247 - required: 248 - bias-pull-up 249 - required: 250 - bias-pull-down 251 - required: 252 - bias-pull-pin-default 253 then: 254 oneOf: 255 - required: 256 - bias-disable 257 - required: 258 - bias-bus-hold 259 - required: 260 - bias-pull-up 261 - required: 262 - bias-pull-down 263 - required: 264 - bias-pull-pin-default 265 266additionalProperties: true 267