Skip to content

Commit f30ac26

Browse files
fltoandersson
authored andcommitted
arm64: dts: qcom: add sm8150 GPU nodes
This brings up the GPU. Tested on HDK855 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 87b517a commit f30ac26

File tree

1 file changed

+135
-0
lines changed

1 file changed

+135
-0
lines changed

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

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,141 @@
547547
};
548548
};
549549

550+
gpu: gpu@2c00000 {
551+
/*
552+
* note: the amd,imageon compatible makes it possible
553+
* to use the drm/msm driver without the display node,
554+
* make sure to remove it when display node is added
555+
*/
556+
compatible = "qcom,adreno-640.1",
557+
"qcom,adreno",
558+
"amd,imageon";
559+
#stream-id-cells = <16>;
560+
561+
reg = <0 0x02c00000 0 0x40000>;
562+
reg-names = "kgsl_3d0_reg_memory";
563+
564+
interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
565+
566+
iommus = <&adreno_smmu 0 0x401>;
567+
568+
operating-points-v2 = <&gpu_opp_table>;
569+
570+
qcom,gmu = <&gmu>;
571+
572+
zap-shader {
573+
memory-region = <&gpu_mem>;
574+
};
575+
576+
/* note: downstream checks gpu binning for 675 Mhz */
577+
gpu_opp_table: opp-table {
578+
compatible = "operating-points-v2";
579+
580+
opp-675000000 {
581+
opp-hz = /bits/ 64 <675000000>;
582+
opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
583+
};
584+
585+
opp-585000000 {
586+
opp-hz = /bits/ 64 <585000000>;
587+
opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
588+
};
589+
590+
opp-499200000 {
591+
opp-hz = /bits/ 64 <499200000>;
592+
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
593+
};
594+
595+
opp-427000000 {
596+
opp-hz = /bits/ 64 <427000000>;
597+
opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
598+
};
599+
600+
opp-345000000 {
601+
opp-hz = /bits/ 64 <345000000>;
602+
opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
603+
};
604+
605+
opp-257000000 {
606+
opp-hz = /bits/ 64 <257000000>;
607+
opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
608+
};
609+
};
610+
};
611+
612+
gmu: gmu@2c6a000 {
613+
compatible="qcom,adreno-gmu-640.1", "qcom,adreno-gmu";
614+
615+
reg = <0 0x02c6a000 0 0x30000>,
616+
<0 0x0b290000 0 0x10000>,
617+
<0 0x0b490000 0 0x10000>;
618+
reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
619+
620+
interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
621+
<GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
622+
interrupt-names = "hfi", "gmu";
623+
624+
clocks = <&gpucc 0>,
625+
<&gpucc 3>,
626+
<&gpucc 6>,
627+
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
628+
<&gcc GCC_GPU_MEMNOC_GFX_CLK>;
629+
clock-names = "ahb", "gmu", "cxo", "axi", "memnoc";
630+
631+
power-domains = <&gpucc 0>,
632+
<&gpucc 1>;
633+
power-domain-names = "cx", "gx";
634+
635+
iommus = <&adreno_smmu 5 0x400>;
636+
637+
operating-points-v2 = <&gmu_opp_table>;
638+
639+
gmu_opp_table: opp-table {
640+
compatible = "operating-points-v2";
641+
642+
opp-200000000 {
643+
opp-hz = /bits/ 64 <200000000>;
644+
opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
645+
};
646+
};
647+
};
648+
649+
gpucc: clock-controller@2c90000 {
650+
compatible = "qcom,sm8150-gpucc";
651+
reg = <0 0x02c90000 0 0x9000>;
652+
clocks = <&rpmhcc RPMH_CXO_CLK>,
653+
<&gcc GCC_GPU_GPLL0_CLK_SRC>,
654+
<&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
655+
clock-names = "bi_tcxo",
656+
"gcc_gpu_gpll0_clk_src",
657+
"gcc_gpu_gpll0_div_clk_src";
658+
#clock-cells = <1>;
659+
#reset-cells = <1>;
660+
#power-domain-cells = <1>;
661+
};
662+
663+
adreno_smmu: iommu@2ca0000 {
664+
compatible = "qcom,sm8150-smmu-500", "arm,mmu-500";
665+
reg = <0 0x02ca0000 0 0x10000>;
666+
#iommu-cells = <2>;
667+
#global-interrupts = <1>;
668+
interrupts = <GIC_SPI 674 IRQ_TYPE_LEVEL_HIGH>,
669+
<GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
670+
<GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
671+
<GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
672+
<GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
673+
<GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
674+
<GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
675+
<GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
676+
<GIC_SPI 688 IRQ_TYPE_LEVEL_HIGH>;
677+
clocks = <&gpucc 0>,
678+
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
679+
<&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
680+
clock-names = "ahb", "bus", "iface";
681+
682+
power-domains = <&gpucc 0>;
683+
};
684+
550685
tlmm: pinctrl@3100000 {
551686
compatible = "qcom,sm8150-pinctrl";
552687
reg = <0x0 0x03100000 0x0 0x300000>,

0 commit comments

Comments
 (0)