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

#include "skeleton.dtsi"

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

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

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

		cpu@1 {
			device_type = "cpu";
			compatible = "snps,archs38";
			reg = <1>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "snps,archs38";
			reg = <2>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "snps,archs38";
			reg = <3>;
		};

	};

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


	idu_intc: idu-interrupt-controller {
		compatible = "snps,archs-idu-intc";
		interrupt-controller;
		#interrupt-cells = <2>;
		interrupt-parent = <&intc>;
	};

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

		ddr0: memory@90000000 {
			device_type = "memory";
			reg = <0x90000000 0x50000000>;
		};

		pinctrl: pinctrl@f0001484 {
			compatible = "snps,creg-gpio-mux-hsdk";
			reg = <0xf0001484 0x4>;
		};

		uart0: uart@f0005000 {
			compatible = "ns16550";
			clock-frequency = <33333333>;
			reg = <0xf0005000 0x1000>;
			label = "UART_0";
			interrupts = <30 1>;
		};

		uart1: uart@f0026000{
			compatible = "ns16550";
			clock-frequency = <33333333>;
			reg = <0xf0026000 0x1000>;
			label = "UART_1";
			interrupts = <46 1>;

			status = "disabled";
		};

		uart2: uart@f0027000 {
			compatible = "ns16550";
			clock-frequency = <33333333>;
			reg = <0xf0027000 0x1000>;
			label = "UART_2";
			interrupts = <47 1>;

			status = "disabled";
		};

		uart3: uart@f0028000 {
			compatible = "ns16550";
			clock-frequency = <33333333>;
			reg = <0xf0028000 0x1000>;
			label = "UART_3";
			interrupts = <48 1>;

			status = "disabled";
		};

		gpio0: gpio@f0003000 {
			compatible = "snps,designware-gpio";
			reg = <0xf0003000 0x1000>;
			ngpios = <24>;
			label = "GPIO_0";
			interrupt-parent = <&idu_intc>;

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

			status = "disabled";
		};

		creg_gpio: creg_gpio@f00014b0 {
			compatible = "snps,creg-gpio";
			reg = <0xf00014b0 0x4>;
			ngpios = <12>;
			label = "CREG_GPIO";
			bit_per_gpio = <2>;
			off_val = <0>;
			on_val = <2>;

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

			status = "disabled";
		};

		i2c0: i2c@f0023000 {
			compatible = "snps,designware-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0023000 0x1000>;
			interrupts = <43 1>;
			label = "I2C_0";

			status = "disabled";
		};

		i2c1: i2c@f0024000 {
			compatible = "snps,designware-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0024000 0x1000>;
			interrupts = <44 1>;
			label = "I2C_1";

			status = "disabled";
		};

		i2c2: i2c@f0025000 {
			compatible = "snps,designware-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0025000 0x1000>;
			interrupts = <45 1>;
			label = "I2C_2";

			status = "disabled";
		};

		spi0: spi@f0020000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0020000 0x1000>;
			interrupts = <40 1>;
			label = "SPI_0";

			status = "disabled";
		};

		spi1: spi@f0021000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0021000 0x1000>;
			interrupts = <41 1>;
			label = "SPI_1";
			status = "disabled";
		};

		spi2: spi@f0022000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xf0022000 0x1000>;
			interrupts = <42 1>;
			label = "SPI_2";
			status = "disabled";
		};

	};
};
