#include #include &soc { kgsl_smmu: kgsl-smmu@0x59a0000 { status = "okay"; compatible = "qcom,qsmmu-v500"; reg = <0x59a0000 0x10000>, <0x59c2000 0x20>; reg-names = "base", "tcu-base"; #iommu-cells = <2>; qcom,dynamic; qcom,skip-init; qcom,testbus-version = <1>; qcom,no-dynamic-asid; qcom,use-3-lvl-tables; #global-interrupts = <1>; qcom,regulator-names = "vdd"; vdd-supply = <&gpu_cx_gdsc>; clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>, <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>, <&gpucc GPU_CC_AHB_CLK>, <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>; clock-names = "gcc_gpu_memnoc_gfx", "gcc_gpu_snoc_dvm_gfx", "gpu_cc_ahb", "gpu_cc_hlos1_vote_gpu_smmu_clk"; #size-cells = <1>; #address-cells = <1>; ranges; interrupts = , , , , , , , , ; qcom,actlr = /* All CBs of GFX: +15 deep PF */ <0x0 0x3ff 0x30B>; gfx_0_tbu: gfx_0_tbu@0x59c5000 { compatible = "qcom,qsmmuv500-tbu"; reg = <0x59c5000 0x1000>, <0x59c2200 0x8>; reg-names = "base", "status-reg"; qcom,stream-id-range = <0x0 0x400>; }; }; apps_smmu: apps-smmu@0xc600000 { status = "okay"; compatible = "qcom,qsmmu-v500"; reg = <0xc600000 0x80000>, <0xc782000 0x20>; reg-names = "base", "tcu-base"; #iommu-cells = <2>; qcom,skip-init; qcom,use-3-lvl-tables; #global-interrupts = <1>; #size-cells = <1>; #address-cells = <1>; ranges; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; qcom,msm-bus,name = "apps_smmu"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,active-only; qcom,msm-bus,num-paths = <1>; qcom,msm-bus,vectors-KBps = , ; qcom,actlr = /* For rt TBU +3 deep PF */ <0x400 0x3ff 0x103>, /* For nrt TBU +3 deep PF */ <0x800 0x3ff 0x103>; anoc_1_tbu: anoc_1_tbu@0xc785000 { compatible = "qcom,qsmmuv500-tbu"; reg = <0xc785000 0x1000>, <0xc782200 0x8>; reg-names = "base", "status-reg"; qcom,stream-id-range = <0x0 0x400>; qcom,msm-bus,name = "apps_smmu"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,active-only; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = , , , ; }; mm_rt_tbu: mm_rt_tbu@0xc789000 { compatible = "qcom,qsmmuv500-tbu"; reg = <0xc789000 0x1000>, <0xc782208 0x8>; reg-names = "base", "status-reg"; qcom,stream-id-range = <0x400 0x400>; qcom,regulator-names = "vdd"; vdd-supply = <&hlos1_vote_mm_snoc_mmu_tbu_rt_gdsc>; qcom,msm-bus,name = "apps_smmu"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,active-only; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = , , , ; }; mm_nrt_tbu: mm_nrt_tbu@0xc78d000 { compatible = "qcom,qsmmuv500-tbu"; reg = <0xc78d000 0x1000>, <0xc782210 0x8>; reg-names = "base", "status-reg"; qcom,stream-id-range = <0x800 0x400>; qcom,regulator-names = "vdd"; vdd-supply = <&hlos1_vote_mm_snoc_mmu_tbu_nrt_gdsc>; qcom,msm-bus,name = "apps_smmu"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,active-only; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = , , , ; }; cdsp_tbu: cdsp_tbu@0xc791000 { compatible = "qcom,qsmmuv500-tbu"; reg = <0xc791000 0x1000>, <0xc782218 0x8>; reg-names = "base", "status-reg"; qcom,stream-id-range = <0xc00 0x400>; qcom,regulator-names = "vdd"; vdd-supply = <&hlos1_vote_turing_mmu_tbu0_gdsc>; qcom,msm-bus,name = "apps_smmu"; qcom,msm-bus,num-cases = <2>; qcom,msm-bus,active-only; qcom,msm-bus,num-paths = <2>; qcom,msm-bus,vectors-KBps = , , , ; }; }; kgsl_iommu_test_device { compatible = "iommu-debug-test"; qcom,iommu-dma = "disabled"; iommus = <&kgsl_smmu 0x7 0x0>; }; apps_iommu_test_device { compatible = "iommu-debug-test"; qcom,iommu-dma = "disabled"; iommus = <&apps_smmu 0x1e0 0>; }; apps_iommu_coherent_test_device { compatible = "iommu-debug-test"; qcom,iommu-dma = "disabled"; iommus = <&apps_smmu 0x1e1 0>; dma-coherent; }; };