mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-09 16:41:16 +00:00
arm64: dts: qcom: msm8998: Configure Adreno GPU and related IOMMU
The MSM8998 SoC includes an Adreno 540.1 GPU, with a maximum frequency of 710MHz. This GPU may or may not accept a ZAP shader, depending on platform configuration, so adding a zap-shader node is left to the board DT. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Link: https://lore.kernel.org/r/20210901183123.1087392-5-angelogioacchino.delregno@somainline.org
This commit is contained in:
parent
94117eb172
commit
87cd46d68a
@ -1424,6 +1424,103 @@ glink-edge {
|
||||
};
|
||||
};
|
||||
|
||||
adreno_gpu: gpu@5000000 {
|
||||
compatible = "qcom,adreno-540.1", "qcom,adreno";
|
||||
reg = <0x05000000 0x40000>;
|
||||
reg-names = "kgsl_3d0_reg_memory";
|
||||
|
||||
clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
|
||||
<&gpucc RBBMTIMER_CLK>,
|
||||
<&gcc GCC_BIMC_GFX_CLK>,
|
||||
<&gcc GCC_GPU_BIMC_GFX_CLK>,
|
||||
<&gpucc RBCPR_CLK>,
|
||||
<&gpucc GFX3D_CLK>;
|
||||
clock-names = "iface",
|
||||
"rbbmtimer",
|
||||
"mem",
|
||||
"mem_iface",
|
||||
"rbcpr",
|
||||
"core";
|
||||
|
||||
interrupts = <0 300 IRQ_TYPE_LEVEL_HIGH>;
|
||||
iommus = <&adreno_smmu 0>;
|
||||
operating-points-v2 = <&gpu_opp_table>;
|
||||
power-domains = <&rpmpd MSM8998_VDDMX>;
|
||||
#stream-id-cells = <16>;
|
||||
status = "disabled";
|
||||
|
||||
gpu_opp_table: opp-table {
|
||||
compatible = "operating-points-v2";
|
||||
opp-710000097 {
|
||||
opp-hz = /bits/ 64 <710000097>;
|
||||
opp-level = <RPM_SMD_LEVEL_TURBO>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-670000048 {
|
||||
opp-hz = /bits/ 64 <670000048>;
|
||||
opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-596000097 {
|
||||
opp-hz = /bits/ 64 <596000097>;
|
||||
opp-level = <RPM_SMD_LEVEL_NOM>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-515000097 {
|
||||
opp-hz = /bits/ 64 <515000097>;
|
||||
opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-414000000 {
|
||||
opp-hz = /bits/ 64 <414000000>;
|
||||
opp-level = <RPM_SMD_LEVEL_SVS>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-342000000 {
|
||||
opp-hz = /bits/ 64 <342000000>;
|
||||
opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
|
||||
opp-257000000 {
|
||||
opp-hz = /bits/ 64 <257000000>;
|
||||
opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
|
||||
opp-supported-hw = <0xFF>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
adreno_smmu: iommu@5040000 {
|
||||
compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
|
||||
reg = <0x05040000 0x10000>;
|
||||
clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
|
||||
<&gcc GCC_BIMC_GFX_CLK>,
|
||||
<&gcc GCC_GPU_BIMC_GFX_CLK>;
|
||||
clock-names = "iface", "mem", "mem_iface";
|
||||
|
||||
#global-interrupts = <0>;
|
||||
#iommu-cells = <1>;
|
||||
interrupts =
|
||||
<GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
|
||||
/*
|
||||
* GPU-GX GDSC's parent is GPU-CX. We need to bring up the
|
||||
* GPU-CX for SMMU but we need both of them up for Adreno.
|
||||
* Contemporarily, we also need to manage the VDDMX rpmpd
|
||||
* domain in the Adreno driver.
|
||||
* Enable GPU CX/GX GDSCs here so that we can manage the
|
||||
* SoC VDDMX RPM Power Domain in the Adreno driver.
|
||||
*/
|
||||
power-domains = <&gpucc GPU_GX_GDSC>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gpucc: clock-controller@5065000 {
|
||||
compatible = "qcom,msm8998-gpucc";
|
||||
#clock-cells = <1>;
|
||||
|
Loading…
Reference in New Issue
Block a user