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

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

/ {
	model = "Laird BL654 USB adapter";
	compatible = "laird,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";
	};
};
