/*
 * Copyright (c) 2019 Gerson Fernando Budke
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <atmel/sam4e16e.dtsi>

/ {
	model = "Atmel SAM4E Xplained Pro Board with an Atmel SAM4E16E SoC";
	compatible = "atmel,sam4e_xpro", "atmel,sam4e16e", "atmel,sam4e";

	aliases {
		i2c-0 = &twi0;
		led0 = &yellow_led_1;
		sw0 = &user_button;
		wdog = &wdt;
	};

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

	leds {
		compatible = "gpio-leds";
		yellow_led_1: led_1 {
			gpios = <&piod 22 GPIO_ACTIVE_LOW>;
			label = "LED 1";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		user_button: button_1 {
			label = "User Button";
			gpios = <&pioa 2 (GPIO_PULL_UP |
					   GPIO_ACTIVE_LOW)>;
		};
	};
};

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

&spi0 {
	status = "okay";
};

&uart0 {
	current-speed = <115200>;
	status = "okay";
};

&gmac {
	status = "okay";
	zephyr,random-mac-address;
};

&wdt {
	status = "okay";
};
