# 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
      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
      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
      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.
