You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
7.8 KiB
217 lines
7.8 KiB
/* Copyright (c) 2016-2017, 2019-2020, 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 <dt-bindings/clock/qcom,gcc-sdm660.h>
|
|
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
|
|
#include <dt-bindings/msm/msm-bus-ids.h>
|
|
#include <dt-bindings/clock/qcom,rpmcc.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
&soc {
|
|
anoc2_smmu: arm,smmu-anoc2@16c0000 {
|
|
compatible = "qcom,smmu-v2";
|
|
reg = <0x16c0000 0x40000>;
|
|
#iommu-cells = <1>;
|
|
qcom,skip-init;
|
|
qcom,use-3-lvl-tables;
|
|
qcom,regulator-names = "vdd";
|
|
#global-interrupts = <2>;
|
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&clock_rpmcc AGGR2_NOC_SMMU_CLK>;
|
|
clock-names = "smmu_aggr2_noc_clk";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
lpass_q6_smmu: arm,smmu-lpass_q6@5100000 {
|
|
compatible = "qcom,smmu-v2";
|
|
reg = <0x5100000 0x40000>;
|
|
#iommu-cells = <1>;
|
|
qcom,skip-init;
|
|
qcom,use-3-lvl-tables;
|
|
qcom,regulator-names = "vdd";
|
|
#global-interrupts = <2>;
|
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
|
|
vdd-supply = <&gdsc_hlos1_vote_lpass_adsp>;
|
|
clocks = <&clock_gcc HLOS1_VOTE_LPASS_ADSP_SMMU_CLK>;
|
|
clock-names = "lpass_q6_smmu_clk";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
mmss_bimc_smmu: arm,smmu-mmss@cd00000 {
|
|
compatible = "qcom,smmu-v2";
|
|
reg = <0xcd00000 0x40000>;
|
|
#iommu-cells = <1>;
|
|
qcom,skip-init;
|
|
qcom,use-3-lvl-tables;
|
|
qcom,regulator-names = "vdd";
|
|
#global-interrupts = <2>;
|
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>;
|
|
vdd-supply = <&gdsc_bimc_smmu>;
|
|
clocks = <&clock_mmss MMSS_MNOC_AHB_CLK>,
|
|
<&clock_rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
|
|
<&clock_mmss MMSS_BIMC_SMMU_AHB_CLK>,
|
|
<&clock_mmss MMSS_BIMC_SMMU_AXI_CLK>;
|
|
clock-names = "mmss_mnoc_ahb_clk",
|
|
"mmssnoc_axi_clk",
|
|
"mmss_bimc_smmu_ahb_clk",
|
|
"mmss_bimc_smmu_axi_clk";
|
|
#clock-cells = <1>;
|
|
qcom,bus-master-id = <MSM_BUS_MNOC_BIMC_MAS>;
|
|
};
|
|
|
|
kgsl_smmu: arm,smmu-kgsl@5040000 {
|
|
compatible = "qcom,smmu-v2";
|
|
reg = <0x5040000 0x10000>;
|
|
#iommu-cells = <1>;
|
|
qcom,dynamic;
|
|
qcom,use-3-lvl-tables;
|
|
qcom,disable-atos;
|
|
qcom,regulator-names = "vdd";
|
|
#global-interrupts = <2>;
|
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>;
|
|
qcom,deferred-regulator-disable-delay = <80>;
|
|
vdd-supply = <&gdsc_gpu_cx>;
|
|
clocks = <&clock_gcc GCC_GPU_CFG_AHB_CLK>,
|
|
<&clock_gcc GCC_BIMC_GFX_CLK>,
|
|
<&clock_gcc GCC_GPU_BIMC_GFX_CLK>;
|
|
clock-names = "gcc_gpu_cfg_ahb_clk",
|
|
"gcc_bimc_gfx_clk",
|
|
"gcc_gpu_bimc_gfx_clk";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
turing_q6_smmu: arm,smmu-turing_q6@5180000 {
|
|
compatible = "qcom,smmu-v2";
|
|
reg = <0x5180000 0x40000>;
|
|
#iommu-cells = <1>;
|
|
qcom,register-save;
|
|
qcom,skip-init;
|
|
qcom,regulator-names = "vdd";
|
|
#global-interrupts = <2>;
|
|
interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 546 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>;
|
|
vdd-supply = <&gdsc_hlos1_vote_turing_adsp>;
|
|
clocks = <&clock_gcc HLOS1_VOTE_TURING_ADSP_SMMU_CLK>;
|
|
clock-names = "turing_q6_smmu_clk";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
iommu_test_device {
|
|
compatible = "iommu-debug-test";
|
|
/*
|
|
* 42 shouldn't be used by anyone on the mmss_smmu. We just
|
|
* need _something_ here to get this node recognized by the
|
|
* SMMU driver. Our test uses ATOS, which doesn't use SIDs
|
|
* anyways, so using a dummy value is ok.
|
|
*/
|
|
iommus = <&mmss_bimc_smmu 42>;
|
|
};
|
|
};
|
|
|