/*
 * 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";

	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 | GPIO_ACTIVE_LOW)>;
			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-twim";
	status = "okay";
	clock-frequency = <I2C_BITRATE_FAST>;
	sda-pin = <29>;
	scl-pin = <28>;

	lis2dh12: lis2dh12@19 {
		compatible = "st,lis2dh12", "st,lis2dh";
		reg = <0x19>;
		irq-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
		label = "LIS2DH12-ACCEL";
	};
};

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

	dw1000@0 {
		compatible = "decawave,dw1000";
		spi-max-frequency = <8000000>;
		int-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;	/* P0.19 */
		reset-gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;	/* P0.24 */
		status = "okay";
		label = "DW1000";
		reg = <0>;
	};
};

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

&flash0 {

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