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

/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include "bl654_usb-pinctrl.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 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
			label = "PWM LED 1 Blue";
		};

	};

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

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&pwm0 {
	status = "okay";
	pinctrl-0 = <&pwm0_default>;
	pinctrl-1 = <&pwm0_sleep>;
	pinctrl-names = "default", "sleep";
};

&flash0 {
	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 0x0000f000>;
		};

		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 0x0005e000>;
		};
		slot1_partition: partition@6e000 {
			label = "image-1";
			reg = <0x0006e000 0x0005e000>;
		};
		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";
	};
};
