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

description: Cypress SBC[SPI]

compatible: "cypress,psoc6-spi"

include: [spi-controller.yaml, pinctrl-device.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
