/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <xtensa/xtensa.dtsi>
#include <mem.h>

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

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

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

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

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

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

	audioclk: audio-clock {
		compatible = "fixed-clock";
		clock-frequency = <24576000>;
		#clock-cells = <0>;
	};

	pllclk: pll-clock {
		compatible = "fixed-clock";
		clock-frequency = <96000000>;
		#clock-cells = <0>;
	};

	clkctl: clkctl {
		compatible = "intel,cavs-shim-clkctl";
		cavs-clkctl-clk-lpro = <0>;
		cavs-clkctl-clk-hpro = <2>;
		cavs-clkctl-freq-enc = <0x3 0x1 0x0>;
		cavs-clkctl-freq-default = <1>;
		cavs-clkctl-freq-lowest = <0>;
	};

	soc {
		shim: shim@1000 {
			compatible = "intel,cavs-shim";
			reg = <0x1000 0x100>;
		};

		l2cc: l2cc@1500 {
			compatible = "intel,cavs-l2cc";
			reg = <0x1500 0x40>;
		};

		win: win@1580 {
			compatible = "intel,cavs-win";
			reg = <0x1580 0x20>;
		};

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

		adsp_host_ipc: cavs_host_ipc@1180 {
			compatible = "intel,adsp-host-ipc";
			reg = <0x1180 0x30>;
			interrupts = <7 0 0>;
			interrupt-parent = <&cavs0>;
		};

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

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

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

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

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

		lpgpdma0: dma@c000 {
			compatible = "intel,adsp-gpdma";
			#dma-cells = <1>;
			reg = <0x0000c000 0x1000>;
			shim = <0x00000c00 0x080>;
			interrupts = <0x10 0 0>;
			interrupt-parent = <&cavs3>;

			status = "okay";
		};

		lpgpdma1: dma@d000 {
			compatible = "intel,adsp-gpdma";
			#dma-cells = <1>;
			reg = <0x0000d000 0x1000>;
			shim = <0x00000c80 0x080>;
			interrupts = <0x0F 0 0>;
			interrupt-parent = <&cavs3>;

			status = "okay";
		};

		hda_link_out: dma@2400 {
			compatible = "intel,adsp-hda-link-out";
			#dma-cells = <1>;
			reg = <0x00002400 0x20>;
			dma-channels = <2>;
			dma-buf-alignment = <128>;

			status = "okay";
		};

		hda_link_in: dma@2600 {
			compatible = "intel,adsp-hda-link-in";
			#dma-cells = <1>;
			reg = <0x00002600 0x20>;
			dma-channels = <2>;
			dma-buf-alignment = <128>;

			status = "okay";
		};

		hda_host_out: dma@2800 {
			compatible = "intel,adsp-hda-host-out";
			#dma-cells = <1>;
			reg = <0x00002800 0x40>;
			dma-channels = <6>;
			dma-buf-alignment = <128>;

			status = "okay";
		};

		hda_host_in: dma@2c00 {
			compatible = "intel,adsp-hda-host-in";
			#dma-cells = <1>;
			reg = <0x00002c00 0x40>;
			dma-channels = <7>;
			dma-buf-alignment = <128>;

			status = "okay";
		};

		ssp0: ssp@8000 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008000 0x200
			       0x00008E00 0x008>;
			interrupts = <0x01 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 2
				&lpgpdma0 3>;
			dma-names = "tx", "rx";

			status = "okay";
		};

		ssp1: ssp@8200 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008200 0x200
			       0x00008E00 0x008>;
			interrupts = <0x01 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 4
				&lpgpdma0 5>;
			dma-names = "tx", "rx";

			status = "okay";
		};

		ssp2: ssp@8400 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008400 0x200
			       0x00008E00 0x008>;
			interrupts = <0x02 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 6
				&lpgpdma0 7>;
			dma-names = "tx", "rx";

			status = "okay";
		};

		ssp3: ssp@8600 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008600 0x200
			       0x00008E00 0x008>;
			interrupts = <0x03 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 8
				&lpgpdma0 9>;
			dma-names = "tx", "rx";

			status = "okay";
		};

		ssp4: ssp@8800 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008800 0x200
			       0x00008E00 0x008>;
			interrupts = <0x03 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 10
				&lpgpdma0 11>;
			dma-names = "tx", "rx";

			status = "okay";
		};

		ssp5: ssp@8a00 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00008A00 0x200
			       0x00008E00 0x008>;
			interrupts = <0x03 0 0>;
			interrupt-parent = <&cavs3>;
			dmas = <&lpgpdma0 12
				&lpgpdma0 13>;
			dma-names = "tx", "rx";

			status = "okay";
		};
	};
};
