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

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

	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";
		};
	};

	mbox-consumer {
		compatible = "vnd,mbox-consumer";
		mboxes = <&mbox 3>, <&mbox 2>, <&mbox 1>, <&mbox 0>, <&mbox 2>,
			 <&mbox 3>, <&mbox 0>, <&mbox 1>;
		mbox-names = "tx0", "rx0", "tx1", "rx1", "tx2", "rx2", "tx3",
			     "rx3";
	};
};
