/*
 * 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_ACTIVE_LOW>;
			label = "Red LED 0";
		};
		led1_green: led_1 {
			gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
			label = "Green LED 1";
		};
		led2_red: led_2 {
			gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
			label = "Red LED 2";
		};
		led3_blue: led_3 {
			gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
			label = "Blue LED 3";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		pwm_led0_red: pwm_led_0 {
			pwms = <&pwm0 22>;
			label = "Red PWM LED";
		};
	};

	buttons {
		compatible = "gpio-keys";
		button0: button_0 {
			gpios = <&gpio0 2 GPIO_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;
		pwm-led0   = &pwm_led0_red;
	};

};

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