/*
 * Copyright (c) 2018 Google LLC.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <atmel/samd21.dtsi>

/ {
	model = "Adafruit Trinket M0";
	compatible = "adafruit,trinket-m0", "atmel,samd21e18a", "atmel,samd21";

	chosen {
		zephyr,console = &sercom0;
		zephyr,shell-uart = &sercom0;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &code_partition;
	};

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

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&porta 10 0>;
			label = "LED";
		};
	};
};

&sercom0 {
	status = "ok";
	compatible = "atmel,sam0-uart";
	current-speed = <115200>;
	rxpo = <3>;
	txpo = <1>;
};

&sercom2 {
	status = "ok";
	compatible = "atmel,sam0-uart";
	current-speed = <115200>;
	rxpo = <1>;
	txpo = <0>;
};

/* Drives the on-board DotStar LED */
&sercom1 {
	status = "ok";
	compatible = "atmel,sam0-spi";
	dipo = <2>;
	dopo = <0>;
	#address-cells = <1>;
	#size-cells = <0>;

	led1: apa102@0 {
		compatible = "apa,apa102";
		reg = <0>;
		spi-max-frequency = <24000000>;
		label = "LED1";
	};
};

&flash0 {
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		boot_partition: partition@0 {
			label = "uf2";
			reg = <0x00000000 0x2000>;
			read-only;
		};

		code_partition: partition@2000 {
			label = "code";
			reg = <0x2000 0x3A000>;
			read-only;
		};

		/*
		 * The final 16 KiB is reserved for the application
		 * and is used by NFFS if enabled.
		 */
		storage_partition: partition@3c000 {
			label = "storage";
			reg = <0x0003c000 0x00004000>;
		};
	};
};

&usb0 {
	status = "ok";
};
