# Copyright (c) 2020 STMICROELECTRONICS
# SPDX-License-Identifier: Apache-2.0

# Common fields for STM32 UART peripherals.
description: STM32 UART-BASE

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

properties:
    reg:
      required: true

    clocks:
      required: true

    interrupts:
      required: true

    single-wire:
      type: boolean
      required: false
      description: |
        Enable the single wire half-duplex communication.
        Using this mode, TX and RX lines are internally connected and
        only TX pin is used afterwards and should be configured.
        RX/TX conflicts must be handled on user side.

    tx-invert:
      type: boolean
      required: false
      description: |
        Invert the binary logic of tx pin. When enabled, physical logic levels are inverted and
        we use 1=Low, 0=High instead of 1=High, 0=Low.

    rx-invert:
      type: boolean
      required: false
      description: |
        Invert the binary logic of rx pin. When enabled, physical logic levels are inverted and
        we use 1=Low, 0=High instead of 1=High, 0=Low.

    pinctrl-0:
      required: true

    pinctrl-names:
      required: true

    wakeup-line:
      type: int
      required: false
      description: |
        EXTI line number matching the device wakeup interrupt mask register.
        This property is required on stm32 devices where the wakeup interrupt signal could be
        configured masked at boot (sm32wl55 for instance), preventing the device to wakeup
        the core from stop mode(s).
        Valid range: 0 - 31
