summaryrefslogtreecommitdiff
path: root/qcom/msm-arm-smmu-660.dtsi
blob: 7bdd448d45fa95cebeb9e69a73d7b7168ecfd5f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
#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>;
	};
};