/*
 * 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";

	soc {
		nvmctrl: nvmctrl@41004000  {
			flash0: flash@0 {
				reg = <0x2000 0x3E000>;
			};
		};
	};

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

&cpu0 {
	clock-frequency = <48000000>;
};

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

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

/* Drives the on-board DotStar LED */
&sercom1 {
	status = "okay";
	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 = "okay";
};
