/*
 * 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;
		zephyr,ieee802154 = &ieee802154;
	};

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

&uicr {
	gpio-as-nreset;
};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&gpiote {
	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";
	};
};
