/*
 * Copyright (c) 2018 Sean Nyekjaer
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "SAM D20 Xplained Pro";
	compatible = "atsamd20,xpro", "atmel,samd20j18", "atmel,samd20";

	aliases {
		led0 = &yellow_led;
		sw0 = &user_button;
	};

	chosen {
		zephyr,console = &sercom3;
		zephyr,shell-uart = &sercom3;
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
	};

	leds {
		compatible = "gpio-leds";
		yellow_led: led_0 {
			gpios = <&porta 14 0>;
			label = "LED0";
		};
	};

	buttons {
		compatible = "gpio-keys";
		user_button: button_0 {
			gpios = <&porta 15 (GPIO_PUD_PULL_UP | GPIO_INT_ACTIVE_LOW)>;
			label = "SW0";
		};
	};
};

&sercom0 {
	status = "ok";
	compatible = "atmel,sam0-spi";
	dipo = <0>;
	dopo = <2>;
};

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

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

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

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

&rtc {
	status = "ok";
};
