xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sdm660.dtsi (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
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>;
405c9d7772SKonrad 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>;
475c9d7772SKonrad 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>;
545c9d7772SKonrad 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>;
615c9d7772SKonrad 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>;
685c9d7772SKonrad 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>;
765c9d7772SKonrad 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>;
835c9d7772SKonrad 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 {
145d46fbd45SDmitry Baryshkov	compatible = "qcom,sdm660-mdp5", "qcom,mdp5";
146d46fbd45SDmitry Baryshkov
147ab290284SKonrad Dybcio	ports {
148ab290284SKonrad Dybcio		port@1 {
149ab290284SKonrad Dybcio			reg = <1>;
150ab290284SKonrad Dybcio			mdp5_intf2_out: endpoint {
151*8e61d532SDmitry Baryshkov				remote-endpoint = <&mdss_dsi1_in>;
152ab290284SKonrad Dybcio			};
153ab290284SKonrad Dybcio		};
154ab290284SKonrad Dybcio	};
155ab290284SKonrad Dybcio};
156ab290284SKonrad Dybcio
157ab290284SKonrad Dybcio&mdss {
158*8e61d532SDmitry Baryshkov	mdss_dsi1: dsi@c996000 {
1593381020aSBryan O'Donoghue		compatible = "qcom,sdm660-dsi-ctrl",
1603381020aSBryan O'Donoghue			     "qcom,mdss-dsi-ctrl";
161ab290284SKonrad Dybcio		reg = <0x0c996000 0x400>;
162ab290284SKonrad Dybcio		reg-names = "dsi_ctrl";
163ab290284SKonrad Dybcio
164ab290284SKonrad Dybcio		/* DSI1 shares the OPP table with DSI0 */
165ab290284SKonrad Dybcio		operating-points-v2 = <&dsi_opp_table>;
166ab290284SKonrad Dybcio		power-domains = <&rpmpd SDM660_VDDCX>;
167ab290284SKonrad Dybcio
168ab290284SKonrad Dybcio		interrupt-parent = <&mdss>;
16963ddd8a5SDmitry Baryshkov		interrupts = <5>;
170ab290284SKonrad Dybcio
171ab290284SKonrad Dybcio		assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
172ab290284SKonrad Dybcio					<&mmcc PCLK1_CLK_SRC>;
173*8e61d532SDmitry Baryshkov		assigned-clock-parents = <&mdss_dsi1_phy 0>,
174*8e61d532SDmitry Baryshkov						<&mdss_dsi1_phy 1>;
175ab290284SKonrad Dybcio
176ab290284SKonrad Dybcio		clocks = <&mmcc MDSS_MDP_CLK>,
177ab290284SKonrad Dybcio				<&mmcc MDSS_BYTE1_CLK>,
178ab290284SKonrad Dybcio				<&mmcc MDSS_BYTE1_INTF_CLK>,
179ab290284SKonrad Dybcio				<&mmcc MNOC_AHB_CLK>,
180ab290284SKonrad Dybcio				<&mmcc MDSS_AHB_CLK>,
181ab290284SKonrad Dybcio				<&mmcc MDSS_AXI_CLK>,
182ab290284SKonrad Dybcio				<&mmcc MISC_AHB_CLK>,
183ab290284SKonrad Dybcio				<&mmcc MDSS_PCLK1_CLK>,
184ab290284SKonrad Dybcio				<&mmcc MDSS_ESC1_CLK>;
185ab290284SKonrad Dybcio		clock-names = "mdp_core",
186ab290284SKonrad Dybcio					"byte",
187ab290284SKonrad Dybcio					"byte_intf",
188ab290284SKonrad Dybcio					"mnoc",
189ab290284SKonrad Dybcio					"iface",
190ab290284SKonrad Dybcio					"bus",
191ab290284SKonrad Dybcio					"core_mmss",
192ab290284SKonrad Dybcio					"pixel",
193ab290284SKonrad Dybcio					"core";
194ab290284SKonrad Dybcio
195*8e61d532SDmitry Baryshkov		phys = <&mdss_dsi1_phy>;
196ab290284SKonrad Dybcio
1977d8ee8e5SDmitry Baryshkov		status = "disabled";
1987d8ee8e5SDmitry Baryshkov
199ab290284SKonrad Dybcio		ports {
200ab290284SKonrad Dybcio			#address-cells = <1>;
201ab290284SKonrad Dybcio			#size-cells = <0>;
202ab290284SKonrad Dybcio
203ab290284SKonrad Dybcio			port@0 {
204ab290284SKonrad Dybcio				reg = <0>;
205*8e61d532SDmitry Baryshkov				mdss_dsi1_in: endpoint {
206ab290284SKonrad Dybcio					remote-endpoint = <&mdp5_intf2_out>;
207ab290284SKonrad Dybcio				};
208ab290284SKonrad Dybcio			};
209ab290284SKonrad Dybcio
210ab290284SKonrad Dybcio			port@1 {
211ab290284SKonrad Dybcio				reg = <1>;
212*8e61d532SDmitry Baryshkov				mdss_dsi1_out: endpoint {
213ab290284SKonrad Dybcio				};
214ab290284SKonrad Dybcio			};
215ab290284SKonrad Dybcio		};
216ab290284SKonrad Dybcio	};
217ab290284SKonrad Dybcio
218*8e61d532SDmitry Baryshkov	mdss_dsi1_phy: phy@c996400 {
219ab290284SKonrad Dybcio		compatible = "qcom,dsi-phy-14nm-660";
220ab290284SKonrad Dybcio		reg = <0x0c996400 0x100>,
221ab290284SKonrad Dybcio				<0x0c996500 0x300>,
222ab290284SKonrad Dybcio				<0x0c996800 0x188>;
223ab290284SKonrad Dybcio		reg-names = "dsi_phy",
224ab290284SKonrad Dybcio				"dsi_phy_lane",
225ab290284SKonrad Dybcio				"dsi_pll";
226ab290284SKonrad Dybcio
227ab290284SKonrad Dybcio		#clock-cells = <1>;
228ab290284SKonrad Dybcio		#phy-cells = <0>;
229ab290284SKonrad Dybcio
230ab290284SKonrad Dybcio		clocks = <&mmcc MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
231ab290284SKonrad Dybcio		clock-names = "iface", "ref";
2327d8ee8e5SDmitry Baryshkov		status = "disabled";
233ab290284SKonrad Dybcio	};
234ab290284SKonrad Dybcio};
235ab290284SKonrad Dybcio
23605aa0eb3SKonrad Dybcio&mmcc {
23705aa0eb3SKonrad Dybcio	compatible = "qcom,mmcc-sdm660";
238ab290284SKonrad Dybcio	clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
239ab290284SKonrad Dybcio			<&sleep_clk>,
240ab290284SKonrad Dybcio			<&gcc GCC_MMSS_GPLL0_CLK>,
241ab290284SKonrad Dybcio			<&gcc GCC_MMSS_GPLL0_DIV_CLK>,
242*8e61d532SDmitry Baryshkov			<&mdss_dsi0_phy 1>,
243*8e61d532SDmitry Baryshkov			<&mdss_dsi0_phy 0>,
244*8e61d532SDmitry Baryshkov			<&mdss_dsi1_phy 1>,
245*8e61d532SDmitry Baryshkov			<&mdss_dsi1_phy 0>,
246ab290284SKonrad Dybcio			<0>,
247ab290284SKonrad Dybcio			<0>;
24805aa0eb3SKonrad Dybcio};
24905aa0eb3SKonrad Dybcio
25005aa0eb3SKonrad Dybcio&tlmm {
251feec3441SCraig Tatlor	compatible = "qcom,sdm660-pinctrl";
252feec3441SCraig Tatlor};
253feec3441SCraig Tatlor
25405aa0eb3SKonrad Dybcio&tsens {
25505aa0eb3SKonrad Dybcio	#qcom,sensors = <14>;
256feec3441SCraig Tatlor};
257