/*
 * Copyright (c) 2021 Laird Connectivity
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "Laird Connectivity BL654 USB adapter";
	compatible = "lairdconnect,bl654_usb";

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

	leds {
		compatible = "gpio-leds";
		led1: led_1 {
			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
			label = "Blue LED 1";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		led1bluepwm: led_pwm_1 {
			pwms = <&pwm0 13>;
			label = "PWM LED 1 Blue";
		};

	};

	/* These aliases are provided for compatibility with samples */
	aliases {
		led0 = &led1;
		led1pwm = &led1bluepwm;
	};
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

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

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

		/* MCUboot placed after Nordic MBR.
		 * The size of this partition ensures that MCUBoot
		 * can be built with CDC ACM support and w/o optimizations.
		 */
		boot_partition: partition@1000 {
			label = "mcuboot";
			reg = <0x00001000 0x000f000>;
		};

		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 0x00005e000>;
		};
		slot1_partition: partition@6e000 {
			label = "image-1";
			reg = <0x006e000 0x00005e000>;
		};
		storage_partition: partition@cc000 {
			label = "storage";
			reg = <0x000cc000 0x00008000>;
		};
		scratch_partition: partition@d4000 {
			label = "image-scratch";
			reg = <0x000d4000 0x0000C000>;
		};

		/* Nordic nRF5 bootloader <0xe0000 0x1c000>
		 *
		 * In addition, the last and second last flash pages
		 * are used by the nRF5 bootloader and MBR to store settings.
		 */
	};
};

zephyr_udc0: &usbd {
	compatible = "nordic,nrf-usbd";
	status = "okay";

	bl654_cdc_acm_uart: bl654_cdc_acm_uart {
		compatible = "zephyr,cdc-acm-uart";
		label = "CDC_ACM_0";
	};
};
