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

#include <arm/armv8-m.dtsi>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	chosen {
		zephyr,entropy = &rng;
		zephyr,flash-controller = &flash_controller;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-m33";
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <1>;

			mpu: mpu@e000ed90 {
				compatible = "arm,armv8m-mpu";
				reg = <0xe000ed90 0x40>;
			};
		};
	};

	flash_controller: flash-controller@41080000 {
		compatible = "nordic,nrf53-flash-controller";
		reg = <0x41080000 0x1000>;

		#address-cells = <1>;
		#size-cells = <1>;

		label="NRF_FLASH_DRV_NAME";

		flash1: flash@1000000 {
			compatible = "soc-nv-flash";
			label = "NRF_FLASH";
			erase-block-size = <2048>;
			write-block-size = <4>;
		};
	};

	soc {
		sram1: memory@21000000 {
			compatible = "mmio-sram";
		};

		clock: clock@41005000 {
			compatible = "nordic,nrf-clock";
			reg = <0x41005000 0x1000>;
			interrupts = <5 1>;
			status = "okay";
			label = "CLOCK";
		};

		dppic: dppic@4100f000 {
			compatible = "nordic,nrf-dppic";
			reg = <0x4100f000 0x1000>;
			status = "okay";
			label = "DPPIC";
		};

		egu0: egu@41014000 {
			compatible = "nordic,nrf-egu";
			reg = <0x41014000 0x1000>;
			interrupts = <20 1>;
			status = "okay";
			label = "EGU_0";
		};

		ficr: ficr@1ff0000 {
			compatible = "nordic,nrf-ficr";
			reg = <0x01ff0000 0x1000>;
			status = "okay";
		};

		gpio0: gpio@418c0500 {
			compatible = "nordic,nrf-gpio";
			gpio-controller;
			reg = <0x418c0500 0x300>;
			#gpio-cells = <2>;
			label = "GPIO_0";
			status = "disabled";
		};

		gpio1: gpio@418c0800 {
			compatible = "nordic,nrf-gpio";
			gpio-controller;
			reg = <0x418c0800 0x300>;
			#gpio-cells = <2>;
			ngpios = <16>;
			label = "GPIO_1";
			status = "disabled";
		};

		gpiote: gpiote@4100a000 {
			compatible = "nordic,nrf-gpiote";
			reg = <0x4100a000 0x1000>;
			interrupts = <10 5>;
			status = "disabled";
			label = "GPIOTE_0";
		};

		i2c0: i2c@41013000 {
			/*
			 * This i2c node can be TWIM or TWIS,
			 * for the user to pick:
			 * compatible = "nordic,nrf-twim" or
			 *              "nordic,nrf-twis".
			 */
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x41013000 0x1000>;
			clock-frequency = <I2C_BITRATE_STANDARD>;
			interrupts = <19 1>;
			status = "disabled";
			label = "I2C_0";
		};

		ipc: ipc@41012000 {
			compatible = "nordic,nrf-ipc";
			reg = <0x41012000 0x1000>;
			interrupts = <18 1>;
			status = "okay";
			label = "IPC";
		};

		power: power@41005000 {
			compatible = "nordic,nrf-power";
			reg = <0x41005000 0x1000>;
			interrupts = <5 1>;
			status = "okay";
		};

		rng: random@41009000 {
			compatible = "nordic,nrf-rng";
			reg = <0x41009000 0x1000>;
			interrupts = <9 1>;
			status = "okay";
			label = "RNG";
		};

		rtc0: rtc@41011000 {
			compatible = "nordic,nrf-rtc";
			reg = <0x41011000 0x1000>;
			interrupts = <17 1>;
			status = "okay";
			label = "RTC_0";
		};

		rtc1: rtc@41016000 {
			compatible = "nordic,nrf-rtc";
			reg = <0x41016000 0x1000>;
			interrupts = <22 1>;
			status = "okay";
			label = "RTC_1";
		};

		spi0: spi@41013000 {
			/*
			 * This spi node can be SPIM or SPIS,
			 * for the user to pick:
			 * compatible = "nordic,nrf-spim" or
			 *              "nordic,nrf-spis".
			 */
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x41013000 0x1000>;
			interrupts = <19 1>;
			status = "disabled";
			label = "SPI_0";
		};

		temp: temp@41010000 {
			compatible = "nordic,nrf-temp";
			reg = <0x41010000 0x1000>;
			interrupts = <16 1>;
			status = "okay";
			label = "TEMP_0";
		};

		timer0: timer@4100c000 {
			compatible = "nordic,nrf-timer";
			status = "disabled";
			reg = <0x4100c000 0x1000>;
			interrupts = <12 1>;
			prescaler = <0>;
			label = "TIMER0";
		};

		timer1: timer@41018000 {
			compatible = "nordic,nrf-timer";
			status = "disabled";
			reg = <0x41018000 0x1000>;
			interrupts = <24 1>;
			prescaler = <0>;
			label = "TIMER1";
		};

		timer2: timer@41019000 {
			compatible = "nordic,nrf-timer";
			status = "disabled";
			reg = <0x41019000 0x1000>;
			interrupts = <25 1>;
			prescaler = <0>;
			label = "TIMER2";
		};

		uart0: uart@41013000 {
			compatible = "nordic,nrf-uarte";
			reg = <0x41013000 0x1000>;
			interrupts = <19 1>;
			status = "disabled";
			label = "UART_0";
		};

		uicr: uicr@1ff8000 {
			compatible = "nordic,nrf-uicr";
			reg = <0x01ff8000 0x1000>;
			status = "okay";
		};

		vmc: vmc@41081000 {
			compatible = "nordic,nrf-vmc";
			reg = <0x41081000 0x1000>;
			status = "okay";
		};

		wdt: wdt0: watchdog@4100b000 {
			compatible = "nordic,nrf-watchdog";
			reg = <0x4100b000 0x1000>;
			interrupts = <11 1>;
			status = "okay";
			label = "WDT";
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <3>;
};

&systick {
	status = "disabled";
};
