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

description: Generic pin configuration schema

child-binding:
    description: |
      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:
        required: false
        type: boolean
        description: disable any pin bias

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

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

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

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

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

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

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

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

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

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

      input-enable:
        required: false
        type: boolean
        description: |
          enable input on pin (no effect on output, such as enabling an input
          buffer)

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

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

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

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

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

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

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

      output-disable:
        required: false
        type: boolean
        description: disable output on a pin (such as disable an output buffer)

      output-enable:
        required: false
        type: boolean
        description: |
          enable output on a pin without actively driving it (such as enabling
          an output buffer)

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

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

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

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

      skew-delay:
        required: false
        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.
