# Copyright (c) 2021, ATL Electronics
# SPDX-License-Identifier: Apache-2.0

description: Cypress SBC[SPI]

compatible: "cypress,psoc6-spi"

include: spi-controller.yaml

properties:
    reg:
      required: true

    interrupts:
      required: true

    peripheral-id:
      type: int
      description: peripheral ID
      required: true

    pinctrl-0:
      type: phandles
      description: |
        Port pin configuration for the various SPI signals that includes
        MISO, MOSI, SCK, and possibly various chip selects signals.  We
        expect that the phandles will reference pinctrl nodes.  These
        nodes will have a nodelabel that matches the Cypress SoC HAL defines
        and be of the form p<port>_<pin>_<periph><inst>_<signal>.

        For example the SPI on PSoC-63 Pioneer Kit would be
           pinctrl-0 = <&p12_0_spi6_mosi &p12_1_spi6_miso &p12_2_spi6_clk &p12_3_spi6_sel0>;

      required: true
