/*
 * Copyright (c) 2020 Linaro Limited.
 * Copyright (c) 2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <mem.h>
#include <arm/nordic/nrf52833.dtsi>
/* We resuse the pinctrl definitions directly from the real board : */
#include <../boards/arm/nrf52833dk_nrf52833/nrf52833dk_nrf52833-pinctrl.dtsi>

/ {
	model = "nrf52 bsim";
	compatible = "bsim,nrf52833";

	/* We need to remove aliases to nodes we delete */
	aliases {
		/delete-property/ i2c-0;
		/delete-property/ i2c-1;
		/delete-property/ spi-0;
		/delete-property/ spi-1;
		/delete-property/ spi-2;
		/delete-property/ spi-3;
		/delete-property/ adc-0;
		/delete-property/ wdt-0;
		/delete-property/ pwm-0;
		/delete-property/ pwm-1;
		/delete-property/ pwm-2;
		/delete-property/ pwm-3;
		/delete-property/ qdec-0;
	};

	chosen {
		zephyr,ieee802154 = &ieee802154;
		zephyr,flash = &flash0;
		/* UART used by the BT controller UART HCI driver by default: */
		zephyr,bt-c2h-uart = &uart1;
		/* UART used by the BT host UART HCI driver by default: */
		zephyr,bt-uart = &uart1;
	};

	soc {
		/delete-node/ memory@20000000;
		/delete-node/ adc@40007000;
		/delete-node/ i2c@40003000;
		/delete-node/ i2c@40004000;
		/delete-node/ pwm@4001c000;
		/delete-node/ pwm@40021000;
		/delete-node/ pwm@40022000;
		/delete-node/ pwm@4002d000;
		/delete-node/ qdec@40012000;
		/delete-node/ spi@40003000;
		/delete-node/ spi@40004000;
		/delete-node/ spi@40023000;
		/delete-node/ spi@4002f000;
		/delete-node/ nfct@40005000;
		/delete-node/ watchdog@40010000;
		/delete-node/ acl@4001e000;
		/delete-node/ usbd@40027000;
	};

	/delete-node/ sw-pwm;
};

&radio {
	/* These features are not yet supported by the RADIO model */
	/delete-property/ dfe-supported;
	/delete-property/ ble-coded-phy-supported;
};

&gpiote {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&ieee802154 {
	status = "okay";
};

&flash0 {
	reg = <0x00000000 DT_SIZE_K(512)>;
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		storage_partition: partition@0 {
			label = "storage";
			reg = <0x00000000 DT_SIZE_K(512)>;
		};
	};
};

&uart0 {
	compatible = "nordic,nrf-uarte";
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_default>;
	pinctrl-1 = <&uart0_sleep>;
	pinctrl-names = "default", "sleep";
};

&uart1 {
	compatible = "nordic,nrf-uarte";
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart1_default>;
	pinctrl-1 = <&uart1_sleep>;
	pinctrl-names = "default", "sleep";
	hw-flow-control;
};
