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

#include "skeleton.dtsi"

//#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/gpio/gpio.h>

#define DT_APB_CLK_HZ	100000000

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

		cpu@0 {
			device_type = "cpu";
			compatible = "snps,arcem";
			reg = <0>;
		};
	};

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

	timer0: timer0 {
		compatible = "snps,arc-timer";
		interrupts = <16 1>;
		interrupt-parent = <&intc>;
	};

	iccm0: iccm@60000000 {
		compatible = "arc,iccm";
		reg = <0x60000000 0x20000>;
	};

	dccm0: dccm@80000000 {
		compatible = "arc,dccm";
		reg = <0x80000000 0x20000>;
	};

	/* this is (Pseudo SRAM), so treat it like mmio-sram */
	sram0: memory@10000000 {
		compatible = "mmio-sram";
		reg = <0x10000000 0x1000000>;
	};

	spiclk: spi-clock {
		compatible = "fixed-clock";
		clock-frequency = <1000000>;
		#clock-cells = <0>;
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges;


		uart0: uart@f0004000 {
			compatible = "ns16550";
			clock-frequency = <DT_APB_CLK_HZ>;
			reg = <0xf0004000 0x1000>;
			interrupt-parent = <&intc>;
			reg-shift = <2>;
		};

		gpio0: gpio@f0002000 {
			compatible = "snps,designware-gpio";
			reg = <0xf0002000 0xc>;
			ngpios = <4>;
			interrupt-parent = <&intc>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio1: gpio@f000200c {
			compatible = "snps,designware-gpio";
			reg = <0xf000200c 0xc>;
			ngpios = <8>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		/* wifi rs9113 */
		spi0: spi@f0008000 {
			compatible = "snps,designware-spi";
			reg = <0xf0008000 0x1000>;
			clocks = <&spiclk>;
			fifo-depth = <32>;
			interrupt-parent = <&intc>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};

		/* SPI-flash for user data */
		spi1: spi@f1000000 {
			compatible = "snps,designware-spi";
			reg = <0xf1000000 0x1000>;
			clocks = <&spiclk>;
			fifo-depth = <32>;
			interrupt-parent = <&intc>;
			#address-cells = <1>;
			#size-cells = <0>;
			s25fl256s: s25fl256s@0 {
				compatible = "spansion,s25fl256s", "jedec,spi-nor";
				reg = <0>;
				size = <0x10000000>;
				spi-max-frequency = <100000>;
				status = "okay";
				jedec-id = [01 02 19];
			};
		};

	};
};
