/*
 * Copyright (c) 2017 Piotr Mienkowski
 * Copyright (c) 2017 Justin Watson
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <atmel/same70q21.dtsi>

/ {
	model = "Atmel SAM E70 Xplained board";
	compatible = "atmel,sam_e70_xplained", "atmel,same70q21", "atmel,same70";

	aliases {
		i2c-0 = &i2c0;
		i2c-1 = &i2c1;
		i2c-2 = &i2c2;
		led0 = &green_led;
		sw0 = &sw0_user_button;
	};

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

	leds {
		compatible = "gpio-leds";
		green_led: led_0 {
			gpios = <&portc 8 0>;
			label = "User LED";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";

		/* The switch is labeled SW300 in the schematic, and labeled
		 * SW0 on the board, and labeld SW1 User Button on docs
		 */
		sw0_user_button: button_1 {
			label = "User Button";
			gpios = <&porta 11 (GPIO_PUD_PULL_UP |
					    GPIO_INT_ACTIVE_LOW)>;
		};
	};
};

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

&adc0 {
	status = "okay";
};

&adc1 {
	status = "okay";
};

&i2c0 {
	status = "okay";
};

&i2c2 {
	status = "okay";
};

&spi0 {
	status = "okay";
};

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

&wdog {
	status = "okay";
};

&usbhs {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&flash0 {
	/*
	 * If chosen's zephyr,code-partition
	 * is unset, the image will be linked
	 * into the entire flash device.  If
	 * it points to an individual
	 * partition, the code will be linked
	 * to, and restricted to that
	 * partition.
	 */
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/*
		 * The first half of sector 0 (64 kbytes)
		 * is reserved for the bootloader
		 */
		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x0 0x00010000>;
			read-only;
		};

		/* From sector 1 to sector 7 (included): slot0 (896 kbytes) */
		slot0_partition: partition@20000 {
			label = "image-0";
			reg = <0x0020000 0x000e0000>;
		};

		/* From sector 8 to sector 14 (included): slot1 (896 kbytes) */
		slot1_partition: partition@100000 {
			label = "image-1";
			reg = <0x00100000 0x000e0000>;
		};

		/* Sector 15: scratch (128 kbytes) */
		scratch_partition: partition@1e0000 {
			label = "image-scratch";
			reg = <0x001e0000 0x00020000>;
		};
	};
};
