/*
 * 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/ &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;
	};
};

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

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