/*
 * Copyright (c) 2018 Bryan O'Donoghue
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	model = "SAM D21 Xplained Pro";
	compatible = "atsamd21,xpro", "atmel,samd21j18a", "atmel,samd21";

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

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

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&portb 30 0>;
			label = "Yellow LED";
		};
	};

	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-uart";
	current-speed = <9600>;
	rxpo = <3>;
	txpo = <2>;
};

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

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

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

&usb0 {
	status = "ok";
};
