xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sdm660.dtsi (revision 63ddd8a54d4be02976e63ff06bb1cc98226c6981)
1feec3441SCraig Tatlor// SPDX-License-Identifier: GPL-2.0-only
2feec3441SCraig Tatlor/*
3feec3441SCraig Tatlor * Copyright (c) 2018, Craig Tatlor.
4feec3441SCraig Tatlor * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
505aa0eb3SKonrad Dybcio * Copyright (c) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com>
605aa0eb3SKonrad Dybcio * Copyright (c) 2020, Konrad Dybcio <konradybcio@gmail.com>
705aa0eb3SKonrad Dybcio * Copyright (c) 2020, Martin Botka <martin.botka1@gmail.com>
8feec3441SCraig Tatlor */
9feec3441SCraig Tatlor
1005aa0eb3SKonrad Dybcio#include "sdm630.dtsi"
11feec3441SCraig Tatlor
1205aa0eb3SKonrad Dybcio&adreno_gpu {
1305aa0eb3SKonrad Dybcio	compatible = "qcom,adreno-512.0", "qcom,adreno";
1405aa0eb3SKonrad Dybcio	operating-points-v2 = <&gpu_sdm660_opp_table>;
15feec3441SCraig Tatlor
1605aa0eb3SKonrad Dybcio	gpu_sdm660_opp_table: opp-table {
1705aa0eb3SKonrad Dybcio		compatible  = "operating-points-v2";
18feec3441SCraig Tatlor
1905aa0eb3SKonrad Dybcio		/*
2005aa0eb3SKonrad Dybcio		 * 775MHz is only available on the highest speed bin
2105aa0eb3SKonrad Dybcio		 * Though it cannot be used for now due to interconnect
2205aa0eb3SKonrad Dybcio		 * framework not supporting multiple frequencies
2305aa0eb3SKonrad Dybcio		 * at the same opp-level
24feec3441SCraig Tatlor
2505aa0eb3SKonrad Dybcio		opp-750000000 {
2605aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <750000000>;
2705aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_TURBO>;
2805aa0eb3SKonrad Dybcio			opp-peak-kBps = <5412000>;
2905aa0eb3SKonrad Dybcio			opp-supported-hw = <0xCHECKME>;
30feec3441SCraig Tatlor		};
31feec3441SCraig Tatlor
3205aa0eb3SKonrad Dybcio		* These OPPs are correct, but we are lacking support for the
3305aa0eb3SKonrad Dybcio		* GPU regulator. Hence, disable them for now to prevent the
3405aa0eb3SKonrad Dybcio		* platform from hanging on high graphics loads.
3505aa0eb3SKonrad Dybcio
3605aa0eb3SKonrad Dybcio		opp-700000000 {
3705aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <700000000>;
3805aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_TURBO>;
3905aa0eb3SKonrad Dybcio			opp-peak-kBps = <5184000>;
4005aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
4105aa0eb3SKonrad Dybcio		};
4205aa0eb3SKonrad Dybcio
4305aa0eb3SKonrad Dybcio		opp-647000000 {
4405aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <647000000>;
4505aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
4605aa0eb3SKonrad Dybcio			opp-peak-kBps = <4068000>;
4705aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
4805aa0eb3SKonrad Dybcio		};
4905aa0eb3SKonrad Dybcio
5005aa0eb3SKonrad Dybcio		opp-588000000 {
5105aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <588000000>;
5205aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_NOM>;
5305aa0eb3SKonrad Dybcio			opp-peak-kBps = <3072000>;
5405aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
5505aa0eb3SKonrad Dybcio		};
5605aa0eb3SKonrad Dybcio
5705aa0eb3SKonrad Dybcio		opp-465000000 {
5805aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <465000000>;
5905aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
6005aa0eb3SKonrad Dybcio			opp-peak-kBps = <2724000>;
6105aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
6205aa0eb3SKonrad Dybcio		};
6305aa0eb3SKonrad Dybcio
6405aa0eb3SKonrad Dybcio		opp-370000000 {
6505aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <370000000>;
6605aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_SVS>;
6705aa0eb3SKonrad Dybcio			opp-peak-kBps = <2188000>;
6805aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
6905aa0eb3SKonrad Dybcio		};
7005aa0eb3SKonrad Dybcio		*/
7105aa0eb3SKonrad Dybcio
7205aa0eb3SKonrad Dybcio		opp-266000000 {
7305aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <266000000>;
7405aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
7505aa0eb3SKonrad Dybcio			opp-peak-kBps = <1648000>;
7605aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
7705aa0eb3SKonrad Dybcio		};
7805aa0eb3SKonrad Dybcio
7905aa0eb3SKonrad Dybcio		opp-160000000 {
8005aa0eb3SKonrad Dybcio			opp-hz = /bits/ 64 <160000000>;
8105aa0eb3SKonrad Dybcio			opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
8205aa0eb3SKonrad Dybcio			opp-peak-kBps = <1200000>;
8305aa0eb3SKonrad Dybcio			opp-supported-hw = <0xFF>;
8405aa0eb3SKonrad Dybcio		};
85feec3441SCraig Tatlor	};
86feec3441SCraig Tatlor};
87feec3441SCraig Tatlor
8805aa0eb3SKonrad Dybcio&CPU0 {
89feec3441SCraig Tatlor	compatible = "qcom,kryo260";
90feec3441SCraig Tatlor	capacity-dmips-mhz = <1024>;
9105aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
92feec3441SCraig Tatlor};
93feec3441SCraig Tatlor
9405aa0eb3SKonrad Dybcio&CPU1 {
95feec3441SCraig Tatlor	compatible = "qcom,kryo260";
96feec3441SCraig Tatlor	capacity-dmips-mhz = <1024>;
9705aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
98feec3441SCraig Tatlor};
99feec3441SCraig Tatlor
10005aa0eb3SKonrad Dybcio&CPU2 {
101feec3441SCraig Tatlor	compatible = "qcom,kryo260";
102feec3441SCraig Tatlor	capacity-dmips-mhz = <1024>;
10305aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
104feec3441SCraig Tatlor};
105feec3441SCraig Tatlor
10605aa0eb3SKonrad Dybcio&CPU3 {
107feec3441SCraig Tatlor	compatible = "qcom,kryo260";
108feec3441SCraig Tatlor	capacity-dmips-mhz = <1024>;
10905aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
110feec3441SCraig Tatlor};
111feec3441SCraig Tatlor
11205aa0eb3SKonrad Dybcio&CPU4 {
113feec3441SCraig Tatlor	compatible = "qcom,kryo260";
114feec3441SCraig Tatlor	capacity-dmips-mhz = <640>;
11505aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
116feec3441SCraig Tatlor};
117feec3441SCraig Tatlor
11805aa0eb3SKonrad Dybcio&CPU5 {
119feec3441SCraig Tatlor	compatible = "qcom,kryo260";
120feec3441SCraig Tatlor	capacity-dmips-mhz = <640>;
12105aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
122feec3441SCraig Tatlor};
123feec3441SCraig Tatlor
12405aa0eb3SKonrad Dybcio&CPU6 {
125feec3441SCraig Tatlor	compatible = "qcom,kryo260";
126feec3441SCraig Tatlor	capacity-dmips-mhz = <640>;
12705aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
128feec3441SCraig Tatlor};
129feec3441SCraig Tatlor
13005aa0eb3SKonrad Dybcio&CPU7 {
131feec3441SCraig Tatlor	compatible = "qcom,kryo260";
132feec3441SCraig Tatlor	capacity-dmips-mhz = <640>;
13305aa0eb3SKonrad Dybcio	/delete-property/ operating-points-v2;
134feec3441SCraig Tatlor};
135feec3441SCraig Tatlor
13605aa0eb3SKonrad Dybcio&gcc {
137feec3441SCraig Tatlor	compatible = "qcom,gcc-sdm660";
138feec3441SCraig Tatlor};
139feec3441SCraig Tatlor
14005aa0eb3SKonrad Dybcio&gpucc {
14105aa0eb3SKonrad Dybcio	compatible = "qcom,gpucc-sdm660";
14205aa0eb3SKonrad Dybcio};
14305aa0eb3SKonrad Dybcio
144ab290284SKonrad Dybcio&mdp {
145ab290284SKonrad Dybcio	ports {
146ab290284SKonrad Dybcio		port@1 {
147ab290284SKonrad Dybcio			reg = <1>;
148ab290284SKonrad Dybcio			mdp5_intf2_out: endpoint {
149ab290284SKonrad Dybcio				remote-endpoint = <&dsi1_in>;
150ab290284SKonrad Dybcio			};
151ab290284SKonrad Dybcio		};
152ab290284SKonrad Dybcio	};
153ab290284SKonrad Dybcio};
154ab290284SKonrad Dybcio
155ab290284SKonrad Dybcio&mdss {
156ab290284SKonrad Dybcio	dsi1: dsi@c996000 {
157ab290284SKonrad Dybcio		compatible = "qcom,mdss-dsi-ctrl";
158ab290284SKonrad Dybcio		reg = <0x0c996000 0x400>;
159ab290284SKonrad Dybcio		reg-names = "dsi_ctrl";
160ab290284SKonrad Dybcio
161ab290284SKonrad Dybcio		/* DSI1 shares the OPP table with DSI0 */
162ab290284SKonrad Dybcio		operating-points-v2 = <&dsi_opp_table>;
163ab290284SKonrad Dybcio		power-domains = <&rpmpd SDM660_VDDCX>;
164ab290284SKonrad Dybcio
165ab290284SKonrad Dybcio		interrupt-parent = <&mdss>;
166*63ddd8a5SDmitry Baryshkov		interrupts = <5>;
167ab290284SKonrad Dybcio
168ab290284SKonrad Dybcio		assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
169ab290284SKonrad Dybcio					<&mmcc PCLK1_CLK_SRC>;
170ab290284SKonrad Dybcio		assigned-clock-parents = <&dsi1_phy 0>,
171ab290284SKonrad Dybcio						<&dsi1_phy 1>;
172ab290284SKonrad Dybcio
173ab290284SKonrad Dybcio		clocks = <&mmcc MDSS_MDP_CLK>,
174ab290284SKonrad Dybcio				<&mmcc MDSS_BYTE1_CLK>,
175ab290284SKonrad Dybcio				<&mmcc MDSS_BYTE1_INTF_CLK>,
176ab290284SKonrad Dybcio				<&mmcc MNOC_AHB_CLK>,
177ab290284SKonrad Dybcio				<&mmcc MDSS_AHB_CLK>,
178ab290284SKonrad Dybcio				<&mmcc MDSS_AXI_CLK>,
179ab290284SKonrad Dybcio				<&mmcc MISC_AHB_CLK>,
180ab290284SKonrad Dybcio				<&mmcc MDSS_PCLK1_CLK>,
181ab290284SKonrad Dybcio				<&mmcc MDSS_ESC1_CLK>;
182ab290284SKonrad Dybcio		clock-names = "mdp_core",
183ab290284SKonrad Dybcio					"byte",
184ab290284SKonrad Dybcio					"byte_intf",
185ab290284SKonrad Dybcio					"mnoc",
186ab290284SKonrad Dybcio					"iface",
187ab290284SKonrad Dybcio					"bus",
188ab290284SKonrad Dybcio					"core_mmss",
189ab290284SKonrad Dybcio					"pixel",
190ab290284SKonrad Dybcio					"core";
191ab290284SKonrad Dybcio
192ab290284SKonrad Dybcio		phys = <&dsi1_phy>;
193ab290284SKonrad Dybcio		phy-names = "dsi";
194ab290284SKonrad Dybcio
195ab290284SKonrad Dybcio		ports {
196ab290284SKonrad Dybcio			#address-cells = <1>;
197ab290284SKonrad Dybcio			#size-cells = <0>;
198ab290284SKonrad Dybcio
199ab290284SKonrad Dybcio			port@0 {
200ab290284SKonrad Dybcio				reg = <0>;
201ab290284SKonrad Dybcio				dsi1_in: endpoint {
202ab290284SKonrad Dybcio					remote-endpoint = <&mdp5_intf2_out>;
203ab290284SKonrad Dybcio				};
204ab290284SKonrad Dybcio			};
205ab290284SKonrad Dybcio
206ab290284SKonrad Dybcio			port@1 {
207ab290284SKonrad Dybcio				reg = <1>;
208ab290284SKonrad Dybcio				dsi1_out: endpoint {
209ab290284SKonrad Dybcio				};
210ab290284SKonrad Dybcio			};
211ab290284SKonrad Dybcio		};
212ab290284SKonrad Dybcio	};
213ab290284SKonrad Dybcio
214ab290284SKonrad Dybcio	dsi1_phy: dsi-phy@c996400 {
215ab290284SKonrad Dybcio		compatible = "qcom,dsi-phy-14nm-660";
216ab290284SKonrad Dybcio		reg = <0x0c996400 0x100>,
217ab290284SKonrad Dybcio				<0x0c996500 0x300>,
218ab290284SKonrad Dybcio				<0x0c996800 0x188>;
219ab290284SKonrad Dybcio		reg-names = "dsi_phy",
220ab290284SKonrad Dybcio				"dsi_phy_lane",
221ab290284SKonrad Dybcio				"dsi_pll";
222ab290284SKonrad Dybcio
223ab290284SKonrad Dybcio		#clock-cells = <1>;
224ab290284SKonrad Dybcio		#phy-cells = <0>;
225ab290284SKonrad Dybcio
226ab290284SKonrad Dybcio		clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
227ab290284SKonrad Dybcio		clock-names = "iface", "ref";
228ab290284SKonrad Dybcio	};
229ab290284SKonrad Dybcio};
230ab290284SKonrad Dybcio
23105aa0eb3SKonrad Dybcio&mmcc {
23205aa0eb3SKonrad Dybcio	compatible = "qcom,mmcc-sdm660";
233ab290284SKonrad Dybcio	clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
234ab290284SKonrad Dybcio			<&sleep_clk>,
235ab290284SKonrad Dybcio			<&gcc GCC_MMSS_GPLL0_CLK>,
236ab290284SKonrad Dybcio			<&gcc GCC_MMSS_GPLL0_DIV_CLK>,
237ab290284SKonrad Dybcio			<&dsi0_phy 1>,
238ab290284SKonrad Dybcio			<&dsi0_phy 0>,
239ab290284SKonrad Dybcio			<&dsi1_phy 1>,
240ab290284SKonrad Dybcio			<&dsi1_phy 0>,
241ab290284SKonrad Dybcio			<0>,
242ab290284SKonrad Dybcio			<0>;
24305aa0eb3SKonrad Dybcio};
24405aa0eb3SKonrad Dybcio
24505aa0eb3SKonrad Dybcio&tlmm {
246feec3441SCraig Tatlor	compatible = "qcom,sdm660-pinctrl";
247feec3441SCraig Tatlor};
248feec3441SCraig Tatlor
24905aa0eb3SKonrad Dybcio&tsens {
25005aa0eb3SKonrad Dybcio	#qcom,sensors = <14>;
251feec3441SCraig Tatlor};
252