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

# Common fields for GPIO controllers

properties:
    "gpio-controller":
      type: boolean
      required: true
      description: Convey's this node is a GPIO controller
    "#gpio-cells":
      type: int
      required: true
      description: Number of items to expect in a GPIO specifier
    ngpios:
      type: int
      required: false
      default: 32
      description: |
          This property indicates the number of in-use slots of available slots
          for GPIOs. The typical example is something like this: the hardware
          register is 32 bits wide, but only 18 of the bits have a physical
          counterpart. The driver is generally written so that all 32 bits can
          be used, but the IP block is reused in a lot of designs, some using
          all 32 bits, some using 18 and some using 12. In this case, setting
          "ngpios = <18>;" informs the driver that only the first 18 GPIOs, at
          local offset 0 .. 17, are in use.  For cases in which there might be
          holes in the slot range, this value should be the max slot number-1.
    gpio-reserved-ranges:
      type: array
      required: false
      description: |
          If not all the GPIOs at offsets 0...N-1 are usable for ngpios = <N>, then
          this property contains an additional set of tuples which specify which GPIOs
          are unusable. This property indicates the start and size of the GPIOs
          that can't be used.

          For example, setting "gpio-reserved-ranges = <3 2>, <10 1>;" means that
          GPIO offsets 3, 4, and 10 are not usable, even if ngpios = <18>.
    gpio-line-names:
      type: string-array
      required: false
      description: |
          This is an array of strings defining the names of the GPIO lines
          going out of the GPIO controller
