// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018, Craig Tatlor.
 * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
 * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com>
 * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com>
 * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com>
 */

#include "sdm630.dtsi"

/delete-node/ &buffer_mem;

/ {
	smp2p-cdsp {
		compatible = "qcom,smp2p";
		qcom,smem = <94>, <432>;
		interrupts = <GIC_SPI 514 IRQ_TYPE_EDGE_RISING>;
		mboxes = <&apcs_glb 30>;
		qcom,local-pid = <0>;
		qcom,remote-pid = <5>;

		cdsp_smp2p_out: master-kernel {
			qcom,entry-name = "master-kernel";
			#qcom,smem-state-cells = <1>;
		};

		cdsp_smp2p_in: slave-kernel {
			qcom,entry-name = "slave-kernel";
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	reserved-memory {
		cdsp_region: cdsp@94a00000 {
			reg = <0x0 0x94a00000 0x00 0x600000>;
			no-map;
		};
	};
};

&adreno_gpu {
	compatible = "qcom,adreno-512.0", "qcom,adreno";
	operating-points-v2 = <&gpu_sdm660_opp_table>;

	gpu_sdm660_opp_table: opp-table {
		compatible = "operating-points-v2";

		/*
		 * 775MHz is only available on the highest speed bin
		 * Though it cannot be used for now due to interconnect
		 * framework not supporting multiple frequencies
		 * at the same opp-level

		opp-750000000 {
			opp-hz = /bits/ 64 <750000000>;
			opp-level = <RPM_SMD_LEVEL_TURBO>;
			opp-peak-kBps = <5412000>;
			opp-supported-hw = <0xCHECKME>;
		};

		* These OPPs are correct, but we are lacking support for the
		* GPU regulator. Hence, disable them for now to prevent the
		* platform from hanging on high graphics loads.

		opp-700000000 {
			opp-hz = /bits/ 64 <700000000>;
			opp-level = <RPM_SMD_LEVEL_TURBO>;
			opp-peak-kBps = <5184000>;
			opp-supported-hw = <0xff>;
		};

		opp-647000000 {
			opp-hz = /bits/ 64 <647000000>;
			opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
			opp-peak-kBps = <4068000>;
			opp-supported-hw = <0xff>;
		};

		opp-588000000 {
			opp-hz = /bits/ 64 <588000000>;
			opp-level = <RPM_SMD_LEVEL_NOM>;
			opp-peak-kBps = <3072000>;
			opp-supported-hw = <0xff>;
		};

		opp-465000000 {
			opp-hz = /bits/ 64 <465000000>;
			opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
			opp-peak-kBps = <2724000>;
			opp-supported-hw = <0xff>;
		};

		opp-370000000 {
			opp-hz = /bits/ 64 <370000000>;
			opp-level = <RPM_SMD_LEVEL_SVS>;
			opp-peak-kBps = <2188000>;
			opp-supported-hw = <0xff>;
		};
		*/

		opp-266000000 {
			opp-hz = /bits/ 64 <266000000>;
			opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
			opp-peak-kBps = <1648000>;
			opp-supported-hw = <0xff>;
		};

		opp-160000000 {
			opp-hz = /bits/ 64 <160000000>;
			opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
			opp-peak-kBps = <1200000>;
			opp-supported-hw = <0xff>;
		};
	};
};

&cpu0 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <1024>;
	/delete-property/ operating-points-v2;
};

&cpu1 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <1024>;
	/delete-property/ operating-points-v2;
};

&cpu2 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <1024>;
	/delete-property/ operating-points-v2;
};

&cpu3 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <1024>;
	/delete-property/ operating-points-v2;
};

&cpu4 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <640>;
	/delete-property/ operating-points-v2;
};

&cpu5 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <640>;
	/delete-property/ operating-points-v2;
};

&cpu6 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <640>;
	/delete-property/ operating-points-v2;
};

&cpu7 {
	compatible = "qcom,kryo260";
	capacity-dmips-mhz = <640>;
	/delete-property/ operating-points-v2;
};

&gcc {
	compatible = "qcom,gcc-sdm660";
};

&gpucc {
	compatible = "qcom,gpucc-sdm660";
};

&mdp {
	compatible = "qcom,sdm660-mdp5", "qcom,mdp5";

	ports {
		port@1 {
			reg = <1>;
			mdp5_intf2_out: endpoint {
				remote-endpoint = <&mdss_dsi1_in>;
			};
		};
	};
};

