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

/dts-v1/;

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

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

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

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

	iccm@0 {
		reg = <0x0 DT_SIZE_K(256)>;
	};

	dccm@80000000 {
		reg = <0x80000000 DT_SIZE_K(128)>;
	};
};

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

&spi0 {
	status = "ok";
};

&spi1 {
	status = "ok";
};
