# Copyright (c) 2018, Cypress
# Copyright (c) 2020, ATL Electronics
# SPDX-License-Identifier: Apache-2.0

description: Cypress SCB[UART]

compatible: "cypress,psoc6-uart"

include: [uart-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 RX & TX 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 UART on PSOC 63 Pioneer Kit would be
         pinctrl-0 = <&p5_0_uart5_rx &p5_1_uart5_tx>;

    required: true
