/*
 * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

/dts-v1/;

/ {
	compatible = "arm,tc";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;

	aliases {
		serial0 = &soc_uart0;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

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

		cpu-map {
			cluster0 {
				core0 {
					cpu = <&CPU0>;
				};
				core1 {
					cpu = <&CPU1>;
				};
				core2 {
					cpu = <&CPU2>;
				};
				core3 {
					cpu = <&CPU3>;
				};
				core4 {
					cpu = <&CPU4>;
				};
				core5 {
					cpu = <&CPU5>;
				};
				core6 {
					cpu = <&CPU6>;
				};
				core7 {
					cpu = <&CPU7>;
				};
			};
		};

		/*
		 * The timings below are just to demonstrate working cpuidle.
		 * These values may be inaccurate.
		 */
		idle-states {
			entry-method = "arm,psci";

			CPU_SLEEP_0: cpu-sleep-0 {
				compatible = "arm,idle-state";
				arm,psci-suspend-param = <0x0010000>;
				local-timer-stop;
				entry-latency-us = <300>;
				exit-latency-us = <1200>;
				min-residency-us = <2000>;
			};
			CLUSTER_SLEEP_0: cluster-sleep-0 {
				compatible = "arm,idle-state";
				arm,psci-suspend-param = <0x1010000>;
				local-timer-stop;
				entry-latency-us = <400>;
				exit-latency-us = <1200>;
				min-residency-us = <2500>;
			};
		};

		amus {
			amu: amu-0 {
				#address-cells = <1>;
				#size-cells = <0>;

				mpmm_gear0: counter@0 {
					reg = <0>;

					enable-at-el3;
				};

				mpmm_gear1: counter@1 {
					reg = <1>;

					enable-at-el3;
				};

				mpmm_gear2: counter@2 {
					reg = <2>;

					enable-at-el3;
				};
			};
		};

		CPU0:cpu@0 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x0>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 0>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <406>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU1:cpu@100 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x100>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 0>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <406>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU2:cpu@200 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x200>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 0>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <406>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU3:cpu@300 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x300>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 0>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <406>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU4:cpu@400 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x400>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 1>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <912>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU5:cpu@500 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x500>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 1>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <912>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU6:cpu@600 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x600>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 1>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <912>;
			amu = <&amu>;
			supports-mpmm;
		};

		CPU7:cpu@700 {
			device_type = "cpu";
			compatible = "arm,armv8";
			reg = <0x700>;
			enable-method = "psci";
			clocks = <&scmi_dvfs 2>;
			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
			capacity-dmips-mhz = <1024>;
			amu = <&amu>;
			supports-mpmm;
		};

	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		linux,cma {
			compatible = "shared-dma-pool";
			reusable;
			size = <0x0 0x8000000>;
			linux,cma-default;
		};

		optee@0xfce00000 {
			reg = <0x00000000 0xfce00000 0 0x00200000>;
			no-map;
		};
	};

	psci {
		compatible = "arm,psci-1.0", "arm,psci-0.2";
		method = "smc";
	};

	sram: sram@6000000 {
		compatible = "mmio-sram";
		reg = <0x0 0x06000000 0x0 0x8000>;

		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x0 0x06000000 0x8000>;

		cpu_scp_scmi_mem: scp-shmem@0 {
			compatible = "arm,scmi-shmem";
			reg = <0x0 0x80>;
		};
	};

	mbox_db_rx: mhu@45010000 {
		compatible = "arm,mhuv2-rx","arm,primecell";
		reg = <0x0 0x45010000 0x0 0x1000>;
		clocks = <&soc_refclk100mhz>;
		clock-names = "apb_pclk";
		#mbox-cells = <2>;
		interrupts = <0 317 4>;
		interrupt-names = "mhu_rx";
		mhu-protocol = "doorbell";
		arm,mhuv2-protocols = <0 1>;
	};

	mbox_db_tx: mhu@45000000 {
		compatible = "arm,mhuv2-tx","arm,primecell";
		reg = <0x0 0x45000000 0x0 0x1000>;
		clocks = <&soc_refclk100mhz>;
		clock-names = "apb_pclk";
		#mbox-cells = <2>;
		interrupt-names = "mhu_tx";
		mhu-protocol = "doorbell";
		arm,mhuv2-protocols = <0 1>;
	};

	cmn-pmu {
		compatible = "arm,ci-700";
		reg = <0x0 0x50000000 0x0 0x10000000>;
		interrupts = <0x0 460 0x4>;
	};

	scmi {
		compatible = "arm,scmi";
		mbox-names = "tx", "rx";
		mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
		shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
		#address-cells = <1>;
		#size-cells = <0>;

		scmi_dvfs: protocol@13 {
			reg = <0x13>;
			#clock-cells = <1>;
		};

		scmi_clk: protocol@14 {
			reg = <0x14>;
			#clock-cells = <1>;
		};
	};

	gic: interrupt-controller@2c010000 {
		compatible = "arm,gic-600", "arm,gic-v3";
		#address-cells = <2>;
		#interrupt-cells = <3>;
		#size-cells = <2>;
		ranges;
		interrupt-controller;
		reg = <0x0 0x30000000 0 0x10000>, /* GICD */
		      <0x0 0x30080000 0 0x200000>; /* GICR */
		interrupts = <0x1 0x9 0x4>;
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <0x1 13 0x8>,
			     <0x1 14 0x8>,
			     <0x1 11 0x8>,
			     <0x1 10 0x8>;
	};

	soc_refclk100mhz: refclk100mhz {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <100000000>;
		clock-output-names = "apb_pclk";
	};

	soc_refclk60mhz: refclk60mhz {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <60000000>;
		clock-output-names = "iofpga_clk";
	};

	soc_uartclk:  uartclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <50000000>;
		clock-output-names = "uartclk";
	};

	soc_uart0: uart@7ff80000 {
		compatible = "arm,pl011", "arm,primecell";
		reg = <0x0 0x7ff80000 0x0 0x1000>;
		interrupts = <0x0 116 0x4>;
		clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
		clock-names = "uartclk", "apb_pclk";
		status = "okay";
	};

        rtc0: rtc@1C170000 {
                compatible = "arm,pl031", "arm,primecell";
                reg = <0x0 0x1C170000 0x0 0x1000>;
                interrupts = <0x0 100 0x4>;
                clocks = <&soc_refclk100mhz>;
                clock-names = "apb_pclk";
                wakeup-source;
        };

	vencoder {
		compatible = "drm,virtual-encoder";

		port {
			vencoder_in: endpoint {
				remote-endpoint = <&dp_pl0_out0>;
			};
		};

		display-timings {
			panel-timing {
				clock-frequency = <25175000>;
				hactive = <640>;
				vactive = <480>;
				hfront-porch = <16>;
				hback-porch = <48>;
				hsync-len = <96>;
				vfront-porch = <10>;
				vback-porch = <33>;
				vsync-len = <2>;
			};
		};

	};

	hdlcd: hdlcd@7ff60000 {
		compatible = "arm,hdlcd";
		reg = <0x0 0x7ff60000 0x0 0x1000>;
		interrupts = <0x0 117 0x4>;
		clocks = <&fake_hdlcd_clk>;
		clock-names = "pxlclk";
		status = "disabled";

		port {
			hdlcd_out: endpoint {
				remote-endpoint = <&vencoder_in>;
			};
		};
	};

	fake_hdlcd_clk: fake-hdlcd-clk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <25175000>;
		clock-output-names = "pxlclk";
	};

	ethernet@18000000 {
		compatible = "smsc,lan91c111";
		reg = <0x0 0x18000000 0x0 0x10000>;
		interrupts = <0 109 4>;
	};

	kmi@1c060000 {
		compatible = "arm,pl050", "arm,primecell";
		reg = <0x0 0x001c060000 0x0 0x1000>;
		interrupts = <0 197 4>;
		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
		clock-names = "KMIREFCLK", "apb_pclk";
	};

	kmi@1c070000 {
		compatible = "arm,pl050", "arm,primecell";
		reg = <0x0 0x001c070000 0x0 0x1000>;
		interrupts = <0 103 4>;
		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
		clock-names = "KMIREFCLK", "apb_pclk";
	};

	bp_clock24mhz: clock24mhz {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <24000000>;
		clock-output-names = "bp:clock24mhz";
	};

	virtio_block@1c130000 {
		compatible = "virtio,mmio";
		reg = <0x0 0x1c130000 0x0 0x200>;
		interrupts = <0 204 4>;
	};

	sysreg: sysreg@1c010000 {
		compatible = "arm,vexpress-sysreg";
		reg = <0x0 0x001c010000 0x0 0x1000>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	fixed_3v3: v2m-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	mmci@1c050000 {
		compatible = "arm,pl180", "arm,primecell";
		reg = <0x0 0x001c050000 0x0 0x1000>;
		interrupts = <0 107 0x4>,
			     <0 108 0x4>;
		cd-gpios = <&sysreg 0 0>;
		wp-gpios = <&sysreg 1 0>;
		bus-width = <8>;
		max-frequency = <12000000>;
		vmmc-supply = <&fixed_3v3>;
		clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
		clock-names = "mclk", "apb_pclk";
	};

	gpu: gpu@2d000000 {
		compatible = "arm,mali-midgard";
		reg = <0x0 0x2d000000 0x0 0x200000>;
		interrupts = <0 66 4>, <0 67 4>, <0 65 4>;
		interrupt-names = "JOB", "MMU", "GPU";
		clocks = <&soc_refclk100mhz>;
		clock-names = "clk_mali";
		operating-points = <
			/* KHz uV */
			50000 820000
		>;
	};

	smmu: smmu@2ce00000 {
		#iommu-cells = <1>;
		compatible = "arm,smmu-v3";
		reg = <0x0 0x2ce00000 0x0 0x20000>;
		status = "okay";
	};

	dp0: display@2cc00000 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "arm,mali-d71";
		reg = <0 0x2cc00000 0 0x20000>;
		interrupts = <0 69 4>;
		interrupt-names = "DPU";
		clocks = <&scmi_clk 0>;
		clock-names = "aclk";
		iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>,
			<&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>,
			<&smmu 8>, <&smmu 9>;
		pl0: pipeline@0 {
			reg = <0>;
			clocks = <&scmi_clk 1>;
			clock-names = "pxclk";
			pl_id = <0>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
					dp_pl0_out0: endpoint {
						remote-endpoint = <&vencoder_in>;
					};
				};
			};
		};

		pl1: pipeline@1 {
			reg = <1>;
			clocks = <&scmi_clk 2>;
			clock-names = "pxclk";
			pl_id = <1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					reg = <0>;
				};
			};
		};
	};

	ete0 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU0>;
	};

	ete1 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU1>;
	};

	ete2 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU2>;
	};

	ete3 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU3>;
	};

	ete4 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU4>;
	};

	ete5 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU5>;
	};

	ete6 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU6>;
	};

	ete7 {
		compatible = "arm,embedded-trace-extension";
		cpu = <&CPU7>;
	};

	trbe0 {
		compatible = "arm,trace-buffer-extension";
		interrupts = <1 2 4>;
	};
};
