/*
 * Copyright (c) 2022 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-lx7";
			reg = <0>;
			cpu-power-states = <&d0i3 &d3>;
			i-cache-line-size = <64>;
			d-cache-line-size = <64>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "cdns,tensilica-xtensa-lx7";
			reg = <1>;
			cpu-power-states = <&d0i3 &d3>;
		};

		cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "cdns,tensilica-xtensa-lx7";
			reg = <2>;
			cpu-power-states = <&d0i3 &d3>;
		};

		power-states {
			d0i3: idle {
				compatible = "zephyr,power-state";
				power-state-name = "runtime-idle";
				min-residency-us = <200>;
				exit-latency-us = <100>;
			};
			/* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force.
			 * The procedure is triggered by IPC from the HOST (SET_DX).
			 */
			d3: off {
				compatible = "zephyr,power-state";
				power-state-name = "soft-off";
				min-residency-us = <0>;
				exit-latency-us = <0>;
				status = "disabled";
			};
		};
	};

	sram0: memory@a0020000 {
		device_type = "memory";
		compatible = "mmio-sram";
		reg = <0xa0020000 DT_SIZE_K(2816)>;
	};

	sram0virtual: virtualmemory@a0020000 {
		device_type = "memory";
		compatible = "mmio-sram";
		reg = <0xa0020000 DT_SIZE_K(8192)>;
	};

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

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

	clkctl: clkctl {
		compatible = "intel,adsp-shim-clkctl";
		adsp-clkctl-clk-wovcro = <0>;
		adsp-clkctl-clk-ipll = <1>;
		adsp-clkctl-freq-enc = <0xc 0x4>;
		adsp-clkctl-freq-mask = <0x0 0x0>;
		adsp-clkctl-freq-default = <1>;
		adsp-clkctl-freq-lowest = <0>;
		wovcro-supported;
	};

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

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

	IMR1: memory@A1000000 {
		compatible = "intel,adsp-imr";
		reg = <0xA1000000 DT_SIZE_M(16)>;
		block-size = <0x1000>;
		zephyr,memory-region = "IMR1";
	};

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

		dmic0: dmic0@10000 {
			compatible = "intel,dai-dmic";
			reg = <0x10000 0x8000>;
			shim = <0xC000>;
			fifo = <0x0008>;
			interrupts = <0x08 0 0>;
			interrupt-parent = <&ace_intc>;
			power-domain = <&hub_ulp_domain>;
		};

		dmic1: dmic1@10000 {
			compatible = "intel,dai-dmic";
			reg = <0x10000 0x8000>;
			shim = <0xC000>;
			fifo = <0x0108>;
			interrupts = <0x09 0 0>;
			interrupt-parent = <&ace_intc>;
			power-domain = <&hub_ulp_domain>;
		};

		/*
		 * FIXME this is modeling individual alh channels/instances
		 * with node labels, which has problems. A better representation
		 * is discussed here:
		 *
		 * https://github.com/zephyrproject-rtos/zephyr/pull/50287#discussion_r974591009
		 *
		 * The hardware actually supports 16 ALH streams/FIFOs. Below description does
		 * not fully represent hardware capabilities and is expected to be modified.
		 */
		alh0: alh0@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh1: alh1@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh2: alh2@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh3: alh3@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh4: alh4@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh5: alh5@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh6: alh6@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh7: alh7@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh8: alh8@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh9: alh9@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh10: alh10@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh11: alh11@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh12: alh12@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh13: alh13@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh14: alh14@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		alh15: alh15@24400 {
			compatible = "intel,alh-dai";
			reg = <0x00024400 0x00024600>;
			status = "okay";
		};

		ssp0: ssp@28000 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00028000 0x1000
				   0x00079C00 0x200>;
			interrupts = <0x00 0 0>;
			interrupt-parent = <&ace_intc>;
			dmas = <&lpgpdma0 2
					&lpgpdma0 3>;
			dma-names = "tx", "rx";
			power-domain = <&io0_domain>;
			status = "okay";
		};

		sspbase: ssp_base@28800 {
			compatible = "intel,ssp-sspbase";
			reg = <0x28800 0x1000>;
		};

		ssp1: ssp@29000 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00029000 0x1000
				   0x00079C00 0x200>;
			interrupts = <0x01 0 0>;
			interrupt-parent = <&ace_intc>;
			dmas = <&lpgpdma0 4
					&lpgpdma0 5>;
			dma-names = "tx", "rx";
			power-domain = <&io0_domain>;
			status = "okay";
		};

		ssp2: ssp@2a000 {
			compatible = "intel,ssp-dai";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0002a000 0x1000
				   0x00079C00 0x200>;
			interrupts = <0x02 0 0>;
			interrupt-parent = <&ace_intc>;
			dmas = <&lpgpdma0 6
					&lpgpdma0 7>;
			dma-names = "tx", "rx";
			power-domain = <&io0_domain>;
			status = "okay";
		};

		mem_window0: mem_window@70200 {
			compatible = "intel,adsp-mem-window";
			reg = <0x70200 0x8>;
			offset = <0x4000>;
			memory = <&sram0>;
			initialize;
			read-only;
		};

		mem_window1: mem_window@70208 {
			compatible = "intel,adsp-mem-window";
			reg = <0x70208 0x8>;
			memory = <&sram0>;
		};

		mem_window2: mem_window@70210 {
			compatible = "intel,adsp-mem-window";
			reg = <0x70210 0x8>;
			memory = <&sram0>;
		};

		mem_window3: mem_window@70218 {
			compatible = "intel,adsp-mem-window";
			reg = <0x70218 0x8>;
			memory = <&sram0>;
			read-only;
		};

		adsp_idc: ace_idc@70400 {
			compatible = "intel,adsp-idc";
			reg = <0x70400 0x0400>;
			interrupts = <24 0 0>;
			interrupt-parent = <&ace_intc>;
		};

		dfpmcch: dfpmcch@71ac0 {
			compatible = "intel,adsp-dfpmcch";
			reg = <0x00071ac0 0x40>;
		};

		dfpmccu: dfpmccu@71b00 {
			compatible = "intel,adsp-dfpmccu";
			reg = <0x71b00 0x100>;

			hub_ulp_domain: hub_ulp_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <15>;
			};
			ml1_domain: ml1_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <13>;
			};
			ml0_domain: ml0_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <12>;
			};
			io3_domain: io3_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <11>;
			};
			io2_domain: io2_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <10>;
			};
			io1_domain: io1_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <9>;
			};
			io0_domain: io0_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <8>;
			};
			hub_hp_domain: hub_hp_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <6>;
			};
			hst_domain: hst_domain {
				compatible = "intel,adsp-power-domain";
				bit-position = <4>;
			};
		};

		ace_comm_widget: ace_comm_widget@71c00 {
			compatible = "intel,adsp-communication-widget";
			reg = <0x00071c00 0x100>;
			interrupts = <0x19 0 0>;
			interrupt-parent = <&ace_intc>;
			status = "okay";
		};

		shim: shim@71f00 {
			compatible = "intel,adsp-shim";
			reg = <0x71f00 0x100>;
		};

		tts: tts@72000 {
			compatible = "intel,adsp-tts";
			reg = <0x72000 0x70>;
			status = "okay";
		};

		ace_rtc_counter: ace_rtc_counter@72008 {
			compatible = "intel,ace-rtc-counter";
			reg = <0x72008 0x0064>;
		};

		ace_timestamp: ace_timestamp@72040 {
			compatible = "intel,ace-timestamp";
			reg = <0x72040 0x0032>;
		};

		ace_art_counter: ace_art_counter@72058 {
			compatible = "intel,ace-art-counter";
			reg = <0x72058 0x0064>;
		};

		hda_link_out: dma@72400 {
			compatible = "intel,adsp-hda-link-out";
			#dma-cells = <1>;
			reg = <0x00072400 0x20>;
			dma-channels = <9>;
			dma-buf-addr-alignment = <128>;
			dma-buf-size-alignment = <32>;
			dma-copy-alignment = <16>;
			power-domain = <&io0_domain>;
			status = "okay";
		};

		hda_link_in: dma@72600 {
			compatible = "intel,adsp-hda-link-in";
			#dma-cells = <1>;
			reg = <0x00072600 0x20>;
			dma-channels = <10>;
			dma-buf-addr-alignment = <128>;
			dma-buf-size-alignment = <32>;
			dma-copy-alignment = <16>;
			power-domain = <&io0_domain>;
			status = "okay";
		};

		hda_host_out: dma@72800 {
			compatible = "intel,adsp-hda-host-out";
			#dma-cells = <1>;
			reg = <0x00072800 0x40>;
			dma-channels = <9>;
			dma-buf-addr-alignment = <128>;
			dma-buf-size-alignment = <32>;
			dma-copy-alignment = <16>;
			power-domain = <&hst_domain>;
			interrupts = <13 0 0>;
			interrupt-parent = <&ace_intc>;
			status = "okay";
		};

		hda_host_in: dma@72c00 {
			compatible = "intel,adsp-hda-host-in";
			#dma-cells = <1>;
			reg = <0x00072c00 0x40>;
			dma-channels = <10>;
			dma-buf-addr-alignment = <128>;
			dma-buf-size-alignment = <32>;
			dma-copy-alignment = <16>;
			power-domain = <&hst_domain>;
			interrupts = <12 0 0>;
			interrupt-parent = <&ace_intc>;
			status = "okay";
		};

		adsp_host_ipc: ace_host_ipc@73000 {
			compatible = "intel,adsp-host-ipc";
			status = "okay";
			reg = <0x73000 0x30>;
			interrupts = <0 0 0>;
			interrupt-parent = <&ace_intc>;
		};

		/* This is actually an array of per-core designware
		 * controllers, but the special setup and extra
		 * masking layer makes it easier for MTL to handle
		 * this internally.
		 */
		ace_intc: ace_intc@7ac00  {
			compatible = "intel,ace-intc";
			reg = <0x7ac00 0xc00>;
			interrupt-controller;
			#interrupt-cells = <3>;
			interrupts = <4 0 0>;
			num-irqs = <28>;
			interrupt-parent = <&core_intc>;
		};

		lpgpdma0: dma@7c000 {
			compatible = "intel,adsp-gpdma";
			#dma-cells = <1>;
			reg = <0x0007c000 0x1000>;
			shim = <0x0007c800 0x1000>;
			interrupts = <17 0 0>;
			interrupt-parent = <&ace_intc>;
			dma-buf-size-alignment = <4>;
			dma-copy-alignment = <4>;
			status = "okay";
			power-domain = <&hub_ulp_domain>;
			zephyr,pm-device-runtime-auto;
		};

		lpgpdma1: dma@7d000 {
			compatible = "intel,adsp-gpdma";
			#dma-cells = <1>;
			reg = <0x0007d000 0x1000>;
			shim = <0x0007d800 0x1000>;
			interrupts = <0x20 0 0>;
			interrupt-parent = <&core_intc>;
			dma-buf-size-alignment = <4>;
			dma-copy-alignment = <4>;
			status = "okay";
			power-domain = <&io0_domain>;
			zephyr,pm-device-runtime-auto;
		};

		lpgpdma2: dma@7e000 {
			compatible = "intel,adsp-gpdma";
			#dma-cells = <1>;
			reg = <0x0007e000 0x1000>;
			shim = <0x0007e800 0x1000>;
			interrupts = <0x25 0 0>;
			interrupt-parent = <&core_intc>;
			dma-buf-size-alignment = <4>;
			dma-copy-alignment = <4>;
			power-domain = <&io0_domain>;
			status = "okay";
			zephyr,pm-device-runtime-auto;
		};

		sha: adsp-sha@17df00 {
			compatible = "intel,adsp-sha";
			reg = <0x17df00 0xd0>;
		};

		tlb: tlb@17e000 {
			compatible = "intel,adsp-mtl-tlb";
			reg = <0x17e000 0x1000>;
			paddr-size = <12>;
			exec-bit-idx = <14>;
			write-bit-idx= <15>;
		};

		timer: timer {
			compatible = "intel,adsp-timer";
			syscon = <&tts>;
		};
	};

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

		hda0: hda@0 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0>;
		};
		hda1: hda@1 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <1>;
		};
		hda2: hda@2 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <2>;
		};
		hda3: hda@3 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <3>;
		};
		hda4: hda@4 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <4>;
		};
		hda5: hda@5 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <5>;
		};
		hda6: hda@6 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <6>;
		};
		hda7: hda@7 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <7>;
		};
		hda8: hda@8 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <8>;
		};
		hda9: hda@9 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <9>;
		};
		hda10: hda@a {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0a>;
		};
		hda11: hda@b {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0b>;
		};
		hda12: hda@c {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0c>;
		};
		hda13: hda@d {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0d>;
		};
		hda14: hda@e {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0e>;
		};
		hda15: hda@f {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x0f>;
		};
		hda16: hda@10 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x10>;
		};
		hda17: hda@11 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x11>;
		};
		hda18: hda@12 {
			compatible = "intel,hda-dai";
			status = "okay";
			reg = <0x12>;
		};
	};
};
