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

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

&adc0 {
	status = "ok";
};

&adc1 {
	status = "ok";
};

&i2c0 {
	status = "ok";
};

&i2c2 {
	status = "ok";
};

&spi0 {
	status = "ok";
};

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

&wdog {
	status = "ok";
};

&usbhs {
	status = "ok";
};

&pwm0 {
	status = "ok";
};

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