From c8eb778ac9b6d614d096c119c82c5b647d120078 Mon Sep 17 00:00:00 2001 From: Bibek Kumar Patro Date: Thu, 6 Aug 2026 12:26:24 +0530 Subject: [PATCH] arm64: dts: qcom: nord: Add adreno and PCIe SMMU nodes Add the Adreno GPU SMMMUs (MMU-500) for both GPU instances and the PCIe SMMU (SMMUv3) nodes. Wire up the gpucc clock and power domain on both adreno SMMU nodes in nord-embedded.dtsi for embedded Nord variants where gpucc is available. Change-Id: I5ca3ccace0b109aedad82879af5d5956155df422 Signed-off-by: Bibek Kumar Patro --- arch/arm64/boot/dts/qcom/nord-embedded.dtsi | 12 +++ arch/arm64/boot/dts/qcom/nord.dtsi | 86 ++++++++++++++++++++- 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi index ad2596806a6e2..010080e8d04fb 100644 --- a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi +++ b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi @@ -2228,3 +2228,15 @@ maximum-speed = "high-speed"; qcom,select-utmi-as-pipe-clk; }; + +&adreno_smmu_0 { + clocks = <&gpucc GPU_CC_GPU_SMMU_VOTE_CLK>; + clock-names = "hlos"; + power-domains = <&gpucc GPU_CC_CX_GDSC>; +}; + +&adreno_smmu_1 { + clocks = <&gpucc GPU_CC_GPU_SMMU_VOTE_CLK>; + clock-names = "hlos"; + power-domains = <&gpucc GPU_CC_CX_GDSC>; +}; diff --git a/arch/arm64/boot/dts/qcom/nord.dtsi b/arch/arm64/boot/dts/qcom/nord.dtsi index 34393c63a4c0e..a152bc5641c70 100644 --- a/arch/arm64/boot/dts/qcom/nord.dtsi +++ b/arch/arm64/boot/dts/qcom/nord.dtsi @@ -2223,7 +2223,6 @@ reg = <0x0 0x15e00000 0x0 0x100000>; #iommu-cells = <2>; #global-interrupts = <1>; - dma-coherent; interrupts = , , , @@ -2321,6 +2320,91 @@ , , ; + dma-coherent; + }; + + adreno_smmu_0: iommu@3da0000 { + compatible = "qcom,nord-smmu-500", "qcom,adreno-smmu", + "qcom,smmu-500", "arm,mmu-500"; + reg = <0x0 0x03da0000 0x0 0x40000>; + #iommu-cells = <2>; + #global-interrupts = <1>; + dma-coherent; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + + power-domains = <&scmi15_pd 0>; + power-domain-names = "power"; + }; + + adreno_smmu_1: iommu@98a0000 { + compatible = "qcom,nord-smmu-500", "qcom,adreno-smmu", + "qcom,smmu-500", "arm,mmu-500"; + reg = <0x0 0x098a0000 0x0 0x40000>; + #iommu-cells = <2>; + #global-interrupts = <1>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + dma-coherent; + }; + + pcie_smmu: iommu@9980000 { + compatible = "arm,smmu-v3"; + reg = <0x0 0x9980000 0x0 0x20000>; + interrupts = , + , + ; + interrupt-names = "eventq", "cmdq-sync", "gerror"; + dma-coherent; + #iommu-cells = <1>; }; intc: interrupt-controller@17000000 {