/*
 * Copyright (c) 2018 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>

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

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

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

	aliases {
		flash-controller = &flash_controller;
		rtc-0 = &rtc0;
		rtc-1 = &rtc1;
		uart-0 = &uart0;
		uart-1 = &uart1;
		uart-2 = &uart2;
		uart-3 = &uart3;
		adc-0 = &adc;
		egu-0 = &egu0;
		egu-1 = &egu1;
		egu-2 = &egu2;
		egu-3 = &egu3;
		egu-4 = &egu4;
		egu-5 = &egu5;
		gpio-0 = &gpio0;
		gpiote-0 = &gpiote;
		i2c-0 = &i2c0;
		i2c-1 = &i2c1;
		i2c-2 = &i2c2;
		i2c-3 = &i2c3;
		i2s-0 = &i2s0;
		pdm-0 = &pdm0;
		spi-0 = &spi0;
		spi-1 = &spi1;
		spi-2 = &spi2;
		spi-3 = &spi3;
		pwm-0 = &pwm0;
		pwm-1 = &pwm1;
		pwm-2 = &pwm2;
		pwm-3 = &pwm3;
		wdt-0 = &wdt;
		timer-0 = &timer0;
		timer-1 = &timer1;
		timer-2 = &timer2;
		cc310 = &cryptocell;
		arm-cryptocell-310 = &cryptocell310;
	};

	soc {
		sram0: memory@20000000 {
			compatible = "mmio-sram";
		};

		peripheral@50000000 {
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0x50000000 0x10000000>;

			/* Common nRF9160 peripheral description */
			#include "nrf9160_common.dtsi"
		};

		/* Additional Secure peripherals */
		cryptocell: crypto@50840000 {
			compatible = "nordic,nrf-cc310";
			reg = <0x50840000 0x1000>;
			label = "CRYPTOCELL";
			status = "okay";
			#address-cells = <1>;
			#size-cells = <1>;
			cryptocell310: crypto@50841000 {
				compatible = "arm,cryptocell-310";
				reg = <0x50841000 0x1000>;
				interrupts = <64 1>;
				label = "CRYPTOCELL310";
			};
		};

		gpiote: gpiote@5000d000 {
			compatible = "nordic,nrf-gpiote";
			reg = <0x5000d000 0x1000>;
			interrupts = <13 5>;
			status = "disabled";
			label = "GPIOTE_0";
		};

		spu: spu@50003000 {
			compatible = "nordic,nrf-spu";
			reg = <0x50003000 0x1000>;
			interrupts = <3 1>;
			status = "okay";
		};

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

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

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