Skip to content

Commit 04a3605

Browse files
fltoandersson
authored andcommitted
arm64: dts: qcom: add sm8250 GPU nodes
This brings up the GPU. Tested on HDK865 by running vulkan CTS. Signed-off-by: Jonathan Marek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent f30ac26 commit 04a3605

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

arch/arm64/boot/dts/qcom/sm8250.dtsi

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,6 +1047,148 @@
10471047
#hwlock-cells = <1>;
10481048
};
10491049

1050+
gpu: gpu@3d00000 {
1051+
/*
1052+
* note: the amd,imageon compatible makes it possible
1053+
* to use the drm/msm driver without the display node,
1054+
* make sure to remove it when display node is added
1055+
*/
1056+
compatible = "qcom,adreno-650.2",
1057+
"qcom,adreno",
1058+
"amd,imageon";
1059+
#stream-id-cells = <16>;
1060+
1061+
reg = <0 0x03d00000 0 0x40000>;
1062+
reg-names = "kgsl_3d0_reg_memory";
1063+
1064+
interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1065+
1066+
iommus = <&adreno_smmu 0 0x401>;
1067+
1068+
operating-points-v2 = <&gpu_opp_table>;
1069+
1070+
qcom,gmu = <&gmu>;
1071+
1072+
zap-shader {
1073+
memory-region = <&gpu_mem>;
1074+
};
1075+
1076+
/* note: downstream checks gpu binning for 670 Mhz */
1077+
gpu_opp_table: opp-table {
1078+
compatible = "operating-points-v2";
1079+
1080+
opp-670000000 {
1081+
opp-hz = /bits/ 64 <670000000>;
1082+
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1083+
};
1084+
1085+
opp-587000000 {
1086+
opp-hz = /bits/ 64 <587000000>;
1087+
opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1088+
};
1089+
1090+
opp-525000000 {
1091+
opp-hz = /bits/ 64 <525000000>;
1092+
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
1093+
};
1094+
1095+
opp-490000000 {
1096+
opp-hz = /bits/ 64 <490000000>;
1097+
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1098+
};
1099+
1100+
opp-441600000 {
1101+
opp-hz = /bits/ 64 <441600000>;
1102+
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
1103+
};
1104+
1105+
opp-400000000 {
1106+
opp-hz = /bits/ 64 <400000000>;
1107+
opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1108+
};
1109+
1110+
opp-305000000 {
1111+
opp-hz = /bits/ 64 <305000000>;
1112+
opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1113+
};
1114+
};
1115+
};
1116+
1117+
gmu: gmu@3d6a000 {
1118+
compatible="qcom,adreno-gmu-650.2", "qcom,adreno-gmu";
1119+
1120+
reg = <0 0x03d6a000 0 0x30000>,
1121+
<0 0x3de0000 0 0x10000>,
1122+
<0 0xb290000 0 0x10000>,
1123+
<0 0xb490000 0 0x10000>;
1124+
reg-names = "gmu", "rscc", "gmu_pdc", "gmu_pdc_seq";
1125+
1126+
interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
1127+
<GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
1128+
interrupt-names = "hfi", "gmu";
1129+
1130+
clocks = <&gpucc 0>,
1131+
<&gpucc 3>,
1132+
<&gpucc 6>,
1133+
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
1134+
<&gcc GCC_GPU_MEMNOC_GFX_CLK>;
1135+
clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
1136+
1137+
power-domains = <&gpucc 0>,
1138+
<&gpucc 1>;
1139+
power-domain-names = "cx", "gx";
1140+
1141+
iommus = <&adreno_smmu 5 0x400>;
1142+
1143+
operating-points-v2 = <&gmu_opp_table>;
1144+
1145+
gmu_opp_table: opp-table {
1146+
compatible = "operating-points-v2";
1147+
1148+
opp-200000000 {
1149+
opp-hz = /bits/ 64 <200000000>;
1150+
opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1151+
};
1152+
};
1153+
};
1154+
1155+
gpucc: clock-controller@3d90000 {
1156+
compatible = "qcom,sm8250-gpucc";
1157+
reg = <0 0x03d90000 0 0x9000>;
1158+
clocks = <&rpmhcc RPMH_CXO_CLK>,
1159+
<&gcc GCC_GPU_GPLL0_CLK_SRC>,
1160+
<&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
1161+
clock-names = "bi_tcxo",
1162+
"gcc_gpu_gpll0_clk_src",
1163+
"gcc_gpu_gpll0_div_clk_src";
1164+
#clock-cells = <1>;
1165+
#reset-cells = <1>;
1166+
#power-domain-cells = <1>;
1167+
};
1168+
1169+
adreno_smmu: iommu@3da0000 {
1170+
compatible = "qcom,sm8250-smmu-500", "arm,mmu-500";
1171+
reg = <0 0x03da0000 0 0x10000>;
1172+
#iommu-cells = <2>;
1173+
#global-interrupts = <2>;
1174+
interrupts = <GIC_SPI 672 IRQ_TYPE_LEVEL_HIGH>,
1175+
<GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
1176+
<GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
1177+
<GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
1178+
<GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
1179+
<GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
1180+
<GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
1181+
<GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
1182+
<GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
1183+
<GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>;
1184+
clocks = <&gpucc 0>,
1185+
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1186+
<&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
1187+
clock-names = "ahb", "bus", "iface";
1188+
1189+
power-domains = <&gpucc 0>;
1190+
};
1191+
10501192
slpi: remoteproc@5c00000 {
10511193
compatible = "qcom,sm8250-slpi-pas";
10521194
reg = <0 0x05c00000 0 0x4000>;

0 commit comments

Comments
 (0)