# Copyright (c) 2020, Linaro Limited
# SPDX-License-Identifier: Apache-2.0

description: |
  Generic pin configuration schema

  Many data items that are represented in a pin configuration node are
  common and generic. Pin control bindings should use the properties
  defined below where they are applicable; not all of these properties are
  relevant or useful for all hardware or binding structures. Each
  individual binding document should state which of these generic
  properties, if any, are used, and the structure of the DT nodes that
  contain these properties.

  This is based on Linux, documentation:
    https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/pincfg-node.yaml

properties:
  bias-disable:
    type: boolean
    description: disable any pin bias

  bias-high-impedance:
    type: boolean
    description: high impedance mode ("third-state", "floating")

  bias-bus-hold:
    type: boolean
    description: latch weakly

  bias-pull-up:
    type: boolean
    description: enable pull-up resistor

  bias-pull-down:
    type: boolean
    description: enable pull-down resistor

  bias-pull-pin-default:
    type: boolean
    description: use pin's default pull state

  drive-push-pull:
    type: boolean
    description: drive actively high and low

  drive-open-drain:
    type: boolean
    description: drive with open drain (hardware AND)

  drive-open-source:
    type: boolean
    description: drive with open source (hardware OR)

  drive-strength:
    type: int
    description: maximum sink or source current in mA

  drive-strength-microamp:
    type: int
    description: maximum sink or source current in μA

  input-enable:
    type: boolean
    description: |
      enable input on pin (e.g. enable an input buffer, no effect on output)

  input-disable:
    type: boolean
    description: |
      disable input on pin (e.g. disable an input buffer, no effect on output)

  input-schmitt-enable:
    type: boolean
    description: enable schmitt-trigger mode

  input-schmitt-disable:
    type: boolean
    description: disable schmitt-trigger mode

  input-debounce:
    type: int
    description: |
      Takes the debounce time in μsec, as argument or 0 to disable debouncing

  power-source:
    type: int
    description: select between different power supplies

  low-power-enable:
    type: boolean
    description: enable low power mode

  low-power-disable:
    type: boolean
    description: disable low power mode

  output-disable:
    type: boolean
    description: disable output on a pin (e.g. disable an output buffer)

  output-enable:
    type: boolean
    description: |
      enable output on a pin without actively driving it (e.g. enable an output
      buffer)

  output-low:
    type: boolean
    description: set the pin to output mode with low level

  output-high:
    type: boolean
    description: set the pin to output mode with high level

  sleep-hardware-state:
    type: boolean
    description: |
      indicate this is sleep related state which will be programmed into
      the registers for the sleep state

  slew-rate:
    type: int
    description: set the slew rate

  skew-delay:
    type: int
    description: |
      This affects the expected clock skew on input pins and the delay
      before latching a value to an output pin. Typically indicates how
        many double-inverters are used to delay the signal.
