diff --git a/qcom/lemans.dtsi b/qcom/lemans.dtsi index d7ad13cf..1d366d21 100644 --- a/qcom/lemans.dtsi +++ b/qcom/lemans.dtsi @@ -959,6 +959,8 @@ #include "lemans-4pmic-regulators.dtsi" #include "lemans-gdsc.dtsi" +#include "lemans-pinctrl.dtsi" +#include "msm-arm-smmu-lemans.dtsi" &cam_cc_titan_top_gdsc { clocks = <&gcc GCC_CAMERA_AHB_CLK>; @@ -1115,5 +1117,4 @@ status = "ok"; }; -#include "lemans-pinctrl.dtsi" #include "lemans-debug.dtsi" diff --git a/qcom/msm-arm-smmu-lemans.dtsi b/qcom/msm-arm-smmu-lemans.dtsi new file mode 100644 index 00000000..e3487485 --- /dev/null +++ b/qcom/msm-arm-smmu-lemans.dtsi @@ -0,0 +1,311 @@ +#include + +&soc { + apps_smmu: apps-smmu@15000000 { + compatible = "qcom,qsmmu-v500"; + reg = <0x15000000 0x100000>, + <0x15182000 0x28>; + reg-names = "base", "tcu-base"; + #iommu-cells = <2>; + qcom,skip-init; + qcom,use-3-lvl-tables; + #global-interrupts = <2>; + #size-cells = <1>; + #address-cells = <1>; + ranges; + + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + + anoc_1_tbu: anoc_1_tbu@15189000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x15189000 0x1000>, + <0x15182200 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x0 0x400>; + qcom,iova-width = <36>; + }; + + anoc_2_tbu: anoc_2_tbu@15191000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x15191000 0x1000>, + <0x15182208 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x400 0x400>; + qcom,iova-width = <36>; + }; + + mnoc_sf_0_tbu: mnoc_sf_0_tbu@15199000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x15199000 0x1000>, + <0x15182210 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x800 0x400>; + qcom,iova-width = <36>; + }; + + mnoc_sf_1_tbu: mnoc_sf_1_tbu@0x151a1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151A1000 0x1000>, + <0x15182218 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0xC00 0x400>; + qcom,iova-width = <36>; + }; + + mdp_00_tbu: mdp_00_tbu@0x151a9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151A9000 0x1000>, + <0x15182220 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x1000 0x400>; + qcom,iova-width = <32>; + }; + + mdp_01_tbu: mdp_01_tbu@0x151b1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151B1000 0x1000>, + <0x15182228 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x1400 0x400>; + qcom,iova-width = <32>; + }; + + mdp_10_tbu: mdp_10_tbu@0x151b9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151B9000 0x1000>, + <0x15182230 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x1800 0x400>; + qcom,iova-width = <32>; + }; + + mdp_11_tbu: mdp_11_tbu@151c1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151C1000 0x1000>, + < 0x15182238 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x1C00 0x400>; + qcom,iova-width = <32>; + }; + + nsp_00_tbu: nsp_00_tbu@151c9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151C9000 0x1000>, + < 0x15182240 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x2000 0x400>; + qcom,iova-width = <32>; + }; + + nsp_01_tbu: nsp_01_tbu@151d1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151D1000 0x1000>, + < 0x15182248 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x2400 0x400>; + qcom,iova-width = <32>; + }; + + nsp_10_tbu: nsp_10_tbu@151d9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151D9000 0x1000>, + < 0x15182250 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x2800 0x400>; + qcom,iova-width = <32>; + }; + + nsp_11_tbu: nsp_11_tbu@151e1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151E1000 0x1000>, + < 0x15182258 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x2C00 0x400>; + qcom,iova-width = <32>; + }; + + lpass_tbu: lpass_tbu@151e9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151E9000 0x1000>, + < 0x15182260 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x3000 0x400>; + qcom,iova-width = <32>; + }; + + cam_tbu: cam_tbu@151f1000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151F1000 0x1000>, + < 0x15182268 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x3400 0x400>; + qcom,iova-width = <32>; + }; + + gpdsp_sail_ss_tbu: gpdsp_sail_ss_tbu@151f9000 { + compatible = "qcom,qsmmuv500-tbu"; + reg = <0x151F9000 0x1000>, + < 0x15182270 0x8>; + reg-names = "base", "status-reg"; + qcom,stream-id-range = <0x3800 0x400>; + qcom,iova-width = <32>; + }; + }; + + iommu_test_device { + + compatible = "qcom,iommu-debug-test"; + + usecase0_apps { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&apps_smmu 0x580 0>; + }; + + usecase1_apps_fastmap { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&apps_smmu 0x580 0>; + qcom,iommu-dma = "fastmap"; + }; + + usecase2_apps_atomic { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&apps_smmu 0x580 0>; + qcom,iommu-dma = "atomic"; + }; + + usecase3_apps_dma { + compatible = "qcom,iommu-debug-usecase"; + iommus = <&apps_smmu 0x581 0>; + dma-coherent; + }; + }; +};