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

#include <arm/armv7-m.dtsi>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	aliases {
		watchdog0 = &wdt;
	};

	chosen {
		zephyr,flash-controller = &eefc;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m4f";
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <1>;

			mpu: mpu@e000ed90 {
				compatible = "arm,armv7m-mpu";
				reg = <0xe000ed90 0x40>;
				arm,num-mpu-regions = <8>;
			};
		};
	};

	soc {
		sram0: memory@20000000 {
			compatible = "mmio-sram";
		};

		/* Only used for HWINFO device ID */
		eefc: flash-controller@400e0a00 {
			compatible = "atmel,sam-flash-controller";
			label = "FLASH_CTRL";
			reg = <0x400e0a00 0x200>;
			peripheral-id = <6>;

			#address-cells = <1>;
			#size-cells = <1>;

			flash0: flash@400000 {
				compatible = "soc-nv-flash";
				label = "FLASH_0";

				write-block-size = <16>;
			};
		};

		wdt: watchdog@400e1850 {
			compatible = "atmel,sam-watchdog";
			reg = <0x400e1850 0x10>;
			interrupts = <4 0>;
			peripheral-id = <4>;
			label = "WATCHDOG_0";
			status = "disabled";
		};

		twi0: i2c@400a8000 {
			compatible = "atmel,sam-i2c-twi";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			reg = <0x400a8000 0x4000>;
			interrupts = <17 0>;
			peripheral-id = <17>;
			label = "I2C_0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		twi1: i2c@400ac000 {
			compatible = "atmel,sam-i2c-twi";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			reg = <0x400ac000 0x4000>;
			interrupts = <18 0>;
			peripheral-id = <18>;
			label = "I2C_1";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi0: spi@40088000 {
			compatible = "atmel,sam-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40088000 0x4000>;
			interrupts = <19 0>;
			peripheral-id = <19>;
			label = "SPI_0";
			status = "disabled";
		};

		uart0: uart@400e0600 {
			compatible = "atmel,sam-uart";
			reg = <0x400e0600 0x140>;
			interrupts = <7 1>;
			peripheral-id = <7>;
			status = "disabled";
			label = "UART_0";
		};

		uart1: uart@40060600 {
			compatible = "atmel,sam-uart";
			reg = <0x40060600 0x200>;
			interrupts = <45 1>;
			peripheral-id = <45>;
			status = "disabled";
			label = "UART_1";
		};

		usart0: usart@400a0000 {
			compatible = "atmel,sam-usart";
			reg = <0x400a0000 0x4000>;
			interrupts = <14 1>;
			peripheral-id = <14>;
			status = "disabled";
			label = "USART_0";
		};

		usart1: usart@400a4000 {
			compatible = "atmel,sam-usart";
			reg = <0x400a4000 0x4000>;
			interrupts = <15 1>;
			peripheral-id = <15>;
			status = "disabled";
			label = "USART_1";
		};

		gmac: ethernet@40034000 {
			compatible = "atmel,sam-gmac";
			reg = <0x40034000 0x4000>;
			peripheral-id = <44>;
			interrupts = <44 0>;
			interrupt-names = "gmac";
			num-queues = <1>;
			phy-connection-type = "mii";
			label = "GMAC";
			status = "disabled";

			mdio: mdio {
				compatible = "atmel,sam-mdio";
				label = "MDIO";
				status = "disabled";
			};
		};

		pinctrl: pinctrl@400e0e00 {
			compatible = "atmel,sam-pinctrl";
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x400e0e00 0x400e0e00 0xa00>;
			status = "okay";
			label = "PINCTRL";

			pioa: gpio@400e0e00 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e0e00 0x200>;
				interrupts = <9 1>;
				peripheral-id = <9>;
				label = "PORTA";
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			piob: gpio@400e1000 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1000 0x200>;
				interrupts = <10 1>;
				peripheral-id = <10>;
				label = "PORTB";
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			pioc: gpio@400e1200 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1200 0x200>;
				interrupts = <11 1>;
				peripheral-id = <11>;
				label = "PORTC";
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			piod: gpio@400e1400 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1400 0x200>;
				interrupts = <12 1>;
				peripheral-id = <12>;
				label = "PORTD";
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			pioe: gpio@400e1600 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1600 0x200>;
				interrupts = <13 1>;
				peripheral-id = <13>;
				label = "PORTE";
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};
		};

		tc0: tc@40090000 {
			compatible = "atmel,sam-tc";
			reg = <0x40090000 0x100>;
			interrupts = <21 0
				      22 0
				      23 0>;
			peripheral-id = <21 22 23>;
			status = "disabled";
			label = "TC0";
		};

		tc1: tc@40094000 {
			compatible = "atmel,sam-tc";
			reg = <0x40094000 0x100>;
			interrupts = <24 0
				      25 0
				      26 0>;
			peripheral-id = <24 25 26>;
			status = "disabled";
			label = "TC1";
		};

		tc2: tc@40098000 {
			compatible = "atmel,sam-tc";
			reg = <0x40098000 0x100>;
			interrupts = <27 0
				      28 0
				      29 0>;
			peripheral-id = <27 28 29>;
			status = "disabled";
			label = "TC2";
		};
	};
};

&nvic {
	arm,num-irq-priority-bits = <4>;
};
