# Copyright 2022 NXP
# SPDX-License-Identifier: Apache-2.0

description: |
  NXP S32 Message Receive Unit

  The MRU couples with a processor and allows to receive messages from senders,
  which are other modules or processors. The interrupts from each MRU instance
  route to specific Private Peripheral Interrupts (PPIs) of the corresponding
  core.

  This driver offers a simplified operation in order to integrate with Zephyr
  Mbox API:
    - Each channel uses only the first mailbox, as current API does not allow
      to group hardware channel's mailboxes in logical channels.
    - The MTU is fixed to the size of one mailbox, as current API does not
      allow variable length per channel.

  In a normal use-case for IPC, the receiver core must enable and set the number
  of receive channels on the MRU instance coupled with the core, for instance in
  a devicetree overlay. In turn, the sender(s) must enable the MRU instance of the
  receiver to be able to transmit on it. There is no need to define the transmit
  channels on which the sender is intended to transmit.

  For example, core B and C want to send messages to core A in channels 0 and 1,
  respectively, then the devicetree overlays will look like:

    // overlay of core A
    mruA {
      rx-channels = <2>;
      status = "okay";
    };

    // overlays of core B and core C
    mruA {
      status = "okay";
    };

compatible: "nxp,s32-mru"

include: [base.yaml, mailbox-controller.yaml]

properties:
  interrupts:
    required: true

  rx-channels:
    type: int
    enum: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    description: |
      Number of receive channels enabled on this instance.
      Setting this value to N, will enable channels 0 to N-1, consecutively.
      It should be set by the receiver core coupled with this MRU instance.

      For example, if receiver A wants to Rx on channels 0 and 1, then A must
      set rx-channels of mruA as follows:

        mruA {
          rx-channels = <2>;
          status = "okay";
        };

mbox-cells:
  - channel
