/* SPDX-License-Identifier: Apache-2.0 */

#include <xtensa/xtensa.dtsi>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>
#include <mem.h>
#include <dt-bindings/interrupt-controller/intel-ioapic.h>


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

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "cadence,tensilica-xtensa-lx6";
			reg = <0>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "cadence,tensilica-xtensa-lx6";
			reg = <1>;
		};
	};

	sram0: memory@be000000 {
		compatible = "mmio-sram";
		reg = <0xbe000000 DT_SIZE_M(4)>;
	};

	sram1: memory@be800000 {
		compatible = "mmio-sram";
		reg = <0xbe800000 DT_SIZE_K(64)>;
	};

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

	soc {
		core_intc: core_intc@0 {
			compatible = "xtensa,core-intc";
			reg = <0x00 0x400>;
			interrupt-controller;
			#interrupt-cells = <3>;
		};

		cavs0: cavs@78800  {
			compatible = "intel,cavs-intc";
			reg = <0x78800 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <6 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_0";
		};

		cavs1: cavs@78810  {
			compatible = "intel,cavs-intc";
			reg = <0x78810 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0xA 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_1";
		};

		cavs2: cavs@78820  {
			compatible = "intel,cavs-intc";
			reg = <0x78820 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0XD 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_2";
		};

		cavs3: cavs@78830  {
			compatible = "intel,cavs-intc";
			reg = <0x78830 0x10>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <0x10 0 0>;
			interrupt-parent = <&core_intc>;
			label = "CAVS_3";
		};

		idc: idc@1200 {
			compatible = "intel,cavs-idc";
			label = "CAVS_IDC";
			reg = <0x1200 0x80>;
			interrupts = <8 0 0>;
			interrupt-parent = <&cavs0>;
		};

		dw_intc: intc@81800  {
			compatible = "snps,designware-intc";
			reg = <0x00081800 0x400>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <6 0 0>;
			num-irqs = <9>;
			interrupt-parent = <&cavs0>;
			label = "DW_INTC";
		};

		gpio0: gpio@80c00 {
			compatible = "snps,designware-gpio";
			reg = <0x00080c00 0x400>;
			bits = <32>;
			label = "GPIO";
			interrupts = <3 1 0>;
			interrupt-parent = <&dw_intc>;

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

		pinmux: pinmux@81c30 {
			compatible = "intel,s1000-pinmux";
			reg = <0x00081c30 0xC>;
			label = "PINMUX";
		};

		uart0: uart@80800 {
			compatible = "ns16550";
			reg = <0x80800 0x400>;
			label = "UART_0";
			clock-frequency = <38400000>;
			interrupts = <2 0 0>;
			interrupt-parent = <&dw_intc>;


			status = "disabled";
		};

		i2c0: i2c@80400 {
			compatible = "snps,designware-i2c";
			clock-frequency = <I2C_BITRATE_STANDARD>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x80400 0x400>;
			interrupts = <1 0 0>;
			interrupt-parent = <&dw_intc>;
			label = "I2C_0";

			status = "disabled";
		};

		spi0: spi@e000 {
			compatible = "snps,designware-spi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0000E000 0x400>;
			clocks = <&sysclk>;
			interrupts = <6 0 0>;
			interrupt-parent = <&dw_intc>;
			label = "SPI_0";
		};

		dma0: dma@7c000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007C000 0x1000>;
			interrupts = <0x10 0 0>;
			interrupt-parent = <&cavs3>;
			label = "DMA_0";

			status = "okay";
		};

		dma1: dma@7d000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007D000 0x1000>;
			interrupts = <0x00 0 0>;
			interrupt-parent = <&cavs1>;
			label = "DMA_1";

			status = "disabled";
		};

		dma2: dma@7e000 {
			compatible = "snps,designware-dma";
			#dma-cells = <1>;
			reg = <0x0007E000 0x1000>;
			interrupts = <0x00 0 0>;
			interrupt-parent = <&cavs2>;
			label = "DMA_2";

			status = "disabled";
		};

		usb: usb@a0000 {
			compatible = "snps,designware-usb";
			reg = <0x000A0000 0x1000>;
			interrupts = <0x07 IRQ_TYPE_LOWEST_EDGE_RISING 3>;
			interrupt-parent = <&cavs0>;
			num-bidir-endpoints = <6>;
			label = "USB_0";

			status = "disabled";
		};

		i2s1: i2s@77200 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077200 0x200
			       0x00078D08 0x008>;
			interrupts = <0x01 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 2
				&dma0 3>;
			dma-names = "tx", "rx";
			label = "I2S_1";

			status = "okay";
		};

		i2s2: i2s@77400 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077400 0x200
			       0x00078D10 0x008>;
			interrupts = <0x02 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 4
				&dma0 5>;
			dma-names = "tx", "rx";
			label = "I2S_2";

			status = "okay";
		};

		i2s3: i2s@77600 {
			compatible = "intel,cavs-i2s";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00077600 0x200
			       0x00078D18 0x008>;
			interrupts = <0x03 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&dma0 6
				&dma0 7>;
			dma-names = "tx", "rx";
			label = "I2S_3";

			status = "okay";
		};

		gna: gna@e800 {
			compatible = "intel,gna";
			reg = <0x0000E800 0x100>;
			interrupt-controller;
			interrupts = <5 0 0>;
			interrupt-parent = <&cavs0>;
			label = "GNA0";
		};
	};
};
