/*
 * 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 {
				compatible = "atmel,sam-mdio";
				status = "disabled";
			};
		};

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

		can {
			compatible = "bosch,m_can-base";
			#address-cells = <1>;
			#size-cells = <1>;
			std-filter-elements = <28>;
			ext-filter-elements = <8>;
			rx-fifo0-elements = <3>;
			rx-fifo1-elements = <3>;
			rx-buffer-elements = <0>;
			tx-buffer-elements = <1>;

			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>;
				sjw = <1>;
				sample-point = <875>;
				sjw-data = <1>;
				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>;
				sjw = <1>;
				sample-point = <875>;
				sjw-data = <1>;
				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>;
};
