summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManikanta Maddireddy <mmaddireddy@nvidia.com>2026-09-23 12:43:20 +0530
committerThierry Reding <treding@nvidia.com>2026-10-02 10:15:20 +0200
commitee0dab4e823de3df0b7c3e1d2d5d7742fa376244 (patch)
treeb334776461a0395c96ac63d80be86c95fce5036e
parent929ca48eb793dc02084314867c31d118e0a4f837 (diff)
arm64: tegra: Use iommus for PCIe endpoint controllers
Tegra PCIe endpoint controllers are platform devices and issue DMA as SoC masters. Attach them directly to the SMMU with an iommus property so the platform device gets an IOMMU fwspec and domain during probe. The endpoint controllers supported by the Tegra194/234 PCIe driver expose a single endpoint function. They do not need iommu-map or iommu-map-mask properties because there is no endpoint function/device ID mapping to express. Those properties also do not attach the endpoint controller platform device itself to the SMMU. Use direct iommus properties for the Tegra194 and Tegra234 PCIe endpoint nodes and remove the unnecessary iommu-map properties from those nodes. Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194.dtsi9
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra234.dtsi12
2 files changed, 7 insertions, 14 deletions
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 7d9319f66d76..43d82841b3cd 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -2600,8 +2600,7 @@
interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE4R &emc>,
<&mc TEGRA194_MEMORY_CLIENT_PCIE4W &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu TEGRA194_SID_PCIE4 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu TEGRA194_SID_PCIE4>;
dma-coherent;
};
@@ -2693,8 +2692,7 @@
interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE0R &emc>,
<&mc TEGRA194_MEMORY_CLIENT_PCIE0W &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu TEGRA194_SID_PCIE0 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu TEGRA194_SID_PCIE0>;
dma-coherent;
};
@@ -2792,8 +2790,7 @@
interconnects = <&mc TEGRA194_MEMORY_CLIENT_PCIE5R &emc>,
<&mc TEGRA194_MEMORY_CLIENT_PCIE5W &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu TEGRA194_SID_PCIE5 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu TEGRA194_SID_PCIE5>;
dma-coherent;
};
diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index 5311245334de..d5ba289612bd 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -4694,8 +4694,7 @@
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE10AR &emc>,
<&mc TEGRA234_MEMORY_CLIENT_PCIE10AW &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu_niso1 TEGRA234_SID_PCIE10 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu_niso1 TEGRA234_SID_PCIE10>;
dma-coherent;
status = "disabled";
@@ -5099,8 +5098,7 @@
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE5R &emc>,
<&mc TEGRA234_MEMORY_CLIENT_PCIE5W &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu_niso0 TEGRA234_SID_PCIE5 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu_niso0 TEGRA234_SID_PCIE5>;
dma-coherent;
status = "disabled";
@@ -5195,8 +5193,7 @@
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE6AR &emc>,
<&mc TEGRA234_MEMORY_CLIENT_PCIE6AW &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu_niso0 TEGRA234_SID_PCIE6 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu_niso0 TEGRA234_SID_PCIE6>;
dma-coherent;
status = "disabled";
@@ -5291,8 +5288,7 @@
interconnects = <&mc TEGRA234_MEMORY_CLIENT_PCIE7AR &emc>,
<&mc TEGRA234_MEMORY_CLIENT_PCIE7AW &emc>;
interconnect-names = "dma-mem", "write";
- iommu-map = <0x0 &smmu_niso1 TEGRA234_SID_PCIE7 0x1000>;
- iommu-map-mask = <0x0>;
+ iommus = <&smmu_niso1 TEGRA234_SID_PCIE7>;
dma-coherent;
status = "disabled";