Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@
status = "okay";
};

&gpu {
status = "okay";
};

&gpu_zap_shader {
firmware-name = "qcom/shikra/a704_zap.mbn";
};

&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";

Expand Down
8 changes: 8 additions & 0 deletions arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,14 @@
status = "okay";
};

&gpu {
status = "okay";
};

&gpu_zap_shader {
firmware-name = "qcom/shikra/a704_zap.mbn";
};

&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";

Expand Down
8 changes: 8 additions & 0 deletions arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@
};
};

&gpu {
status = "okay";
};

&gpu_zap_shader {
firmware-name = "qcom/shikra/a704_zap.mbn";
};

&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";

Expand Down
143 changes: 142 additions & 1 deletion arch/arm64/boot/dts/qcom/shikra.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -2232,6 +2232,104 @@
};
};

gpu: gpu@5900000 {
compatible = "qcom,adreno-07000400", "qcom,adreno";
reg = <0x0 0x05900000 0x0 0x40000>,
<0x0 0x0599e000 0x0 0x1000>,
<0x0 0x05961000 0x0 0x800>;
reg-names = "kgsl_3d0_reg_memory",
"cx_mem",
"cx_dbgc";

interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
<&gpucc GPU_CC_AHB_CLK>,
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
<&gpucc GPU_CC_CX_GMU_CLK>,
<&gpucc GPU_CC_CXO_CLK>;
clock-names = "core",
"iface",
"mem_iface",
"alt_mem_iface",
"gmu",
"xo";

interconnects = <&mem_noc MASTER_GRAPHICS_3D RPM_ALWAYS_TAG
&mc_virt SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
interconnect-names = "gfx-mem";

iommus = <&adreno_smmu 0 1>;
operating-points-v2 = <&gpu_opp_table>;
power-domains = <&rpmpd QCM2290_VDDCX>;
qcom,gmu = <&gmu_wrapper>;

#cooling-cells = <2>;

status = "disabled";

gpu_zap_shader: zap-shader {
memory-region = <&gpu_micro_code_mem>;
};

gpu_opp_table: opp-table {
compatible = "operating-points-v2";

opp-1142400000 {
opp-hz = /bits/ 64 <1142400000>;
required-opps = <&rpmpd_opp_turbo_plus>;
opp-peak-kBps = <8171875>;
};

opp-1017600000 {
opp-hz = /bits/ 64 <1017600000>;
required-opps = <&rpmpd_opp_turbo>;
opp-peak-kBps = <8171875>;
};

opp-921600000 {
opp-hz = /bits/ 64 <921600000>;
required-opps = <&rpmpd_opp_nom_plus>;
opp-peak-kBps = <7046875>;
};

opp-844800000 {
opp-hz = /bits/ 64 <844800000>;
required-opps = <&rpmpd_opp_nom>;
opp-peak-kBps = <6074218>;
};

opp-672000000 {
opp-hz = /bits/ 64 <672000000>;
required-opps = <&rpmpd_opp_svs_plus>;
opp-peak-kBps = <5285156>;
};

opp-537600000 {
opp-hz = /bits/ 64 <537600000>;
required-opps = <&rpmpd_opp_svs>;
opp-peak-kBps = <3972656>;
};

opp-355200000 {
opp-hz = /bits/ 64 <355200000>;
required-opps = <&rpmpd_opp_low_svs>;
opp-peak-kBps = <2136718>;
};
};
};

gmu_wrapper: gmu@596a000 {
compatible = "qcom,adreno-gmu-wrapper";
reg = <0x0 0x0596a000 0x0 0x30000>;
reg-names = "gmu";
power-domains = <&gpucc GPU_CX_GDSC>,
<&gpucc GPU_GX_GDSC>;
power-domain-names = "cx",
"gx";
};

gpucc: clock-controller@5990000 {
compatible = "qcom,shikra-gpucc";
reg = <0x0 0x05990000 0x0 0x9000>;
Expand All @@ -2245,6 +2343,35 @@
#power-domain-cells = <1>;
};

adreno_smmu: iommu@59a0000 {
compatible = "qcom,shikra-smmu-500", "qcom,adreno-smmu",
"qcom,smmu-500", "arm,mmu-500";
reg = <0x0 0x059a0000 0x0 0x10000>;
#iommu-cells = <2>;
#global-interrupts = <1>;

interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH 0>,
<GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH 0>;

clocks = <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
<&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
<&gpucc GPU_CC_AHB_CLK>;
clock-names = "hlos",
"mem",
"iface",
"ahb";

power-domains = <&gpucc GPU_CX_GDSC>;
};

dispcc: clock-controller@5f00000 {
compatible = "qcom,shikra-dispcc", "qcom,qcm2290-dispcc";
reg = <0x0 0x05f00000 0x0 0x20000>;
Expand Down Expand Up @@ -2634,6 +2761,7 @@
};

gpuss-thermal {
polling-delay-passive = <10>;
thermal-sensors = <&tsens0 6>;

trips {
Expand All @@ -2643,12 +2771,25 @@
type = "hot";
};

gpuss-critical {
gpuss_alert0: gpuss-alert0 {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};

gpuss-critical {
temperature = <120000>;
hysteresis = <0>;
type = "critical";
};
};

cooling-maps {
map0 {
trip = <&gpuss_alert0>;
cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
};

nsp-thermal {
Expand Down