&mdss {
	mdss_dsi1: dsi@c996000 {
		compatible = "qcom,sdm660-dsi-ctrl",
			     "qcom,mdss-dsi-ctrl";
		reg = <0x0c996000 0x400>;
		reg-names = "dsi_ctrl";

		/* DSI1 shares the OPP table with DSI0 */
		operating-points-v2 = <&dsi_opp_table>;
		power-domains = <&rpmpd RPMPD_VDDCX>;

		interrupt-parent = <&mdss>;
		interrupts = <5>;

		assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
					<&mmcc PCLK1_CLK_SRC>;
		assigned-clock-parents = <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>,
					 <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>;

		clocks = <&mmcc MDSS_MDP_CLK>,
				<&mmcc MDSS_BYTE1_CLK>,
				<&mmcc MDSS_BYTE1_INTF_CLK>,
				<&mmcc MNOC_AHB_CLK>,
				<&mmcc MDSS_AHB_CLK>,
				<&mmcc MDSS_AXI_CLK>,
				<&mmcc MISC_AHB_CLK>,
				<&mmcc MDSS_PCLK1_CLK>,
				<&mmcc MDSS_ESC1_CLK>;
		clock-names = "mdp_core",
					"byte",
					"byte_intf",
					"mnoc",
					"iface",
					"bus",
					"core_mmss",
					"pixel",
					"core";

		phys = <&mdss_dsi1_phy>;

		status = "disabled";

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

			port@0 {
				reg = <0>;
				mdss_dsi1_in: endpoint {
					remote-endpoint = <&mdp5_intf2_out>;
				};
			};

			port@1 {
				reg = <1>;
				mdss_dsi1_out: endpoint {
				};
			};
		};
	};

	mdss_dsi1_phy: phy@c996400 {
		compatible = "qcom,dsi-phy-14nm-660";
		reg = <0x0c996400 0x100>,
				<0x0c996500 0x300>,
				<0x0c996800 0x188>;
		reg-names = "dsi_phy",
				"dsi_phy_lane",
				"dsi_pll";

		#clock-cells = <1>;
		#phy-cells = <0>;

		clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
		clock-names = "iface", "ref";
		status = "disabled";
	};
};

&mmcc {
	compatible = "qcom,mmcc-sdm660";
	clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
			<&sleep_clk>,
			<&gcc GCC_MMSS_GPLL0_CLK>,
			<&gcc GCC_MMSS_GPLL0_DIV_CLK>,
			<&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>,
			<&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
			<&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>,
			<&mdss_dsi1_phy DSI_BYTE_PLL_CLK>,
			<0>,
			<0>;
};

&soc {
	cdsp_smmu: iommu@5180000 {
		compatible = "qcom,sdm630-smmu-v2", "qcom,smmu-v2";
		reg = <0x5180000 0x40000>;
		#iommu-cells = <1>;

		#global-interrupts = <2>;
		interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 546 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>;

		clocks = <&gcc GCC_HLOS1_VOTE_TURING_ADSP_SMMU_CLK>;
		clock-names = "bus";

		power-domains = <&gcc HLOS1_VOTE_TURING_ADSP_GDSC>;

	};

	remoteproc_cdsp: remoteproc@1a300000 {
		compatible = "qcom,sdm660-cdsp-pas";
		reg = <0x1a300000 0x00100>;
		interrupts-extended = <&intc GIC_SPI 518 IRQ_TYPE_EDGE_RISING>,
				      <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
		clock-names = "xo";

		memory-region = <&cdsp_region>;
		power-domains = <&rpmpd SDM660_VDDCX>;
		power-domain-names = "cx";

		qcom,smem-states = <&cdsp_smp2p_out 0>;
		qcom,smem-state-names = "stop";

		glink-edge {
			interrupts = <GIC_SPI 513 IRQ_TYPE_EDGE_RISING>;

			label = "cdsp";
			mboxes = <&apcs_glb 29>;
			qcom,remote-pid = <5>;

			fastrpc {
				compatible = "qcom,fastrpc";
				qcom,glink-channels = "fastrpcglink-apps-dsp";
				label = "cdsp";
				#address-cells = <1>;
				#size-cells = <0>;

				compute-cb@3 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <3>;
					iommus = <&cdsp_smmu 3>;
				};

				compute-cb@4 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <4>;
					iommus = <&cdsp_smmu 4>;
				};

				compute-cb@5 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <5>;
					iommus = <&cdsp_smmu 5>;
				};

				compute-cb@6 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <6>;
					iommus = <&cdsp_smmu 6>;
				};

				compute-cb@7 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <7>;
					iommus = <&cdsp_smmu 7>;
				};

				compute-cb@8 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <8>;
					iommus = <&cdsp_smmu 8>;
				};

				compute-cb@9 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <9>;
					iommus = <&cdsp_smmu 9>;
				};

				compute-cb@10 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <10>;
					iommus = <&cdsp_smmu 10>;
				};

				compute-cb@11 {
					compatible = "qcom,fastrpc-compute-cb";
					reg = <11>;
					iommus = <&cdsp_smmu 11>;
				};
			};
		};
	};
};

&tlmm {
	compatible = "qcom,sdm660-pinctrl";
};

&tsens {
	#qcom,sensors = <14>;
};
