/*
 * Copyright (c) 2017 Justin Watson
 *
 * 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 = &wdog;
	};

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

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-m4";
			reg = <0>;
		};
	};

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

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

	soc {
		wdog: watchdog@400e1450 {
			compatible = "atmel,sam-watchdog";
			reg = <0x400e1450 0xc>;
			interrupts = <4 0>;
			peripheral-id = <4>;
			label = "WATCHDOG_0";
			status = "disabled";
		};
		i2c0: i2c@40018000 {
			compatible = "atmel,sam-i2c-twi";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			reg = <0x40018000 0x128>;
			interrupts = <19 0>;
			peripheral-id = <19>;
			label = "I2C_0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		i2c1: i2c@4001c000 {
			compatible = "atmel,sam-i2c-twi";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			reg = <0x4001c000 0x128>;
			interrupts = <20 0>;
			peripheral-id = <20>;
			label = "I2C_1";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

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

		uart1: uart@400e0800 {
			compatible = "atmel,sam-uart";
			reg = <0x400e0800 0x200>;
			interrupts = <9 1>;
			peripheral-id = <9>;
			status = "disabled";
			label = "UART_1";
		};

		usart0: usart@40024000 {
			compatible = "atmel,sam-usart";
			reg = <0x40024000 0x130>;
			interrupts = <14 1>;
			peripheral-id = <14>;
			status = "disabled";
			label = "USART_0";
		};

		usart1: usart@40028000 {
			compatible = "atmel,sam-usart";
			reg = <0x40028000 0x130>;
			interrupts = <15 1>;
			peripheral-id = <15>;
			status = "disabled";
			label = "USART_1";
		};

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

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

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

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