diff --git a/qcom/msm-arm-smmu-lemans.dtsi b/qcom/msm-arm-smmu-lemans.dtsi index baba59ab..488884d9 100644 --- a/qcom/msm-arm-smmu-lemans.dtsi +++ b/qcom/msm-arm-smmu-lemans.dtsi @@ -281,6 +281,107 @@ }; }; + pcie_smmu: pcie-smmu@0x15200000 { + compatible = "qcom,qsmmu-v500"; + reg = <0x15200000 0x80000>, + <0x152F2000 0x28>; + reg-names = "base", "tcu-base"; + #iommu-cells = <2>; + qcom,skip-init; + qcom,use-3-lvl-tables; + qcom,split-tables; + #global-interrupts = <2>; + #size-cells = <1>; + #address-cells = <1>; + #tcu-testbus-version = <1>; + ranges; + + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + + pcie_0_tbu: pcie_0_tbu@152f9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x152F9000 0x1000>, + <0x152F2200 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x0 0x400>; + qcom,iova-width = <36>; + }; + + pcie_1_tbu: pcie_1_tbu@152fb000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x152FB000 0x1000>, + <0x152F3200 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x400 0x400>; + qcom,iova-width = <36>; + }; + }; + kgsl_smmu: kgsl-smmu@3da0000 { compatible = "qcom,qsmmu-v500"; reg = <0x3da0000 0x20000>, @@ -393,6 +494,29 @@ dma-coherent; }; + usecase0_pcie { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&pcie_smmu 0x440 0x0>; + }; + + usecase1_pcie_fastmap { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&pcie_smmu 0x440 0x0>; + qcom,iommu-dma = "fastmap"; + }; + + usecase2_pcie_atomic { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&pcie_smmu 0x440 0x0>; + qcom,iommu-dma = "atomic"; + }; + + usecase3_pcie_dma { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&pcie_smmu 0x440 0x0>; + dma-coherent; + }; + usecase0_kgsl { compatible = "qcom,iommu-debug-usecase"; iommus = <&kgsl_smmu 0x7 0xC00>;