# Copyright (c) 2021 Carlo Caione <ccaione@baylibre.com>
# SPDX-License-Identifier: Apache-2.0

description: OpenAMP (RPMsg with static VRINGs) backend

compatible: "zephyr,ipc-openamp-static-vrings"

include: base.yaml

properties:
  role:
    description: OpenAMP roles
    required: true
    type: string
    enum:
      - host
      - remote

  memory-region:
    description: phandle to the shared memory region
    required: true
    type: phandle

  mboxes:
    description: phandle to the MBOX controller (TX and RX are required)
    required: true

  mbox-names:
    description: MBOX channel names (must be called "tx" and "rx")
    required: true

  zephyr,priority:
    type: array
    required: false
    description: |
      WQ priority for the instance. This property is an array composed by the
      priority level and the type of priority (PRIO_COOP for cooperative or
      PRIO_PREEMPT for preemptive).

      For example for a thread priority K_PRIO_COOP(1) in DT we have
        priority = <1 PRIO_COOP>;
      or for K_PRIO_PREEMPT(2)
        priority = <2 PRIO_PREEMPT>;

      When this property is missing a default priority of 0 is assumed.
