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

/dts-v1/;

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

/delete-node/ &cpuapp_cpurad_ipc;
/delete-node/ &cpuapp_cpusys_ipc;
/delete-node/ &cpurad_cpusys_ipc;
/delete-node/ &cpusec_cpuapp_ipc;
/delete-node/ &cpusec_cpurad_ipc;

/ {
	compatible = "nordic,nrf54h20dk_nrf54h20-cpuppr";
	model = "Nordic nRF54H20 DK nRF54H20 Peripheral Processor MCU";
	#address-cells = <1>;
	#size-cells = <1>;

	chosen {
		zephyr,console = &uart135;
		zephyr,code-partition = &cpuppr_code_partition;
		zephyr,flash = &mram1x;
		zephyr,sram = &cpuppr_code_data;
		zephyr,shell-uart = &uart135;
	};
};

&cpuapp_cpuppr_ipc {
	mbox-names = "tx", "rx";
	tx-region = <&cpuppr_cpuapp_ipc_shm>;
	rx-region = <&cpuapp_cpuppr_ipc_shm>;
};

&grtc {
	status = "okay";
	owned-channels = <5>;
};

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

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