/* 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 = "cdns,tensilica-xtensa-lx6";
			reg = <0>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "cdns,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 = "cdns,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>;
			ngpios = <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>;
		};

		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";
		};
	};
};
