# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# Common fields for Nordic nRF family SPI peripherals

include: [spi-controller.yaml, pinctrl-device.yaml]

properties:
    reg:
      required: true

    interrupts:
      required: true

    max-frequency:
      type: int
      required: true
      description: |
        Maximum data rate the SPI peripheral can be driven at, in Hz. This
        property must be set at SoC level DTS files.

    overrun-character:
      type: int
      default: 0xff
      description: |
        The overrun character (ORC) is used when all bytes from the TX buffer
        are sent, but the transfer continues due to RX. Defaults to 0xff
        (line high), the most common value used in SPI transfers.

    sck-pin:
      type: int
      deprecated: true
      required: false
      description: |
        IMPORTANT: This option will only be used if the new pin control driver
        is not enabled.

        The SCK pin to use.

        For pins P0.0 through P0.31, use the pin number. For example,
        to use P0.16 for SCK, set:

            sck-pin = <16>;

        For pins P1.0 through P1.31, add 32 to the pin number. For
        example, to use P1.2 for SCK, set:

            sck-pin = <34>;  /* 32 + 2 */

    mosi-pin:
      type: int
      deprecated: true
      required: false
      description: |
        IMPORTANT: This option will only be used if the new pin control driver
        is not enabled.

        The MOSI pin to use. The pin numbering scheme is the same as
        the sck-pin property's.

    miso-pin:
      type: int
      deprecated: true
      required: false
      description: |
        IMPORTANT: This option will only be used if the new pin control driver
        is not enabled.

        The MISO pin to use. The pin numbering scheme is the same as
        the sck-pin property's.
