/*
 * Copyright (c) 2017 Piotr Mienkowski
 * Copyright (c) 2017 Justin Watson
 * Copyright (c) 2020 Stephanos Ioannidis <root@stephanos.io>
 * Copyright (c) 2020 Gerson Fernando Budke <nandojve@gmail.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include "sam_e70_xplained-pinctrl.dtsi"

/ {
	aliases {
		i2c-0 = &twihs0;
		i2c-1 = &twihs2;
		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;
		zephyr,canbus = &can0;
	};

	leds {
		compatible = "gpio-leds";
		green_led: led_0 {
			gpios = <&pioc 8 GPIO_ACTIVE_LOW>;
			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 = <&pioa 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
	};
};

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

&afec0 {
	status = "okay";

	pinctrl-0 = <&afec0_default>;
	pinctrl-names = "default";
};

&afec1 {
	status = "okay";

	pinctrl-0 = <&afec1_default>;
	pinctrl-names = "default";
};

&dacc {
	status = "okay";
};

&twihs0 {
	status = "okay";

	pinctrl-0 = <&twihs0_default>;
	pinctrl-names = "default";
};

&twihs2 {
	status = "okay";

	pinctrl-0 = <&twihs2_default>;
	pinctrl-names = "default";
};

&spi0 {
	status = "okay";

	pinctrl-0 = <&spi0_default>;
	pinctrl-names = "default";

	cs-gpios = <&piod 25 GPIO_ACTIVE_LOW>,
		   <&piod 27 GPIO_ACTIVE_LOW>;
};

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

	pinctrl-0 = <&usart1_default>;
	pinctrl-names = "default";
};

&wdt {
	status = "okay";
};

zephyr_udc0: &usbhs {
	status = "okay";
};

&gmac {
	status = "okay";

	pinctrl-0 = <&gmac_rmii>;
	pinctrl-names = "default";

	phy: phy {
		compatible = "ethernet-phy";
		status = "okay";
		address = <0>;
		mdio = <&mdio>;
	};
};

&mdio {
	status = "okay";

	pinctrl-0 = <&mdio_default>;
	pinctrl-names = "default";
};

&pwm0 {
	status = "okay";

	pinctrl-0 = <&pwm_default>;
	pinctrl-names = "default";
};

&flash0 {
	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 = <0x00020000 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>;
		};
	};
};

&ssc {
	status = "okay";
	label = "I2S_0";

	pinctrl-0 = <&ssc_default>;
	pinctrl-names = "default";

	dma-names = "rx", "tx";
	dmas = <&xdmac 22 DMA_PERID_SSC_RX>, <&xdmac 23 DMA_PERID_SSC_TX>;
};

&can0 {
	status = "okay";

	pinctrl-0 = <&can0_default>;
	pinctrl-names = "default";

	bus-speed = <125000>;
	bus-speed-data = <1000000>;

	can-transceiver {
		max-bitrate = <5000000>;
	};
};
