xref: /linux/drivers/interconnect/qcom/hawi.c (revision 00599d4841790d05401820a96cf7edb193888b00)
1*ffaa88a0SVivek Aknurwar // SPDX-License-Identifier: GPL-2.0-only
2*ffaa88a0SVivek Aknurwar /*
3*ffaa88a0SVivek Aknurwar  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4*ffaa88a0SVivek Aknurwar  *
5*ffaa88a0SVivek Aknurwar  */
6*ffaa88a0SVivek Aknurwar 
7*ffaa88a0SVivek Aknurwar #include <linux/device.h>
8*ffaa88a0SVivek Aknurwar #include <linux/interconnect.h>
9*ffaa88a0SVivek Aknurwar #include <linux/interconnect-provider.h>
10*ffaa88a0SVivek Aknurwar #include <linux/module.h>
11*ffaa88a0SVivek Aknurwar #include <linux/of_platform.h>
12*ffaa88a0SVivek Aknurwar #include <dt-bindings/interconnect/qcom,hawi-rpmh.h>
13*ffaa88a0SVivek Aknurwar 
14*ffaa88a0SVivek Aknurwar #include "bcm-voter.h"
15*ffaa88a0SVivek Aknurwar #include "icc-rpmh.h"
16*ffaa88a0SVivek Aknurwar 
17*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_eff_veto_slave = {
18*ffaa88a0SVivek Aknurwar 	.name = "ddr_eff_veto_slave",
19*ffaa88a0SVivek Aknurwar 	.channels = 1,
20*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
21*ffaa88a0SVivek Aknurwar };
22*ffaa88a0SVivek Aknurwar 
23*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup0_core_slave = {
24*ffaa88a0SVivek Aknurwar 	.name = "qup0_core_slave",
25*ffaa88a0SVivek Aknurwar 	.channels = 1,
26*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
27*ffaa88a0SVivek Aknurwar };
28*ffaa88a0SVivek Aknurwar 
29*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup1_core_slave = {
30*ffaa88a0SVivek Aknurwar 	.name = "qup1_core_slave",
31*ffaa88a0SVivek Aknurwar 	.channels = 1,
32*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
33*ffaa88a0SVivek Aknurwar };
34*ffaa88a0SVivek Aknurwar 
35*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup2_core_slave = {
36*ffaa88a0SVivek Aknurwar 	.name = "qup2_core_slave",
37*ffaa88a0SVivek Aknurwar 	.channels = 1,
38*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
39*ffaa88a0SVivek Aknurwar };
40*ffaa88a0SVivek Aknurwar 
41*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup3_core_slave = {
42*ffaa88a0SVivek Aknurwar 	.name = "qup3_core_slave",
43*ffaa88a0SVivek Aknurwar 	.channels = 1,
44*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
45*ffaa88a0SVivek Aknurwar };
46*ffaa88a0SVivek Aknurwar 
47*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup4_core_slave = {
48*ffaa88a0SVivek Aknurwar 	.name = "qup4_core_slave",
49*ffaa88a0SVivek Aknurwar 	.channels = 1,
50*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
51*ffaa88a0SVivek Aknurwar };
52*ffaa88a0SVivek Aknurwar 
53*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_aoss = {
54*ffaa88a0SVivek Aknurwar 	.name = "qhs_aoss",
55*ffaa88a0SVivek Aknurwar 	.channels = 1,
56*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
57*ffaa88a0SVivek Aknurwar };
58*ffaa88a0SVivek Aknurwar 
59*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipa = {
60*ffaa88a0SVivek Aknurwar 	.name = "qhs_ipa",
61*ffaa88a0SVivek Aknurwar 	.channels = 1,
62*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
63*ffaa88a0SVivek Aknurwar };
64*ffaa88a0SVivek Aknurwar 
65*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipc_router_fence = {
66*ffaa88a0SVivek Aknurwar 	.name = "qhs_ipc_router_fence",
67*ffaa88a0SVivek Aknurwar 	.channels = 1,
68*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
69*ffaa88a0SVivek Aknurwar };
70*ffaa88a0SVivek Aknurwar 
71*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_soccp = {
72*ffaa88a0SVivek Aknurwar 	.name = "qhs_soccp",
73*ffaa88a0SVivek Aknurwar 	.channels = 1,
74*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
75*ffaa88a0SVivek Aknurwar };
76*ffaa88a0SVivek Aknurwar 
77*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_tme_cfg = {
78*ffaa88a0SVivek Aknurwar 	.name = "qhs_tme_cfg",
79*ffaa88a0SVivek Aknurwar 	.channels = 1,
80*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
81*ffaa88a0SVivek Aknurwar };
82*ffaa88a0SVivek Aknurwar 
83*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_ddrss_cfg = {
84*ffaa88a0SVivek Aknurwar 	.name = "qss_ddrss_cfg",
85*ffaa88a0SVivek Aknurwar 	.channels = 1,
86*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
87*ffaa88a0SVivek Aknurwar };
88*ffaa88a0SVivek Aknurwar 
89*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxs_imem = {
90*ffaa88a0SVivek Aknurwar 	.name = "qxs_imem",
91*ffaa88a0SVivek Aknurwar 	.channels = 1,
92*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
93*ffaa88a0SVivek Aknurwar };
94*ffaa88a0SVivek Aknurwar 
95*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_pcie = {
96*ffaa88a0SVivek Aknurwar 	.name = "xs_pcie",
97*ffaa88a0SVivek Aknurwar 	.channels = 1,
98*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
99*ffaa88a0SVivek Aknurwar };
100*ffaa88a0SVivek Aknurwar 
101*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_pcie_g4x1 = {
102*ffaa88a0SVivek Aknurwar 	.name = "xs_pcie_g4x1",
103*ffaa88a0SVivek Aknurwar 	.channels = 1,
104*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
105*ffaa88a0SVivek Aknurwar };
106*ffaa88a0SVivek Aknurwar 
107*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_lpi_cc = {
108*ffaa88a0SVivek Aknurwar 	.name = "qhs_lpi_cc",
109*ffaa88a0SVivek Aknurwar 	.channels = 1,
110*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
111*ffaa88a0SVivek Aknurwar };
112*ffaa88a0SVivek Aknurwar 
113*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lb = {
114*ffaa88a0SVivek Aknurwar 	.name = "qns_lb",
115*ffaa88a0SVivek Aknurwar 	.channels = 4,
116*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
117*ffaa88a0SVivek Aknurwar };
118*ffaa88a0SVivek Aknurwar 
119*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_llclpi_noc = {
120*ffaa88a0SVivek Aknurwar 	.name = "srvc_llclpi_noc",
121*ffaa88a0SVivek Aknurwar 	.channels = 1,
122*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
123*ffaa88a0SVivek Aknurwar };
124*ffaa88a0SVivek Aknurwar 
125*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_llclpi_noc_chipcx = {
126*ffaa88a0SVivek Aknurwar 	.name = "srvc_llclpi_noc_chipcx",
127*ffaa88a0SVivek Aknurwar 	.channels = 1,
128*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
129*ffaa88a0SVivek Aknurwar };
130*ffaa88a0SVivek Aknurwar 
131*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ebi = {
132*ffaa88a0SVivek Aknurwar 	.name = "ebi",
133*ffaa88a0SVivek Aknurwar 	.channels = 4,
134*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
135*ffaa88a0SVivek Aknurwar };
136*ffaa88a0SVivek Aknurwar 
137*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_rt_slave = {
138*ffaa88a0SVivek Aknurwar 	.name = "ddr_rt_slave",
139*ffaa88a0SVivek Aknurwar 	.channels = 4,
140*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
141*ffaa88a0SVivek Aknurwar };
142*ffaa88a0SVivek Aknurwar 
143*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_pcie_aggre_noc = {
144*ffaa88a0SVivek Aknurwar 	.name = "srvc_pcie_aggre_noc",
145*ffaa88a0SVivek Aknurwar 	.channels = 1,
146*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
147*ffaa88a0SVivek Aknurwar };
148*ffaa88a0SVivek Aknurwar 
149*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ahb2phy0 = {
150*ffaa88a0SVivek Aknurwar 	.name = "qhs_ahb2phy0",
151*ffaa88a0SVivek Aknurwar 	.channels = 1,
152*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
153*ffaa88a0SVivek Aknurwar };
154*ffaa88a0SVivek Aknurwar 
155*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_boot_rom = {
156*ffaa88a0SVivek Aknurwar 	.name = "qhs_boot_rom",
157*ffaa88a0SVivek Aknurwar 	.channels = 1,
158*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
159*ffaa88a0SVivek Aknurwar };
160*ffaa88a0SVivek Aknurwar 
161*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_camera_cfg = {
162*ffaa88a0SVivek Aknurwar 	.name = "qhs_camera_cfg",
163*ffaa88a0SVivek Aknurwar 	.channels = 1,
164*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
165*ffaa88a0SVivek Aknurwar };
166*ffaa88a0SVivek Aknurwar 
167*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_clk_ctl = {
168*ffaa88a0SVivek Aknurwar 	.name = "qhs_clk_ctl",
169*ffaa88a0SVivek Aknurwar 	.channels = 1,
170*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
171*ffaa88a0SVivek Aknurwar };
172*ffaa88a0SVivek Aknurwar 
173*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_crypto_cfg = {
174*ffaa88a0SVivek Aknurwar 	.name = "qhs_crypto_cfg",
175*ffaa88a0SVivek Aknurwar 	.channels = 1,
176*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
177*ffaa88a0SVivek Aknurwar };
178*ffaa88a0SVivek Aknurwar 
179*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_display_cfg = {
180*ffaa88a0SVivek Aknurwar 	.name = "qhs_display_cfg",
181*ffaa88a0SVivek Aknurwar 	.channels = 1,
182*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
183*ffaa88a0SVivek Aknurwar };
184*ffaa88a0SVivek Aknurwar 
185*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_eva_cfg = {
186*ffaa88a0SVivek Aknurwar 	.name = "qhs_eva_cfg",
187*ffaa88a0SVivek Aknurwar 	.channels = 1,
188*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
189*ffaa88a0SVivek Aknurwar };
190*ffaa88a0SVivek Aknurwar 
191*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_gpuss_cfg = {
192*ffaa88a0SVivek Aknurwar 	.name = "qhs_gpuss_cfg",
193*ffaa88a0SVivek Aknurwar 	.channels = 1,
194*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
195*ffaa88a0SVivek Aknurwar };
196*ffaa88a0SVivek Aknurwar 
197*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_i2c = {
198*ffaa88a0SVivek Aknurwar 	.name = "qhs_i2c",
199*ffaa88a0SVivek Aknurwar 	.channels = 1,
200*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
201*ffaa88a0SVivek Aknurwar };
202*ffaa88a0SVivek Aknurwar 
203*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_imem_cfg = {
204*ffaa88a0SVivek Aknurwar 	.name = "qhs_imem_cfg",
205*ffaa88a0SVivek Aknurwar 	.channels = 1,
206*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
207*ffaa88a0SVivek Aknurwar };
208*ffaa88a0SVivek Aknurwar 
209*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipc_router = {
210*ffaa88a0SVivek Aknurwar 	.name = "qhs_ipc_router",
211*ffaa88a0SVivek Aknurwar 	.channels = 4,
212*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
213*ffaa88a0SVivek Aknurwar };
214*ffaa88a0SVivek Aknurwar 
215*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_iris_cfg = {
216*ffaa88a0SVivek Aknurwar 	.name = "qhs_iris_cfg",
217*ffaa88a0SVivek Aknurwar 	.channels = 1,
218*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
219*ffaa88a0SVivek Aknurwar };
220*ffaa88a0SVivek Aknurwar 
221*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_mss_cfg = {
222*ffaa88a0SVivek Aknurwar 	.name = "qhs_mss_cfg",
223*ffaa88a0SVivek Aknurwar 	.channels = 1,
224*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
225*ffaa88a0SVivek Aknurwar };
226*ffaa88a0SVivek Aknurwar 
227*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_pcie_cfg = {
228*ffaa88a0SVivek Aknurwar 	.name = "qhs_pcie_cfg",
229*ffaa88a0SVivek Aknurwar 	.channels = 1,
230*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
231*ffaa88a0SVivek Aknurwar };
232*ffaa88a0SVivek Aknurwar 
233*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_pcie_g4x1_cfg = {
234*ffaa88a0SVivek Aknurwar 	.name = "qhs_pcie_g4x1_cfg",
235*ffaa88a0SVivek Aknurwar 	.channels = 1,
236*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
237*ffaa88a0SVivek Aknurwar };
238*ffaa88a0SVivek Aknurwar 
239*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_prng = {
240*ffaa88a0SVivek Aknurwar 	.name = "qhs_prng",
241*ffaa88a0SVivek Aknurwar 	.channels = 1,
242*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
243*ffaa88a0SVivek Aknurwar };
244*ffaa88a0SVivek Aknurwar 
245*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qspi = {
246*ffaa88a0SVivek Aknurwar 	.name = "qhs_qspi",
247*ffaa88a0SVivek Aknurwar 	.channels = 1,
248*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
249*ffaa88a0SVivek Aknurwar };
250*ffaa88a0SVivek Aknurwar 
251*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup1 = {
252*ffaa88a0SVivek Aknurwar 	.name = "qhs_qup1",
253*ffaa88a0SVivek Aknurwar 	.channels = 1,
254*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
255*ffaa88a0SVivek Aknurwar };
256*ffaa88a0SVivek Aknurwar 
257*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup2 = {
258*ffaa88a0SVivek Aknurwar 	.name = "qhs_qup2",
259*ffaa88a0SVivek Aknurwar 	.channels = 1,
260*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
261*ffaa88a0SVivek Aknurwar };
262*ffaa88a0SVivek Aknurwar 
263*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup3 = {
264*ffaa88a0SVivek Aknurwar 	.name = "qhs_qup3",
265*ffaa88a0SVivek Aknurwar 	.channels = 1,
266*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
267*ffaa88a0SVivek Aknurwar };
268*ffaa88a0SVivek Aknurwar 
269*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup4 = {
270*ffaa88a0SVivek Aknurwar 	.name = "qhs_qup4",
271*ffaa88a0SVivek Aknurwar 	.channels = 1,
272*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
273*ffaa88a0SVivek Aknurwar };
274*ffaa88a0SVivek Aknurwar 
275*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_sdc2 = {
276*ffaa88a0SVivek Aknurwar 	.name = "qhs_sdc2",
277*ffaa88a0SVivek Aknurwar 	.channels = 1,
278*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
279*ffaa88a0SVivek Aknurwar };
280*ffaa88a0SVivek Aknurwar 
281*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_sdc4 = {
282*ffaa88a0SVivek Aknurwar 	.name = "qhs_sdc4",
283*ffaa88a0SVivek Aknurwar 	.channels = 1,
284*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
285*ffaa88a0SVivek Aknurwar };
286*ffaa88a0SVivek Aknurwar 
287*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_tlmm = {
288*ffaa88a0SVivek Aknurwar 	.name = "qhs_tlmm",
289*ffaa88a0SVivek Aknurwar 	.channels = 1,
290*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
291*ffaa88a0SVivek Aknurwar };
292*ffaa88a0SVivek Aknurwar 
293*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ufs_mem_cfg = {
294*ffaa88a0SVivek Aknurwar 	.name = "qhs_ufs_mem_cfg",
295*ffaa88a0SVivek Aknurwar 	.channels = 1,
296*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
297*ffaa88a0SVivek Aknurwar };
298*ffaa88a0SVivek Aknurwar 
299*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_usb3 = {
300*ffaa88a0SVivek Aknurwar 	.name = "qhs_usb3",
301*ffaa88a0SVivek Aknurwar 	.channels = 1,
302*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
303*ffaa88a0SVivek Aknurwar };
304*ffaa88a0SVivek Aknurwar 
305*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
306*ffaa88a0SVivek Aknurwar 	.name = "qhs_vsense_ctrl_cfg",
307*ffaa88a0SVivek Aknurwar 	.channels = 1,
308*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
309*ffaa88a0SVivek Aknurwar };
310*ffaa88a0SVivek Aknurwar 
311*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_qdss_cfg = {
312*ffaa88a0SVivek Aknurwar 	.name = "qss_qdss_cfg",
313*ffaa88a0SVivek Aknurwar 	.channels = 1,
314*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
315*ffaa88a0SVivek Aknurwar };
316*ffaa88a0SVivek Aknurwar 
317*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_qdss_stm = {
318*ffaa88a0SVivek Aknurwar 	.name = "qss_qdss_stm",
319*ffaa88a0SVivek Aknurwar 	.channels = 1,
320*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
321*ffaa88a0SVivek Aknurwar };
322*ffaa88a0SVivek Aknurwar 
323*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_tcsr = {
324*ffaa88a0SVivek Aknurwar 	.name = "qss_tcsr",
325*ffaa88a0SVivek Aknurwar 	.channels = 1,
326*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
327*ffaa88a0SVivek Aknurwar };
328*ffaa88a0SVivek Aknurwar 
329*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_sys_tcu_cfg = {
330*ffaa88a0SVivek Aknurwar 	.name = "xs_sys_tcu_cfg",
331*ffaa88a0SVivek Aknurwar 	.channels = 1,
332*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
333*ffaa88a0SVivek Aknurwar };
334*ffaa88a0SVivek Aknurwar 
335*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_eff_veto_master = {
336*ffaa88a0SVivek Aknurwar 	.name = "ddr_eff_veto_master",
337*ffaa88a0SVivek Aknurwar 	.channels = 1,
338*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
339*ffaa88a0SVivek Aknurwar 	.num_links = 1,
340*ffaa88a0SVivek Aknurwar 	.link_nodes = { &ddr_eff_veto_slave },
341*ffaa88a0SVivek Aknurwar };
342*ffaa88a0SVivek Aknurwar 
343*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup0_core_master = {
344*ffaa88a0SVivek Aknurwar 	.name = "qup0_core_master",
345*ffaa88a0SVivek Aknurwar 	.channels = 1,
346*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
347*ffaa88a0SVivek Aknurwar 	.num_links = 1,
348*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qup0_core_slave },
349*ffaa88a0SVivek Aknurwar };
350*ffaa88a0SVivek Aknurwar 
351*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup1_core_master = {
352*ffaa88a0SVivek Aknurwar 	.name = "qup1_core_master",
353*ffaa88a0SVivek Aknurwar 	.channels = 1,
354*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
355*ffaa88a0SVivek Aknurwar 	.num_links = 1,
356*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qup1_core_slave },
357*ffaa88a0SVivek Aknurwar };
358*ffaa88a0SVivek Aknurwar 
359*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup2_core_master = {
360*ffaa88a0SVivek Aknurwar 	.name = "qup2_core_master",
361*ffaa88a0SVivek Aknurwar 	.channels = 1,
362*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
363*ffaa88a0SVivek Aknurwar 	.num_links = 1,
364*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qup2_core_slave },
365*ffaa88a0SVivek Aknurwar };
366*ffaa88a0SVivek Aknurwar 
367*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup3_core_master = {
368*ffaa88a0SVivek Aknurwar 	.name = "qup3_core_master",
369*ffaa88a0SVivek Aknurwar 	.channels = 1,
370*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
371*ffaa88a0SVivek Aknurwar 	.num_links = 1,
372*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qup3_core_slave },
373*ffaa88a0SVivek Aknurwar };
374*ffaa88a0SVivek Aknurwar 
375*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup4_core_master = {
376*ffaa88a0SVivek Aknurwar 	.name = "qup4_core_master",
377*ffaa88a0SVivek Aknurwar 	.channels = 1,
378*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
379*ffaa88a0SVivek Aknurwar 	.num_links = 1,
380*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qup4_core_slave },
381*ffaa88a0SVivek Aknurwar };
382*ffaa88a0SVivek Aknurwar 
383*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gemnoc_pcie = {
384*ffaa88a0SVivek Aknurwar 	.name = "qnm_gemnoc_pcie",
385*ffaa88a0SVivek Aknurwar 	.channels = 1,
386*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
387*ffaa88a0SVivek Aknurwar 	.num_links = 2,
388*ffaa88a0SVivek Aknurwar 	.link_nodes = { &xs_pcie, &xs_pcie_g4x1 },
389*ffaa88a0SVivek Aknurwar };
390*ffaa88a0SVivek Aknurwar 
391*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpiaon_noc_llclpi_noc = {
392*ffaa88a0SVivek Aknurwar 	.name = "qnm_lpiaon_noc_llclpi_noc",
393*ffaa88a0SVivek Aknurwar 	.channels = 1,
394*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
395*ffaa88a0SVivek Aknurwar 	.num_links = 4,
396*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_lpi_cc, &qns_lb,
397*ffaa88a0SVivek Aknurwar 			&srvc_llclpi_noc, &srvc_llclpi_noc_chipcx },
398*ffaa88a0SVivek Aknurwar };
399*ffaa88a0SVivek Aknurwar 
400*ffaa88a0SVivek Aknurwar static struct qcom_icc_node llcc_mc = {
401*ffaa88a0SVivek Aknurwar 	.name = "llcc_mc",
402*ffaa88a0SVivek Aknurwar 	.channels = 4,
403*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
404*ffaa88a0SVivek Aknurwar 	.num_links = 1,
405*ffaa88a0SVivek Aknurwar 	.link_nodes = { &ebi },
406*ffaa88a0SVivek Aknurwar };
407*ffaa88a0SVivek Aknurwar 
408*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_rt_mc = {
409*ffaa88a0SVivek Aknurwar 	.name = "ddr_rt_mc",
410*ffaa88a0SVivek Aknurwar 	.channels = 4,
411*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
412*ffaa88a0SVivek Aknurwar 	.num_links = 1,
413*ffaa88a0SVivek Aknurwar 	.link_nodes = { &ddr_rt_slave },
414*ffaa88a0SVivek Aknurwar };
415*ffaa88a0SVivek Aknurwar 
416*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_pcie_anoc_cfg = {
417*ffaa88a0SVivek Aknurwar 	.name = "qsm_pcie_anoc_cfg",
418*ffaa88a0SVivek Aknurwar 	.channels = 1,
419*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
420*ffaa88a0SVivek Aknurwar 	.num_links = 1,
421*ffaa88a0SVivek Aknurwar 	.link_nodes = { &srvc_pcie_aggre_noc },
422*ffaa88a0SVivek Aknurwar };
423*ffaa88a0SVivek Aknurwar 
424*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_east = {
425*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_east",
426*ffaa88a0SVivek Aknurwar 	.channels = 1,
427*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
428*ffaa88a0SVivek Aknurwar 	.num_links = 4,
429*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_crypto_cfg, &qhs_gpuss_cfg,
430*ffaa88a0SVivek Aknurwar 			&qhs_qup2, &qhs_vsense_ctrl_cfg },
431*ffaa88a0SVivek Aknurwar };
432*ffaa88a0SVivek Aknurwar 
433*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_mm = {
434*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_mm",
435*ffaa88a0SVivek Aknurwar 	.channels = 1,
436*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
437*ffaa88a0SVivek Aknurwar 	.num_links = 5,
438*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_boot_rom, &qhs_camera_cfg,
439*ffaa88a0SVivek Aknurwar 			&qhs_display_cfg, &qhs_eva_cfg,
440*ffaa88a0SVivek Aknurwar 			&qhs_iris_cfg },
441*ffaa88a0SVivek Aknurwar };
442*ffaa88a0SVivek Aknurwar 
443*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_north = {
444*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_north",
445*ffaa88a0SVivek Aknurwar 	.channels = 1,
446*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
447*ffaa88a0SVivek Aknurwar 	.num_links = 5,
448*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_pcie_cfg, &qhs_pcie_g4x1_cfg,
449*ffaa88a0SVivek Aknurwar 			&qhs_qup3, &qhs_qup4,
450*ffaa88a0SVivek Aknurwar 			&qhs_sdc2 },
451*ffaa88a0SVivek Aknurwar };
452*ffaa88a0SVivek Aknurwar 
453*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_south = {
454*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_south",
455*ffaa88a0SVivek Aknurwar 	.channels = 1,
456*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
457*ffaa88a0SVivek Aknurwar 	.num_links = 6,
458*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_ahb2phy0, &qhs_qspi,
459*ffaa88a0SVivek Aknurwar 			&qhs_qup1, &qhs_sdc4,
460*ffaa88a0SVivek Aknurwar 			&qhs_ufs_mem_cfg, &qhs_usb3 },
461*ffaa88a0SVivek Aknurwar };
462*ffaa88a0SVivek Aknurwar 
463*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_southwest = {
464*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_southwest",
465*ffaa88a0SVivek Aknurwar 	.channels = 1,
466*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
467*ffaa88a0SVivek Aknurwar 	.num_links = 2,
468*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_ipc_router, &qhs_mss_cfg },
469*ffaa88a0SVivek Aknurwar };
470*ffaa88a0SVivek Aknurwar 
471*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_llcc = {
472*ffaa88a0SVivek Aknurwar 	.name = "qns_llcc",
473*ffaa88a0SVivek Aknurwar 	.channels = 4,
474*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
475*ffaa88a0SVivek Aknurwar 	.num_links = 1,
476*ffaa88a0SVivek Aknurwar 	.link_nodes = { &llcc_mc },
477*ffaa88a0SVivek Aknurwar };
478*ffaa88a0SVivek Aknurwar 
479*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_pcie = {
480*ffaa88a0SVivek Aknurwar 	.name = "qns_pcie",
481*ffaa88a0SVivek Aknurwar 	.channels = 1,
482*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
483*ffaa88a0SVivek Aknurwar 	.num_links = 1,
484*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_gemnoc_pcie },
485*ffaa88a0SVivek Aknurwar };
486*ffaa88a0SVivek Aknurwar 
487*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_llc_lpinoc = {
488*ffaa88a0SVivek Aknurwar 	.name = "qns_llc_lpinoc",
489*ffaa88a0SVivek Aknurwar 	.channels = 1,
490*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
491*ffaa88a0SVivek Aknurwar 	.num_links = 1,
492*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_lpiaon_noc_llclpi_noc },
493*ffaa88a0SVivek Aknurwar };
494*ffaa88a0SVivek Aknurwar 
495*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_pcie_anoc_cfg = {
496*ffaa88a0SVivek Aknurwar 	.name = "qss_pcie_anoc_cfg",
497*ffaa88a0SVivek Aknurwar 	.channels = 1,
498*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
499*ffaa88a0SVivek Aknurwar 	.num_links = 1,
500*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_pcie_anoc_cfg },
501*ffaa88a0SVivek Aknurwar };
502*ffaa88a0SVivek Aknurwar 
503*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_east_cfg = {
504*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_east_cfg",
505*ffaa88a0SVivek Aknurwar 	.channels = 1,
506*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
507*ffaa88a0SVivek Aknurwar 	.num_links = 1,
508*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_east },
509*ffaa88a0SVivek Aknurwar };
510*ffaa88a0SVivek Aknurwar 
511*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_mm_cfg = {
512*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_mm_cfg",
513*ffaa88a0SVivek Aknurwar 	.channels = 1,
514*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
515*ffaa88a0SVivek Aknurwar 	.num_links = 1,
516*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_mm },
517*ffaa88a0SVivek Aknurwar };
518*ffaa88a0SVivek Aknurwar 
519*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_north_cfg = {
520*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_north_cfg",
521*ffaa88a0SVivek Aknurwar 	.channels = 1,
522*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
523*ffaa88a0SVivek Aknurwar 	.num_links = 1,
524*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_north },
525*ffaa88a0SVivek Aknurwar };
526*ffaa88a0SVivek Aknurwar 
527*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_south_cfg = {
528*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_south_cfg",
529*ffaa88a0SVivek Aknurwar 	.channels = 1,
530*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
531*ffaa88a0SVivek Aknurwar 	.num_links = 1,
532*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_south },
533*ffaa88a0SVivek Aknurwar };
534*ffaa88a0SVivek Aknurwar 
535*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_southwest_cfg = {
536*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_southwest_cfg",
537*ffaa88a0SVivek Aknurwar 	.channels = 1,
538*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
539*ffaa88a0SVivek Aknurwar 	.num_links = 1,
540*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_southwest },
541*ffaa88a0SVivek Aknurwar };
542*ffaa88a0SVivek Aknurwar 
543*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_gic = {
544*ffaa88a0SVivek Aknurwar 	.name = "alm_gic",
545*ffaa88a0SVivek Aknurwar 	.channels = 1,
546*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
547*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
548*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
549*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x14d000 },
550*ffaa88a0SVivek Aknurwar 		.prio = 4,
551*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
552*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
553*ffaa88a0SVivek Aknurwar 	},
554*ffaa88a0SVivek Aknurwar 	.num_links = 1,
555*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_llcc },
556*ffaa88a0SVivek Aknurwar };
557*ffaa88a0SVivek Aknurwar 
558*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_qpace = {
559*ffaa88a0SVivek Aknurwar 	.name = "qnm_qpace",
560*ffaa88a0SVivek Aknurwar 	.channels = 1,
561*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
562*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
563*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
564*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x153000 },
565*ffaa88a0SVivek Aknurwar 		.prio = 0,
566*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
567*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
568*ffaa88a0SVivek Aknurwar 	},
569*ffaa88a0SVivek Aknurwar 	.num_links = 1,
570*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_llcc },
571*ffaa88a0SVivek Aknurwar };
572*ffaa88a0SVivek Aknurwar 
573*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_center = {
574*ffaa88a0SVivek Aknurwar 	.name = "qsm_cfg_center",
575*ffaa88a0SVivek Aknurwar 	.channels = 1,
576*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
577*ffaa88a0SVivek Aknurwar 	.num_links = 10,
578*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_clk_ctl, &qhs_i2c,
579*ffaa88a0SVivek Aknurwar 			&qhs_imem_cfg, &qhs_prng,
580*ffaa88a0SVivek Aknurwar 			&qhs_tlmm, &qss_pcie_anoc_cfg,
581*ffaa88a0SVivek Aknurwar 			&qss_qdss_cfg, &qss_qdss_stm,
582*ffaa88a0SVivek Aknurwar 			&qss_tcsr, &xs_sys_tcu_cfg },
583*ffaa88a0SVivek Aknurwar };
584*ffaa88a0SVivek Aknurwar 
585*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_center_cfg = {
586*ffaa88a0SVivek Aknurwar 	.name = "qss_stdst_center_cfg",
587*ffaa88a0SVivek Aknurwar 	.channels = 1,
588*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
589*ffaa88a0SVivek Aknurwar 	.num_links = 1,
590*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cfg_center },
591*ffaa88a0SVivek Aknurwar };
592*ffaa88a0SVivek Aknurwar 
593*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cnoc_main = {
594*ffaa88a0SVivek Aknurwar 	.name = "qsm_cnoc_main",
595*ffaa88a0SVivek Aknurwar 	.channels = 1,
596*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
597*ffaa88a0SVivek Aknurwar 	.num_links = 6,
598*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qss_stdst_center_cfg, &qss_stdst_east_cfg,
599*ffaa88a0SVivek Aknurwar 			&qss_stdst_mm_cfg, &qss_stdst_north_cfg,
600*ffaa88a0SVivek Aknurwar 			&qss_stdst_south_cfg, &qss_stdst_southwest_cfg },
601*ffaa88a0SVivek Aknurwar };
602*ffaa88a0SVivek Aknurwar 
603*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_cfg = {
604*ffaa88a0SVivek Aknurwar 	.name = "qss_cfg",
605*ffaa88a0SVivek Aknurwar 	.channels = 1,
606*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
607*ffaa88a0SVivek Aknurwar 	.num_links = 1,
608*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qsm_cnoc_main },
609*ffaa88a0SVivek Aknurwar };
610*ffaa88a0SVivek Aknurwar 
611*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gemnoc_cnoc = {
612*ffaa88a0SVivek Aknurwar 	.name = "qnm_gemnoc_cnoc",
613*ffaa88a0SVivek Aknurwar 	.channels = 1,
614*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
615*ffaa88a0SVivek Aknurwar 	.num_links = 8,
616*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qhs_aoss, &qhs_ipa,
617*ffaa88a0SVivek Aknurwar 			&qhs_ipc_router_fence, &qhs_soccp,
618*ffaa88a0SVivek Aknurwar 			&qhs_tme_cfg, &qss_cfg,
619*ffaa88a0SVivek Aknurwar 			&qss_ddrss_cfg, &qxs_imem },
620*ffaa88a0SVivek Aknurwar };
621*ffaa88a0SVivek Aknurwar 
622*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_gem_noc_cnoc = {
623*ffaa88a0SVivek Aknurwar 	.name = "qns_gem_noc_cnoc",
624*ffaa88a0SVivek Aknurwar 	.channels = 1,
625*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
626*ffaa88a0SVivek Aknurwar 	.num_links = 1,
627*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_gemnoc_cnoc },
628*ffaa88a0SVivek Aknurwar };
629*ffaa88a0SVivek Aknurwar 
630*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_gpu_tcu = {
631*ffaa88a0SVivek Aknurwar 	.name = "alm_gpu_tcu",
632*ffaa88a0SVivek Aknurwar 	.channels = 1,
633*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
634*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
635*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
636*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x145000 },
637*ffaa88a0SVivek Aknurwar 		.prio = 1,
638*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
639*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
640*ffaa88a0SVivek Aknurwar 	},
641*ffaa88a0SVivek Aknurwar 	.num_links = 2,
642*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
643*ffaa88a0SVivek Aknurwar };
644*ffaa88a0SVivek Aknurwar 
645*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_sys_tcu = {
646*ffaa88a0SVivek Aknurwar 	.name = "alm_sys_tcu",
647*ffaa88a0SVivek Aknurwar 	.channels = 1,
648*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
649*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
650*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
651*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x147000 },
652*ffaa88a0SVivek Aknurwar 		.prio = 6,
653*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
654*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
655*ffaa88a0SVivek Aknurwar 	},
656*ffaa88a0SVivek Aknurwar 	.num_links = 2,
657*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
658*ffaa88a0SVivek Aknurwar };
659*ffaa88a0SVivek Aknurwar 
660*ffaa88a0SVivek Aknurwar static struct qcom_icc_node chm_apps = {
661*ffaa88a0SVivek Aknurwar 	.name = "chm_apps",
662*ffaa88a0SVivek Aknurwar 	.channels = 4,
663*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
664*ffaa88a0SVivek Aknurwar 	.num_links = 3,
665*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
666*ffaa88a0SVivek Aknurwar 			&qns_pcie },
667*ffaa88a0SVivek Aknurwar };
668*ffaa88a0SVivek Aknurwar 
669*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gpu = {
670*ffaa88a0SVivek Aknurwar 	.name = "qnm_gpu",
671*ffaa88a0SVivek Aknurwar 	.channels = 4,
672*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
673*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
674*ffaa88a0SVivek Aknurwar 		.num_ports = 4,
675*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x51000, 0x53000, 0xd1000, 0xd3000 },
676*ffaa88a0SVivek Aknurwar 		.prio = 0,
677*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
678*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
679*ffaa88a0SVivek Aknurwar 	},
680*ffaa88a0SVivek Aknurwar 	.num_links = 3,
681*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
682*ffaa88a0SVivek Aknurwar 			&qns_pcie },
683*ffaa88a0SVivek Aknurwar };
684*ffaa88a0SVivek Aknurwar 
685*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpass_gemnoc = {
686*ffaa88a0SVivek Aknurwar 	.name = "qnm_lpass_gemnoc",
687*ffaa88a0SVivek Aknurwar 	.channels = 1,
688*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
689*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
690*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
691*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x149000 },
692*ffaa88a0SVivek Aknurwar 		.prio = 0,
693*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
694*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
695*ffaa88a0SVivek Aknurwar 	},
696*ffaa88a0SVivek Aknurwar 	.num_links = 3,
697*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
698*ffaa88a0SVivek Aknurwar 			&qns_pcie },
699*ffaa88a0SVivek Aknurwar };
700*ffaa88a0SVivek Aknurwar 
701*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdsp = {
702*ffaa88a0SVivek Aknurwar 	.name = "qnm_mdsp",
703*ffaa88a0SVivek Aknurwar 	.channels = 1,
704*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
705*ffaa88a0SVivek Aknurwar 	.num_links = 3,
706*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
707*ffaa88a0SVivek Aknurwar 			&qns_pcie },
708*ffaa88a0SVivek Aknurwar };
709*ffaa88a0SVivek Aknurwar 
710*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mnoc_hf = {
711*ffaa88a0SVivek Aknurwar 	.name = "qnm_mnoc_hf",
712*ffaa88a0SVivek Aknurwar 	.channels = 2,
713*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
714*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
715*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
716*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x55000, 0xd5000 },
717*ffaa88a0SVivek Aknurwar 		.prio = 0,
718*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
719*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
720*ffaa88a0SVivek Aknurwar 	},
721*ffaa88a0SVivek Aknurwar 	.num_links = 3,
722*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
723*ffaa88a0SVivek Aknurwar 			&qns_pcie },
724*ffaa88a0SVivek Aknurwar };
725*ffaa88a0SVivek Aknurwar 
726*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mnoc_sf = {
727*ffaa88a0SVivek Aknurwar 	.name = "qnm_mnoc_sf",
728*ffaa88a0SVivek Aknurwar 	.channels = 2,
729*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
730*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
731*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
732*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x57000, 0xd7000 },
733*ffaa88a0SVivek Aknurwar 		.prio = 0,
734*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
735*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
736*ffaa88a0SVivek Aknurwar 	},
737*ffaa88a0SVivek Aknurwar 	.num_links = 3,
738*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
739*ffaa88a0SVivek Aknurwar 			&qns_pcie },
740*ffaa88a0SVivek Aknurwar };
741*ffaa88a0SVivek Aknurwar 
742*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_nsp_gemnoc = {
743*ffaa88a0SVivek Aknurwar 	.name = "qnm_nsp_gemnoc",
744*ffaa88a0SVivek Aknurwar 	.channels = 4,
745*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
746*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
747*ffaa88a0SVivek Aknurwar 		.num_ports = 4,
748*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x59000, 0x5b000, 0xd9000, 0xdb000 },
749*ffaa88a0SVivek Aknurwar 		.prio = 0,
750*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
751*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
752*ffaa88a0SVivek Aknurwar 	},
753*ffaa88a0SVivek Aknurwar 	.num_links = 3,
754*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
755*ffaa88a0SVivek Aknurwar 			&qns_pcie },
756*ffaa88a0SVivek Aknurwar };
757*ffaa88a0SVivek Aknurwar 
758*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_pcie = {
759*ffaa88a0SVivek Aknurwar 	.name = "qnm_pcie",
760*ffaa88a0SVivek Aknurwar 	.channels = 1,
761*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
762*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
763*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
764*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x14b000 },
765*ffaa88a0SVivek Aknurwar 		.prio = 2,
766*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
767*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
768*ffaa88a0SVivek Aknurwar 	},
769*ffaa88a0SVivek Aknurwar 	.num_links = 2,
770*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
771*ffaa88a0SVivek Aknurwar };
772*ffaa88a0SVivek Aknurwar 
773*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_snoc_sf = {
774*ffaa88a0SVivek Aknurwar 	.name = "qnm_snoc_sf",
775*ffaa88a0SVivek Aknurwar 	.channels = 1,
776*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
777*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
778*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
779*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x14f000 },
780*ffaa88a0SVivek Aknurwar 		.prio = 0,
781*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
782*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
783*ffaa88a0SVivek Aknurwar 	},
784*ffaa88a0SVivek Aknurwar 	.num_links = 3,
785*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
786*ffaa88a0SVivek Aknurwar 			&qns_pcie },
787*ffaa88a0SVivek Aknurwar };
788*ffaa88a0SVivek Aknurwar 
789*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_wlan_q6 = {
790*ffaa88a0SVivek Aknurwar 	.name = "qnm_wlan_q6",
791*ffaa88a0SVivek Aknurwar 	.channels = 1,
792*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
793*ffaa88a0SVivek Aknurwar 	.num_links = 3,
794*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
795*ffaa88a0SVivek Aknurwar 			&qns_pcie },
796*ffaa88a0SVivek Aknurwar };
797*ffaa88a0SVivek Aknurwar 
798*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpass_ag_noc_gemnoc = {
799*ffaa88a0SVivek Aknurwar 	.name = "qns_lpass_ag_noc_gemnoc",
800*ffaa88a0SVivek Aknurwar 	.channels = 1,
801*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
802*ffaa88a0SVivek Aknurwar 	.num_links = 1,
803*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_lpass_gemnoc },
804*ffaa88a0SVivek Aknurwar };
805*ffaa88a0SVivek Aknurwar 
806*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_mem_noc_hf = {
807*ffaa88a0SVivek Aknurwar 	.name = "qns_mem_noc_hf",
808*ffaa88a0SVivek Aknurwar 	.channels = 2,
809*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
810*ffaa88a0SVivek Aknurwar 	.num_links = 1,
811*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_mnoc_hf },
812*ffaa88a0SVivek Aknurwar };
813*ffaa88a0SVivek Aknurwar 
814*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_mem_noc_sf = {
815*ffaa88a0SVivek Aknurwar 	.name = "qns_mem_noc_sf",
816*ffaa88a0SVivek Aknurwar 	.channels = 2,
817*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
818*ffaa88a0SVivek Aknurwar 	.num_links = 1,
819*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_mnoc_sf },
820*ffaa88a0SVivek Aknurwar };
821*ffaa88a0SVivek Aknurwar 
822*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_nsp_gemnoc = {
823*ffaa88a0SVivek Aknurwar 	.name = "qns_nsp_gemnoc",
824*ffaa88a0SVivek Aknurwar 	.channels = 4,
825*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
826*ffaa88a0SVivek Aknurwar 	.num_links = 1,
827*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_nsp_gemnoc },
828*ffaa88a0SVivek Aknurwar };
829*ffaa88a0SVivek Aknurwar 
830*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_pcie_gemnoc = {
831*ffaa88a0SVivek Aknurwar 	.name = "qns_pcie_gemnoc",
832*ffaa88a0SVivek Aknurwar 	.channels = 1,
833*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
834*ffaa88a0SVivek Aknurwar 	.num_links = 1,
835*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_pcie },
836*ffaa88a0SVivek Aknurwar };
837*ffaa88a0SVivek Aknurwar 
838*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_gemnoc_sf = {
839*ffaa88a0SVivek Aknurwar 	.name = "qns_gemnoc_sf",
840*ffaa88a0SVivek Aknurwar 	.channels = 1,
841*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
842*ffaa88a0SVivek Aknurwar 	.num_links = 1,
843*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_snoc_sf },
844*ffaa88a0SVivek Aknurwar };
845*ffaa88a0SVivek Aknurwar 
846*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpiaon_noc = {
847*ffaa88a0SVivek Aknurwar 	.name = "qnm_lpiaon_noc",
848*ffaa88a0SVivek Aknurwar 	.channels = 1,
849*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
850*ffaa88a0SVivek Aknurwar 	.num_links = 1,
851*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_lpass_ag_noc_gemnoc },
852*ffaa88a0SVivek Aknurwar };
853*ffaa88a0SVivek Aknurwar 
854*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_hf = {
855*ffaa88a0SVivek Aknurwar 	.name = "qnm_camnoc_hf",
856*ffaa88a0SVivek Aknurwar 	.channels = 2,
857*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
858*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
859*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
860*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x2a000, 0x2b000 },
861*ffaa88a0SVivek Aknurwar 		.prio = 0,
862*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
863*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
864*ffaa88a0SVivek Aknurwar 	},
865*ffaa88a0SVivek Aknurwar 	.num_links = 1,
866*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_hf },
867*ffaa88a0SVivek Aknurwar };
868*ffaa88a0SVivek Aknurwar 
869*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_nrt_icp_sf = {
870*ffaa88a0SVivek Aknurwar 	.name = "qnm_camnoc_nrt_icp_sf",
871*ffaa88a0SVivek Aknurwar 	.channels = 1,
872*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
873*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
874*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
875*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x2c000 },
876*ffaa88a0SVivek Aknurwar 		.prio = 4,
877*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
878*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
879*ffaa88a0SVivek Aknurwar 	},
880*ffaa88a0SVivek Aknurwar 	.num_links = 1,
881*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
882*ffaa88a0SVivek Aknurwar };
883*ffaa88a0SVivek Aknurwar 
884*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_rt_cdm_sf = {
885*ffaa88a0SVivek Aknurwar 	.name = "qnm_camnoc_rt_cdm_sf",
886*ffaa88a0SVivek Aknurwar 	.channels = 1,
887*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
888*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
889*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
890*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x38000 },
891*ffaa88a0SVivek Aknurwar 		.prio = 2,
892*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
893*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
894*ffaa88a0SVivek Aknurwar 	},
895*ffaa88a0SVivek Aknurwar 	.num_links = 1,
896*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
897*ffaa88a0SVivek Aknurwar };
898*ffaa88a0SVivek Aknurwar 
899*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_sf = {
900*ffaa88a0SVivek Aknurwar 	.name = "qnm_camnoc_sf",
901*ffaa88a0SVivek Aknurwar 	.channels = 2,
902*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
903*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
904*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
905*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x2d000, 0x2e000 },
906*ffaa88a0SVivek Aknurwar 		.prio = 0,
907*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
908*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
909*ffaa88a0SVivek Aknurwar 	},
910*ffaa88a0SVivek Aknurwar 	.num_links = 1,
911*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
912*ffaa88a0SVivek Aknurwar };
913*ffaa88a0SVivek Aknurwar 
914*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdp = {
915*ffaa88a0SVivek Aknurwar 	.name = "qnm_mdp",
916*ffaa88a0SVivek Aknurwar 	.channels = 2,
917*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
918*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
919*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
920*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x2f000, 0x30000 },
921*ffaa88a0SVivek Aknurwar 		.prio = 0,
922*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
923*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
924*ffaa88a0SVivek Aknurwar 	},
925*ffaa88a0SVivek Aknurwar 	.num_links = 1,
926*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_hf },
927*ffaa88a0SVivek Aknurwar };
928*ffaa88a0SVivek Aknurwar 
929*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdss_dcp = {
930*ffaa88a0SVivek Aknurwar 	.name = "qnm_mdss_dcp",
931*ffaa88a0SVivek Aknurwar 	.channels = 1,
932*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
933*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
934*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
935*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x39000 },
936*ffaa88a0SVivek Aknurwar 		.prio = 0,
937*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
938*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
939*ffaa88a0SVivek Aknurwar 	},
940*ffaa88a0SVivek Aknurwar 	.num_links = 1,
941*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
942*ffaa88a0SVivek Aknurwar };
943*ffaa88a0SVivek Aknurwar 
944*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_vapss_hcp = {
945*ffaa88a0SVivek Aknurwar 	.name = "qnm_vapss_hcp",
946*ffaa88a0SVivek Aknurwar 	.channels = 1,
947*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
948*ffaa88a0SVivek Aknurwar 	.num_links = 1,
949*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
950*ffaa88a0SVivek Aknurwar };
951*ffaa88a0SVivek Aknurwar 
952*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_cv_cpu = {
953*ffaa88a0SVivek Aknurwar 	.name = "qnm_video_cv_cpu",
954*ffaa88a0SVivek Aknurwar 	.channels = 1,
955*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
956*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
957*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
958*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x34000 },
959*ffaa88a0SVivek Aknurwar 		.prio = 4,
960*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
961*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
962*ffaa88a0SVivek Aknurwar 	},
963*ffaa88a0SVivek Aknurwar 	.num_links = 1,
964*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
965*ffaa88a0SVivek Aknurwar };
966*ffaa88a0SVivek Aknurwar 
967*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_eva = {
968*ffaa88a0SVivek Aknurwar 	.name = "qnm_video_eva",
969*ffaa88a0SVivek Aknurwar 	.channels = 2,
970*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
971*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
972*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
973*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x35000, 0x36000 },
974*ffaa88a0SVivek Aknurwar 		.prio = 0,
975*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
976*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
977*ffaa88a0SVivek Aknurwar 	},
978*ffaa88a0SVivek Aknurwar 	.num_links = 1,
979*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
980*ffaa88a0SVivek Aknurwar };
981*ffaa88a0SVivek Aknurwar 
982*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_mvp = {
983*ffaa88a0SVivek Aknurwar 	.name = "qnm_video_mvp",
984*ffaa88a0SVivek Aknurwar 	.channels = 2,
985*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
986*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
987*ffaa88a0SVivek Aknurwar 		.num_ports = 2,
988*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x32000, 0x33000 },
989*ffaa88a0SVivek Aknurwar 		.prio = 0,
990*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
991*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
992*ffaa88a0SVivek Aknurwar 	},
993*ffaa88a0SVivek Aknurwar 	.num_links = 1,
994*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
995*ffaa88a0SVivek Aknurwar };
996*ffaa88a0SVivek Aknurwar 
997*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_v_cpu = {
998*ffaa88a0SVivek Aknurwar 	.name = "qnm_video_v_cpu",
999*ffaa88a0SVivek Aknurwar 	.channels = 1,
1000*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1001*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1002*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1003*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x37000 },
1004*ffaa88a0SVivek Aknurwar 		.prio = 4,
1005*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1006*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1007*ffaa88a0SVivek Aknurwar 	},
1008*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1009*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_mem_noc_sf },
1010*ffaa88a0SVivek Aknurwar };
1011*ffaa88a0SVivek Aknurwar 
1012*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_nsp = {
1013*ffaa88a0SVivek Aknurwar 	.name = "qnm_nsp",
1014*ffaa88a0SVivek Aknurwar 	.channels = 4,
1015*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1016*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1017*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_nsp_gemnoc },
1018*ffaa88a0SVivek Aknurwar };
1019*ffaa88a0SVivek Aknurwar 
1020*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_pcie = {
1021*ffaa88a0SVivek Aknurwar 	.name = "xm_pcie",
1022*ffaa88a0SVivek Aknurwar 	.channels = 1,
1023*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1024*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1025*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1026*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0xc000 },
1027*ffaa88a0SVivek Aknurwar 		.prio = 3,
1028*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1029*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1030*ffaa88a0SVivek Aknurwar 	},
1031*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1032*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_pcie_gemnoc },
1033*ffaa88a0SVivek Aknurwar };
1034*ffaa88a0SVivek Aknurwar 
1035*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_pcie_g4x1 = {
1036*ffaa88a0SVivek Aknurwar 	.name = "xm_pcie_g4x1",
1037*ffaa88a0SVivek Aknurwar 	.channels = 1,
1038*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1039*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1040*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1041*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0xd000 },
1042*ffaa88a0SVivek Aknurwar 		.prio = 2,
1043*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1044*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1045*ffaa88a0SVivek Aknurwar 	},
1046*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1047*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_pcie_gemnoc },
1048*ffaa88a0SVivek Aknurwar };
1049*ffaa88a0SVivek Aknurwar 
1050*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_aggre_noc = {
1051*ffaa88a0SVivek Aknurwar 	.name = "qnm_aggre_noc",
1052*ffaa88a0SVivek Aknurwar 	.channels = 1,
1053*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1054*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1055*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1056*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x20000 },
1057*ffaa88a0SVivek Aknurwar 		.prio = 2,
1058*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1059*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 0,
1060*ffaa88a0SVivek Aknurwar 	},
1061*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1062*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gemnoc_sf },
1063*ffaa88a0SVivek Aknurwar };
1064*ffaa88a0SVivek Aknurwar 
1065*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_apss_noc = {
1066*ffaa88a0SVivek Aknurwar 	.name = "qnm_apss_noc",
1067*ffaa88a0SVivek Aknurwar 	.channels = 1,
1068*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1069*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1070*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1071*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x1e000 },
1072*ffaa88a0SVivek Aknurwar 		.prio = 2,
1073*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1074*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1075*ffaa88a0SVivek Aknurwar 	},
1076*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1077*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gemnoc_sf },
1078*ffaa88a0SVivek Aknurwar };
1079*ffaa88a0SVivek Aknurwar 
1080*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_cnoc_data = {
1081*ffaa88a0SVivek Aknurwar 	.name = "qnm_cnoc_data",
1082*ffaa88a0SVivek Aknurwar 	.channels = 1,
1083*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1084*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1085*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1086*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x1f000 },
1087*ffaa88a0SVivek Aknurwar 		.prio = 2,
1088*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1089*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1090*ffaa88a0SVivek Aknurwar 	},
1091*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1092*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_gemnoc_sf },
1093*ffaa88a0SVivek Aknurwar };
1094*ffaa88a0SVivek Aknurwar 
1095*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_a1noc_snoc = {
1096*ffaa88a0SVivek Aknurwar 	.name = "qns_a1noc_snoc",
1097*ffaa88a0SVivek Aknurwar 	.channels = 1,
1098*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1099*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1100*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_aggre_noc },
1101*ffaa88a0SVivek Aknurwar };
1102*ffaa88a0SVivek Aknurwar 
1103*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpass_aggnoc = {
1104*ffaa88a0SVivek Aknurwar 	.name = "qns_lpass_aggnoc",
1105*ffaa88a0SVivek Aknurwar 	.channels = 1,
1106*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1107*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1108*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_lpiaon_noc },
1109*ffaa88a0SVivek Aknurwar };
1110*ffaa88a0SVivek Aknurwar 
1111*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qspi = {
1112*ffaa88a0SVivek Aknurwar 	.name = "qhm_qspi",
1113*ffaa88a0SVivek Aknurwar 	.channels = 1,
1114*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
1115*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1116*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1117*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x49000 },
1118*ffaa88a0SVivek Aknurwar 		.prio = 2,
1119*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1120*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1121*ffaa88a0SVivek Aknurwar 	},
1122*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1123*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1124*ffaa88a0SVivek Aknurwar };
1125*ffaa88a0SVivek Aknurwar 
1126*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup2 = {
1127*ffaa88a0SVivek Aknurwar 	.name = "qhm_qup2",
1128*ffaa88a0SVivek Aknurwar 	.channels = 1,
1129*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
1130*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1131*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1132*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x48000 },
1133*ffaa88a0SVivek Aknurwar 		.prio = 2,
1134*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1135*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1136*ffaa88a0SVivek Aknurwar 	},
1137*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1138*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1139*ffaa88a0SVivek Aknurwar };
1140*ffaa88a0SVivek Aknurwar 
1141*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup3 = {
1142*ffaa88a0SVivek Aknurwar 	.name = "qhm_qup3",
1143*ffaa88a0SVivek Aknurwar 	.channels = 1,
1144*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
1145*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1146*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1147*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x46000 },
1148*ffaa88a0SVivek Aknurwar 		.prio = 2,
1149*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1150*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1151*ffaa88a0SVivek Aknurwar 	},
1152*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1153*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1154*ffaa88a0SVivek Aknurwar };
1155*ffaa88a0SVivek Aknurwar 
1156*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup4 = {
1157*ffaa88a0SVivek Aknurwar 	.name = "qhm_qup4",
1158*ffaa88a0SVivek Aknurwar 	.channels = 1,
1159*ffaa88a0SVivek Aknurwar 	.buswidth = 4,
1160*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1161*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1162*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x47000 },
1163*ffaa88a0SVivek Aknurwar 		.prio = 2,
1164*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1165*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1166*ffaa88a0SVivek Aknurwar 	},
1167*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1168*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1169*ffaa88a0SVivek Aknurwar };
1170*ffaa88a0SVivek Aknurwar 
1171*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_crypto = {
1172*ffaa88a0SVivek Aknurwar 	.name = "qxm_crypto",
1173*ffaa88a0SVivek Aknurwar 	.channels = 1,
1174*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1175*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1176*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1177*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x40000 },
1178*ffaa88a0SVivek Aknurwar 		.prio = 2,
1179*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1180*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1181*ffaa88a0SVivek Aknurwar 	},
1182*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1183*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1184*ffaa88a0SVivek Aknurwar };
1185*ffaa88a0SVivek Aknurwar 
1186*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_ipa = {
1187*ffaa88a0SVivek Aknurwar 	.name = "qxm_ipa",
1188*ffaa88a0SVivek Aknurwar 	.channels = 1,
1189*ffaa88a0SVivek Aknurwar 	.buswidth = 16,
1190*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1191*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1192*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x41000 },
1193*ffaa88a0SVivek Aknurwar 		.prio = 2,
1194*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1195*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1196*ffaa88a0SVivek Aknurwar 	},
1197*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1198*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1199*ffaa88a0SVivek Aknurwar };
1200*ffaa88a0SVivek Aknurwar 
1201*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_qup1 = {
1202*ffaa88a0SVivek Aknurwar 	.name = "qxm_qup1",
1203*ffaa88a0SVivek Aknurwar 	.channels = 1,
1204*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1205*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1206*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1207*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x4d000 },
1208*ffaa88a0SVivek Aknurwar 		.prio = 2,
1209*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1210*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1211*ffaa88a0SVivek Aknurwar 	},
1212*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1213*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1214*ffaa88a0SVivek Aknurwar };
1215*ffaa88a0SVivek Aknurwar 
1216*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_soccp = {
1217*ffaa88a0SVivek Aknurwar 	.name = "qxm_soccp",
1218*ffaa88a0SVivek Aknurwar 	.channels = 1,
1219*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1220*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1221*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1222*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x45000 },
1223*ffaa88a0SVivek Aknurwar 		.prio = 2,
1224*ffaa88a0SVivek Aknurwar 		.urg_fwd = 1,
1225*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1226*ffaa88a0SVivek Aknurwar 	},
1227*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1228*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1229*ffaa88a0SVivek Aknurwar };
1230*ffaa88a0SVivek Aknurwar 
1231*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_qdss_etr_0 = {
1232*ffaa88a0SVivek Aknurwar 	.name = "xm_qdss_etr_0",
1233*ffaa88a0SVivek Aknurwar 	.channels = 1,
1234*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1235*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1236*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1237*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x42000 },
1238*ffaa88a0SVivek Aknurwar 		.prio = 2,
1239*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1240*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1241*ffaa88a0SVivek Aknurwar 	},
1242*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1243*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1244*ffaa88a0SVivek Aknurwar };
1245*ffaa88a0SVivek Aknurwar 
1246*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_qdss_etr_1 = {
1247*ffaa88a0SVivek Aknurwar 	.name = "xm_qdss_etr_1",
1248*ffaa88a0SVivek Aknurwar 	.channels = 1,
1249*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1250*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1251*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1252*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x43000 },
1253*ffaa88a0SVivek Aknurwar 		.prio = 2,
1254*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1255*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1256*ffaa88a0SVivek Aknurwar 	},
1257*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1258*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1259*ffaa88a0SVivek Aknurwar };
1260*ffaa88a0SVivek Aknurwar 
1261*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_sdc2 = {
1262*ffaa88a0SVivek Aknurwar 	.name = "xm_sdc2",
1263*ffaa88a0SVivek Aknurwar 	.channels = 1,
1264*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1265*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1266*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1267*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x44000 },
1268*ffaa88a0SVivek Aknurwar 		.prio = 2,
1269*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1270*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1271*ffaa88a0SVivek Aknurwar 	},
1272*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1273*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1274*ffaa88a0SVivek Aknurwar };
1275*ffaa88a0SVivek Aknurwar 
1276*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_sdc4 = {
1277*ffaa88a0SVivek Aknurwar 	.name = "xm_sdc4",
1278*ffaa88a0SVivek Aknurwar 	.channels = 1,
1279*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1280*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1281*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1282*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x4a000 },
1283*ffaa88a0SVivek Aknurwar 		.prio = 2,
1284*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1285*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1286*ffaa88a0SVivek Aknurwar 	},
1287*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1288*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1289*ffaa88a0SVivek Aknurwar };
1290*ffaa88a0SVivek Aknurwar 
1291*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_ufs_mem = {
1292*ffaa88a0SVivek Aknurwar 	.name = "xm_ufs_mem",
1293*ffaa88a0SVivek Aknurwar 	.channels = 1,
1294*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1295*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1296*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1297*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x4b000 },
1298*ffaa88a0SVivek Aknurwar 		.prio = 2,
1299*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1300*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1301*ffaa88a0SVivek Aknurwar 	},
1302*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1303*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1304*ffaa88a0SVivek Aknurwar };
1305*ffaa88a0SVivek Aknurwar 
1306*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_usb3 = {
1307*ffaa88a0SVivek Aknurwar 	.name = "xm_usb3",
1308*ffaa88a0SVivek Aknurwar 	.channels = 1,
1309*ffaa88a0SVivek Aknurwar 	.buswidth = 8,
1310*ffaa88a0SVivek Aknurwar 	.qosbox = &(const struct qcom_icc_qosbox) {
1311*ffaa88a0SVivek Aknurwar 		.num_ports = 1,
1312*ffaa88a0SVivek Aknurwar 		.port_offsets = { 0x4c000 },
1313*ffaa88a0SVivek Aknurwar 		.prio = 2,
1314*ffaa88a0SVivek Aknurwar 		.urg_fwd = 0,
1315*ffaa88a0SVivek Aknurwar 		.prio_fwd_disable = 1,
1316*ffaa88a0SVivek Aknurwar 	},
1317*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1318*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_a1noc_snoc },
1319*ffaa88a0SVivek Aknurwar };
1320*ffaa88a0SVivek Aknurwar 
1321*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpass_lpinoc = {
1322*ffaa88a0SVivek Aknurwar 	.name = "qnm_lpass_lpinoc",
1323*ffaa88a0SVivek Aknurwar 	.channels = 1,
1324*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1325*ffaa88a0SVivek Aknurwar 	.num_links = 2,
1326*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_llc_lpinoc, &qns_lpass_aggnoc },
1327*ffaa88a0SVivek Aknurwar };
1328*ffaa88a0SVivek Aknurwar 
1329*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpi_aon_noc = {
1330*ffaa88a0SVivek Aknurwar 	.name = "qns_lpi_aon_noc",
1331*ffaa88a0SVivek Aknurwar 	.channels = 1,
1332*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1333*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1334*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qnm_lpass_lpinoc },
1335*ffaa88a0SVivek Aknurwar };
1336*ffaa88a0SVivek Aknurwar 
1337*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpinoc_dsp_qns4m = {
1338*ffaa88a0SVivek Aknurwar 	.name = "qnm_lpinoc_dsp_qns4m",
1339*ffaa88a0SVivek Aknurwar 	.channels = 1,
1340*ffaa88a0SVivek Aknurwar 	.buswidth = 32,
1341*ffaa88a0SVivek Aknurwar 	.num_links = 1,
1342*ffaa88a0SVivek Aknurwar 	.link_nodes = { &qns_lpi_aon_noc },
1343*ffaa88a0SVivek Aknurwar };
1344*ffaa88a0SVivek Aknurwar 
1345*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_acv = {
1346*ffaa88a0SVivek Aknurwar 	.name = "ACV",
1347*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(3),
1348*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1349*ffaa88a0SVivek Aknurwar 	.nodes = { &ebi },
1350*ffaa88a0SVivek Aknurwar };
1351*ffaa88a0SVivek Aknurwar 
1352*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_ce0 = {
1353*ffaa88a0SVivek Aknurwar 	.name = "CE0",
1354*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1355*ffaa88a0SVivek Aknurwar 	.nodes = { &qxm_crypto },
1356*ffaa88a0SVivek Aknurwar };
1357*ffaa88a0SVivek Aknurwar 
1358*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_cn0 = {
1359*ffaa88a0SVivek Aknurwar 	.name = "CN0",
1360*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(0),
1361*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1362*ffaa88a0SVivek Aknurwar 	.num_nodes = 24,
1363*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
1364*ffaa88a0SVivek Aknurwar 		   &qhs_aoss, &qhs_ipa,
1365*ffaa88a0SVivek Aknurwar 		   &qhs_ipc_router_fence, &qhs_soccp,
1366*ffaa88a0SVivek Aknurwar 		   &qhs_tme_cfg, &qss_cfg,
1367*ffaa88a0SVivek Aknurwar 		   &qss_ddrss_cfg, &qxs_imem,
1368*ffaa88a0SVivek Aknurwar 		   &xs_pcie, &xs_pcie_g4x1,
1369*ffaa88a0SVivek Aknurwar 		   &qsm_cfg_center, &qsm_cfg_east,
1370*ffaa88a0SVivek Aknurwar 		   &qsm_cfg_mm, &qsm_cfg_north,
1371*ffaa88a0SVivek Aknurwar 		   &qsm_cfg_south, &qsm_cfg_southwest,
1372*ffaa88a0SVivek Aknurwar 		   &qhs_ahb2phy0, &qhs_boot_rom,
1373*ffaa88a0SVivek Aknurwar 		   &qhs_camera_cfg, &qhs_clk_ctl,
1374*ffaa88a0SVivek Aknurwar 		   &qhs_crypto_cfg, &qhs_eva_cfg },
1375*ffaa88a0SVivek Aknurwar };
1376*ffaa88a0SVivek Aknurwar 
1377*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_cn1 = {
1378*ffaa88a0SVivek Aknurwar 	.name = "CN1",
1379*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1380*ffaa88a0SVivek Aknurwar 	.nodes = { &qhs_display_cfg },
1381*ffaa88a0SVivek Aknurwar };
1382*ffaa88a0SVivek Aknurwar 
1383*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_co0 = {
1384*ffaa88a0SVivek Aknurwar 	.name = "CO0",
1385*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(0),
1386*ffaa88a0SVivek Aknurwar 	.num_nodes = 2,
1387*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_nsp, &qns_nsp_gemnoc },
1388*ffaa88a0SVivek Aknurwar };
1389*ffaa88a0SVivek Aknurwar 
1390*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_de0 = {
1391*ffaa88a0SVivek Aknurwar 	.name = "DE0",
1392*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(0),
1393*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1394*ffaa88a0SVivek Aknurwar 	.nodes = { &ddr_eff_veto_slave },
1395*ffaa88a0SVivek Aknurwar };
1396*ffaa88a0SVivek Aknurwar 
1397*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_lp0 = {
1398*ffaa88a0SVivek Aknurwar 	.name = "LP0",
1399*ffaa88a0SVivek Aknurwar 	.num_nodes = 5,
1400*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_lpiaon_noc_llclpi_noc, &qns_lb,
1401*ffaa88a0SVivek Aknurwar 		   &qnm_lpass_lpinoc, &qns_llc_lpinoc,
1402*ffaa88a0SVivek Aknurwar 		   &qns_lpass_aggnoc },
1403*ffaa88a0SVivek Aknurwar };
1404*ffaa88a0SVivek Aknurwar 
1405*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mc0 = {
1406*ffaa88a0SVivek Aknurwar 	.name = "MC0",
1407*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1408*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1409*ffaa88a0SVivek Aknurwar 	.nodes = { &ebi },
1410*ffaa88a0SVivek Aknurwar };
1411*ffaa88a0SVivek Aknurwar 
1412*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mc5 = {
1413*ffaa88a0SVivek Aknurwar 	.name = "MC5",
1414*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1415*ffaa88a0SVivek Aknurwar 	.nodes = { &ddr_rt_slave },
1416*ffaa88a0SVivek Aknurwar };
1417*ffaa88a0SVivek Aknurwar 
1418*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mm0 = {
1419*ffaa88a0SVivek Aknurwar 	.name = "MM0",
1420*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1421*ffaa88a0SVivek Aknurwar 	.nodes = { &qns_mem_noc_hf },
1422*ffaa88a0SVivek Aknurwar };
1423*ffaa88a0SVivek Aknurwar 
1424*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mm1 = {
1425*ffaa88a0SVivek Aknurwar 	.name = "MM1",
1426*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(0),
1427*ffaa88a0SVivek Aknurwar 	.num_nodes = 9,
1428*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_camnoc_hf, &qnm_camnoc_nrt_icp_sf,
1429*ffaa88a0SVivek Aknurwar 		   &qnm_camnoc_rt_cdm_sf, &qnm_camnoc_sf,
1430*ffaa88a0SVivek Aknurwar 		   &qnm_vapss_hcp, &qnm_video_cv_cpu,
1431*ffaa88a0SVivek Aknurwar 		   &qnm_video_mvp, &qnm_video_v_cpu,
1432*ffaa88a0SVivek Aknurwar 		   &qns_mem_noc_sf },
1433*ffaa88a0SVivek Aknurwar };
1434*ffaa88a0SVivek Aknurwar 
1435*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qpc0 = {
1436*ffaa88a0SVivek Aknurwar 	.name = "QPC0",
1437*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1438*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_qpace },
1439*ffaa88a0SVivek Aknurwar };
1440*ffaa88a0SVivek Aknurwar 
1441*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup0 = {
1442*ffaa88a0SVivek Aknurwar 	.name = "QUP0",
1443*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1444*ffaa88a0SVivek Aknurwar 	.vote_scale = 1,
1445*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1446*ffaa88a0SVivek Aknurwar 	.nodes = { &qup0_core_slave },
1447*ffaa88a0SVivek Aknurwar };
1448*ffaa88a0SVivek Aknurwar 
1449*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup1 = {
1450*ffaa88a0SVivek Aknurwar 	.name = "QUP1",
1451*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1452*ffaa88a0SVivek Aknurwar 	.vote_scale = 1,
1453*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1454*ffaa88a0SVivek Aknurwar 	.nodes = { &qup1_core_slave },
1455*ffaa88a0SVivek Aknurwar };
1456*ffaa88a0SVivek Aknurwar 
1457*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup2 = {
1458*ffaa88a0SVivek Aknurwar 	.name = "QUP2",
1459*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1460*ffaa88a0SVivek Aknurwar 	.vote_scale = 1,
1461*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1462*ffaa88a0SVivek Aknurwar 	.nodes = { &qup2_core_slave },
1463*ffaa88a0SVivek Aknurwar };
1464*ffaa88a0SVivek Aknurwar 
1465*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup3 = {
1466*ffaa88a0SVivek Aknurwar 	.name = "QUP3",
1467*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1468*ffaa88a0SVivek Aknurwar 	.vote_scale = 1,
1469*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1470*ffaa88a0SVivek Aknurwar 	.nodes = { &qup3_core_slave },
1471*ffaa88a0SVivek Aknurwar };
1472*ffaa88a0SVivek Aknurwar 
1473*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup4 = {
1474*ffaa88a0SVivek Aknurwar 	.name = "QUP4",
1475*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1476*ffaa88a0SVivek Aknurwar 	.vote_scale = 1,
1477*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1478*ffaa88a0SVivek Aknurwar 	.nodes = { &qup4_core_slave },
1479*ffaa88a0SVivek Aknurwar };
1480*ffaa88a0SVivek Aknurwar 
1481*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sh0 = {
1482*ffaa88a0SVivek Aknurwar 	.name = "SH0",
1483*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1484*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1485*ffaa88a0SVivek Aknurwar 	.nodes = { &qns_llcc },
1486*ffaa88a0SVivek Aknurwar };
1487*ffaa88a0SVivek Aknurwar 
1488*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sh1 = {
1489*ffaa88a0SVivek Aknurwar 	.name = "SH1",
1490*ffaa88a0SVivek Aknurwar 	.enable_mask = BIT(0),
1491*ffaa88a0SVivek Aknurwar 	.num_nodes = 15,
1492*ffaa88a0SVivek Aknurwar 	.nodes = { &alm_gic, &alm_gpu_tcu,
1493*ffaa88a0SVivek Aknurwar 		   &alm_sys_tcu, &chm_apps,
1494*ffaa88a0SVivek Aknurwar 		   &qnm_gpu, &qnm_lpass_gemnoc,
1495*ffaa88a0SVivek Aknurwar 		   &qnm_mdsp, &qnm_mnoc_hf,
1496*ffaa88a0SVivek Aknurwar 		   &qnm_mnoc_sf, &qnm_nsp_gemnoc,
1497*ffaa88a0SVivek Aknurwar 		   &qnm_pcie, &qnm_snoc_sf,
1498*ffaa88a0SVivek Aknurwar 		   &qnm_wlan_q6, &qns_gem_noc_cnoc,
1499*ffaa88a0SVivek Aknurwar 		   &qns_pcie },
1500*ffaa88a0SVivek Aknurwar };
1501*ffaa88a0SVivek Aknurwar 
1502*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn0 = {
1503*ffaa88a0SVivek Aknurwar 	.name = "SN0",
1504*ffaa88a0SVivek Aknurwar 	.keepalive = true,
1505*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1506*ffaa88a0SVivek Aknurwar 	.nodes = { &qns_gemnoc_sf },
1507*ffaa88a0SVivek Aknurwar };
1508*ffaa88a0SVivek Aknurwar 
1509*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn2 = {
1510*ffaa88a0SVivek Aknurwar 	.name = "SN2",
1511*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1512*ffaa88a0SVivek Aknurwar 	.nodes = { &qnm_aggre_noc },
1513*ffaa88a0SVivek Aknurwar };
1514*ffaa88a0SVivek Aknurwar 
1515*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn3 = {
1516*ffaa88a0SVivek Aknurwar 	.name = "SN3",
1517*ffaa88a0SVivek Aknurwar 	.num_nodes = 1,
1518*ffaa88a0SVivek Aknurwar 	.nodes = { &qns_pcie_gemnoc },
1519*ffaa88a0SVivek Aknurwar };
1520*ffaa88a0SVivek Aknurwar 
1521*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1522*ffaa88a0SVivek Aknurwar 	&bcm_ce0,
1523*ffaa88a0SVivek Aknurwar };
1524*ffaa88a0SVivek Aknurwar 
1525*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const aggre1_noc_nodes[] = {
1526*ffaa88a0SVivek Aknurwar 	[MASTER_QSPI_0] = &qhm_qspi,
1527*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_2] = &qhm_qup2,
1528*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_3] = &qhm_qup3,
1529*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_4] = &qhm_qup4,
1530*ffaa88a0SVivek Aknurwar 	[MASTER_CRYPTO] = &qxm_crypto,
1531*ffaa88a0SVivek Aknurwar 	[MASTER_IPA] = &qxm_ipa,
1532*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_1] = &qxm_qup1,
1533*ffaa88a0SVivek Aknurwar 	[MASTER_SOCCP_PROC] = &qxm_soccp,
1534*ffaa88a0SVivek Aknurwar 	[MASTER_QDSS_ETR] = &xm_qdss_etr_0,
1535*ffaa88a0SVivek Aknurwar 	[MASTER_QDSS_ETR_1] = &xm_qdss_etr_1,
1536*ffaa88a0SVivek Aknurwar 	[MASTER_SDCC_2] = &xm_sdc2,
1537*ffaa88a0SVivek Aknurwar 	[MASTER_SDCC_4] = &xm_sdc4,
1538*ffaa88a0SVivek Aknurwar 	[MASTER_UFS_MEM] = &xm_ufs_mem,
1539*ffaa88a0SVivek Aknurwar 	[MASTER_USB3] = &xm_usb3,
1540*ffaa88a0SVivek Aknurwar 	[SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
1541*ffaa88a0SVivek Aknurwar };
1542*ffaa88a0SVivek Aknurwar 
1543*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_aggre1_noc_regmap_config = {
1544*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1545*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1546*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1547*ffaa88a0SVivek Aknurwar 	.max_register = 0x54400,
1548*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1549*ffaa88a0SVivek Aknurwar };
1550*ffaa88a0SVivek Aknurwar 
1551*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_aggre1_noc = {
1552*ffaa88a0SVivek Aknurwar 	.config = &hawi_aggre1_noc_regmap_config,
1553*ffaa88a0SVivek Aknurwar 	.nodes = aggre1_noc_nodes,
1554*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
1555*ffaa88a0SVivek Aknurwar 	.bcms = aggre1_noc_bcms,
1556*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
1557*ffaa88a0SVivek Aknurwar 	.qos_requires_clocks = true,
1558*ffaa88a0SVivek Aknurwar };
1559*ffaa88a0SVivek Aknurwar 
1560*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const clk_virt_bcms[] = {
1561*ffaa88a0SVivek Aknurwar 	&bcm_de0,
1562*ffaa88a0SVivek Aknurwar 	&bcm_qup0,
1563*ffaa88a0SVivek Aknurwar 	&bcm_qup1,
1564*ffaa88a0SVivek Aknurwar 	&bcm_qup2,
1565*ffaa88a0SVivek Aknurwar 	&bcm_qup3,
1566*ffaa88a0SVivek Aknurwar 	&bcm_qup4,
1567*ffaa88a0SVivek Aknurwar };
1568*ffaa88a0SVivek Aknurwar 
1569*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const clk_virt_nodes[] = {
1570*ffaa88a0SVivek Aknurwar 	[MASTER_DDR_EFF_VETO] = &ddr_eff_veto_master,
1571*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_CORE_0] = &qup0_core_master,
1572*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_CORE_1] = &qup1_core_master,
1573*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_CORE_2] = &qup2_core_master,
1574*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_CORE_3] = &qup3_core_master,
1575*ffaa88a0SVivek Aknurwar 	[MASTER_QUP_CORE_4] = &qup4_core_master,
1576*ffaa88a0SVivek Aknurwar 	[SLAVE_DDR_EFF_VETO] = &ddr_eff_veto_slave,
1577*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_CORE_0] = &qup0_core_slave,
1578*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_CORE_1] = &qup1_core_slave,
1579*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_CORE_2] = &qup2_core_slave,
1580*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_CORE_3] = &qup3_core_slave,
1581*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_CORE_4] = &qup4_core_slave,
1582*ffaa88a0SVivek Aknurwar };
1583*ffaa88a0SVivek Aknurwar 
1584*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_clk_virt = {
1585*ffaa88a0SVivek Aknurwar 	.nodes = clk_virt_nodes,
1586*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(clk_virt_nodes),
1587*ffaa88a0SVivek Aknurwar 	.bcms = clk_virt_bcms,
1588*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(clk_virt_bcms),
1589*ffaa88a0SVivek Aknurwar };
1590*ffaa88a0SVivek Aknurwar 
1591*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const cnoc_main_bcms[] = {
1592*ffaa88a0SVivek Aknurwar 	&bcm_cn0,
1593*ffaa88a0SVivek Aknurwar };
1594*ffaa88a0SVivek Aknurwar 
1595*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const cnoc_main_nodes[] = {
1596*ffaa88a0SVivek Aknurwar 	[MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
1597*ffaa88a0SVivek Aknurwar 	[MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
1598*ffaa88a0SVivek Aknurwar 	[SLAVE_AOSS] = &qhs_aoss,
1599*ffaa88a0SVivek Aknurwar 	[SLAVE_IPA_CFG] = &qhs_ipa,
1600*ffaa88a0SVivek Aknurwar 	[SLAVE_IPC_ROUTER_FENCE] = &qhs_ipc_router_fence,
1601*ffaa88a0SVivek Aknurwar 	[SLAVE_SOCCP] = &qhs_soccp,
1602*ffaa88a0SVivek Aknurwar 	[SLAVE_TME_CFG] = &qhs_tme_cfg,
1603*ffaa88a0SVivek Aknurwar 	[SLAVE_CNOC_CFG] = &qss_cfg,
1604*ffaa88a0SVivek Aknurwar 	[SLAVE_DDRSS_CFG] = &qss_ddrss_cfg,
1605*ffaa88a0SVivek Aknurwar 	[SLAVE_IMEM] = &qxs_imem,
1606*ffaa88a0SVivek Aknurwar 	[SLAVE_PCIE_0] = &xs_pcie,
1607*ffaa88a0SVivek Aknurwar 	[SLAVE_PCIE_1] = &xs_pcie_g4x1,
1608*ffaa88a0SVivek Aknurwar };
1609*ffaa88a0SVivek Aknurwar 
1610*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_cnoc_main_regmap_config = {
1611*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1612*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1613*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1614*ffaa88a0SVivek Aknurwar 	.max_register = 0x20000,
1615*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1616*ffaa88a0SVivek Aknurwar };
1617*ffaa88a0SVivek Aknurwar 
1618*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_cnoc_main = {
1619*ffaa88a0SVivek Aknurwar 	.config = &hawi_cnoc_main_regmap_config,
1620*ffaa88a0SVivek Aknurwar 	.nodes = cnoc_main_nodes,
1621*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(cnoc_main_nodes),
1622*ffaa88a0SVivek Aknurwar 	.bcms = cnoc_main_bcms,
1623*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(cnoc_main_bcms),
1624*ffaa88a0SVivek Aknurwar };
1625*ffaa88a0SVivek Aknurwar 
1626*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const gem_noc_bcms[] = {
1627*ffaa88a0SVivek Aknurwar 	&bcm_qpc0,
1628*ffaa88a0SVivek Aknurwar 	&bcm_sh0,
1629*ffaa88a0SVivek Aknurwar 	&bcm_sh1,
1630*ffaa88a0SVivek Aknurwar };
1631*ffaa88a0SVivek Aknurwar 
1632*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const gem_noc_nodes[] = {
1633*ffaa88a0SVivek Aknurwar 	[MASTER_GIC] = &alm_gic,
1634*ffaa88a0SVivek Aknurwar 	[MASTER_GPU_TCU] = &alm_gpu_tcu,
1635*ffaa88a0SVivek Aknurwar 	[MASTER_SYS_TCU] = &alm_sys_tcu,
1636*ffaa88a0SVivek Aknurwar 	[MASTER_APPSS_PROC] = &chm_apps,
1637*ffaa88a0SVivek Aknurwar 	[MASTER_GFX3D] = &qnm_gpu,
1638*ffaa88a0SVivek Aknurwar 	[MASTER_LPASS_GEM_NOC] = &qnm_lpass_gemnoc,
1639*ffaa88a0SVivek Aknurwar 	[MASTER_MSS_PROC] = &qnm_mdsp,
1640*ffaa88a0SVivek Aknurwar 	[MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
1641*ffaa88a0SVivek Aknurwar 	[MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
1642*ffaa88a0SVivek Aknurwar 	[MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc,
1643*ffaa88a0SVivek Aknurwar 	[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
1644*ffaa88a0SVivek Aknurwar 	[MASTER_QPACE] = &qnm_qpace,
1645*ffaa88a0SVivek Aknurwar 	[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
1646*ffaa88a0SVivek Aknurwar 	[MASTER_WLAN_Q6] = &qnm_wlan_q6,
1647*ffaa88a0SVivek Aknurwar 	[SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
1648*ffaa88a0SVivek Aknurwar 	[SLAVE_LLCC] = &qns_llcc,
1649*ffaa88a0SVivek Aknurwar 	[SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
1650*ffaa88a0SVivek Aknurwar };
1651*ffaa88a0SVivek Aknurwar 
1652*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_gem_noc_regmap_config = {
1653*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1654*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1655*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1656*ffaa88a0SVivek Aknurwar 	.max_register = 0x160200,
1657*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1658*ffaa88a0SVivek Aknurwar };
1659*ffaa88a0SVivek Aknurwar 
1660*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_gem_noc = {
1661*ffaa88a0SVivek Aknurwar 	.config = &hawi_gem_noc_regmap_config,
1662*ffaa88a0SVivek Aknurwar 	.nodes = gem_noc_nodes,
1663*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(gem_noc_nodes),
1664*ffaa88a0SVivek Aknurwar 	.bcms = gem_noc_bcms,
1665*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(gem_noc_bcms),
1666*ffaa88a0SVivek Aknurwar };
1667*ffaa88a0SVivek Aknurwar 
1668*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const llclpi_noc_bcms[] = {
1669*ffaa88a0SVivek Aknurwar 	&bcm_lp0,
1670*ffaa88a0SVivek Aknurwar };
1671*ffaa88a0SVivek Aknurwar 
1672*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const llclpi_noc_nodes[] = {
1673*ffaa88a0SVivek Aknurwar 	[MASTER_LPIAON_NOC_LLCLPI_NOC] = &qnm_lpiaon_noc_llclpi_noc,
1674*ffaa88a0SVivek Aknurwar 	[SLAVE_LPASS_LPI_CC] = &qhs_lpi_cc,
1675*ffaa88a0SVivek Aknurwar 	[SLAVE_LLCC_ISLAND] = &qns_lb,
1676*ffaa88a0SVivek Aknurwar 	[SLAVE_SERVICE_LLCLPI_NOC] = &srvc_llclpi_noc,
1677*ffaa88a0SVivek Aknurwar 	[SLAVE_SERVICE_LLCLPI_NOC_CHIPCX] = &srvc_llclpi_noc_chipcx,
1678*ffaa88a0SVivek Aknurwar };
1679*ffaa88a0SVivek Aknurwar 
1680*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_llclpi_noc_regmap_config = {
1681*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1682*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1683*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1684*ffaa88a0SVivek Aknurwar 	.max_register = 0x17200,
1685*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1686*ffaa88a0SVivek Aknurwar };
1687*ffaa88a0SVivek Aknurwar 
1688*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_llclpi_noc = {
1689*ffaa88a0SVivek Aknurwar 	.config = &hawi_llclpi_noc_regmap_config,
1690*ffaa88a0SVivek Aknurwar 	.nodes = llclpi_noc_nodes,
1691*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(llclpi_noc_nodes),
1692*ffaa88a0SVivek Aknurwar 	.bcms = llclpi_noc_bcms,
1693*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(llclpi_noc_bcms),
1694*ffaa88a0SVivek Aknurwar };
1695*ffaa88a0SVivek Aknurwar 
1696*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
1697*ffaa88a0SVivek Aknurwar 	[MASTER_LPIAON_NOC] = &qnm_lpiaon_noc,
1698*ffaa88a0SVivek Aknurwar 	[SLAVE_LPASS_GEM_NOC] = &qns_lpass_ag_noc_gemnoc,
1699*ffaa88a0SVivek Aknurwar };
1700*ffaa88a0SVivek Aknurwar 
1701*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_ag_noc_regmap_config = {
1702*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1703*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1704*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1705*ffaa88a0SVivek Aknurwar 	.max_register = 0xc080,
1706*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1707*ffaa88a0SVivek Aknurwar };
1708*ffaa88a0SVivek Aknurwar 
1709*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_ag_noc = {
1710*ffaa88a0SVivek Aknurwar 	.config = &hawi_lpass_ag_noc_regmap_config,
1711*ffaa88a0SVivek Aknurwar 	.nodes = lpass_ag_noc_nodes,
1712*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
1713*ffaa88a0SVivek Aknurwar };
1714*ffaa88a0SVivek Aknurwar 
1715*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const lpass_lpiaon_noc_bcms[] = {
1716*ffaa88a0SVivek Aknurwar 	&bcm_lp0,
1717*ffaa88a0SVivek Aknurwar };
1718*ffaa88a0SVivek Aknurwar 
1719*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_lpiaon_noc_nodes[] = {
1720*ffaa88a0SVivek Aknurwar 	[MASTER_LPASS_LPINOC] = &qnm_lpass_lpinoc,
1721*ffaa88a0SVivek Aknurwar 	[SLAVE_LPIAON_NOC_LLCLPI_NOC] = &qns_llc_lpinoc,
1722*ffaa88a0SVivek Aknurwar 	[SLAVE_LPIAON_NOC_LPASS_AG_NOC] = &qns_lpass_aggnoc,
1723*ffaa88a0SVivek Aknurwar };
1724*ffaa88a0SVivek Aknurwar 
1725*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_lpiaon_noc_regmap_config = {
1726*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1727*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1728*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1729*ffaa88a0SVivek Aknurwar 	.max_register = 0x19080,
1730*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1731*ffaa88a0SVivek Aknurwar };
1732*ffaa88a0SVivek Aknurwar 
1733*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_lpiaon_noc = {
1734*ffaa88a0SVivek Aknurwar 	.config = &hawi_lpass_lpiaon_noc_regmap_config,
1735*ffaa88a0SVivek Aknurwar 	.nodes = lpass_lpiaon_noc_nodes,
1736*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(lpass_lpiaon_noc_nodes),
1737*ffaa88a0SVivek Aknurwar 	.bcms = lpass_lpiaon_noc_bcms,
1738*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(lpass_lpiaon_noc_bcms),
1739*ffaa88a0SVivek Aknurwar };
1740*ffaa88a0SVivek Aknurwar 
1741*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_lpicx_noc_nodes[] = {
1742*ffaa88a0SVivek Aknurwar 	[MASTER_LPASS_PROC] = &qnm_lpinoc_dsp_qns4m,
1743*ffaa88a0SVivek Aknurwar 	[SLAVE_LPICX_NOC_LPIAON_NOC] = &qns_lpi_aon_noc,
1744*ffaa88a0SVivek Aknurwar };
1745*ffaa88a0SVivek Aknurwar 
1746*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_lpicx_noc_regmap_config = {
1747*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1748*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1749*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1750*ffaa88a0SVivek Aknurwar 	.max_register = 0x46080,
1751*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1752*ffaa88a0SVivek Aknurwar };
1753*ffaa88a0SVivek Aknurwar 
1754*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_lpicx_noc = {
1755*ffaa88a0SVivek Aknurwar 	.config = &hawi_lpass_lpicx_noc_regmap_config,
1756*ffaa88a0SVivek Aknurwar 	.nodes = lpass_lpicx_noc_nodes,
1757*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(lpass_lpicx_noc_nodes),
1758*ffaa88a0SVivek Aknurwar };
1759*ffaa88a0SVivek Aknurwar 
1760*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const mc_virt_bcms[] = {
1761*ffaa88a0SVivek Aknurwar 	&bcm_acv,
1762*ffaa88a0SVivek Aknurwar 	&bcm_mc0,
1763*ffaa88a0SVivek Aknurwar 	&bcm_mc5,
1764*ffaa88a0SVivek Aknurwar };
1765*ffaa88a0SVivek Aknurwar 
1766*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const mc_virt_nodes[] = {
1767*ffaa88a0SVivek Aknurwar 	[MASTER_LLCC] = &llcc_mc,
1768*ffaa88a0SVivek Aknurwar 	[MASTER_DDR_RT] = &ddr_rt_mc,
1769*ffaa88a0SVivek Aknurwar 	[SLAVE_EBI1] = &ebi,
1770*ffaa88a0SVivek Aknurwar 	[SLAVE_DDR_RT] = &ddr_rt_slave,
1771*ffaa88a0SVivek Aknurwar };
1772*ffaa88a0SVivek Aknurwar 
1773*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_mc_virt = {
1774*ffaa88a0SVivek Aknurwar 	.nodes = mc_virt_nodes,
1775*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(mc_virt_nodes),
1776*ffaa88a0SVivek Aknurwar 	.bcms = mc_virt_bcms,
1777*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(mc_virt_bcms),
1778*ffaa88a0SVivek Aknurwar };
1779*ffaa88a0SVivek Aknurwar 
1780*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
1781*ffaa88a0SVivek Aknurwar 	&bcm_mm0,
1782*ffaa88a0SVivek Aknurwar 	&bcm_mm1,
1783*ffaa88a0SVivek Aknurwar };
1784*ffaa88a0SVivek Aknurwar 
1785*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const mmss_noc_nodes[] = {
1786*ffaa88a0SVivek Aknurwar 	[MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
1787*ffaa88a0SVivek Aknurwar 	[MASTER_CAMNOC_NRT_ICP_SF] = &qnm_camnoc_nrt_icp_sf,
1788*ffaa88a0SVivek Aknurwar 	[MASTER_CAMNOC_RT_CDM_SF] = &qnm_camnoc_rt_cdm_sf,
1789*ffaa88a0SVivek Aknurwar 	[MASTER_CAMNOC_SF] = &qnm_camnoc_sf,
1790*ffaa88a0SVivek Aknurwar 	[MASTER_MDP] = &qnm_mdp,
1791*ffaa88a0SVivek Aknurwar 	[MASTER_MDSS_DCP] = &qnm_mdss_dcp,
1792*ffaa88a0SVivek Aknurwar 	[MASTER_CDSP_HCP] = &qnm_vapss_hcp,
1793*ffaa88a0SVivek Aknurwar 	[MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu,
1794*ffaa88a0SVivek Aknurwar 	[MASTER_VIDEO_EVA] = &qnm_video_eva,
1795*ffaa88a0SVivek Aknurwar 	[MASTER_VIDEO_MVP] = &qnm_video_mvp,
1796*ffaa88a0SVivek Aknurwar 	[MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu,
1797*ffaa88a0SVivek Aknurwar 	[SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
1798*ffaa88a0SVivek Aknurwar 	[SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
1799*ffaa88a0SVivek Aknurwar };
1800*ffaa88a0SVivek Aknurwar 
1801*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_mmss_noc_regmap_config = {
1802*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1803*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1804*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1805*ffaa88a0SVivek Aknurwar 	.max_register = 0x5f800,
1806*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1807*ffaa88a0SVivek Aknurwar };
1808*ffaa88a0SVivek Aknurwar 
1809*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_mmss_noc = {
1810*ffaa88a0SVivek Aknurwar 	.config = &hawi_mmss_noc_regmap_config,
1811*ffaa88a0SVivek Aknurwar 	.nodes = mmss_noc_nodes,
1812*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(mmss_noc_nodes),
1813*ffaa88a0SVivek Aknurwar 	.bcms = mmss_noc_bcms,
1814*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(mmss_noc_bcms),
1815*ffaa88a0SVivek Aknurwar };
1816*ffaa88a0SVivek Aknurwar 
1817*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const nsp_noc_bcms[] = {
1818*ffaa88a0SVivek Aknurwar 	&bcm_co0,
1819*ffaa88a0SVivek Aknurwar };
1820*ffaa88a0SVivek Aknurwar 
1821*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const nsp_noc_nodes[] = {
1822*ffaa88a0SVivek Aknurwar 	[MASTER_CDSP_PROC] = &qnm_nsp,
1823*ffaa88a0SVivek Aknurwar 	[SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc,
1824*ffaa88a0SVivek Aknurwar };
1825*ffaa88a0SVivek Aknurwar 
1826*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_nsp_noc_regmap_config = {
1827*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1828*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1829*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1830*ffaa88a0SVivek Aknurwar 	.max_register = 0x21280,
1831*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1832*ffaa88a0SVivek Aknurwar };
1833*ffaa88a0SVivek Aknurwar 
1834*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_nsp_noc = {
1835*ffaa88a0SVivek Aknurwar 	.config = &hawi_nsp_noc_regmap_config,
1836*ffaa88a0SVivek Aknurwar 	.nodes = nsp_noc_nodes,
1837*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(nsp_noc_nodes),
1838*ffaa88a0SVivek Aknurwar 	.bcms = nsp_noc_bcms,
1839*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(nsp_noc_bcms),
1840*ffaa88a0SVivek Aknurwar };
1841*ffaa88a0SVivek Aknurwar 
1842*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const pcie_anoc_bcms[] = {
1843*ffaa88a0SVivek Aknurwar 	&bcm_sn3,
1844*ffaa88a0SVivek Aknurwar };
1845*ffaa88a0SVivek Aknurwar 
1846*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const pcie_anoc_nodes[] = {
1847*ffaa88a0SVivek Aknurwar 	[MASTER_PCIE_ANOC_CFG] = &qsm_pcie_anoc_cfg,
1848*ffaa88a0SVivek Aknurwar 	[MASTER_PCIE_0] = &xm_pcie,
1849*ffaa88a0SVivek Aknurwar 	[MASTER_PCIE_1] = &xm_pcie_g4x1,
1850*ffaa88a0SVivek Aknurwar 	[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc,
1851*ffaa88a0SVivek Aknurwar 	[SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc,
1852*ffaa88a0SVivek Aknurwar };
1853*ffaa88a0SVivek Aknurwar 
1854*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_pcie_anoc_regmap_config = {
1855*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1856*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1857*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1858*ffaa88a0SVivek Aknurwar 	.max_register = 0x12400,
1859*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1860*ffaa88a0SVivek Aknurwar };
1861*ffaa88a0SVivek Aknurwar 
1862*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_pcie_anoc = {
1863*ffaa88a0SVivek Aknurwar 	.config = &hawi_pcie_anoc_regmap_config,
1864*ffaa88a0SVivek Aknurwar 	.nodes = pcie_anoc_nodes,
1865*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
1866*ffaa88a0SVivek Aknurwar 	.bcms = pcie_anoc_bcms,
1867*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(pcie_anoc_bcms),
1868*ffaa88a0SVivek Aknurwar 	.qos_requires_clocks = true,
1869*ffaa88a0SVivek Aknurwar };
1870*ffaa88a0SVivek Aknurwar 
1871*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const stdst_cfg_bcms[] = {
1872*ffaa88a0SVivek Aknurwar 	&bcm_cn0,
1873*ffaa88a0SVivek Aknurwar 	&bcm_cn1,
1874*ffaa88a0SVivek Aknurwar };
1875*ffaa88a0SVivek Aknurwar 
1876*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const stdst_cfg_nodes[] = {
1877*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_CENTER] = &qsm_cfg_center,
1878*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_EAST] = &qsm_cfg_east,
1879*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_MM] = &qsm_cfg_mm,
1880*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_NORTH] = &qsm_cfg_north,
1881*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_SOUTH] = &qsm_cfg_south,
1882*ffaa88a0SVivek Aknurwar 	[MASTER_CFG_SOUTHWEST] = &qsm_cfg_southwest,
1883*ffaa88a0SVivek Aknurwar 	[SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
1884*ffaa88a0SVivek Aknurwar 	[SLAVE_BOOT_ROM] = &qhs_boot_rom,
1885*ffaa88a0SVivek Aknurwar 	[SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
1886*ffaa88a0SVivek Aknurwar 	[SLAVE_CLK_CTL] = &qhs_clk_ctl,
1887*ffaa88a0SVivek Aknurwar 	[SLAVE_CRYPTO_CFG] = &qhs_crypto_cfg,
1888*ffaa88a0SVivek Aknurwar 	[SLAVE_DISPLAY_CFG] = &qhs_display_cfg,
1889*ffaa88a0SVivek Aknurwar 	[SLAVE_EVA_CFG] = &qhs_eva_cfg,
1890*ffaa88a0SVivek Aknurwar 	[SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg,
1891*ffaa88a0SVivek Aknurwar 	[SLAVE_I2C] = &qhs_i2c,
1892*ffaa88a0SVivek Aknurwar 	[SLAVE_IMEM_CFG] = &qhs_imem_cfg,
1893*ffaa88a0SVivek Aknurwar 	[SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
1894*ffaa88a0SVivek Aknurwar 	[SLAVE_IRIS_CFG] = &qhs_iris_cfg,
1895*ffaa88a0SVivek Aknurwar 	[SLAVE_CNOC_MSS] = &qhs_mss_cfg,
1896*ffaa88a0SVivek Aknurwar 	[SLAVE_PCIE_0_CFG] = &qhs_pcie_cfg,
1897*ffaa88a0SVivek Aknurwar 	[SLAVE_PCIE_1_CFG] = &qhs_pcie_g4x1_cfg,
1898*ffaa88a0SVivek Aknurwar 	[SLAVE_PRNG] = &qhs_prng,
1899*ffaa88a0SVivek Aknurwar 	[SLAVE_QSPI_0] = &qhs_qspi,
1900*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_1] = &qhs_qup1,
1901*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_2] = &qhs_qup2,
1902*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_3] = &qhs_qup3,
1903*ffaa88a0SVivek Aknurwar 	[SLAVE_QUP_4] = &qhs_qup4,
1904*ffaa88a0SVivek Aknurwar 	[SLAVE_SDCC_2] = &qhs_sdc2,
1905*ffaa88a0SVivek Aknurwar 	[SLAVE_SDCC_4] = &qhs_sdc4,
1906*ffaa88a0SVivek Aknurwar 	[SLAVE_TLMM] = &qhs_tlmm,
1907*ffaa88a0SVivek Aknurwar 	[SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
1908*ffaa88a0SVivek Aknurwar 	[SLAVE_USB3] = &qhs_usb3,
1909*ffaa88a0SVivek Aknurwar 	[SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
1910*ffaa88a0SVivek Aknurwar 	[SLAVE_PCIE_ANOC_CFG] = &qss_pcie_anoc_cfg,
1911*ffaa88a0SVivek Aknurwar 	[SLAVE_QDSS_CFG] = &qss_qdss_cfg,
1912*ffaa88a0SVivek Aknurwar 	[SLAVE_QDSS_STM] = &qss_qdss_stm,
1913*ffaa88a0SVivek Aknurwar 	[SLAVE_TCSR] = &qss_tcsr,
1914*ffaa88a0SVivek Aknurwar 	[SLAVE_TCU] = &xs_sys_tcu_cfg,
1915*ffaa88a0SVivek Aknurwar };
1916*ffaa88a0SVivek Aknurwar 
1917*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_stdst_cfg_regmap_config = {
1918*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1919*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1920*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1921*ffaa88a0SVivek Aknurwar 	.max_register = 0xb1000,
1922*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1923*ffaa88a0SVivek Aknurwar };
1924*ffaa88a0SVivek Aknurwar 
1925*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_stdst_cfg = {
1926*ffaa88a0SVivek Aknurwar 	.config = &hawi_stdst_cfg_regmap_config,
1927*ffaa88a0SVivek Aknurwar 	.nodes = stdst_cfg_nodes,
1928*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(stdst_cfg_nodes),
1929*ffaa88a0SVivek Aknurwar 	.bcms = stdst_cfg_bcms,
1930*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(stdst_cfg_bcms),
1931*ffaa88a0SVivek Aknurwar };
1932*ffaa88a0SVivek Aknurwar 
1933*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const stdst_main_nodes[] = {
1934*ffaa88a0SVivek Aknurwar 	[MASTER_CNOC_STARDUST] = &qsm_cnoc_main,
1935*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_CENTER_CFG] = &qss_stdst_center_cfg,
1936*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_EAST_CFG] = &qss_stdst_east_cfg,
1937*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_MM_CFG] = &qss_stdst_mm_cfg,
1938*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_NORTH_CFG] = &qss_stdst_north_cfg,
1939*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_SOUTH_CFG] = &qss_stdst_south_cfg,
1940*ffaa88a0SVivek Aknurwar 	[SLAVE_STARDUST_SOUTHWEST_CFG] = &qss_stdst_southwest_cfg,
1941*ffaa88a0SVivek Aknurwar };
1942*ffaa88a0SVivek Aknurwar 
1943*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_stdst_main_regmap_config = {
1944*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1945*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1946*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1947*ffaa88a0SVivek Aknurwar 	.max_register = 0x10000,
1948*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1949*ffaa88a0SVivek Aknurwar };
1950*ffaa88a0SVivek Aknurwar 
1951*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_stdst_main = {
1952*ffaa88a0SVivek Aknurwar 	.config = &hawi_stdst_main_regmap_config,
1953*ffaa88a0SVivek Aknurwar 	.nodes = stdst_main_nodes,
1954*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(stdst_main_nodes),
1955*ffaa88a0SVivek Aknurwar };
1956*ffaa88a0SVivek Aknurwar 
1957*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const system_noc_bcms[] = {
1958*ffaa88a0SVivek Aknurwar 	&bcm_sn0,
1959*ffaa88a0SVivek Aknurwar 	&bcm_sn2,
1960*ffaa88a0SVivek Aknurwar };
1961*ffaa88a0SVivek Aknurwar 
1962*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const system_noc_nodes[] = {
1963*ffaa88a0SVivek Aknurwar 	[MASTER_A1NOC_SNOC] = &qnm_aggre_noc,
1964*ffaa88a0SVivek Aknurwar 	[MASTER_APSS_NOC] = &qnm_apss_noc,
1965*ffaa88a0SVivek Aknurwar 	[MASTER_CNOC_SNOC] = &qnm_cnoc_data,
1966*ffaa88a0SVivek Aknurwar 	[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
1967*ffaa88a0SVivek Aknurwar };
1968*ffaa88a0SVivek Aknurwar 
1969*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_system_noc_regmap_config = {
1970*ffaa88a0SVivek Aknurwar 	.reg_bits = 32,
1971*ffaa88a0SVivek Aknurwar 	.reg_stride = 4,
1972*ffaa88a0SVivek Aknurwar 	.val_bits = 32,
1973*ffaa88a0SVivek Aknurwar 	.max_register = 0x20080,
1974*ffaa88a0SVivek Aknurwar 	.fast_io = true,
1975*ffaa88a0SVivek Aknurwar };
1976*ffaa88a0SVivek Aknurwar 
1977*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_system_noc = {
1978*ffaa88a0SVivek Aknurwar 	.config = &hawi_system_noc_regmap_config,
1979*ffaa88a0SVivek Aknurwar 	.nodes = system_noc_nodes,
1980*ffaa88a0SVivek Aknurwar 	.num_nodes = ARRAY_SIZE(system_noc_nodes),
1981*ffaa88a0SVivek Aknurwar 	.bcms = system_noc_bcms,
1982*ffaa88a0SVivek Aknurwar 	.num_bcms = ARRAY_SIZE(system_noc_bcms),
1983*ffaa88a0SVivek Aknurwar };
1984*ffaa88a0SVivek Aknurwar 
1985*ffaa88a0SVivek Aknurwar static const struct of_device_id qnoc_of_match[] = {
1986*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-aggre1-noc", .data = &hawi_aggre1_noc },
1987*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-clk-virt", .data = &hawi_clk_virt },
1988*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-cnoc-main", .data = &hawi_cnoc_main },
1989*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-gem-noc", .data = &hawi_gem_noc },
1990*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-llclpi-noc", .data = &hawi_llclpi_noc },
1991*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-lpass-ag-noc", .data = &hawi_lpass_ag_noc },
1992*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-lpass-lpiaon-noc", .data = &hawi_lpass_lpiaon_noc },
1993*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-lpass-lpicx-noc", .data = &hawi_lpass_lpicx_noc },
1994*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-mc-virt", .data = &hawi_mc_virt },
1995*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-mmss-noc", .data = &hawi_mmss_noc },
1996*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-nsp-noc", .data = &hawi_nsp_noc },
1997*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-pcie-anoc", .data = &hawi_pcie_anoc },
1998*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-stdst-cfg", .data = &hawi_stdst_cfg },
1999*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-stdst-main", .data = &hawi_stdst_main },
2000*ffaa88a0SVivek Aknurwar 	{ .compatible = "qcom,hawi-system-noc", .data = &hawi_system_noc },
2001*ffaa88a0SVivek Aknurwar 	{ }
2002*ffaa88a0SVivek Aknurwar };
2003*ffaa88a0SVivek Aknurwar MODULE_DEVICE_TABLE(of, qnoc_of_match);
2004*ffaa88a0SVivek Aknurwar 
2005*ffaa88a0SVivek Aknurwar static struct platform_driver qnoc_driver = {
2006*ffaa88a0SVivek Aknurwar 	.probe = qcom_icc_rpmh_probe,
2007*ffaa88a0SVivek Aknurwar 	.remove = qcom_icc_rpmh_remove,
2008*ffaa88a0SVivek Aknurwar 	.driver = {
2009*ffaa88a0SVivek Aknurwar 		.name = "qnoc-hawi",
2010*ffaa88a0SVivek Aknurwar 		.of_match_table = qnoc_of_match,
2011*ffaa88a0SVivek Aknurwar 		.sync_state = icc_sync_state,
2012*ffaa88a0SVivek Aknurwar 	},
2013*ffaa88a0SVivek Aknurwar };
2014*ffaa88a0SVivek Aknurwar 
2015*ffaa88a0SVivek Aknurwar static int __init qnoc_driver_init(void)
2016*ffaa88a0SVivek Aknurwar {
2017*ffaa88a0SVivek Aknurwar 	return platform_driver_register(&qnoc_driver);
2018*ffaa88a0SVivek Aknurwar }
2019*ffaa88a0SVivek Aknurwar core_initcall(qnoc_driver_init);
2020*ffaa88a0SVivek Aknurwar 
2021*ffaa88a0SVivek Aknurwar static void __exit qnoc_driver_exit(void)
2022*ffaa88a0SVivek Aknurwar {
2023*ffaa88a0SVivek Aknurwar 	platform_driver_unregister(&qnoc_driver);
2024*ffaa88a0SVivek Aknurwar }
2025*ffaa88a0SVivek Aknurwar module_exit(qnoc_driver_exit);
2026*ffaa88a0SVivek Aknurwar 
2027*ffaa88a0SVivek Aknurwar MODULE_DESCRIPTION("Qualcomm Hawi NoC driver");
2028*ffaa88a0SVivek Aknurwar MODULE_LICENSE("GPL");
2029