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

#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/pwm/pwm.h>
#include <zephyr/dt-bindings/clock/atmel_sam_pmc.h>

/ {
	aliases {
		watchdog0 = &wdt;
	};

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

	chosen {
		zephyr,entropy = &trng;
	};

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

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

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

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

	soc {
		pmc: pmc@400e0600 {
			compatible = "atmel,sam-pmc";
			reg = <0x400e0600 0x200>;
			interrupts = <5 0>;
			#clock-cells = <2>;
			status = "okay";
		};

		eefc: flash-controller@400e0c00 {
			compatible = "atmel,sam-flash-controller";
			reg = <0x400e0c00 0x200>;
			interrupts = <6 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;

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

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

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

		};

		wdt: watchdog@400e1850 {
			compatible = "atmel,sam-watchdog";
			reg = <0x400e1850 0xc>;
			interrupts = <4 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
			status = "disabled";
		};

		twihs0: i2c@40018000 {
			compatible = "atmel,sam-i2c-twihs";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40018000 0x12B>;
			interrupts = <19 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
			status = "disabled";
		};

		twihs1: i2c@4001c000 {
			compatible = "atmel,sam-i2c-twihs";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x4001c000 0x12B>;
			interrupts = <20 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
			status = "disabled";
		};

		twihs2: i2c@40060000 {
			compatible = "atmel,sam-i2c-twihs";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40060000 0x12B>;
			interrupts = <41 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
			status = "disabled";
		};

		spi0: spi@40008000 {
			compatible = "atmel,sam-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40008000 0x4000>;
			interrupts = <21 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
			status = "disabled";
		};

		spi1: spi@40058000 {
			compatible = "atmel,sam-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40058000 0x4000>;
			interrupts = <42 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
			status = "disabled";
		};

		uart0: uart@400e0800 {
			compatible = "atmel,sam-uart";
			reg = <0x400e0800 0x100>;
			interrupts = <7 1>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
			status = "disabled";
		};

		uart1: uart@400e0a00 {
			compatible = "atmel,sam-uart";
			reg = <0x400e0a00 0x100>;
			interrupts = <8 1>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
			status = "disabled";
		};

		uart2: uart@400e1a00 {
			compatible = "atmel,sam-uart";
			reg = <0x400e1a00 0x100>;
			interrupts = <44 1>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
			status = "disabled";
		};

		uart3: uart@400e1c00 {
			compatible = "atmel,sam-uart";
			reg = <0x400e1c00 0x100>;
			interrupts = <45 1>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
			status = "disabled";
		};

		uart4: uart@400e1e00 {
			compatible = "atmel,sam-uart";
			reg = <0x400e1e00 0x100>;
			interrupts = <46 1>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
			status = "disabled";
		};

		usart0: usart@40024000 {
			compatible = "atmel,sam-usart";
			reg = <0x40024000 0x100>;
			interrupts = <13 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
			status = "disabled";
		};

		usart1: usart@40028000 {
			compatible = "atmel,sam-usart";
			reg = <0x40028000 0x100>;
			interrupts = <14 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
			status = "disabled";
		};

		usart2: usart@4002c000 {
			compatible = "atmel,sam-usart";
			reg = <0x4002c000 0x100>;
			interrupts = <15 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
			status = "disabled";
		};

		afec0: adc@4003c000 {
			compatible = "atmel,sam-afec";
			reg = <0x4003c000 0x100>;
			interrupts = <29 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
			status = "disabled";
			#io-channel-cells = <1>;
		};

		afec1: adc@40064000 {
			compatible = "atmel,sam-afec";
			reg = <0x40064000 0x100>;
			interrupts = <40 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
			status = "disabled";
			#io-channel-cells = <1>;
		};

		dacc: dacc@40040000 {
			compatible = "atmel,sam-dac";
			reg = <0x40040000 0x100>;
			interrupts = <30 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
			status = "disabled";
			#io-channel-cells = <1>;
		};

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

			pioa: gpio@400e0e00 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e0e00 0x190>;
				interrupts = <10 1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			piob: gpio@400e1000 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1000 0x190>;
				interrupts = <11 1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			pioc: gpio@400e1200 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1200 0x190>;
				interrupts = <12 1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			piod: gpio@400e1400 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1400 0x190>;
				interrupts = <16 1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};

			pioe: gpio@400e1600 {
				compatible = "atmel,sam-gpio";
				reg = <0x400e1600 0x190>;
				interrupts = <17 1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
				gpio-controller;
				#gpio-cells = <2>;
				#atmel,pin-cells = <2>;
			};
		};

		pwm0: pwm0@40020000 {
			compatible = "atmel,sam-pwm";
			reg = <0x40020000 0x4000>;
			interrupts = <31 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 31>;
			status = "disabled";
			prescaler = <10>;
			divider = <1>;
			#pwm-cells = <3>;
		};

		pwm1: pwm1@4005c000 {
			compatible = "atmel,sam-pwm";
			reg = <0x4005c000 0x4000>;
			interrupts = <60 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 60>;
			status = "disabled";
			prescaler = <10>;
			divider = <1>;
			#pwm-cells = <3>;
		};

		usbhs: usbd@40038000 {
			compatible = "atmel,sam-usbhs";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x40038000 0x4000>;
			interrupts = <34 0>;
			interrupt-names = "usbhs";
			maximum-speed = "high-speed";
			num-bidir-endpoints = <10>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 34>;
			status = "disabled";
		};

		gmac: ethernet@40050000 {
			compatible = "atmel,sam-gmac";
			reg = <0x40050000 0x4000>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
			interrupts = <39 0>, <66 0>, <67 0>;
			interrupt-names = "gmac", "q1", "q2";
			num-queues = <3>;
			local-mac-address = [00 00 00 00 00 00];
			status = "disabled";
		};

		mdio: mdio@40050000 {
			compatible = "atmel,sam-mdio";
			reg = <0x40050000 0x4000>;
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		tc0: tc@4000c000 {
			compatible = "atmel,sam-tc";
			reg = <0x4000c000 0x100>;
			interrupts = <23 0
				      24 0
				      25 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 23>,
				 <&pmc PMC_TYPE_PERIPHERAL 24>,
				 <&pmc PMC_TYPE_PERIPHERAL 25>;
			status = "disabled";
		};

		tc1: tc@40010000 {
			compatible = "atmel,sam-tc";
			reg = <0x40010000 0x100>;
			interrupts = <26 0
				      27 0
				      28 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>,
				 <&pmc PMC_TYPE_PERIPHERAL 27>,
				 <&pmc PMC_TYPE_PERIPHERAL 28>;
			status = "disabled";
		};

		tc2: tc@40014000 {
			compatible = "atmel,sam-tc";
			reg = <0x40014000 0x100>;
			interrupts = <47 0
				      48 0
				      49 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 47>,
				 <&pmc PMC_TYPE_PERIPHERAL 48>,
				 <&pmc PMC_TYPE_PERIPHERAL 49>;
			status = "disabled";
		};

		tc3: tc@40054000 {
			compatible = "atmel,sam-tc";
			reg = <0x40054000 0x100>;
			interrupts = <50 0
				      51 0
				      52 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 50>,
				 <&pmc PMC_TYPE_PERIPHERAL 51>,
				 <&pmc PMC_TYPE_PERIPHERAL 52>;
			status = "disabled";
		};

		trng: random@40070000 {
			compatible = "atmel,sam-trng";
			reg = <0x40070000 0x4000>;
			interrupts = <57 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 57>;
			status = "okay";
		};

		xdmac: dma0: dma-controller@40078000 {
			compatible = "atmel,sam-xdmac";
			reg = <0x40078000 0x400>;
			interrupts = <58 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 58>;
			#dma-cells = <2>;
			status = "disabled";
		};

		ssc: ssc@40004000 {
			compatible = "atmel,sam-ssc";
			reg = <0x40004000 0x4000>;
			interrupts = <22 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
			status = "disabled";
		};

		can0: can@40030000 {
			compatible = "atmel,sam-can";
			reg = <0x40030000 0x100>;
			interrupts = <35 0>, <36 0>;
			interrupt-names = "LINE_0", "LINE_1";
			clocks = <&pmc PMC_TYPE_PERIPHERAL 35>;
			divider = <6>;
			bosch,mram-cfg = <0x0 28 8 3 3 0 1 1>;
			sample-point = <875>;
			sample-point-data = <875>;
			status = "disabled";
		};

		can1: can@40034000 {
			compatible = "atmel,sam-can";
			reg = <0x40034000 0x100>;
			interrupts = <37 0>, <38 0>;
			interrupt-names = "LINE_0", "LINE_1";
			clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
			divider = <6>;
			bosch,mram-cfg = <0x0 28 8 3 3 0 1 1>;
			sample-point = <875>;
			sample-point-data = <875>;
			status = "disabled";
		};

		rstc: rstc@400e1800 {
			compatible = "atmel,sam-rstc";
			reg = <0x400e1800 0x10>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 1>;
			user-nrst;
		};
	};
};

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