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

	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 {
	/*
	 * 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>;
		};
	};
};
