/* Copyright (c) 2015, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include #include &soc { anoc1_smmu: arm,smmu-anoc1@1680000 { status = "ok"; compatible = "qcom,smmu-v2"; reg = <0x1680000 0x10000>; #iommu-cells = <1>; qcom,register-save; qcom,skip-init; #global-interrupts = <2>; interrupts = , , , , , , , , , ; clocks = <&clock_gcc clk_aggre1_noc_clk>; clock-names = "smmu_aggre1_noc_clk"; #clock-cells = <1>; }; anoc2_smmu: arm,smmu-anoc2@16c0000 { status = "ok"; compatible = "qcom,smmu-v2"; reg = <0x16c0000 0x40000>; #iommu-cells = <1>; qcom,register-save; qcom,skip-init; #global-interrupts = <2>; interrupts = , , , , , , , , , , , , , , , , , , , , , ; clocks = <&clock_gcc clk_aggre2_noc_clk>; clock-names = "smmu_aggre2_noc_clk"; #clock-cells = <1>; }; lpass_q6_smmu: arm,smmu-lpass_q6@5100000 { status = "ok"; compatible = "qcom,smmu-v2"; reg = <0x5100000 0x4000>; #iommu-cells = <1>; qcom,tz-device-id = "LPASS"; qcom,register-save; qcom,skip-init; #global-interrupts = <2>; interrupts = , , , , , , , , , , , , , , , , , , ; vdd-supply = <&gdsc_hlos1_vote_lpass_adsp>; clocks = <&clock_gcc clk_hlos1_vote_lpass_adsp_smmu_clk>; clock-names = "lpass_q6_smmu_clk"; #clock-cells = <1>; }; mmss_smmu: arm,smmu-mmss@cd00000 { status = "ok"; compatible = "qcom,smmu-v2"; reg = <0xcd00000 0x40000>; #iommu-cells = <1>; qcom,register-save; qcom,skip-init; #global-interrupts = <2>; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , ; vdd-supply = <&gdsc_bimc_smmu>; clocks = <&clock_mmss clk_bimc_smmu_ahb_clk>, <&clock_mmss clk_bimc_smmu_axi_clk>; clock-names = "mmss_smmu_ahb_clk", "mmss_smmu_axi_clk"; #clock-cells = <1>; /* * The iommu test framework requires at least one iommu * client to populate debugfs. The presence of a device * "qcom,smmu-v2" alone is not sufficient. */ iommus = <&mmss_smmu 1>; }; kgsl_smmu: arm,smmu-kgsl@5040000 { status = "ok"; compatible = "qcom,smmu-v2"; reg = <0x5040000 0x10000>; #iommu-cells = <1>; qcom-tz-device-id = "GPU"; qcom,dynamic; qcom,register-save; qcom,skip-init; #global-interrupts = <2>; interrupts = , , , , , , , ; vdd-supply = <&gdsc_gpu_cx>; clocks = <&clock_gcc clk_gcc_bimc_gfx_clk>; clock-name = "kgsl_smmu_clk"; #clock-cells = <1>; }; };