/*
 * Copyright 2024 NXP
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/ipc_service/static_vrings.h>
#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h>

/ {
	chosen {
		/* Delete ipc chosen property where old IPM mailbox driver bellow is
		 * configured.
		 */
		/delete-property/ zephyr,ipc;
		/delete-property/ zephyr,ipc_shm;

		zephyr,console = &lpuart1;
		zephyr,shell-uart = &lpuart1;
	};

	/* Define memory regions for IPC
	 * Note that shared memory must have specific MPU attributes set.
	 */
	 ocram2_ipc0: memory@202c0000{
		compatible = "zephyr,memory-region", "mmio-sram";
		reg = <0x202c0000 DT_SIZE_K(32)>;
		zephyr,memory-region="OCRAM2_IPC0";
		zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_IO))>;
	};
	ocram2_ipc1: memory@202c8000{
		compatible = "zephyr,memory-region", "mmio-sram";
		reg = <0x202c8000 DT_SIZE_K(32)>;
		zephyr,memory-region="OCRAM2_IPC1";
		zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_IO))>;
	};

	soc {
		/* Delete IPM Driver node nxp,imx-mu */
		/delete-node/ mailbox@40c48000;

		/* Attach MBOX driver to MU Unit */
		mbox:mbox@40c48000 {
			compatible = "nxp,mbox-imx-mu";
			reg = <0x40c48000 0x4000>;
			interrupts = <118 0>;
			rx-channels = <4>;
			#mbox-cells = <1>;
			status = "okay";
		};
	};

	ipc {
		/delete-node/ ipc0;

		ipc0: ipc0 {
			compatible = "zephyr,ipc-openamp-static-vrings";
			memory-region = <&ocram2_ipc0>;
			mboxes = <&mbox 0>, <&mbox 1>;
			mbox-names = "tx", "rx";
			role = "host";
			status = "okay";
		};

		ipc1: ipc1 {
			compatible = "zephyr,ipc-openamp-static-vrings";
			memory-region = <&ocram2_ipc1>;
			mboxes = <&mbox 2>, <&mbox 3>;
			mbox-names = "tx", "rx";
			role = "host";
			zephyr,priority = <1 PRIO_COOP>;
			zephyr,buffer-size = <128>;
			status = "okay";
		};
	};
};
