/*
 * Copyright (c) 2019 Stéphane D'Alu
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <nordic/nrf52832_qfaa.dtsi>

/ {
	model = "Decawave DWM1001-DEV";
	compatible = "decawave,dwm1001", "nordic,nrf52832-qfaa",
		     "nordic,nrf52832";

	chosen {
		zephyr,console        = &uart0;
		zephyr,shell-uart     = &uart0;
		zephyr,uart-mcumgr    = &uart0;
		zephyr,bt-mon-uart    = &uart0;
		zephyr,bt-c2h-uart    = &uart0;
		zephyr,sram           = &sram0;
		zephyr,flash          = &flash0;
		zephyr,code-partition = &slot0_partition;
	};

	leds {
		compatible = "gpio-leds";
		led0_red: led_0 {
			gpios = <&gpio0 14 GPIO_INT_ACTIVE_LOW>;
			label = "Red LED 0";
		};
		led1_green: led_1 {
			gpios = <&gpio0 30 GPIO_INT_ACTIVE_LOW>;
			label = "Green LED 1";
		};
		led2_red: led_2 {
			gpios = <&gpio0 22 GPIO_INT_ACTIVE_LOW>;
			label = "Red LED 2";
		};
		led3_blue: led_3 {
			gpios = <&gpio0 31 GPIO_INT_ACTIVE_LOW>;
			label = "Blue LED 3";
		};
	};

	buttons {
		compatible = "gpio-keys";
		button0: button_0 {
			gpios = <&gpio0 2 GPIO_PUD_PULL_UP>;
			label = "Push button switch 0";
		};
	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		sw0        = &button0;
		led0       = &led0_red;
		led1       = &led1_green;
		led2       = &led2_red;
		led3       = &led3_blue;
		led0-red   = &led0_red;
		led1-green = &led1_green;
		led2-red   = &led2_red;
		led3-blue  = &led3_blue;
	};

};

&adc {
	status = "okay";
};

&gpiote {
	status = "okay";
};

&gpio0 {
	status = "okay";
};

&uart0 {
	status = "okay";
	compatible = "nordic,nrf-uart";
	current-speed = <115200>;
	tx-pin  = <5>;
	rx-pin  = <11>;
};

&i2c0 {
	compatible = "nordic,nrf-twi";
	status = "okay";
	sda-pin = <29>;
	scl-pin = <28>;
};


&spi1 {
	compatible = "nordic,nrf-spi";
	status = "okay";
	sck-pin  = <4>;
	mosi-pin = <6>;
	miso-pin = <7>;
	cs-gpios = <&gpio0 3 0>;
};

&spi2 {
	compatible = "nordic,nrf-spi";
	status = "okay";
	sck-pin  = <16>;
	mosi-pin = <20>;
	miso-pin = <18>;
	cs-gpios = <&gpio0 17 0>;
};

&pwm0 {
	status = "okay";
	ch0-pin = <22>;
	ch0-inverted;
};


&flash0 {
	/*
	 * For more information, see:
	 * http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0xc000>;
		};
		slot0_partition: partition@c000 {
			label = "image-0";
			reg = <0x0000C000 0x32000>;
		};
		slot1_partition: partition@3e000 {
			label = "image-1";
			reg = <0x0003E000 0x32000>;
		};
		scratch_partition: partition@70000 {
			label = "image-scratch";
			reg = <0x00070000 0xa000>;
		};
		storage_partition: partition@7a000 {
			label = "storage";
			reg = <0x0007a000 0x00006000>;
		};
	};
};
