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

/dts-v1/;

#include <mem.h>
#include <synopsys/emsk.dtsi>
#include "em_starterkit_r23.dtsi"
#include "board.dtsi"

/ {
	model = "em_starterkit-em9d";
	compatible = "snps,em_starterkit-em9d", "snps,em_starterkit";

	aliases {
		uart-0 = &uart0;
		uart-1 = &uart1;
		uart-2 = &uart2;
	};

	chosen {
		zephyr,sram = &dccm0;
		zephyr,console = &uart1;
		zephyr,shell-uart = &uart1;
	};

	iccm0: iccm@0 {
		compatible = "arc,iccm";
		reg = <0x0 DT_SIZE_K(256)>;
	};

	dccm0: dccm@80000000 {
		compatible = "arc,dccm";
		reg = <0x80000000 DT_SIZE_K(128)>;
	};
};

&uart1 {
	status = "okay";
	current-speed = <115200>;
};
