/*
 * Copyright (c) 2024 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <nordic/nrf54h20_cpurad.dtsi>
#include "nrf54h20dk_nrf54h20-memory_map.dtsi"
#include "nrf54h20dk_nrf54h20-ipc_conf.dtsi"
#include "nrf54h20dk_nrf54h20-pinctrl.dtsi"

/delete-node/ &cpuapp_cpuppr_ipc;
/delete-node/ &cpusec_cpuapp_ipc;

/ {
	compatible = "nordic,nrf54h20dk_nrf54h20-cpurad";
	model = "Nordic nRF54H20 DK nRF54H20 Radio MCU";

	chosen {
		zephyr,console = &uart135;
		zephyr,code-partition = &cpurad_slot0_partition;
		zephyr,flash = &mram1x;
		zephyr,sram = &cpurad_ram0;
	};
};

&shared_ram3x_region {
	status = "okay";
};

&cpurad_bellboard {
	interrupts = <96 NRF_DEFAULT_IRQ_PRIORITY>;
	interrupt-names = "irq0";
	/* irq0: 0: cpurad-cpusec, 12: cpurad-cpuapp */
	nordic,interrupt-mapping = <0x00001001 0>;
};

&cpusec_cpurad_ipc {
	mbox-names = "tx", "rx";
	tx-region = <&cpurad_cpusec_ipc_shm>;
	rx-region = <&cpusec_cpurad_ipc_shm>;
};

&cpuapp_cpurad_ipc {
	compatible = "zephyr,ipc-icmsg-me-follower";
	mbox-names = "tx", "rx";
	tx-region = <&cpurad_cpuapp_ipc_shm>;
	rx-region = <&cpuapp_cpurad_ipc_shm>;
};

&cpurad_dma_region {
	status = "okay";
};

&cpurad_rx_partitions {
	status = "okay";
};

&grtc {
	status = "okay";
};

&uart135 {
	status = "okay";
	memory-regions = <&cpurad_dma_region>;
	current-speed = <115200>;
	pinctrl-0 = <&uart135_default>;
	pinctrl-1 = <&uart135_sleep>;
	pinctrl-names = "default", "sleep";
};

&uart136 {
	current-speed = <115200>;
	pinctrl-0 = <&uart136_default>;
	pinctrl-1 = <&uart136_sleep>;
	pinctrl-names = "default", "sleep";
};
