/*
 * Copyright (c) 2020, Synopsys, Inc. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <mem.h>
#include "skeleton.dtsi"

#define DT_FLASH_SIZE		DT_SIZE_M(4)
#define DT_SRAM_SIZE		DT_SIZE_M(4)

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

	intc: arcv2-intc {
		compatible = "snps,arcv2-intc";
		interrupt-controller;
		#interrupt-cells = <2>;
	};

	/* We are carving out of DRAM for a pseudo flash and sram region */
	flash0: flash@80000000 {
		compatible = "soc-nv-flash";
		reg = <0x80000000 DT_FLASH_SIZE>;
	};

	sram0: sram@80400000 {
		device_type = "memory";
		reg = <0x80400000 DT_SRAM_SIZE>;
	};

	ns16550_uart: uart@f0000000 {
		compatible = "ns16550";
		clock-frequency = <10000000>;
		reg = <0xf0000000 0x400>;
		current-speed = <115200>;
		label = "UART_0";
		interrupt-parent = <&intc>;
		interrupts = <24 1>;
	};

	uart@f0002000 {
		compatible = "ns16550";
		clock-frequency = <10000000>;
		reg = <0xf0002000 0x400>;
		current-speed = <115200>;
		label = "UART_1";
		interrupt-parent = <&intc>;
		interrupts = <25 1>;
	};

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,console = &ns16550_uart;
		zephyr,shell-uart = &ns16550_uart;
	};
};
