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

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

compatible: "st,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
