/*
 * Copyright (c) 2017 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "Nordic PCA10056 Dev Kit";
	compatible = "nordic,pca10056-dk", "nordic,nrf52840-qiaa",
		     "nordic,nrf52840";

	chosen {
		zephyr,console = &uart0;
#ifdef CONFIG_MCUMGR_SMP_UART
		zephyr,uart-mcumgr = &uart0;
#endif
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};
};

&adc {
	status ="ok";
};

&gpiote {
	status ="ok";
};

&gpio0 {
	status ="ok";
};

&gpio1 {
	status ="ok";
};

&uart0 {
	compatible = "nordic,nrf-uart";
	current-speed = <115200>;
	status = "ok";
};

#ifdef CONFIG_UART_1_NRF_UARTE
&uart1 {
	current-speed = <115200>;
	status = "ok";

#ifdef CONFIG_MODEM_WNCM14A2A
	wncm14a2a {
		compatible = "wnc,m14a2a";
		label = "wncm14a2a";
		mdm-boot-mode-sel-gpios = <&gpio1 2 0>;
		mdm-power-gpios = <&gpio1 3 0>;
		mdm-keep-awake-gpios = <&gpio1 7 0>;
		mdm-reset-gpios = <&gpio1 10 0>;
		mdm-shld-trans-ena-gpios = <&gpio1 11 0>;
		status = "ok";
	};
#endif
};
#endif

&i2c0 {
	status = "ok";
	sda-pin = <26>;
	scl-pin = <27>;
};

&i2c1 {
	status = "ok";
	sda-pin = <30>;
	scl-pin = <31>;
};

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

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x000000000 0x0000C000>;
		};
		slot0_partition: partition@c000 {
			label = "image-0";
			reg = <0x0000C000 0x000069000>;
		};
		slot1_partition: partition@75000 {
			label = "image-1";
			reg = <0x00075000 0x000069000>;
		};
		scratch_partition: partition@de000 {
			label = "image-scratch";
			reg = <0x000de000 0x0001e000>;
		};

#if defined(CONFIG_FS_FLASH_STORAGE_PARTITION)
		storage_partition: partition@fc000 {
			label = "storage";
			reg = <0x000fc000 0x00004000>;
		};
#endif
	};
};

&usbd {
	compatible = "nordic,nrf-usbd";
	status = "ok";
};
