# 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 (no effect on output, such as enabling an input
      buffer)

  input-disable:
    type: boolean
    description: |
      disable input on pin (no effect on output, such as disabling an input
      buffer)

  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 (such as disable an output buffer)

  output-enable:
    type: boolean
    description: |
      enable output on a pin without actively driving it (such as enabling
      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.
