/*
 * 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>

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

		cpu0: 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>;
	};

	sysconf: system-configuration@f000a000 {
		compatible = "snps,arc-iot-sysconf";
		reg = <0xf000a000 0x90>;
	};

	iccm0: iccm@20000000 {
		compatible = "arc,iccm";
		reg = <0x20000000 0x40000>;
	};

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


	sram: memory@30000000 {
		compatible = "mmio-sram";
		reg = <0x30000000 0x20000>;
	};

	flash0: flash@0 {
		compatible = "soc-nv-flash";
		reg = <0x0 0x40000>;
	};

	sysclk: system-clock {
		compatible = "fixed-clock";
		clock-frequency = <144000000>;
		#clock-cells = <0>;
	};

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


		uart0: uart@80014000 {
			compatible = "ns16550";
			clock-frequency = <16000000>;
			reg = <0x80014000 0x100>;
			io-mapped;
			interrupts = <86 0>;
			interrupt-parent = <&intc>;
			dlf = <0x01>;
			reg-shift = <2>;
		};

		uart1: uart@80014100 {
			compatible = "ns16550";
			clock-frequency = <16000000>;
			reg = <0x80014100 0x100>;
			io-mapped;
			interrupts = <87 0>;
			interrupt-parent = <&intc>;
			reg-shift = <2>;
			status = "disabled";
		};

		uart2: uart@80014200 {
			compatible = "ns16550";
			clock-frequency = <16000000>;
			reg = <0x80014200 0x1000>;
			io-mapped;
			interrupts = <88 0>;
			interrupt-parent = <&intc>;
			reg-shift = <2>;
			status = "disabled";
		};

		uart3: uart@80014300 {
			compatible = "ns16550";
			clock-frequency = <144000000>;
			reg = <0x80014300 0x100>;
			io-mapped;
			interrupts = <89 0>;
			interrupt-parent = <&intc>;
			reg-shift = <2>;
			status = "disabled";
		};

		gpio8b0: gpio@80017800 {
			reg = <0x80017800 0x100>;
			interrupts = <54 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio8b1: gpio@80017900 {
			reg = <0x80017900 0x100>;
			interrupts = <55 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio8b2: gpio@80017a00 {
			reg = <0x80017a00 0x100>;
			interrupts = <56 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio8b3: gpio@80017b00 {
			reg = <0x80017b00 0x100>;
			interrupts = <57 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio4b0: gpio@80017c00 {
			reg = <0x80017c00 0x100>;
			interrupts = <19 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;
		};

		gpio4b1: gpio@80017d00 {
			reg = <0x80017d00 0x100>;
			interrupts = <52 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio4b2: gpio@80017e00 {
			reg = <0x80017e00 0x100>;
			interrupts = <53 1>;
			interrupt-parent = <&intc>;

			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};


		i2c0: i2c@80012000 {
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80012000 0x100>;
			interrupts = <58 1>, <61 1>, <60 1>, <59 1>;
			interrupt-names = "error", "stop", "tx", "rx";
			interrupt-parent = <&intc>;

			status = "disabled";
		};

		i2c1: i2c@80012100 {
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80012100 0x100>;
			interrupts = <62 1>, <65 1>, <64 1>, <63 1>;
			interrupt-names = "error", "stop", "tx", "rx";
			interrupt-parent = <&intc>;

			status = "disabled";
		};

		i2c2: i2c@80012200 {
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80012200 0x100>;
			interrupts = <66 1>, <69 1>, <68 1>, <67 1>;
			interrupt-names = "error", "stop", "tx", "rx";
			interrupt-parent = <&intc>;

			status = "disabled";
		};

		spi0: spi@80010000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80010000 0x100>;
			max-xfer-size = <16>;
			clocks = <&sysclk>;
			interrupts = <70 2>, <71 2>, <72 2>;
			interrupt-names = "err-int", "rx-avail", "tx-req";
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		spi1: spi@80010100 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80010100 0x100>;
			max-xfer-size = <16>;
			clocks = <&sysclk>;
			interrupts = <74 2>, <75 2>, <76 2>;
			interrupt-names = "err-int", "rx-avail", "tx-req";
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		spi2: spi@80010200 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80010200 0x100>;
			max-xfer-size = <16>;
			clocks = <&sysclk>;
			interrupts = <78 2>, <79 2>, <80 2>;
			interrupt-names = "err-int", "rx-avail", "tx-req";
			interrupt-parent = <&intc>;
			status = "disabled";
		};

	};
};
