1fafc114aSVinod Koul // SPDX-License-Identifier: GPL-2.0-only
2fafc114aSVinod Koul /*
3fafc114aSVinod Koul  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
4fafc114aSVinod Koul  * Copyright (c) 2021, Linaro Limited
5fafc114aSVinod Koul  */
6fafc114aSVinod Koul 
7fafc114aSVinod Koul #include <linux/device.h>
8fafc114aSVinod Koul #include <linux/interconnect.h>
9fafc114aSVinod Koul #include <linux/interconnect-provider.h>
10fafc114aSVinod Koul #include <linux/module.h>
11cff66aceSRob Herring #include <linux/mod_devicetable.h>
12cff66aceSRob Herring #include <linux/platform_device.h>
13cff66aceSRob Herring #include <linux/property.h>
14fafc114aSVinod Koul #include <dt-bindings/interconnect/qcom,sm8450.h>
15fafc114aSVinod Koul 
16fafc114aSVinod Koul #include "bcm-voter.h"
17cb4805b5SLeo Yan #include "icc-common.h"
18fafc114aSVinod Koul #include "icc-rpmh.h"
19fafc114aSVinod Koul #include "sm8450.h"
20fafc114aSVinod Koul 
21fafc114aSVinod Koul static struct qcom_icc_node qhm_qspi = {
22fafc114aSVinod Koul 	.name = "qhm_qspi",
23fafc114aSVinod Koul 	.id = SM8450_MASTER_QSPI_0,
24fafc114aSVinod Koul 	.channels = 1,
25fafc114aSVinod Koul 	.buswidth = 4,
26fafc114aSVinod Koul 	.num_links = 1,
27fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A1NOC_SNOC },
28fafc114aSVinod Koul };
29fafc114aSVinod Koul 
30fafc114aSVinod Koul static struct qcom_icc_node qhm_qup1 = {
31fafc114aSVinod Koul 	.name = "qhm_qup1",
32fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_1,
33fafc114aSVinod Koul 	.channels = 1,
34fafc114aSVinod Koul 	.buswidth = 4,
35fafc114aSVinod Koul 	.num_links = 1,
36fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A1NOC_SNOC },
37fafc114aSVinod Koul };
38fafc114aSVinod Koul 
39fafc114aSVinod Koul static struct qcom_icc_node qnm_a1noc_cfg = {
40fafc114aSVinod Koul 	.name = "qnm_a1noc_cfg",
41fafc114aSVinod Koul 	.id = SM8450_MASTER_A1NOC_CFG,
42fafc114aSVinod Koul 	.channels = 1,
43fafc114aSVinod Koul 	.buswidth = 4,
44fafc114aSVinod Koul 	.num_links = 1,
45fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_A1NOC },
46fafc114aSVinod Koul };
47fafc114aSVinod Koul 
48fafc114aSVinod Koul static struct qcom_icc_node xm_sdc4 = {
49fafc114aSVinod Koul 	.name = "xm_sdc4",
50fafc114aSVinod Koul 	.id = SM8450_MASTER_SDCC_4,
51fafc114aSVinod Koul 	.channels = 1,
52fafc114aSVinod Koul 	.buswidth = 8,
53fafc114aSVinod Koul 	.num_links = 1,
54fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A1NOC_SNOC },
55fafc114aSVinod Koul };
56fafc114aSVinod Koul 
57fafc114aSVinod Koul static struct qcom_icc_node xm_ufs_mem = {
58fafc114aSVinod Koul 	.name = "xm_ufs_mem",
59fafc114aSVinod Koul 	.id = SM8450_MASTER_UFS_MEM,
60fafc114aSVinod Koul 	.channels = 1,
61fafc114aSVinod Koul 	.buswidth = 8,
62fafc114aSVinod Koul 	.num_links = 1,
63fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A1NOC_SNOC },
64fafc114aSVinod Koul };
65fafc114aSVinod Koul 
66fafc114aSVinod Koul static struct qcom_icc_node xm_usb3_0 = {
67fafc114aSVinod Koul 	.name = "xm_usb3_0",
68fafc114aSVinod Koul 	.id = SM8450_MASTER_USB3_0,
69fafc114aSVinod Koul 	.channels = 1,
70fafc114aSVinod Koul 	.buswidth = 8,
71fafc114aSVinod Koul 	.num_links = 1,
72fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A1NOC_SNOC },
73fafc114aSVinod Koul };
74fafc114aSVinod Koul 
75fafc114aSVinod Koul static struct qcom_icc_node qhm_qdss_bam = {
76fafc114aSVinod Koul 	.name = "qhm_qdss_bam",
77fafc114aSVinod Koul 	.id = SM8450_MASTER_QDSS_BAM,
78fafc114aSVinod Koul 	.channels = 1,
79fafc114aSVinod Koul 	.buswidth = 4,
80fafc114aSVinod Koul 	.num_links = 1,
81fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
82fafc114aSVinod Koul };
83fafc114aSVinod Koul 
84fafc114aSVinod Koul static struct qcom_icc_node qhm_qup0 = {
85fafc114aSVinod Koul 	.name = "qhm_qup0",
86fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_0,
87fafc114aSVinod Koul 	.channels = 1,
88fafc114aSVinod Koul 	.buswidth = 4,
89fafc114aSVinod Koul 	.num_links = 1,
90fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
91fafc114aSVinod Koul };
92fafc114aSVinod Koul 
93fafc114aSVinod Koul static struct qcom_icc_node qhm_qup2 = {
94fafc114aSVinod Koul 	.name = "qhm_qup2",
95fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_2,
96fafc114aSVinod Koul 	.channels = 1,
97fafc114aSVinod Koul 	.buswidth = 4,
98fafc114aSVinod Koul 	.num_links = 1,
99fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
100fafc114aSVinod Koul };
101fafc114aSVinod Koul 
102fafc114aSVinod Koul static struct qcom_icc_node qnm_a2noc_cfg = {
103fafc114aSVinod Koul 	.name = "qnm_a2noc_cfg",
104fafc114aSVinod Koul 	.id = SM8450_MASTER_A2NOC_CFG,
105fafc114aSVinod Koul 	.channels = 1,
106fafc114aSVinod Koul 	.buswidth = 4,
107fafc114aSVinod Koul 	.num_links = 1,
108fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_A2NOC },
109fafc114aSVinod Koul };
110fafc114aSVinod Koul 
111fafc114aSVinod Koul static struct qcom_icc_node qxm_crypto = {
112fafc114aSVinod Koul 	.name = "qxm_crypto",
113fafc114aSVinod Koul 	.id = SM8450_MASTER_CRYPTO,
114fafc114aSVinod Koul 	.channels = 1,
115fafc114aSVinod Koul 	.buswidth = 8,
116fafc114aSVinod Koul 	.num_links = 1,
117fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
118fafc114aSVinod Koul };
119fafc114aSVinod Koul 
120fafc114aSVinod Koul static struct qcom_icc_node qxm_ipa = {
121fafc114aSVinod Koul 	.name = "qxm_ipa",
122fafc114aSVinod Koul 	.id = SM8450_MASTER_IPA,
123fafc114aSVinod Koul 	.channels = 1,
124fafc114aSVinod Koul 	.buswidth = 8,
125fafc114aSVinod Koul 	.num_links = 1,
126fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
127fafc114aSVinod Koul };
128fafc114aSVinod Koul 
129fafc114aSVinod Koul static struct qcom_icc_node qxm_sensorss_q6 = {
130fafc114aSVinod Koul 	.name = "qxm_sensorss_q6",
131fafc114aSVinod Koul 	.id = SM8450_MASTER_SENSORS_PROC,
132fafc114aSVinod Koul 	.channels = 1,
133fafc114aSVinod Koul 	.buswidth = 8,
134fafc114aSVinod Koul 	.num_links = 1,
135fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
136fafc114aSVinod Koul };
137fafc114aSVinod Koul 
138fafc114aSVinod Koul static struct qcom_icc_node qxm_sp = {
139fafc114aSVinod Koul 	.name = "qxm_sp",
140fafc114aSVinod Koul 	.id = SM8450_MASTER_SP,
141fafc114aSVinod Koul 	.channels = 1,
142fafc114aSVinod Koul 	.buswidth = 8,
143fafc114aSVinod Koul 	.num_links = 1,
144fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
145fafc114aSVinod Koul };
146fafc114aSVinod Koul 
147fafc114aSVinod Koul static struct qcom_icc_node xm_qdss_etr_0 = {
148fafc114aSVinod Koul 	.name = "xm_qdss_etr_0",
149fafc114aSVinod Koul 	.id = SM8450_MASTER_QDSS_ETR,
150fafc114aSVinod Koul 	.channels = 1,
151fafc114aSVinod Koul 	.buswidth = 8,
152fafc114aSVinod Koul 	.num_links = 1,
153fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
154fafc114aSVinod Koul };
155fafc114aSVinod Koul 
156fafc114aSVinod Koul static struct qcom_icc_node xm_qdss_etr_1 = {
157fafc114aSVinod Koul 	.name = "xm_qdss_etr_1",
158fafc114aSVinod Koul 	.id = SM8450_MASTER_QDSS_ETR_1,
159fafc114aSVinod Koul 	.channels = 1,
160fafc114aSVinod Koul 	.buswidth = 8,
161fafc114aSVinod Koul 	.num_links = 1,
162fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
163fafc114aSVinod Koul };
164fafc114aSVinod Koul 
165fafc114aSVinod Koul static struct qcom_icc_node xm_sdc2 = {
166fafc114aSVinod Koul 	.name = "xm_sdc2",
167fafc114aSVinod Koul 	.id = SM8450_MASTER_SDCC_2,
168fafc114aSVinod Koul 	.channels = 1,
169fafc114aSVinod Koul 	.buswidth = 8,
170fafc114aSVinod Koul 	.num_links = 1,
171fafc114aSVinod Koul 	.links = { SM8450_SLAVE_A2NOC_SNOC },
172fafc114aSVinod Koul };
173fafc114aSVinod Koul 
174fafc114aSVinod Koul static struct qcom_icc_node qup0_core_master = {
175fafc114aSVinod Koul 	.name = "qup0_core_master",
176fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_CORE_0,
177fafc114aSVinod Koul 	.channels = 1,
178fafc114aSVinod Koul 	.buswidth = 4,
179fafc114aSVinod Koul 	.num_links = 1,
180fafc114aSVinod Koul 	.links = { SM8450_SLAVE_QUP_CORE_0 },
181fafc114aSVinod Koul };
182fafc114aSVinod Koul 
183fafc114aSVinod Koul static struct qcom_icc_node qup1_core_master = {
184fafc114aSVinod Koul 	.name = "qup1_core_master",
185fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_CORE_1,
186fafc114aSVinod Koul 	.channels = 1,
187fafc114aSVinod Koul 	.buswidth = 4,
188fafc114aSVinod Koul 	.num_links = 1,
189fafc114aSVinod Koul 	.links = { SM8450_SLAVE_QUP_CORE_1 },
190fafc114aSVinod Koul };
191fafc114aSVinod Koul 
192fafc114aSVinod Koul static struct qcom_icc_node qup2_core_master = {
193fafc114aSVinod Koul 	.name = "qup2_core_master",
194fafc114aSVinod Koul 	.id = SM8450_MASTER_QUP_CORE_2,
195fafc114aSVinod Koul 	.channels = 1,
196fafc114aSVinod Koul 	.buswidth = 4,
197fafc114aSVinod Koul 	.num_links = 1,
198fafc114aSVinod Koul 	.links = { SM8450_SLAVE_QUP_CORE_2 },
199fafc114aSVinod Koul };
200fafc114aSVinod Koul 
201fafc114aSVinod Koul static struct qcom_icc_node qnm_gemnoc_cnoc = {
202fafc114aSVinod Koul 	.name = "qnm_gemnoc_cnoc",
203fafc114aSVinod Koul 	.id = SM8450_MASTER_GEM_NOC_CNOC,
204fafc114aSVinod Koul 	.channels = 1,
205fafc114aSVinod Koul 	.buswidth = 16,
206fafc114aSVinod Koul 	.num_links = 51,
207fafc114aSVinod Koul 	.links = { SM8450_SLAVE_AHB2PHY_SOUTH, SM8450_SLAVE_AHB2PHY_NORTH,
208fafc114aSVinod Koul 		   SM8450_SLAVE_AOSS, SM8450_SLAVE_CAMERA_CFG,
209fafc114aSVinod Koul 		   SM8450_SLAVE_CLK_CTL, SM8450_SLAVE_CDSP_CFG,
210fafc114aSVinod Koul 		   SM8450_SLAVE_RBCPR_CX_CFG, SM8450_SLAVE_RBCPR_MMCX_CFG,
211fafc114aSVinod Koul 		   SM8450_SLAVE_RBCPR_MXA_CFG, SM8450_SLAVE_RBCPR_MXC_CFG,
212fafc114aSVinod Koul 		   SM8450_SLAVE_CRYPTO_0_CFG, SM8450_SLAVE_CX_RDPM,
213fafc114aSVinod Koul 		   SM8450_SLAVE_DISPLAY_CFG, SM8450_SLAVE_GFX3D_CFG,
214fafc114aSVinod Koul 		   SM8450_SLAVE_IMEM_CFG, SM8450_SLAVE_IPA_CFG,
215fafc114aSVinod Koul 		   SM8450_SLAVE_IPC_ROUTER_CFG, SM8450_SLAVE_LPASS,
216fafc114aSVinod Koul 		   SM8450_SLAVE_CNOC_MSS, SM8450_SLAVE_MX_RDPM,
217fafc114aSVinod Koul 		   SM8450_SLAVE_PCIE_0_CFG, SM8450_SLAVE_PCIE_1_CFG,
218fafc114aSVinod Koul 		   SM8450_SLAVE_PDM, SM8450_SLAVE_PIMEM_CFG,
219fafc114aSVinod Koul 		   SM8450_SLAVE_PRNG, SM8450_SLAVE_QDSS_CFG,
220fafc114aSVinod Koul 		   SM8450_SLAVE_QSPI_0, SM8450_SLAVE_QUP_0,
221fafc114aSVinod Koul 		   SM8450_SLAVE_QUP_1, SM8450_SLAVE_QUP_2,
222fafc114aSVinod Koul 		   SM8450_SLAVE_SDCC_2, SM8450_SLAVE_SDCC_4,
223fafc114aSVinod Koul 		   SM8450_SLAVE_SPSS_CFG, SM8450_SLAVE_TCSR,
224fafc114aSVinod Koul 		   SM8450_SLAVE_TLMM, SM8450_SLAVE_TME_CFG,
225fafc114aSVinod Koul 		   SM8450_SLAVE_UFS_MEM_CFG, SM8450_SLAVE_USB3_0,
226fafc114aSVinod Koul 		   SM8450_SLAVE_VENUS_CFG, SM8450_SLAVE_VSENSE_CTRL_CFG,
227fafc114aSVinod Koul 		   SM8450_SLAVE_A1NOC_CFG, SM8450_SLAVE_A2NOC_CFG,
228fafc114aSVinod Koul 		   SM8450_SLAVE_DDRSS_CFG, SM8450_SLAVE_CNOC_MNOC_CFG,
229fafc114aSVinod Koul 		   SM8450_SLAVE_PCIE_ANOC_CFG, SM8450_SLAVE_SNOC_CFG,
230fafc114aSVinod Koul 		   SM8450_SLAVE_IMEM, SM8450_SLAVE_PIMEM,
231fafc114aSVinod Koul 		   SM8450_SLAVE_SERVICE_CNOC, SM8450_SLAVE_QDSS_STM,
232fafc114aSVinod Koul 		   SM8450_SLAVE_TCU },
233fafc114aSVinod Koul };
234fafc114aSVinod Koul 
235fafc114aSVinod Koul static struct qcom_icc_node qnm_gemnoc_pcie = {
236fafc114aSVinod Koul 	.name = "qnm_gemnoc_pcie",
237fafc114aSVinod Koul 	.id = SM8450_MASTER_GEM_NOC_PCIE_SNOC,
238fafc114aSVinod Koul 	.channels = 1,
239fafc114aSVinod Koul 	.buswidth = 8,
240fafc114aSVinod Koul 	.num_links = 2,
241fafc114aSVinod Koul 	.links = { SM8450_SLAVE_PCIE_0, SM8450_SLAVE_PCIE_1 },
242fafc114aSVinod Koul };
243fafc114aSVinod Koul 
244fafc114aSVinod Koul static struct qcom_icc_node alm_gpu_tcu = {
245fafc114aSVinod Koul 	.name = "alm_gpu_tcu",
246fafc114aSVinod Koul 	.id = SM8450_MASTER_GPU_TCU,
247fafc114aSVinod Koul 	.channels = 1,
248fafc114aSVinod Koul 	.buswidth = 8,
249fafc114aSVinod Koul 	.num_links = 2,
250fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
251fafc114aSVinod Koul };
252fafc114aSVinod Koul 
253fafc114aSVinod Koul static struct qcom_icc_node alm_sys_tcu = {
254fafc114aSVinod Koul 	.name = "alm_sys_tcu",
255fafc114aSVinod Koul 	.id = SM8450_MASTER_SYS_TCU,
256fafc114aSVinod Koul 	.channels = 1,
257fafc114aSVinod Koul 	.buswidth = 8,
258fafc114aSVinod Koul 	.num_links = 2,
259fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
260fafc114aSVinod Koul };
261fafc114aSVinod Koul 
262fafc114aSVinod Koul static struct qcom_icc_node chm_apps = {
263fafc114aSVinod Koul 	.name = "chm_apps",
264fafc114aSVinod Koul 	.id = SM8450_MASTER_APPSS_PROC,
265fafc114aSVinod Koul 	.channels = 3,
266fafc114aSVinod Koul 	.buswidth = 32,
267fafc114aSVinod Koul 	.num_links = 3,
268fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC,
269fafc114aSVinod Koul 		   SM8450_SLAVE_MEM_NOC_PCIE_SNOC },
270fafc114aSVinod Koul };
271fafc114aSVinod Koul 
272fafc114aSVinod Koul static struct qcom_icc_node qnm_gpu = {
273fafc114aSVinod Koul 	.name = "qnm_gpu",
274fafc114aSVinod Koul 	.id = SM8450_MASTER_GFX3D,
275fafc114aSVinod Koul 	.channels = 2,
276fafc114aSVinod Koul 	.buswidth = 32,
277fafc114aSVinod Koul 	.num_links = 2,
278fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
279fafc114aSVinod Koul };
280fafc114aSVinod Koul 
281fafc114aSVinod Koul static struct qcom_icc_node qnm_mdsp = {
282fafc114aSVinod Koul 	.name = "qnm_mdsp",
283fafc114aSVinod Koul 	.id = SM8450_MASTER_MSS_PROC,
284fafc114aSVinod Koul 	.channels = 1,
285fafc114aSVinod Koul 	.buswidth = 16,
286fafc114aSVinod Koul 	.num_links = 3,
287fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC,
288fafc114aSVinod Koul 		   SM8450_SLAVE_MEM_NOC_PCIE_SNOC },
289fafc114aSVinod Koul };
290fafc114aSVinod Koul 
291fafc114aSVinod Koul static struct qcom_icc_node qnm_mnoc_hf = {
292fafc114aSVinod Koul 	.name = "qnm_mnoc_hf",
293fafc114aSVinod Koul 	.id = SM8450_MASTER_MNOC_HF_MEM_NOC,
294fafc114aSVinod Koul 	.channels = 2,
295fafc114aSVinod Koul 	.buswidth = 32,
296fafc114aSVinod Koul 	.num_links = 1,
297fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LLCC },
298fafc114aSVinod Koul };
299fafc114aSVinod Koul 
300fafc114aSVinod Koul static struct qcom_icc_node qnm_mnoc_sf = {
301fafc114aSVinod Koul 	.name = "qnm_mnoc_sf",
302fafc114aSVinod Koul 	.id = SM8450_MASTER_MNOC_SF_MEM_NOC,
303fafc114aSVinod Koul 	.channels = 2,
304fafc114aSVinod Koul 	.buswidth = 32,
305fafc114aSVinod Koul 	.num_links = 2,
306fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
307fafc114aSVinod Koul };
308fafc114aSVinod Koul 
309fafc114aSVinod Koul static struct qcom_icc_node qnm_nsp_gemnoc = {
310fafc114aSVinod Koul 	.name = "qnm_nsp_gemnoc",
311fafc114aSVinod Koul 	.id = SM8450_MASTER_COMPUTE_NOC,
312fafc114aSVinod Koul 	.channels = 2,
313fafc114aSVinod Koul 	.buswidth = 32,
314fafc114aSVinod Koul 	.num_links = 2,
315fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
316fafc114aSVinod Koul };
317fafc114aSVinod Koul 
318fafc114aSVinod Koul static struct qcom_icc_node qnm_pcie = {
319fafc114aSVinod Koul 	.name = "qnm_pcie",
320fafc114aSVinod Koul 	.id = SM8450_MASTER_ANOC_PCIE_GEM_NOC,
321fafc114aSVinod Koul 	.channels = 1,
322fafc114aSVinod Koul 	.buswidth = 16,
323fafc114aSVinod Koul 	.num_links = 2,
324fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC },
325fafc114aSVinod Koul };
326fafc114aSVinod Koul 
327fafc114aSVinod Koul static struct qcom_icc_node qnm_snoc_gc = {
328fafc114aSVinod Koul 	.name = "qnm_snoc_gc",
329fafc114aSVinod Koul 	.id = SM8450_MASTER_SNOC_GC_MEM_NOC,
330fafc114aSVinod Koul 	.channels = 1,
331fafc114aSVinod Koul 	.buswidth = 8,
332fafc114aSVinod Koul 	.num_links = 1,
333fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LLCC },
334fafc114aSVinod Koul };
335fafc114aSVinod Koul 
336fafc114aSVinod Koul static struct qcom_icc_node qnm_snoc_sf = {
337fafc114aSVinod Koul 	.name = "qnm_snoc_sf",
338fafc114aSVinod Koul 	.id = SM8450_MASTER_SNOC_SF_MEM_NOC,
339fafc114aSVinod Koul 	.channels = 1,
340fafc114aSVinod Koul 	.buswidth = 16,
341fafc114aSVinod Koul 	.num_links = 3,
342fafc114aSVinod Koul 	.links = { SM8450_SLAVE_GEM_NOC_CNOC, SM8450_SLAVE_LLCC,
343fafc114aSVinod Koul 		   SM8450_SLAVE_MEM_NOC_PCIE_SNOC },
344fafc114aSVinod Koul };
345fafc114aSVinod Koul 
346fafc114aSVinod Koul static struct qcom_icc_node qhm_config_noc = {
347fafc114aSVinod Koul 	.name = "qhm_config_noc",
348fafc114aSVinod Koul 	.id = SM8450_MASTER_CNOC_LPASS_AG_NOC,
349fafc114aSVinod Koul 	.channels = 1,
350fafc114aSVinod Koul 	.buswidth = 4,
351fafc114aSVinod Koul 	.num_links = 6,
352fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LPASS_CORE_CFG, SM8450_SLAVE_LPASS_LPI_CFG,
353fafc114aSVinod Koul 		   SM8450_SLAVE_LPASS_MPU_CFG, SM8450_SLAVE_LPASS_TOP_CFG,
354fafc114aSVinod Koul 		   SM8450_SLAVE_SERVICES_LPASS_AML_NOC, SM8450_SLAVE_SERVICE_LPASS_AG_NOC },
355fafc114aSVinod Koul };
356fafc114aSVinod Koul 
357fafc114aSVinod Koul static struct qcom_icc_node qxm_lpass_dsp = {
358fafc114aSVinod Koul 	.name = "qxm_lpass_dsp",
359fafc114aSVinod Koul 	.id = SM8450_MASTER_LPASS_PROC,
360fafc114aSVinod Koul 	.channels = 1,
361fafc114aSVinod Koul 	.buswidth = 8,
362fafc114aSVinod Koul 	.num_links = 4,
363fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LPASS_TOP_CFG, SM8450_SLAVE_LPASS_SNOC,
364fafc114aSVinod Koul 		   SM8450_SLAVE_SERVICES_LPASS_AML_NOC, SM8450_SLAVE_SERVICE_LPASS_AG_NOC },
365fafc114aSVinod Koul };
366fafc114aSVinod Koul 
367fafc114aSVinod Koul static struct qcom_icc_node llcc_mc = {
368fafc114aSVinod Koul 	.name = "llcc_mc",
369fafc114aSVinod Koul 	.id = SM8450_MASTER_LLCC,
370fafc114aSVinod Koul 	.channels = 4,
371fafc114aSVinod Koul 	.buswidth = 4,
372fafc114aSVinod Koul 	.num_links = 1,
373fafc114aSVinod Koul 	.links = { SM8450_SLAVE_EBI1 },
374fafc114aSVinod Koul };
375fafc114aSVinod Koul 
376fafc114aSVinod Koul static struct qcom_icc_node qnm_camnoc_hf = {
377fafc114aSVinod Koul 	.name = "qnm_camnoc_hf",
378fafc114aSVinod Koul 	.id = SM8450_MASTER_CAMNOC_HF,
379fafc114aSVinod Koul 	.channels = 2,
380fafc114aSVinod Koul 	.buswidth = 32,
381fafc114aSVinod Koul 	.num_links = 1,
382fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_HF_MEM_NOC },
383fafc114aSVinod Koul };
384fafc114aSVinod Koul 
385fafc114aSVinod Koul static struct qcom_icc_node qnm_camnoc_icp = {
386fafc114aSVinod Koul 	.name = "qnm_camnoc_icp",
387fafc114aSVinod Koul 	.id = SM8450_MASTER_CAMNOC_ICP,
388fafc114aSVinod Koul 	.channels = 1,
389fafc114aSVinod Koul 	.buswidth = 8,
390fafc114aSVinod Koul 	.num_links = 1,
391fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
392fafc114aSVinod Koul };
393fafc114aSVinod Koul 
394fafc114aSVinod Koul static struct qcom_icc_node qnm_camnoc_sf = {
395fafc114aSVinod Koul 	.name = "qnm_camnoc_sf",
396fafc114aSVinod Koul 	.id = SM8450_MASTER_CAMNOC_SF,
397fafc114aSVinod Koul 	.channels = 2,
398fafc114aSVinod Koul 	.buswidth = 32,
399fafc114aSVinod Koul 	.num_links = 1,
400fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
401fafc114aSVinod Koul };
402fafc114aSVinod Koul 
403fafc114aSVinod Koul static struct qcom_icc_node qnm_mdp = {
404fafc114aSVinod Koul 	.name = "qnm_mdp",
405fafc114aSVinod Koul 	.id = SM8450_MASTER_MDP,
406fafc114aSVinod Koul 	.channels = 2,
407fafc114aSVinod Koul 	.buswidth = 32,
408fafc114aSVinod Koul 	.num_links = 1,
409fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_HF_MEM_NOC },
410fafc114aSVinod Koul };
411fafc114aSVinod Koul 
412fafc114aSVinod Koul static struct qcom_icc_node qnm_mnoc_cfg = {
413fafc114aSVinod Koul 	.name = "qnm_mnoc_cfg",
414fafc114aSVinod Koul 	.id = SM8450_MASTER_CNOC_MNOC_CFG,
415fafc114aSVinod Koul 	.channels = 1,
416fafc114aSVinod Koul 	.buswidth = 4,
417fafc114aSVinod Koul 	.num_links = 1,
418fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_MNOC },
419fafc114aSVinod Koul };
420fafc114aSVinod Koul 
421fafc114aSVinod Koul static struct qcom_icc_node qnm_rot = {
422fafc114aSVinod Koul 	.name = "qnm_rot",
423fafc114aSVinod Koul 	.id = SM8450_MASTER_ROTATOR,
424fafc114aSVinod Koul 	.channels = 1,
425fafc114aSVinod Koul 	.buswidth = 32,
426fafc114aSVinod Koul 	.num_links = 1,
427fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
428fafc114aSVinod Koul };
429fafc114aSVinod Koul 
430fafc114aSVinod Koul static struct qcom_icc_node qnm_vapss_hcp = {
431fafc114aSVinod Koul 	.name = "qnm_vapss_hcp",
432fafc114aSVinod Koul 	.id = SM8450_MASTER_CDSP_HCP,
433fafc114aSVinod Koul 	.channels = 1,
434fafc114aSVinod Koul 	.buswidth = 32,
435fafc114aSVinod Koul 	.num_links = 1,
436fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
437fafc114aSVinod Koul };
438fafc114aSVinod Koul 
439fafc114aSVinod Koul static struct qcom_icc_node qnm_video = {
440fafc114aSVinod Koul 	.name = "qnm_video",
441fafc114aSVinod Koul 	.id = SM8450_MASTER_VIDEO,
442fafc114aSVinod Koul 	.channels = 2,
443fafc114aSVinod Koul 	.buswidth = 32,
444fafc114aSVinod Koul 	.num_links = 1,
445fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
446fafc114aSVinod Koul };
447fafc114aSVinod Koul 
448fafc114aSVinod Koul static struct qcom_icc_node qnm_video_cv_cpu = {
449fafc114aSVinod Koul 	.name = "qnm_video_cv_cpu",
450fafc114aSVinod Koul 	.id = SM8450_MASTER_VIDEO_CV_PROC,
451fafc114aSVinod Koul 	.channels = 1,
452fafc114aSVinod Koul 	.buswidth = 8,
453fafc114aSVinod Koul 	.num_links = 1,
454fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
455fafc114aSVinod Koul };
456fafc114aSVinod Koul 
457fafc114aSVinod Koul static struct qcom_icc_node qnm_video_cvp = {
458fafc114aSVinod Koul 	.name = "qnm_video_cvp",
459fafc114aSVinod Koul 	.id = SM8450_MASTER_VIDEO_PROC,
460fafc114aSVinod Koul 	.channels = 1,
461fafc114aSVinod Koul 	.buswidth = 32,
462fafc114aSVinod Koul 	.num_links = 1,
463fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
464fafc114aSVinod Koul };
465fafc114aSVinod Koul 
466fafc114aSVinod Koul static struct qcom_icc_node qnm_video_v_cpu = {
467fafc114aSVinod Koul 	.name = "qnm_video_v_cpu",
468fafc114aSVinod Koul 	.id = SM8450_MASTER_VIDEO_V_PROC,
469fafc114aSVinod Koul 	.channels = 1,
470fafc114aSVinod Koul 	.buswidth = 8,
471fafc114aSVinod Koul 	.num_links = 1,
472fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC },
473fafc114aSVinod Koul };
474fafc114aSVinod Koul 
475fafc114aSVinod Koul static struct qcom_icc_node qhm_nsp_noc_config = {
476fafc114aSVinod Koul 	.name = "qhm_nsp_noc_config",
477fafc114aSVinod Koul 	.id = SM8450_MASTER_CDSP_NOC_CFG,
478fafc114aSVinod Koul 	.channels = 1,
479fafc114aSVinod Koul 	.buswidth = 4,
480fafc114aSVinod Koul 	.num_links = 1,
481fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_NSP_NOC },
482fafc114aSVinod Koul };
483fafc114aSVinod Koul 
484fafc114aSVinod Koul static struct qcom_icc_node qxm_nsp = {
485fafc114aSVinod Koul 	.name = "qxm_nsp",
486fafc114aSVinod Koul 	.id = SM8450_MASTER_CDSP_PROC,
487fafc114aSVinod Koul 	.channels = 2,
488fafc114aSVinod Koul 	.buswidth = 32,
489fafc114aSVinod Koul 	.num_links = 1,
490fafc114aSVinod Koul 	.links = { SM8450_SLAVE_CDSP_MEM_NOC },
491fafc114aSVinod Koul };
492fafc114aSVinod Koul 
493fafc114aSVinod Koul static struct qcom_icc_node qnm_pcie_anoc_cfg = {
494fafc114aSVinod Koul 	.name = "qnm_pcie_anoc_cfg",
495fafc114aSVinod Koul 	.id = SM8450_MASTER_PCIE_ANOC_CFG,
496fafc114aSVinod Koul 	.channels = 1,
497fafc114aSVinod Koul 	.buswidth = 4,
498fafc114aSVinod Koul 	.num_links = 1,
499fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_PCIE_ANOC },
500fafc114aSVinod Koul };
501fafc114aSVinod Koul 
502fafc114aSVinod Koul static struct qcom_icc_node xm_pcie3_0 = {
503fafc114aSVinod Koul 	.name = "xm_pcie3_0",
504fafc114aSVinod Koul 	.id = SM8450_MASTER_PCIE_0,
505fafc114aSVinod Koul 	.channels = 1,
506fafc114aSVinod Koul 	.buswidth = 8,
507fafc114aSVinod Koul 	.num_links = 1,
508fafc114aSVinod Koul 	.links = { SM8450_SLAVE_ANOC_PCIE_GEM_NOC },
509fafc114aSVinod Koul };
510fafc114aSVinod Koul 
511fafc114aSVinod Koul static struct qcom_icc_node xm_pcie3_1 = {
512fafc114aSVinod Koul 	.name = "xm_pcie3_1",
513fafc114aSVinod Koul 	.id = SM8450_MASTER_PCIE_1,
514fafc114aSVinod Koul 	.channels = 1,
515fafc114aSVinod Koul 	.buswidth = 8,
516fafc114aSVinod Koul 	.num_links = 1,
517fafc114aSVinod Koul 	.links = { SM8450_SLAVE_ANOC_PCIE_GEM_NOC },
518fafc114aSVinod Koul };
519fafc114aSVinod Koul 
520fafc114aSVinod Koul static struct qcom_icc_node qhm_gic = {
521fafc114aSVinod Koul 	.name = "qhm_gic",
522fafc114aSVinod Koul 	.id = SM8450_MASTER_GIC_AHB,
523fafc114aSVinod Koul 	.channels = 1,
524fafc114aSVinod Koul 	.buswidth = 4,
525fafc114aSVinod Koul 	.num_links = 1,
526fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_SF },
527fafc114aSVinod Koul };
528fafc114aSVinod Koul 
529fafc114aSVinod Koul static struct qcom_icc_node qnm_aggre1_noc = {
530fafc114aSVinod Koul 	.name = "qnm_aggre1_noc",
531fafc114aSVinod Koul 	.id = SM8450_MASTER_A1NOC_SNOC,
532fafc114aSVinod Koul 	.channels = 1,
533fafc114aSVinod Koul 	.buswidth = 16,
534fafc114aSVinod Koul 	.num_links = 1,
535fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_SF },
536fafc114aSVinod Koul };
537fafc114aSVinod Koul 
538fafc114aSVinod Koul static struct qcom_icc_node qnm_aggre2_noc = {
539fafc114aSVinod Koul 	.name = "qnm_aggre2_noc",
540fafc114aSVinod Koul 	.id = SM8450_MASTER_A2NOC_SNOC,
541fafc114aSVinod Koul 	.channels = 1,
542fafc114aSVinod Koul 	.buswidth = 16,
543fafc114aSVinod Koul 	.num_links = 1,
544fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_SF },
545fafc114aSVinod Koul };
546fafc114aSVinod Koul 
547fafc114aSVinod Koul static struct qcom_icc_node qnm_lpass_noc = {
548fafc114aSVinod Koul 	.name = "qnm_lpass_noc",
549fafc114aSVinod Koul 	.id = SM8450_MASTER_LPASS_ANOC,
550fafc114aSVinod Koul 	.channels = 1,
551fafc114aSVinod Koul 	.buswidth = 16,
552fafc114aSVinod Koul 	.num_links = 1,
553fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_SF },
554fafc114aSVinod Koul };
555fafc114aSVinod Koul 
556fafc114aSVinod Koul static struct qcom_icc_node qnm_snoc_cfg = {
557fafc114aSVinod Koul 	.name = "qnm_snoc_cfg",
558fafc114aSVinod Koul 	.id = SM8450_MASTER_SNOC_CFG,
559fafc114aSVinod Koul 	.channels = 1,
560fafc114aSVinod Koul 	.buswidth = 4,
561fafc114aSVinod Koul 	.num_links = 1,
562fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SERVICE_SNOC },
563fafc114aSVinod Koul };
564fafc114aSVinod Koul 
565fafc114aSVinod Koul static struct qcom_icc_node qxm_pimem = {
566fafc114aSVinod Koul 	.name = "qxm_pimem",
567fafc114aSVinod Koul 	.id = SM8450_MASTER_PIMEM,
568fafc114aSVinod Koul 	.channels = 1,
569fafc114aSVinod Koul 	.buswidth = 8,
570fafc114aSVinod Koul 	.num_links = 1,
571fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_GC },
572fafc114aSVinod Koul };
573fafc114aSVinod Koul 
574fafc114aSVinod Koul static struct qcom_icc_node xm_gic = {
575fafc114aSVinod Koul 	.name = "xm_gic",
576fafc114aSVinod Koul 	.id = SM8450_MASTER_GIC,
577fafc114aSVinod Koul 	.channels = 1,
578fafc114aSVinod Koul 	.buswidth = 8,
579fafc114aSVinod Koul 	.num_links = 1,
580fafc114aSVinod Koul 	.links = { SM8450_SLAVE_SNOC_GEM_NOC_GC },
581fafc114aSVinod Koul };
582fafc114aSVinod Koul 
583fafc114aSVinod Koul static struct qcom_icc_node qnm_mnoc_hf_disp = {
584fafc114aSVinod Koul 	.name = "qnm_mnoc_hf_disp",
585fafc114aSVinod Koul 	.id = SM8450_MASTER_MNOC_HF_MEM_NOC_DISP,
586fafc114aSVinod Koul 	.channels = 2,
587fafc114aSVinod Koul 	.buswidth = 32,
588fafc114aSVinod Koul 	.num_links = 1,
589fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LLCC_DISP },
590fafc114aSVinod Koul };
591fafc114aSVinod Koul 
592fafc114aSVinod Koul static struct qcom_icc_node qnm_mnoc_sf_disp = {
593fafc114aSVinod Koul 	.name = "qnm_mnoc_sf_disp",
594fafc114aSVinod Koul 	.id = SM8450_MASTER_MNOC_SF_MEM_NOC_DISP,
595fafc114aSVinod Koul 	.channels = 2,
596fafc114aSVinod Koul 	.buswidth = 32,
597fafc114aSVinod Koul 	.num_links = 1,
598fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LLCC_DISP },
599fafc114aSVinod Koul };
600fafc114aSVinod Koul 
601fafc114aSVinod Koul static struct qcom_icc_node qnm_pcie_disp = {
602fafc114aSVinod Koul 	.name = "qnm_pcie_disp",
603fafc114aSVinod Koul 	.id = SM8450_MASTER_ANOC_PCIE_GEM_NOC_DISP,
604fafc114aSVinod Koul 	.channels = 1,
605fafc114aSVinod Koul 	.buswidth = 16,
606fafc114aSVinod Koul 	.num_links = 1,
607fafc114aSVinod Koul 	.links = { SM8450_SLAVE_LLCC_DISP },
608fafc114aSVinod Koul };
609fafc114aSVinod Koul 
610fafc114aSVinod Koul static struct qcom_icc_node llcc_mc_disp = {
611fafc114aSVinod Koul 	.name = "llcc_mc_disp",
612fafc114aSVinod Koul 	.id = SM8450_MASTER_LLCC_DISP,
613fafc114aSVinod Koul 	.channels = 4,
614fafc114aSVinod Koul 	.buswidth = 4,
615fafc114aSVinod Koul 	.num_links = 1,
616fafc114aSVinod Koul 	.links = { SM8450_SLAVE_EBI1_DISP },
617fafc114aSVinod Koul };
618fafc114aSVinod Koul 
619fafc114aSVinod Koul static struct qcom_icc_node qnm_mdp_disp = {
620fafc114aSVinod Koul 	.name = "qnm_mdp_disp",
621fafc114aSVinod Koul 	.id = SM8450_MASTER_MDP_DISP,
622fafc114aSVinod Koul 	.channels = 2,
623fafc114aSVinod Koul 	.buswidth = 32,
624fafc114aSVinod Koul 	.num_links = 1,
625fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_HF_MEM_NOC_DISP },
626fafc114aSVinod Koul };
627fafc114aSVinod Koul 
628fafc114aSVinod Koul static struct qcom_icc_node qnm_rot_disp = {
629fafc114aSVinod Koul 	.name = "qnm_rot_disp",
630fafc114aSVinod Koul 	.id = SM8450_MASTER_ROTATOR_DISP,
631fafc114aSVinod Koul 	.channels = 1,
632fafc114aSVinod Koul 	.buswidth = 32,
633fafc114aSVinod Koul 	.num_links = 1,
634fafc114aSVinod Koul 	.links = { SM8450_SLAVE_MNOC_SF_MEM_NOC_DISP },
635fafc114aSVinod Koul };
636fafc114aSVinod Koul 
637fafc114aSVinod Koul static struct qcom_icc_node qns_a1noc_snoc = {
638fafc114aSVinod Koul 	.name = "qns_a1noc_snoc",
639fafc114aSVinod Koul 	.id = SM8450_SLAVE_A1NOC_SNOC,
640fafc114aSVinod Koul 	.channels = 1,
641fafc114aSVinod Koul 	.buswidth = 16,
642fafc114aSVinod Koul 	.num_links = 1,
643fafc114aSVinod Koul 	.links = { SM8450_MASTER_A1NOC_SNOC },
644fafc114aSVinod Koul };
645fafc114aSVinod Koul 
646fafc114aSVinod Koul static struct qcom_icc_node srvc_aggre1_noc = {
647fafc114aSVinod Koul 	.name = "srvc_aggre1_noc",
648fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_A1NOC,
649fafc114aSVinod Koul 	.channels = 1,
650fafc114aSVinod Koul 	.buswidth = 4,
651fafc114aSVinod Koul 	.num_links = 0,
652fafc114aSVinod Koul };
653fafc114aSVinod Koul 
654fafc114aSVinod Koul static struct qcom_icc_node qns_a2noc_snoc = {
655fafc114aSVinod Koul 	.name = "qns_a2noc_snoc",
656fafc114aSVinod Koul 	.id = SM8450_SLAVE_A2NOC_SNOC,
657fafc114aSVinod Koul 	.channels = 1,
658fafc114aSVinod Koul 	.buswidth = 16,
659fafc114aSVinod Koul 	.num_links = 1,
660fafc114aSVinod Koul 	.links = { SM8450_MASTER_A2NOC_SNOC },
661fafc114aSVinod Koul };
662fafc114aSVinod Koul 
663fafc114aSVinod Koul static struct qcom_icc_node srvc_aggre2_noc = {
664fafc114aSVinod Koul 	.name = "srvc_aggre2_noc",
665fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_A2NOC,
666fafc114aSVinod Koul 	.channels = 1,
667fafc114aSVinod Koul 	.buswidth = 4,
668fafc114aSVinod Koul 	.num_links = 0,
669fafc114aSVinod Koul };
670fafc114aSVinod Koul 
671fafc114aSVinod Koul static struct qcom_icc_node qup0_core_slave = {
672fafc114aSVinod Koul 	.name = "qup0_core_slave",
673fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_CORE_0,
674fafc114aSVinod Koul 	.channels = 1,
675fafc114aSVinod Koul 	.buswidth = 4,
676fafc114aSVinod Koul 	.num_links = 0,
677fafc114aSVinod Koul };
678fafc114aSVinod Koul 
679fafc114aSVinod Koul static struct qcom_icc_node qup1_core_slave = {
680fafc114aSVinod Koul 	.name = "qup1_core_slave",
681fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_CORE_1,
682fafc114aSVinod Koul 	.channels = 1,
683fafc114aSVinod Koul 	.buswidth = 4,
684fafc114aSVinod Koul 	.num_links = 0,
685fafc114aSVinod Koul };
686fafc114aSVinod Koul 
687fafc114aSVinod Koul static struct qcom_icc_node qup2_core_slave = {
688fafc114aSVinod Koul 	.name = "qup2_core_slave",
689fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_CORE_2,
690fafc114aSVinod Koul 	.channels = 1,
691fafc114aSVinod Koul 	.buswidth = 4,
692fafc114aSVinod Koul 	.num_links = 0,
693fafc114aSVinod Koul };
694fafc114aSVinod Koul 
695fafc114aSVinod Koul static struct qcom_icc_node qhs_ahb2phy0 = {
696fafc114aSVinod Koul 	.name = "qhs_ahb2phy0",
697fafc114aSVinod Koul 	.id = SM8450_SLAVE_AHB2PHY_SOUTH,
698fafc114aSVinod Koul 	.channels = 1,
699fafc114aSVinod Koul 	.buswidth = 4,
700fafc114aSVinod Koul 	.num_links = 0,
701fafc114aSVinod Koul };
702fafc114aSVinod Koul 
703fafc114aSVinod Koul static struct qcom_icc_node qhs_ahb2phy1 = {
704fafc114aSVinod Koul 	.name = "qhs_ahb2phy1",
705fafc114aSVinod Koul 	.id = SM8450_SLAVE_AHB2PHY_NORTH,
706fafc114aSVinod Koul 	.channels = 1,
707fafc114aSVinod Koul 	.buswidth = 4,
708fafc114aSVinod Koul 	.num_links = 0,
709fafc114aSVinod Koul };
710fafc114aSVinod Koul 
711fafc114aSVinod Koul static struct qcom_icc_node qhs_aoss = {
712fafc114aSVinod Koul 	.name = "qhs_aoss",
713fafc114aSVinod Koul 	.id = SM8450_SLAVE_AOSS,
714fafc114aSVinod Koul 	.channels = 1,
715fafc114aSVinod Koul 	.buswidth = 4,
716fafc114aSVinod Koul 	.num_links = 0,
717fafc114aSVinod Koul };
718fafc114aSVinod Koul 
719fafc114aSVinod Koul static struct qcom_icc_node qhs_camera_cfg = {
720fafc114aSVinod Koul 	.name = "qhs_camera_cfg",
721fafc114aSVinod Koul 	.id = SM8450_SLAVE_CAMERA_CFG,
722fafc114aSVinod Koul 	.channels = 1,
723fafc114aSVinod Koul 	.buswidth = 4,
724fafc114aSVinod Koul 	.num_links = 0,
725fafc114aSVinod Koul };
726fafc114aSVinod Koul 
727fafc114aSVinod Koul static struct qcom_icc_node qhs_clk_ctl = {
728fafc114aSVinod Koul 	.name = "qhs_clk_ctl",
729fafc114aSVinod Koul 	.id = SM8450_SLAVE_CLK_CTL,
730fafc114aSVinod Koul 	.channels = 1,
731fafc114aSVinod Koul 	.buswidth = 4,
732fafc114aSVinod Koul 	.num_links = 0,
733fafc114aSVinod Koul };
734fafc114aSVinod Koul 
735fafc114aSVinod Koul static struct qcom_icc_node qhs_compute_cfg = {
736fafc114aSVinod Koul 	.name = "qhs_compute_cfg",
737fafc114aSVinod Koul 	.id = SM8450_SLAVE_CDSP_CFG,
738fafc114aSVinod Koul 	.channels = 1,
739fafc114aSVinod Koul 	.buswidth = 4,
740fafc114aSVinod Koul 	.num_links = 1,
741fafc114aSVinod Koul 	.links = { MASTER_CDSP_NOC_CFG },
742fafc114aSVinod Koul };
743fafc114aSVinod Koul 
744fafc114aSVinod Koul static struct qcom_icc_node qhs_cpr_cx = {
745fafc114aSVinod Koul 	.name = "qhs_cpr_cx",
746fafc114aSVinod Koul 	.id = SM8450_SLAVE_RBCPR_CX_CFG,
747fafc114aSVinod Koul 	.channels = 1,
748fafc114aSVinod Koul 	.buswidth = 4,
749fafc114aSVinod Koul 	.num_links = 0,
750fafc114aSVinod Koul };
751fafc114aSVinod Koul 
752fafc114aSVinod Koul static struct qcom_icc_node qhs_cpr_mmcx = {
753fafc114aSVinod Koul 	.name = "qhs_cpr_mmcx",
754fafc114aSVinod Koul 	.id = SM8450_SLAVE_RBCPR_MMCX_CFG,
755fafc114aSVinod Koul 	.channels = 1,
756fafc114aSVinod Koul 	.buswidth = 4,
757fafc114aSVinod Koul 	.num_links = 0,
758fafc114aSVinod Koul };
759fafc114aSVinod Koul 
760fafc114aSVinod Koul static struct qcom_icc_node qhs_cpr_mxa = {
761fafc114aSVinod Koul 	.name = "qhs_cpr_mxa",
762fafc114aSVinod Koul 	.id = SM8450_SLAVE_RBCPR_MXA_CFG,
763fafc114aSVinod Koul 	.channels = 1,
764fafc114aSVinod Koul 	.buswidth = 4,
765fafc114aSVinod Koul 	.num_links = 0,
766fafc114aSVinod Koul };
767fafc114aSVinod Koul 
768fafc114aSVinod Koul static struct qcom_icc_node qhs_cpr_mxc = {
769fafc114aSVinod Koul 	.name = "qhs_cpr_mxc",
770fafc114aSVinod Koul 	.id = SM8450_SLAVE_RBCPR_MXC_CFG,
771fafc114aSVinod Koul 	.channels = 1,
772fafc114aSVinod Koul 	.buswidth = 4,
773fafc114aSVinod Koul 	.num_links = 0,
774fafc114aSVinod Koul };
775fafc114aSVinod Koul 
776fafc114aSVinod Koul static struct qcom_icc_node qhs_crypto0_cfg = {
777fafc114aSVinod Koul 	.name = "qhs_crypto0_cfg",
778fafc114aSVinod Koul 	.id = SM8450_SLAVE_CRYPTO_0_CFG,
779fafc114aSVinod Koul 	.channels = 1,
780fafc114aSVinod Koul 	.buswidth = 4,
781fafc114aSVinod Koul 	.num_links = 0,
782fafc114aSVinod Koul };
783fafc114aSVinod Koul 
784fafc114aSVinod Koul static struct qcom_icc_node qhs_cx_rdpm = {
785fafc114aSVinod Koul 	.name = "qhs_cx_rdpm",
786fafc114aSVinod Koul 	.id = SM8450_SLAVE_CX_RDPM,
787fafc114aSVinod Koul 	.channels = 1,
788fafc114aSVinod Koul 	.buswidth = 4,
789fafc114aSVinod Koul 	.num_links = 0,
790fafc114aSVinod Koul };
791fafc114aSVinod Koul 
792fafc114aSVinod Koul static struct qcom_icc_node qhs_display_cfg = {
793fafc114aSVinod Koul 	.name = "qhs_display_cfg",
794fafc114aSVinod Koul 	.id = SM8450_SLAVE_DISPLAY_CFG,
795fafc114aSVinod Koul 	.channels = 1,
796fafc114aSVinod Koul 	.buswidth = 4,
797fafc114aSVinod Koul 	.num_links = 0,
798fafc114aSVinod Koul };
799fafc114aSVinod Koul 
800fafc114aSVinod Koul static struct qcom_icc_node qhs_gpuss_cfg = {
801fafc114aSVinod Koul 	.name = "qhs_gpuss_cfg",
802fafc114aSVinod Koul 	.id = SM8450_SLAVE_GFX3D_CFG,
803fafc114aSVinod Koul 	.channels = 1,
804fafc114aSVinod Koul 	.buswidth = 8,
805fafc114aSVinod Koul 	.num_links = 0,
806fafc114aSVinod Koul };
807fafc114aSVinod Koul 
808fafc114aSVinod Koul static struct qcom_icc_node qhs_imem_cfg = {
809fafc114aSVinod Koul 	.name = "qhs_imem_cfg",
810fafc114aSVinod Koul 	.id = SM8450_SLAVE_IMEM_CFG,
811fafc114aSVinod Koul 	.channels = 1,
812fafc114aSVinod Koul 	.buswidth = 4,
813fafc114aSVinod Koul 	.num_links = 0,
814fafc114aSVinod Koul };
815fafc114aSVinod Koul 
816fafc114aSVinod Koul static struct qcom_icc_node qhs_ipa = {
817fafc114aSVinod Koul 	.name = "qhs_ipa",
818fafc114aSVinod Koul 	.id = SM8450_SLAVE_IPA_CFG,
819fafc114aSVinod Koul 	.channels = 1,
820fafc114aSVinod Koul 	.buswidth = 4,
821fafc114aSVinod Koul 	.num_links = 0,
822fafc114aSVinod Koul };
823fafc114aSVinod Koul 
824fafc114aSVinod Koul static struct qcom_icc_node qhs_ipc_router = {
825fafc114aSVinod Koul 	.name = "qhs_ipc_router",
826fafc114aSVinod Koul 	.id = SM8450_SLAVE_IPC_ROUTER_CFG,
827fafc114aSVinod Koul 	.channels = 1,
828fafc114aSVinod Koul 	.buswidth = 4,
829fafc114aSVinod Koul 	.num_links = 0,
830fafc114aSVinod Koul };
831fafc114aSVinod Koul 
832fafc114aSVinod Koul static struct qcom_icc_node qhs_lpass_cfg = {
833fafc114aSVinod Koul 	.name = "qhs_lpass_cfg",
834fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS,
835fafc114aSVinod Koul 	.channels = 1,
836fafc114aSVinod Koul 	.buswidth = 4,
837fafc114aSVinod Koul 	.num_links = 1,
838fafc114aSVinod Koul 	.links = { MASTER_CNOC_LPASS_AG_NOC },
839fafc114aSVinod Koul };
840fafc114aSVinod Koul 
841fafc114aSVinod Koul static struct qcom_icc_node qhs_mss_cfg = {
842fafc114aSVinod Koul 	.name = "qhs_mss_cfg",
843fafc114aSVinod Koul 	.id = SM8450_SLAVE_CNOC_MSS,
844fafc114aSVinod Koul 	.channels = 1,
845fafc114aSVinod Koul 	.buswidth = 4,
846fafc114aSVinod Koul 	.num_links = 0,
847fafc114aSVinod Koul };
848fafc114aSVinod Koul 
849fafc114aSVinod Koul static struct qcom_icc_node qhs_mx_rdpm = {
850fafc114aSVinod Koul 	.name = "qhs_mx_rdpm",
851fafc114aSVinod Koul 	.id = SM8450_SLAVE_MX_RDPM,
852fafc114aSVinod Koul 	.channels = 1,
853fafc114aSVinod Koul 	.buswidth = 4,
854fafc114aSVinod Koul 	.num_links = 0,
855fafc114aSVinod Koul };
856fafc114aSVinod Koul 
857fafc114aSVinod Koul static struct qcom_icc_node qhs_pcie0_cfg = {
858fafc114aSVinod Koul 	.name = "qhs_pcie0_cfg",
859fafc114aSVinod Koul 	.id = SM8450_SLAVE_PCIE_0_CFG,
860fafc114aSVinod Koul 	.channels = 1,
861fafc114aSVinod Koul 	.buswidth = 4,
862fafc114aSVinod Koul 	.num_links = 0,
863fafc114aSVinod Koul };
864fafc114aSVinod Koul 
865fafc114aSVinod Koul static struct qcom_icc_node qhs_pcie1_cfg = {
866fafc114aSVinod Koul 	.name = "qhs_pcie1_cfg",
867fafc114aSVinod Koul 	.id = SM8450_SLAVE_PCIE_1_CFG,
868fafc114aSVinod Koul 	.channels = 1,
869fafc114aSVinod Koul 	.buswidth = 4,
870fafc114aSVinod Koul 	.num_links = 0,
871fafc114aSVinod Koul };
872fafc114aSVinod Koul 
873fafc114aSVinod Koul static struct qcom_icc_node qhs_pdm = {
874fafc114aSVinod Koul 	.name = "qhs_pdm",
875fafc114aSVinod Koul 	.id = SM8450_SLAVE_PDM,
876fafc114aSVinod Koul 	.channels = 1,
877fafc114aSVinod Koul 	.buswidth = 4,
878fafc114aSVinod Koul 	.num_links = 0,
879fafc114aSVinod Koul };
880fafc114aSVinod Koul 
881fafc114aSVinod Koul static struct qcom_icc_node qhs_pimem_cfg = {
882fafc114aSVinod Koul 	.name = "qhs_pimem_cfg",
883fafc114aSVinod Koul 	.id = SM8450_SLAVE_PIMEM_CFG,
884fafc114aSVinod Koul 	.channels = 1,
885fafc114aSVinod Koul 	.buswidth = 4,
886fafc114aSVinod Koul 	.num_links = 0,
887fafc114aSVinod Koul };
888fafc114aSVinod Koul 
889fafc114aSVinod Koul static struct qcom_icc_node qhs_prng = {
890fafc114aSVinod Koul 	.name = "qhs_prng",
891fafc114aSVinod Koul 	.id = SM8450_SLAVE_PRNG,
892fafc114aSVinod Koul 	.channels = 1,
893fafc114aSVinod Koul 	.buswidth = 4,
894fafc114aSVinod Koul 	.num_links = 0,
895fafc114aSVinod Koul };
896fafc114aSVinod Koul 
897fafc114aSVinod Koul static struct qcom_icc_node qhs_qdss_cfg = {
898fafc114aSVinod Koul 	.name = "qhs_qdss_cfg",
899fafc114aSVinod Koul 	.id = SM8450_SLAVE_QDSS_CFG,
900fafc114aSVinod Koul 	.channels = 1,
901fafc114aSVinod Koul 	.buswidth = 4,
902fafc114aSVinod Koul 	.num_links = 0,
903fafc114aSVinod Koul };
904fafc114aSVinod Koul 
905fafc114aSVinod Koul static struct qcom_icc_node qhs_qspi = {
906fafc114aSVinod Koul 	.name = "qhs_qspi",
907fafc114aSVinod Koul 	.id = SM8450_SLAVE_QSPI_0,
908fafc114aSVinod Koul 	.channels = 1,
909fafc114aSVinod Koul 	.buswidth = 4,
910fafc114aSVinod Koul 	.num_links = 0,
911fafc114aSVinod Koul };
912fafc114aSVinod Koul 
913fafc114aSVinod Koul static struct qcom_icc_node qhs_qup0 = {
914fafc114aSVinod Koul 	.name = "qhs_qup0",
915fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_0,
916fafc114aSVinod Koul 	.channels = 1,
917fafc114aSVinod Koul 	.buswidth = 4,
918fafc114aSVinod Koul 	.num_links = 0,
919fafc114aSVinod Koul };
920fafc114aSVinod Koul 
921fafc114aSVinod Koul static struct qcom_icc_node qhs_qup1 = {
922fafc114aSVinod Koul 	.name = "qhs_qup1",
923fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_1,
924fafc114aSVinod Koul 	.channels = 1,
925fafc114aSVinod Koul 	.buswidth = 4,
926fafc114aSVinod Koul 	.num_links = 0,
927fafc114aSVinod Koul };
928fafc114aSVinod Koul 
929fafc114aSVinod Koul static struct qcom_icc_node qhs_qup2 = {
930fafc114aSVinod Koul 	.name = "qhs_qup2",
931fafc114aSVinod Koul 	.id = SM8450_SLAVE_QUP_2,
932fafc114aSVinod Koul 	.channels = 1,
933fafc114aSVinod Koul 	.buswidth = 4,
934fafc114aSVinod Koul 	.num_links = 0,
935fafc114aSVinod Koul };
936fafc114aSVinod Koul 
937fafc114aSVinod Koul static struct qcom_icc_node qhs_sdc2 = {
938fafc114aSVinod Koul 	.name = "qhs_sdc2",
939fafc114aSVinod Koul 	.id = SM8450_SLAVE_SDCC_2,
940fafc114aSVinod Koul 	.channels = 1,
941fafc114aSVinod Koul 	.buswidth = 4,
942fafc114aSVinod Koul 	.num_links = 0,
943fafc114aSVinod Koul };
944fafc114aSVinod Koul 
945fafc114aSVinod Koul static struct qcom_icc_node qhs_sdc4 = {
946fafc114aSVinod Koul 	.name = "qhs_sdc4",
947fafc114aSVinod Koul 	.id = SM8450_SLAVE_SDCC_4,
948fafc114aSVinod Koul 	.channels = 1,
949fafc114aSVinod Koul 	.buswidth = 4,
950fafc114aSVinod Koul 	.num_links = 0,
951fafc114aSVinod Koul };
952fafc114aSVinod Koul 
953fafc114aSVinod Koul static struct qcom_icc_node qhs_spss_cfg = {
954fafc114aSVinod Koul 	.name = "qhs_spss_cfg",
955fafc114aSVinod Koul 	.id = SM8450_SLAVE_SPSS_CFG,
956fafc114aSVinod Koul 	.channels = 1,
957fafc114aSVinod Koul 	.buswidth = 4,
958fafc114aSVinod Koul 	.num_links = 0,
959fafc114aSVinod Koul };
960fafc114aSVinod Koul 
961fafc114aSVinod Koul static struct qcom_icc_node qhs_tcsr = {
962fafc114aSVinod Koul 	.name = "qhs_tcsr",
963fafc114aSVinod Koul 	.id = SM8450_SLAVE_TCSR,
964fafc114aSVinod Koul 	.channels = 1,
965fafc114aSVinod Koul 	.buswidth = 4,
966fafc114aSVinod Koul 	.num_links = 0,
967fafc114aSVinod Koul };
968fafc114aSVinod Koul 
969fafc114aSVinod Koul static struct qcom_icc_node qhs_tlmm = {
970fafc114aSVinod Koul 	.name = "qhs_tlmm",
971fafc114aSVinod Koul 	.id = SM8450_SLAVE_TLMM,
972fafc114aSVinod Koul 	.channels = 1,
973fafc114aSVinod Koul 	.buswidth = 4,
974fafc114aSVinod Koul 	.num_links = 0,
975fafc114aSVinod Koul };
976fafc114aSVinod Koul 
977fafc114aSVinod Koul static struct qcom_icc_node qhs_tme_cfg = {
978fafc114aSVinod Koul 	.name = "qhs_tme_cfg",
979fafc114aSVinod Koul 	.id = SM8450_SLAVE_TME_CFG,
980fafc114aSVinod Koul 	.channels = 1,
981fafc114aSVinod Koul 	.buswidth = 4,
982fafc114aSVinod Koul 	.num_links = 0,
983fafc114aSVinod Koul };
984fafc114aSVinod Koul 
985fafc114aSVinod Koul static struct qcom_icc_node qhs_ufs_mem_cfg = {
986fafc114aSVinod Koul 	.name = "qhs_ufs_mem_cfg",
987fafc114aSVinod Koul 	.id = SM8450_SLAVE_UFS_MEM_CFG,
988fafc114aSVinod Koul 	.channels = 1,
989fafc114aSVinod Koul 	.buswidth = 4,
990fafc114aSVinod Koul 	.num_links = 0,
991fafc114aSVinod Koul };
992fafc114aSVinod Koul 
993fafc114aSVinod Koul static struct qcom_icc_node qhs_usb3_0 = {
994fafc114aSVinod Koul 	.name = "qhs_usb3_0",
995fafc114aSVinod Koul 	.id = SM8450_SLAVE_USB3_0,
996fafc114aSVinod Koul 	.channels = 1,
997fafc114aSVinod Koul 	.buswidth = 4,
998fafc114aSVinod Koul 	.num_links = 0,
999fafc114aSVinod Koul };
1000fafc114aSVinod Koul 
1001fafc114aSVinod Koul static struct qcom_icc_node qhs_venus_cfg = {
1002fafc114aSVinod Koul 	.name = "qhs_venus_cfg",
1003fafc114aSVinod Koul 	.id = SM8450_SLAVE_VENUS_CFG,
1004fafc114aSVinod Koul 	.channels = 1,
1005fafc114aSVinod Koul 	.buswidth = 4,
1006fafc114aSVinod Koul 	.num_links = 0,
1007fafc114aSVinod Koul };
1008fafc114aSVinod Koul 
1009fafc114aSVinod Koul static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
1010fafc114aSVinod Koul 	.name = "qhs_vsense_ctrl_cfg",
1011fafc114aSVinod Koul 	.id = SM8450_SLAVE_VSENSE_CTRL_CFG,
1012fafc114aSVinod Koul 	.channels = 1,
1013fafc114aSVinod Koul 	.buswidth = 4,
1014fafc114aSVinod Koul 	.num_links = 0,
1015fafc114aSVinod Koul };
1016fafc114aSVinod Koul 
1017fafc114aSVinod Koul static struct qcom_icc_node qns_a1_noc_cfg = {
1018fafc114aSVinod Koul 	.name = "qns_a1_noc_cfg",
1019fafc114aSVinod Koul 	.id = SM8450_SLAVE_A1NOC_CFG,
1020fafc114aSVinod Koul 	.channels = 1,
1021fafc114aSVinod Koul 	.buswidth = 4,
1022fafc114aSVinod Koul 	.num_links = 1,
1023fafc114aSVinod Koul 	.links = { SM8450_MASTER_A1NOC_CFG },
1024fafc114aSVinod Koul };
1025fafc114aSVinod Koul 
1026fafc114aSVinod Koul static struct qcom_icc_node qns_a2_noc_cfg = {
1027fafc114aSVinod Koul 	.name = "qns_a2_noc_cfg",
1028fafc114aSVinod Koul 	.id = SM8450_SLAVE_A2NOC_CFG,
1029fafc114aSVinod Koul 	.channels = 1,
1030fafc114aSVinod Koul 	.buswidth = 4,
1031fafc114aSVinod Koul 	.num_links = 1,
1032fafc114aSVinod Koul 	.links = { SM8450_MASTER_A2NOC_CFG },
1033fafc114aSVinod Koul };
1034fafc114aSVinod Koul 
1035fafc114aSVinod Koul static struct qcom_icc_node qns_ddrss_cfg = {
1036fafc114aSVinod Koul 	.name = "qns_ddrss_cfg",
1037fafc114aSVinod Koul 	.id = SM8450_SLAVE_DDRSS_CFG,
1038fafc114aSVinod Koul 	.channels = 1,
1039fafc114aSVinod Koul 	.buswidth = 4,
1040fafc114aSVinod Koul 	.num_links = 1,
1041fafc114aSVinod Koul 	//FIXME where is link
1042fafc114aSVinod Koul };
1043fafc114aSVinod Koul 
1044fafc114aSVinod Koul static struct qcom_icc_node qns_mnoc_cfg = {
1045fafc114aSVinod Koul 	.name = "qns_mnoc_cfg",
1046fafc114aSVinod Koul 	.id = SM8450_SLAVE_CNOC_MNOC_CFG,
1047fafc114aSVinod Koul 	.channels = 1,
1048fafc114aSVinod Koul 	.buswidth = 4,
1049fafc114aSVinod Koul 	.num_links = 1,
1050fafc114aSVinod Koul 	.links = { SM8450_MASTER_CNOC_MNOC_CFG },
1051fafc114aSVinod Koul };
1052fafc114aSVinod Koul 
1053fafc114aSVinod Koul static struct qcom_icc_node qns_pcie_anoc_cfg = {
1054fafc114aSVinod Koul 	.name = "qns_pcie_anoc_cfg",
1055fafc114aSVinod Koul 	.id = SM8450_SLAVE_PCIE_ANOC_CFG,
1056fafc114aSVinod Koul 	.channels = 1,
1057fafc114aSVinod Koul 	.buswidth = 4,
1058fafc114aSVinod Koul 	.num_links = 1,
1059fafc114aSVinod Koul 	.links = { SM8450_MASTER_PCIE_ANOC_CFG },
1060fafc114aSVinod Koul };
1061fafc114aSVinod Koul 
1062fafc114aSVinod Koul static struct qcom_icc_node qns_snoc_cfg = {
1063fafc114aSVinod Koul 	.name = "qns_snoc_cfg",
1064fafc114aSVinod Koul 	.id = SM8450_SLAVE_SNOC_CFG,
1065fafc114aSVinod Koul 	.channels = 1,
1066fafc114aSVinod Koul 	.buswidth = 4,
1067fafc114aSVinod Koul 	.num_links = 1,
1068fafc114aSVinod Koul 	.links = { SM8450_MASTER_SNOC_CFG },
1069fafc114aSVinod Koul };
1070fafc114aSVinod Koul 
1071fafc114aSVinod Koul static struct qcom_icc_node qxs_imem = {
1072fafc114aSVinod Koul 	.name = "qxs_imem",
1073fafc114aSVinod Koul 	.id = SM8450_SLAVE_IMEM,
1074fafc114aSVinod Koul 	.channels = 1,
1075fafc114aSVinod Koul 	.buswidth = 8,
1076fafc114aSVinod Koul 	.num_links = 0,
1077fafc114aSVinod Koul };
1078fafc114aSVinod Koul 
1079fafc114aSVinod Koul static struct qcom_icc_node qxs_pimem = {
1080fafc114aSVinod Koul 	.name = "qxs_pimem",
1081fafc114aSVinod Koul 	.id = SM8450_SLAVE_PIMEM,
1082fafc114aSVinod Koul 	.channels = 1,
1083fafc114aSVinod Koul 	.buswidth = 8,
1084fafc114aSVinod Koul 	.num_links = 0,
1085fafc114aSVinod Koul };
1086fafc114aSVinod Koul 
1087fafc114aSVinod Koul static struct qcom_icc_node srvc_cnoc = {
1088fafc114aSVinod Koul 	.name = "srvc_cnoc",
1089fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_CNOC,
1090fafc114aSVinod Koul 	.channels = 1,
1091fafc114aSVinod Koul 	.buswidth = 4,
1092fafc114aSVinod Koul 	.num_links = 0,
1093fafc114aSVinod Koul };
1094fafc114aSVinod Koul 
1095fafc114aSVinod Koul static struct qcom_icc_node xs_pcie_0 = {
1096fafc114aSVinod Koul 	.name = "xs_pcie_0",
1097fafc114aSVinod Koul 	.id = SM8450_SLAVE_PCIE_0,
1098fafc114aSVinod Koul 	.channels = 1,
1099fafc114aSVinod Koul 	.buswidth = 8,
1100fafc114aSVinod Koul 	.num_links = 0,
1101fafc114aSVinod Koul };
1102fafc114aSVinod Koul 
1103fafc114aSVinod Koul static struct qcom_icc_node xs_pcie_1 = {
1104fafc114aSVinod Koul 	.name = "xs_pcie_1",
1105fafc114aSVinod Koul 	.id = SM8450_SLAVE_PCIE_1,
1106fafc114aSVinod Koul 	.channels = 1,
1107fafc114aSVinod Koul 	.buswidth = 8,
1108fafc114aSVinod Koul 	.num_links = 0,
1109fafc114aSVinod Koul };
1110fafc114aSVinod Koul 
1111fafc114aSVinod Koul static struct qcom_icc_node xs_qdss_stm = {
1112fafc114aSVinod Koul 	.name = "xs_qdss_stm",
1113fafc114aSVinod Koul 	.id = SM8450_SLAVE_QDSS_STM,
1114fafc114aSVinod Koul 	.channels = 1,
1115fafc114aSVinod Koul 	.buswidth = 4,
1116fafc114aSVinod Koul 	.num_links = 0,
1117fafc114aSVinod Koul };
1118fafc114aSVinod Koul 
1119fafc114aSVinod Koul static struct qcom_icc_node xs_sys_tcu_cfg = {
1120fafc114aSVinod Koul 	.name = "xs_sys_tcu_cfg",
1121fafc114aSVinod Koul 	.id = SM8450_SLAVE_TCU,
1122fafc114aSVinod Koul 	.channels = 1,
1123fafc114aSVinod Koul 	.buswidth = 8,
1124fafc114aSVinod Koul 	.num_links = 0,
1125fafc114aSVinod Koul };
1126fafc114aSVinod Koul 
1127fafc114aSVinod Koul static struct qcom_icc_node qns_gem_noc_cnoc = {
1128fafc114aSVinod Koul 	.name = "qns_gem_noc_cnoc",
1129fafc114aSVinod Koul 	.id = SM8450_SLAVE_GEM_NOC_CNOC,
1130fafc114aSVinod Koul 	.channels = 1,
1131fafc114aSVinod Koul 	.buswidth = 16,
1132fafc114aSVinod Koul 	.num_links = 1,
1133fafc114aSVinod Koul 	.links = { SM8450_MASTER_GEM_NOC_CNOC },
1134fafc114aSVinod Koul };
1135fafc114aSVinod Koul 
1136fafc114aSVinod Koul static struct qcom_icc_node qns_llcc = {
1137fafc114aSVinod Koul 	.name = "qns_llcc",
1138fafc114aSVinod Koul 	.id = SM8450_SLAVE_LLCC,
1139fafc114aSVinod Koul 	.channels = 4,
1140fafc114aSVinod Koul 	.buswidth = 16,
1141fafc114aSVinod Koul 	.num_links = 1,
1142fafc114aSVinod Koul 	.links = { SM8450_MASTER_LLCC },
1143fafc114aSVinod Koul };
1144fafc114aSVinod Koul 
1145fafc114aSVinod Koul static struct qcom_icc_node qns_pcie = {
1146fafc114aSVinod Koul 	.name = "qns_pcie",
1147fafc114aSVinod Koul 	.id = SM8450_SLAVE_MEM_NOC_PCIE_SNOC,
1148fafc114aSVinod Koul 	.channels = 1,
1149fafc114aSVinod Koul 	.buswidth = 8,
1150fafc114aSVinod Koul 	.num_links = 1,
1151fafc114aSVinod Koul 	.links = { SM8450_MASTER_GEM_NOC_PCIE_SNOC },
1152fafc114aSVinod Koul };
1153fafc114aSVinod Koul 
1154fafc114aSVinod Koul static struct qcom_icc_node qhs_lpass_core = {
1155fafc114aSVinod Koul 	.name = "qhs_lpass_core",
1156fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS_CORE_CFG,
1157fafc114aSVinod Koul 	.channels = 1,
1158fafc114aSVinod Koul 	.buswidth = 4,
1159fafc114aSVinod Koul 	.num_links = 0,
1160fafc114aSVinod Koul };
1161fafc114aSVinod Koul 
1162fafc114aSVinod Koul static struct qcom_icc_node qhs_lpass_lpi = {
1163fafc114aSVinod Koul 	.name = "qhs_lpass_lpi",
1164fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS_LPI_CFG,
1165fafc114aSVinod Koul 	.channels = 1,
1166fafc114aSVinod Koul 	.buswidth = 4,
1167fafc114aSVinod Koul 	.num_links = 0,
1168fafc114aSVinod Koul };
1169fafc114aSVinod Koul 
1170fafc114aSVinod Koul static struct qcom_icc_node qhs_lpass_mpu = {
1171fafc114aSVinod Koul 	.name = "qhs_lpass_mpu",
1172fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS_MPU_CFG,
1173fafc114aSVinod Koul 	.channels = 1,
1174fafc114aSVinod Koul 	.buswidth = 4,
1175fafc114aSVinod Koul 	.num_links = 0,
1176fafc114aSVinod Koul };
1177fafc114aSVinod Koul 
1178fafc114aSVinod Koul static struct qcom_icc_node qhs_lpass_top = {
1179fafc114aSVinod Koul 	.name = "qhs_lpass_top",
1180fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS_TOP_CFG,
1181fafc114aSVinod Koul 	.channels = 1,
1182fafc114aSVinod Koul 	.buswidth = 4,
1183fafc114aSVinod Koul 	.num_links = 0,
1184fafc114aSVinod Koul };
1185fafc114aSVinod Koul 
1186fafc114aSVinod Koul static struct qcom_icc_node qns_sysnoc = {
1187fafc114aSVinod Koul 	.name = "qns_sysnoc",
1188fafc114aSVinod Koul 	.id = SM8450_SLAVE_LPASS_SNOC,
1189fafc114aSVinod Koul 	.channels = 1,
1190fafc114aSVinod Koul 	.buswidth = 16,
1191fafc114aSVinod Koul 	.num_links = 1,
1192fafc114aSVinod Koul 	.links = { SM8450_MASTER_LPASS_ANOC },
1193fafc114aSVinod Koul };
1194fafc114aSVinod Koul 
1195fafc114aSVinod Koul static struct qcom_icc_node srvc_niu_aml_noc = {
1196fafc114aSVinod Koul 	.name = "srvc_niu_aml_noc",
1197fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICES_LPASS_AML_NOC,
1198fafc114aSVinod Koul 	.channels = 1,
1199fafc114aSVinod Koul 	.buswidth = 4,
1200fafc114aSVinod Koul 	.num_links = 0,
1201fafc114aSVinod Koul };
1202fafc114aSVinod Koul 
1203fafc114aSVinod Koul static struct qcom_icc_node srvc_niu_lpass_agnoc = {
1204fafc114aSVinod Koul 	.name = "srvc_niu_lpass_agnoc",
1205fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_LPASS_AG_NOC,
1206fafc114aSVinod Koul 	.channels = 1,
1207fafc114aSVinod Koul 	.buswidth = 4,
1208fafc114aSVinod Koul 	.num_links = 0,
1209fafc114aSVinod Koul };
1210fafc114aSVinod Koul 
1211fafc114aSVinod Koul static struct qcom_icc_node ebi = {
1212fafc114aSVinod Koul 	.name = "ebi",
1213fafc114aSVinod Koul 	.id = SM8450_SLAVE_EBI1,
1214fafc114aSVinod Koul 	.channels = 4,
1215fafc114aSVinod Koul 	.buswidth = 4,
1216fafc114aSVinod Koul 	.num_links = 0,
1217fafc114aSVinod Koul };
1218fafc114aSVinod Koul 
1219fafc114aSVinod Koul static struct qcom_icc_node qns_mem_noc_hf = {
1220fafc114aSVinod Koul 	.name = "qns_mem_noc_hf",
1221fafc114aSVinod Koul 	.id = SM8450_SLAVE_MNOC_HF_MEM_NOC,
1222fafc114aSVinod Koul 	.channels = 2,
1223fafc114aSVinod Koul 	.buswidth = 32,
1224fafc114aSVinod Koul 	.num_links = 1,
1225fafc114aSVinod Koul 	.links = { SM8450_MASTER_MNOC_HF_MEM_NOC },
1226fafc114aSVinod Koul };
1227fafc114aSVinod Koul 
1228fafc114aSVinod Koul static struct qcom_icc_node qns_mem_noc_sf = {
1229fafc114aSVinod Koul 	.name = "qns_mem_noc_sf",
1230fafc114aSVinod Koul 	.id = SM8450_SLAVE_MNOC_SF_MEM_NOC,
1231fafc114aSVinod Koul 	.channels = 2,
1232fafc114aSVinod Koul 	.buswidth = 32,
1233fafc114aSVinod Koul 	.num_links = 1,
1234fafc114aSVinod Koul 	.links = { SM8450_MASTER_MNOC_SF_MEM_NOC },
1235fafc114aSVinod Koul };
1236fafc114aSVinod Koul 
1237fafc114aSVinod Koul static struct qcom_icc_node srvc_mnoc = {
1238fafc114aSVinod Koul 	.name = "srvc_mnoc",
1239fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_MNOC,
1240fafc114aSVinod Koul 	.channels = 1,
1241fafc114aSVinod Koul 	.buswidth = 4,
1242fafc114aSVinod Koul 	.num_links = 0,
1243fafc114aSVinod Koul };
1244fafc114aSVinod Koul 
1245fafc114aSVinod Koul static struct qcom_icc_node qns_nsp_gemnoc = {
1246fafc114aSVinod Koul 	.name = "qns_nsp_gemnoc",
1247fafc114aSVinod Koul 	.id = SM8450_SLAVE_CDSP_MEM_NOC,
1248fafc114aSVinod Koul 	.channels = 2,
1249fafc114aSVinod Koul 	.buswidth = 32,
1250fafc114aSVinod Koul 	.num_links = 1,
1251fafc114aSVinod Koul 	.links = { SM8450_MASTER_COMPUTE_NOC },
1252fafc114aSVinod Koul };
1253fafc114aSVinod Koul 
1254fafc114aSVinod Koul static struct qcom_icc_node service_nsp_noc = {
1255fafc114aSVinod Koul 	.name = "service_nsp_noc",
1256fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_NSP_NOC,
1257fafc114aSVinod Koul 	.channels = 1,
1258fafc114aSVinod Koul 	.buswidth = 4,
1259fafc114aSVinod Koul 	.num_links = 0,
1260fafc114aSVinod Koul };
1261fafc114aSVinod Koul 
1262fafc114aSVinod Koul static struct qcom_icc_node qns_pcie_mem_noc = {
1263fafc114aSVinod Koul 	.name = "qns_pcie_mem_noc",
1264fafc114aSVinod Koul 	.id = SM8450_SLAVE_ANOC_PCIE_GEM_NOC,
1265fafc114aSVinod Koul 	.channels = 1,
1266fafc114aSVinod Koul 	.buswidth = 16,
1267fafc114aSVinod Koul 	.num_links = 1,
1268fafc114aSVinod Koul 	.links = { SM8450_MASTER_ANOC_PCIE_GEM_NOC },
1269fafc114aSVinod Koul };
1270fafc114aSVinod Koul 
1271fafc114aSVinod Koul static struct qcom_icc_node srvc_pcie_aggre_noc = {
1272fafc114aSVinod Koul 	.name = "srvc_pcie_aggre_noc",
1273fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_PCIE_ANOC,
1274fafc114aSVinod Koul 	.channels = 1,
1275fafc114aSVinod Koul 	.buswidth = 4,
1276fafc114aSVinod Koul 	.num_links = 0,
1277fafc114aSVinod Koul };
1278fafc114aSVinod Koul 
1279fafc114aSVinod Koul static struct qcom_icc_node qns_gemnoc_gc = {
1280fafc114aSVinod Koul 	.name = "qns_gemnoc_gc",
1281fafc114aSVinod Koul 	.id = SM8450_SLAVE_SNOC_GEM_NOC_GC,
1282fafc114aSVinod Koul 	.channels = 1,
1283fafc114aSVinod Koul 	.buswidth = 8,
1284fafc114aSVinod Koul 	.num_links = 1,
1285fafc114aSVinod Koul 	.links = { SM8450_MASTER_SNOC_GC_MEM_NOC },
1286fafc114aSVinod Koul };
1287fafc114aSVinod Koul 
1288fafc114aSVinod Koul static struct qcom_icc_node qns_gemnoc_sf = {
1289fafc114aSVinod Koul 	.name = "qns_gemnoc_sf",
1290fafc114aSVinod Koul 	.id = SM8450_SLAVE_SNOC_GEM_NOC_SF,
1291fafc114aSVinod Koul 	.channels = 1,
1292fafc114aSVinod Koul 	.buswidth = 16,
1293fafc114aSVinod Koul 	.num_links = 1,
1294fafc114aSVinod Koul 	.links = { SM8450_MASTER_SNOC_SF_MEM_NOC },
1295fafc114aSVinod Koul };
1296fafc114aSVinod Koul 
1297fafc114aSVinod Koul static struct qcom_icc_node srvc_snoc = {
1298fafc114aSVinod Koul 	.name = "srvc_snoc",
1299fafc114aSVinod Koul 	.id = SM8450_SLAVE_SERVICE_SNOC,
1300fafc114aSVinod Koul 	.channels = 1,
1301fafc114aSVinod Koul 	.buswidth = 4,
1302fafc114aSVinod Koul 	.num_links = 0,
1303fafc114aSVinod Koul };
1304fafc114aSVinod Koul 
1305fafc114aSVinod Koul static struct qcom_icc_node qns_llcc_disp = {
1306fafc114aSVinod Koul 	.name = "qns_llcc_disp",
1307fafc114aSVinod Koul 	.id = SM8450_SLAVE_LLCC_DISP,
1308fafc114aSVinod Koul 	.channels = 4,
1309fafc114aSVinod Koul 	.buswidth = 16,
1310fafc114aSVinod Koul 	.num_links = 1,
1311fafc114aSVinod Koul 	.links = { SM8450_MASTER_LLCC_DISP },
1312fafc114aSVinod Koul };
1313fafc114aSVinod Koul 
1314fafc114aSVinod Koul static struct qcom_icc_node ebi_disp = {
1315fafc114aSVinod Koul 	.name = "ebi_disp",
1316fafc114aSVinod Koul 	.id = SM8450_SLAVE_EBI1_DISP,
1317fafc114aSVinod Koul 	.channels = 4,
1318fafc114aSVinod Koul 	.buswidth = 4,
1319fafc114aSVinod Koul 	.num_links = 0,
1320fafc114aSVinod Koul };
1321fafc114aSVinod Koul 
1322fafc114aSVinod Koul static struct qcom_icc_node qns_mem_noc_hf_disp = {
1323fafc114aSVinod Koul 	.name = "qns_mem_noc_hf_disp",
1324fafc114aSVinod Koul 	.id = SM8450_SLAVE_MNOC_HF_MEM_NOC_DISP,
1325fafc114aSVinod Koul 	.channels = 2,
1326fafc114aSVinod Koul 	.buswidth = 32,
1327fafc114aSVinod Koul 	.num_links = 1,
1328fafc114aSVinod Koul 	.links = { SM8450_MASTER_MNOC_HF_MEM_NOC_DISP },
1329fafc114aSVinod Koul };
1330fafc114aSVinod Koul 
1331fafc114aSVinod Koul static struct qcom_icc_node qns_mem_noc_sf_disp = {
1332fafc114aSVinod Koul 	.name = "qns_mem_noc_sf_disp",
1333fafc114aSVinod Koul 	.id = SM8450_SLAVE_MNOC_SF_MEM_NOC_DISP,
1334fafc114aSVinod Koul 	.channels = 2,
1335fafc114aSVinod Koul 	.buswidth = 32,
1336fafc114aSVinod Koul 	.num_links = 1,
1337fafc114aSVinod Koul 	.links = { SM8450_MASTER_MNOC_SF_MEM_NOC_DISP },
1338fafc114aSVinod Koul };
1339fafc114aSVinod Koul 
1340fafc114aSVinod Koul static struct qcom_icc_bcm bcm_acv = {
1341fafc114aSVinod Koul 	.name = "ACV",
1342be02db24SNeil Armstrong 	.enable_mask = 0x8,
1343fafc114aSVinod Koul 	.num_nodes = 1,
1344fafc114aSVinod Koul 	.nodes = { &ebi },
1345fafc114aSVinod Koul };
1346fafc114aSVinod Koul 
1347fafc114aSVinod Koul static struct qcom_icc_bcm bcm_ce0 = {
1348fafc114aSVinod Koul 	.name = "CE0",
1349fafc114aSVinod Koul 	.num_nodes = 1,
1350fafc114aSVinod Koul 	.nodes = { &qxm_crypto },
1351fafc114aSVinod Koul };
1352fafc114aSVinod Koul 
1353fafc114aSVinod Koul static struct qcom_icc_bcm bcm_cn0 = {
1354fafc114aSVinod Koul 	.name = "CN0",
1355be02db24SNeil Armstrong 	.enable_mask = 0x1,
1356fafc114aSVinod Koul 	.keepalive = true,
1357fafc114aSVinod Koul 	.num_nodes = 55,
1358fafc114aSVinod Koul 	.nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
1359fafc114aSVinod Koul 		   &qhs_ahb2phy0, &qhs_ahb2phy1,
1360fafc114aSVinod Koul 		   &qhs_aoss, &qhs_camera_cfg,
1361fafc114aSVinod Koul 		   &qhs_clk_ctl, &qhs_compute_cfg,
1362fafc114aSVinod Koul 		   &qhs_cpr_cx, &qhs_cpr_mmcx,
1363fafc114aSVinod Koul 		   &qhs_cpr_mxa, &qhs_cpr_mxc,
1364fafc114aSVinod Koul 		   &qhs_crypto0_cfg, &qhs_cx_rdpm,
1365fafc114aSVinod Koul 		   &qhs_display_cfg, &qhs_gpuss_cfg,
1366fafc114aSVinod Koul 		   &qhs_imem_cfg, &qhs_ipa,
1367fafc114aSVinod Koul 		   &qhs_ipc_router, &qhs_lpass_cfg,
1368fafc114aSVinod Koul 		   &qhs_mss_cfg, &qhs_mx_rdpm,
1369fafc114aSVinod Koul 		   &qhs_pcie0_cfg, &qhs_pcie1_cfg,
1370fafc114aSVinod Koul 		   &qhs_pdm, &qhs_pimem_cfg,
1371fafc114aSVinod Koul 		   &qhs_prng, &qhs_qdss_cfg,
1372fafc114aSVinod Koul 		   &qhs_qspi, &qhs_qup0,
1373fafc114aSVinod Koul 		   &qhs_qup1, &qhs_qup2,
1374fafc114aSVinod Koul 		   &qhs_sdc2, &qhs_sdc4,
1375fafc114aSVinod Koul 		   &qhs_spss_cfg, &qhs_tcsr,
1376fafc114aSVinod Koul 		   &qhs_tlmm, &qhs_tme_cfg,
1377fafc114aSVinod Koul 		   &qhs_ufs_mem_cfg, &qhs_usb3_0,
1378fafc114aSVinod Koul 		   &qhs_venus_cfg, &qhs_vsense_ctrl_cfg,
1379fafc114aSVinod Koul 		   &qns_a1_noc_cfg, &qns_a2_noc_cfg,
1380fafc114aSVinod Koul 		   &qns_ddrss_cfg, &qns_mnoc_cfg,
1381fafc114aSVinod Koul 		   &qns_pcie_anoc_cfg, &qns_snoc_cfg,
1382fafc114aSVinod Koul 		   &qxs_imem, &qxs_pimem,
1383fafc114aSVinod Koul 		   &srvc_cnoc, &xs_pcie_0,
1384fafc114aSVinod Koul 		   &xs_pcie_1, &xs_qdss_stm,
1385fafc114aSVinod Koul 		   &xs_sys_tcu_cfg },
1386fafc114aSVinod Koul };
1387fafc114aSVinod Koul 
1388fafc114aSVinod Koul static struct qcom_icc_bcm bcm_co0 = {
1389fafc114aSVinod Koul 	.name = "CO0",
1390be02db24SNeil Armstrong 	.enable_mask = 0x1,
1391fafc114aSVinod Koul 	.num_nodes = 2,
1392fafc114aSVinod Koul 	.nodes = { &qxm_nsp, &qns_nsp_gemnoc },
1393fafc114aSVinod Koul };
1394fafc114aSVinod Koul 
1395fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mc0 = {
1396fafc114aSVinod Koul 	.name = "MC0",
1397fafc114aSVinod Koul 	.keepalive = true,
1398fafc114aSVinod Koul 	.num_nodes = 1,
1399fafc114aSVinod Koul 	.nodes = { &ebi },
1400fafc114aSVinod Koul };
1401fafc114aSVinod Koul 
1402fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mm0 = {
1403fafc114aSVinod Koul 	.name = "MM0",
1404fafc114aSVinod Koul 	.keepalive = true,
1405fafc114aSVinod Koul 	.num_nodes = 1,
1406fafc114aSVinod Koul 	.nodes = { &qns_mem_noc_hf },
1407fafc114aSVinod Koul };
1408fafc114aSVinod Koul 
1409fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mm1 = {
1410fafc114aSVinod Koul 	.name = "MM1",
1411be02db24SNeil Armstrong 	.enable_mask = 0x1,
1412fafc114aSVinod Koul 	.num_nodes = 12,
1413fafc114aSVinod Koul 	.nodes = { &qnm_camnoc_hf, &qnm_camnoc_icp,
1414fafc114aSVinod Koul 		   &qnm_camnoc_sf, &qnm_mdp,
1415fafc114aSVinod Koul 		   &qnm_mnoc_cfg, &qnm_rot,
1416fafc114aSVinod Koul 		   &qnm_vapss_hcp, &qnm_video,
1417fafc114aSVinod Koul 		   &qnm_video_cv_cpu, &qnm_video_cvp,
1418fafc114aSVinod Koul 		   &qnm_video_v_cpu, &qns_mem_noc_sf },
1419fafc114aSVinod Koul };
1420fafc114aSVinod Koul 
1421fafc114aSVinod Koul static struct qcom_icc_bcm bcm_qup0 = {
1422fafc114aSVinod Koul 	.name = "QUP0",
1423fafc114aSVinod Koul 	.keepalive = true,
1424fafc114aSVinod Koul 	.vote_scale = 1,
1425fafc114aSVinod Koul 	.num_nodes = 1,
1426fafc114aSVinod Koul 	.nodes = { &qup0_core_slave },
1427fafc114aSVinod Koul };
1428fafc114aSVinod Koul 
1429fafc114aSVinod Koul static struct qcom_icc_bcm bcm_qup1 = {
1430fafc114aSVinod Koul 	.name = "QUP1",
1431fafc114aSVinod Koul 	.keepalive = true,
1432fafc114aSVinod Koul 	.vote_scale = 1,
1433fafc114aSVinod Koul 	.num_nodes = 1,
1434fafc114aSVinod Koul 	.nodes = { &qup1_core_slave },
1435fafc114aSVinod Koul };
1436fafc114aSVinod Koul 
1437fafc114aSVinod Koul static struct qcom_icc_bcm bcm_qup2 = {
1438fafc114aSVinod Koul 	.name = "QUP2",
1439fafc114aSVinod Koul 	.keepalive = true,
1440fafc114aSVinod Koul 	.vote_scale = 1,
1441fafc114aSVinod Koul 	.num_nodes = 1,
1442fafc114aSVinod Koul 	.nodes = { &qup2_core_slave },
1443fafc114aSVinod Koul };
1444fafc114aSVinod Koul 
1445fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sh0 = {
1446fafc114aSVinod Koul 	.name = "SH0",
1447fafc114aSVinod Koul 	.keepalive = true,
1448fafc114aSVinod Koul 	.num_nodes = 1,
1449fafc114aSVinod Koul 	.nodes = { &qns_llcc },
1450fafc114aSVinod Koul };
1451fafc114aSVinod Koul 
1452fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sh1 = {
1453fafc114aSVinod Koul 	.name = "SH1",
1454be02db24SNeil Armstrong 	.enable_mask = 0x1,
1455fafc114aSVinod Koul 	.num_nodes = 7,
1456fafc114aSVinod Koul 	.nodes = { &alm_gpu_tcu, &alm_sys_tcu,
1457fafc114aSVinod Koul 		   &qnm_nsp_gemnoc, &qnm_pcie,
1458fafc114aSVinod Koul 		   &qnm_snoc_gc, &qns_gem_noc_cnoc,
1459fafc114aSVinod Koul 		   &qns_pcie },
1460fafc114aSVinod Koul };
1461fafc114aSVinod Koul 
1462fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn0 = {
1463fafc114aSVinod Koul 	.name = "SN0",
1464fafc114aSVinod Koul 	.keepalive = true,
1465fafc114aSVinod Koul 	.num_nodes = 1,
1466fafc114aSVinod Koul 	.nodes = { &qns_gemnoc_sf },
1467fafc114aSVinod Koul };
1468fafc114aSVinod Koul 
1469fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn1 = {
1470fafc114aSVinod Koul 	.name = "SN1",
1471be02db24SNeil Armstrong 	.enable_mask = 0x1,
1472fafc114aSVinod Koul 	.num_nodes = 4,
1473fafc114aSVinod Koul 	.nodes = { &qhm_gic, &qxm_pimem,
1474fafc114aSVinod Koul 		   &xm_gic, &qns_gemnoc_gc },
1475fafc114aSVinod Koul };
1476fafc114aSVinod Koul 
1477fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn2 = {
1478fafc114aSVinod Koul 	.name = "SN2",
1479fafc114aSVinod Koul 	.num_nodes = 1,
1480fafc114aSVinod Koul 	.nodes = { &qnm_aggre1_noc },
1481fafc114aSVinod Koul };
1482fafc114aSVinod Koul 
1483fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn3 = {
1484fafc114aSVinod Koul 	.name = "SN3",
1485fafc114aSVinod Koul 	.num_nodes = 1,
1486fafc114aSVinod Koul 	.nodes = { &qnm_aggre2_noc },
1487fafc114aSVinod Koul };
1488fafc114aSVinod Koul 
1489fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn4 = {
1490fafc114aSVinod Koul 	.name = "SN4",
1491fafc114aSVinod Koul 	.num_nodes = 1,
1492fafc114aSVinod Koul 	.nodes = { &qnm_lpass_noc },
1493fafc114aSVinod Koul };
1494fafc114aSVinod Koul 
1495fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sn7 = {
1496fafc114aSVinod Koul 	.name = "SN7",
1497fafc114aSVinod Koul 	.num_nodes = 1,
1498fafc114aSVinod Koul 	.nodes = { &qns_pcie_mem_noc },
1499fafc114aSVinod Koul };
1500fafc114aSVinod Koul 
1501fafc114aSVinod Koul static struct qcom_icc_bcm bcm_acv_disp = {
1502fafc114aSVinod Koul 	.name = "ACV",
1503be02db24SNeil Armstrong 	.enable_mask = 0x1,
1504fafc114aSVinod Koul 	.num_nodes = 1,
1505fafc114aSVinod Koul 	.nodes = { &ebi_disp },
1506fafc114aSVinod Koul };
1507fafc114aSVinod Koul 
1508fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mc0_disp = {
1509fafc114aSVinod Koul 	.name = "MC0",
1510fafc114aSVinod Koul 	.num_nodes = 1,
1511fafc114aSVinod Koul 	.nodes = { &ebi_disp },
1512fafc114aSVinod Koul };
1513fafc114aSVinod Koul 
1514fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mm0_disp = {
1515fafc114aSVinod Koul 	.name = "MM0",
1516fafc114aSVinod Koul 	.num_nodes = 1,
1517fafc114aSVinod Koul 	.nodes = { &qns_mem_noc_hf_disp },
1518fafc114aSVinod Koul };
1519fafc114aSVinod Koul 
1520fafc114aSVinod Koul static struct qcom_icc_bcm bcm_mm1_disp = {
1521fafc114aSVinod Koul 	.name = "MM1",
1522be02db24SNeil Armstrong 	.enable_mask = 0x1,
1523fafc114aSVinod Koul 	.num_nodes = 3,
1524fafc114aSVinod Koul 	.nodes = { &qnm_mdp_disp, &qnm_rot_disp,
1525fafc114aSVinod Koul 		   &qns_mem_noc_sf_disp },
1526fafc114aSVinod Koul };
1527fafc114aSVinod Koul 
1528fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sh0_disp = {
1529fafc114aSVinod Koul 	.name = "SH0",
1530fafc114aSVinod Koul 	.num_nodes = 1,
1531fafc114aSVinod Koul 	.nodes = { &qns_llcc_disp },
1532fafc114aSVinod Koul };
1533fafc114aSVinod Koul 
1534fafc114aSVinod Koul static struct qcom_icc_bcm bcm_sh1_disp = {
1535fafc114aSVinod Koul 	.name = "SH1",
1536be02db24SNeil Armstrong 	.enable_mask = 0x1,
1537fafc114aSVinod Koul 	.num_nodes = 1,
1538fafc114aSVinod Koul 	.nodes = { &qnm_pcie_disp },
1539fafc114aSVinod Koul };
1540fafc114aSVinod Koul 
15417123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1542fafc114aSVinod Koul };
1543fafc114aSVinod Koul 
15442ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const aggre1_noc_nodes[] = {
1545fafc114aSVinod Koul 	[MASTER_QSPI_0] = &qhm_qspi,
1546fafc114aSVinod Koul 	[MASTER_QUP_1] = &qhm_qup1,
1547fafc114aSVinod Koul 	[MASTER_A1NOC_CFG] = &qnm_a1noc_cfg,
1548fafc114aSVinod Koul 	[MASTER_SDCC_4] = &xm_sdc4,
1549fafc114aSVinod Koul 	[MASTER_UFS_MEM] = &xm_ufs_mem,
1550fafc114aSVinod Koul 	[MASTER_USB3_0] = &xm_usb3_0,
1551fafc114aSVinod Koul 	[SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
1552fafc114aSVinod Koul 	[SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc,
1553fafc114aSVinod Koul };
1554fafc114aSVinod Koul 
15551625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_aggre1_noc = {
1556fafc114aSVinod Koul 	.nodes = aggre1_noc_nodes,
1557fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
1558fafc114aSVinod Koul 	.bcms = aggre1_noc_bcms,
1559fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
1560fafc114aSVinod Koul };
1561fafc114aSVinod Koul 
15627123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const aggre2_noc_bcms[] = {
1563fafc114aSVinod Koul 	&bcm_ce0,
1564fafc114aSVinod Koul };
1565fafc114aSVinod Koul 
15662ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const aggre2_noc_nodes[] = {
1567fafc114aSVinod Koul 	[MASTER_QDSS_BAM] = &qhm_qdss_bam,
1568fafc114aSVinod Koul 	[MASTER_QUP_0] = &qhm_qup0,
1569fafc114aSVinod Koul 	[MASTER_QUP_2] = &qhm_qup2,
1570fafc114aSVinod Koul 	[MASTER_A2NOC_CFG] = &qnm_a2noc_cfg,
1571fafc114aSVinod Koul 	[MASTER_CRYPTO] = &qxm_crypto,
1572fafc114aSVinod Koul 	[MASTER_IPA] = &qxm_ipa,
1573fafc114aSVinod Koul 	[MASTER_SENSORS_PROC] = &qxm_sensorss_q6,
1574fafc114aSVinod Koul 	[MASTER_SP] = &qxm_sp,
1575fafc114aSVinod Koul 	[MASTER_QDSS_ETR] = &xm_qdss_etr_0,
1576fafc114aSVinod Koul 	[MASTER_QDSS_ETR_1] = &xm_qdss_etr_1,
1577fafc114aSVinod Koul 	[MASTER_SDCC_2] = &xm_sdc2,
1578fafc114aSVinod Koul 	[SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc,
1579fafc114aSVinod Koul 	[SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc,
1580fafc114aSVinod Koul };
1581fafc114aSVinod Koul 
15821625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_aggre2_noc = {
1583fafc114aSVinod Koul 	.nodes = aggre2_noc_nodes,
1584fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(aggre2_noc_nodes),
1585fafc114aSVinod Koul 	.bcms = aggre2_noc_bcms,
1586fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(aggre2_noc_bcms),
1587fafc114aSVinod Koul };
1588fafc114aSVinod Koul 
15897123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const clk_virt_bcms[] = {
1590fafc114aSVinod Koul 	&bcm_qup0,
1591fafc114aSVinod Koul 	&bcm_qup1,
1592fafc114aSVinod Koul 	&bcm_qup2,
1593fafc114aSVinod Koul };
1594fafc114aSVinod Koul 
15952ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const clk_virt_nodes[] = {
1596fafc114aSVinod Koul 	[MASTER_QUP_CORE_0] = &qup0_core_master,
1597fafc114aSVinod Koul 	[MASTER_QUP_CORE_1] = &qup1_core_master,
1598fafc114aSVinod Koul 	[MASTER_QUP_CORE_2] = &qup2_core_master,
1599fafc114aSVinod Koul 	[SLAVE_QUP_CORE_0] = &qup0_core_slave,
1600fafc114aSVinod Koul 	[SLAVE_QUP_CORE_1] = &qup1_core_slave,
1601fafc114aSVinod Koul 	[SLAVE_QUP_CORE_2] = &qup2_core_slave,
1602fafc114aSVinod Koul };
1603fafc114aSVinod Koul 
16041625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_clk_virt = {
1605fafc114aSVinod Koul 	.nodes = clk_virt_nodes,
1606fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(clk_virt_nodes),
1607fafc114aSVinod Koul 	.bcms = clk_virt_bcms,
1608fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(clk_virt_bcms),
1609fafc114aSVinod Koul };
1610fafc114aSVinod Koul 
16117123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const config_noc_bcms[] = {
1612fafc114aSVinod Koul 	&bcm_cn0,
1613fafc114aSVinod Koul };
1614fafc114aSVinod Koul 
16152ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const config_noc_nodes[] = {
1616fafc114aSVinod Koul 	[MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
1617fafc114aSVinod Koul 	[MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
1618fafc114aSVinod Koul 	[SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
1619fafc114aSVinod Koul 	[SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1,
1620fafc114aSVinod Koul 	[SLAVE_AOSS] = &qhs_aoss,
1621fafc114aSVinod Koul 	[SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
1622fafc114aSVinod Koul 	[SLAVE_CLK_CTL] = &qhs_clk_ctl,
1623fafc114aSVinod Koul 	[SLAVE_CDSP_CFG] = &qhs_compute_cfg,
1624fafc114aSVinod Koul 	[SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
1625fafc114aSVinod Koul 	[SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx,
1626fafc114aSVinod Koul 	[SLAVE_RBCPR_MXA_CFG] = &qhs_cpr_mxa,
1627fafc114aSVinod Koul 	[SLAVE_RBCPR_MXC_CFG] = &qhs_cpr_mxc,
1628fafc114aSVinod Koul 	[SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg,
1629fafc114aSVinod Koul 	[SLAVE_CX_RDPM] = &qhs_cx_rdpm,
1630fafc114aSVinod Koul 	[SLAVE_DISPLAY_CFG] = &qhs_display_cfg,
1631fafc114aSVinod Koul 	[SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg,
1632fafc114aSVinod Koul 	[SLAVE_IMEM_CFG] = &qhs_imem_cfg,
1633fafc114aSVinod Koul 	[SLAVE_IPA_CFG] = &qhs_ipa,
1634fafc114aSVinod Koul 	[SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
1635fafc114aSVinod Koul 	[SLAVE_LPASS] = &qhs_lpass_cfg,
1636fafc114aSVinod Koul 	[SLAVE_CNOC_MSS] = &qhs_mss_cfg,
1637fafc114aSVinod Koul 	[SLAVE_MX_RDPM] = &qhs_mx_rdpm,
1638fafc114aSVinod Koul 	[SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg,
1639fafc114aSVinod Koul 	[SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg,
1640fafc114aSVinod Koul 	[SLAVE_PDM] = &qhs_pdm,
1641fafc114aSVinod Koul 	[SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
1642fafc114aSVinod Koul 	[SLAVE_PRNG] = &qhs_prng,
1643fafc114aSVinod Koul 	[SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
1644fafc114aSVinod Koul 	[SLAVE_QSPI_0] = &qhs_qspi,
1645fafc114aSVinod Koul 	[SLAVE_QUP_0] = &qhs_qup0,
1646fafc114aSVinod Koul 	[SLAVE_QUP_1] = &qhs_qup1,
1647fafc114aSVinod Koul 	[SLAVE_QUP_2] = &qhs_qup2,
1648fafc114aSVinod Koul 	[SLAVE_SDCC_2] = &qhs_sdc2,
1649fafc114aSVinod Koul 	[SLAVE_SDCC_4] = &qhs_sdc4,
1650fafc114aSVinod Koul 	[SLAVE_SPSS_CFG] = &qhs_spss_cfg,
1651fafc114aSVinod Koul 	[SLAVE_TCSR] = &qhs_tcsr,
1652fafc114aSVinod Koul 	[SLAVE_TLMM] = &qhs_tlmm,
1653fafc114aSVinod Koul 	[SLAVE_TME_CFG] = &qhs_tme_cfg,
1654fafc114aSVinod Koul 	[SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
1655fafc114aSVinod Koul 	[SLAVE_USB3_0] = &qhs_usb3_0,
1656fafc114aSVinod Koul 	[SLAVE_VENUS_CFG] = &qhs_venus_cfg,
1657fafc114aSVinod Koul 	[SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
1658fafc114aSVinod Koul 	[SLAVE_A1NOC_CFG] = &qns_a1_noc_cfg,
1659fafc114aSVinod Koul 	[SLAVE_A2NOC_CFG] = &qns_a2_noc_cfg,
1660fafc114aSVinod Koul 	[SLAVE_DDRSS_CFG] = &qns_ddrss_cfg,
1661fafc114aSVinod Koul 	[SLAVE_CNOC_MNOC_CFG] = &qns_mnoc_cfg,
1662fafc114aSVinod Koul 	[SLAVE_PCIE_ANOC_CFG] = &qns_pcie_anoc_cfg,
1663fafc114aSVinod Koul 	[SLAVE_SNOC_CFG] = &qns_snoc_cfg,
1664fafc114aSVinod Koul 	[SLAVE_IMEM] = &qxs_imem,
1665fafc114aSVinod Koul 	[SLAVE_PIMEM] = &qxs_pimem,
1666fafc114aSVinod Koul 	[SLAVE_SERVICE_CNOC] = &srvc_cnoc,
1667fafc114aSVinod Koul 	[SLAVE_PCIE_0] = &xs_pcie_0,
1668fafc114aSVinod Koul 	[SLAVE_PCIE_1] = &xs_pcie_1,
1669fafc114aSVinod Koul 	[SLAVE_QDSS_STM] = &xs_qdss_stm,
1670fafc114aSVinod Koul 	[SLAVE_TCU] = &xs_sys_tcu_cfg,
1671fafc114aSVinod Koul };
1672fafc114aSVinod Koul 
16731625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_config_noc = {
1674fafc114aSVinod Koul 	.nodes = config_noc_nodes,
1675fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(config_noc_nodes),
1676fafc114aSVinod Koul 	.bcms = config_noc_bcms,
1677fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(config_noc_bcms),
1678fafc114aSVinod Koul };
1679fafc114aSVinod Koul 
16807123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const gem_noc_bcms[] = {
1681fafc114aSVinod Koul 	&bcm_sh0,
1682fafc114aSVinod Koul 	&bcm_sh1,
1683fafc114aSVinod Koul 	&bcm_sh0_disp,
1684fafc114aSVinod Koul 	&bcm_sh1_disp,
1685fafc114aSVinod Koul };
1686fafc114aSVinod Koul 
16872ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const gem_noc_nodes[] = {
1688fafc114aSVinod Koul 	[MASTER_GPU_TCU] = &alm_gpu_tcu,
1689fafc114aSVinod Koul 	[MASTER_SYS_TCU] = &alm_sys_tcu,
1690fafc114aSVinod Koul 	[MASTER_APPSS_PROC] = &chm_apps,
1691fafc114aSVinod Koul 	[MASTER_GFX3D] = &qnm_gpu,
1692fafc114aSVinod Koul 	[MASTER_MSS_PROC] = &qnm_mdsp,
1693fafc114aSVinod Koul 	[MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
1694fafc114aSVinod Koul 	[MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
1695fafc114aSVinod Koul 	[MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc,
1696fafc114aSVinod Koul 	[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
1697fafc114aSVinod Koul 	[MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
1698fafc114aSVinod Koul 	[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
1699fafc114aSVinod Koul 	[SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
1700fafc114aSVinod Koul 	[SLAVE_LLCC] = &qns_llcc,
1701fafc114aSVinod Koul 	[SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
1702fafc114aSVinod Koul 	[MASTER_MNOC_HF_MEM_NOC_DISP] = &qnm_mnoc_hf_disp,
1703fafc114aSVinod Koul 	[MASTER_MNOC_SF_MEM_NOC_DISP] = &qnm_mnoc_sf_disp,
1704fafc114aSVinod Koul 	[MASTER_ANOC_PCIE_GEM_NOC_DISP] = &qnm_pcie_disp,
1705fafc114aSVinod Koul 	[SLAVE_LLCC_DISP] = &qns_llcc_disp,
1706fafc114aSVinod Koul };
1707fafc114aSVinod Koul 
17081625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_gem_noc = {
1709fafc114aSVinod Koul 	.nodes = gem_noc_nodes,
1710fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(gem_noc_nodes),
1711fafc114aSVinod Koul 	.bcms = gem_noc_bcms,
1712fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(gem_noc_bcms),
1713fafc114aSVinod Koul };
1714fafc114aSVinod Koul 
17157123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = {
1716fafc114aSVinod Koul };
1717fafc114aSVinod Koul 
17182ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
1719fafc114aSVinod Koul 	[MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc,
1720fafc114aSVinod Koul 	[MASTER_LPASS_PROC] = &qxm_lpass_dsp,
1721fafc114aSVinod Koul 	[SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core,
1722fafc114aSVinod Koul 	[SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi,
1723fafc114aSVinod Koul 	[SLAVE_LPASS_MPU_CFG] = &qhs_lpass_mpu,
1724fafc114aSVinod Koul 	[SLAVE_LPASS_TOP_CFG] = &qhs_lpass_top,
1725fafc114aSVinod Koul 	[SLAVE_LPASS_SNOC] = &qns_sysnoc,
1726fafc114aSVinod Koul 	[SLAVE_SERVICES_LPASS_AML_NOC] = &srvc_niu_aml_noc,
1727fafc114aSVinod Koul 	[SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc,
1728fafc114aSVinod Koul };
1729fafc114aSVinod Koul 
17301625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_lpass_ag_noc = {
1731fafc114aSVinod Koul 	.nodes = lpass_ag_noc_nodes,
1732fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
1733fafc114aSVinod Koul 	.bcms = lpass_ag_noc_bcms,
1734fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms),
1735fafc114aSVinod Koul };
1736fafc114aSVinod Koul 
17377123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const mc_virt_bcms[] = {
1738fafc114aSVinod Koul 	&bcm_acv,
1739fafc114aSVinod Koul 	&bcm_mc0,
1740fafc114aSVinod Koul 	&bcm_acv_disp,
1741fafc114aSVinod Koul 	&bcm_mc0_disp,
1742fafc114aSVinod Koul };
1743fafc114aSVinod Koul 
17442ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const mc_virt_nodes[] = {
1745fafc114aSVinod Koul 	[MASTER_LLCC] = &llcc_mc,
1746fafc114aSVinod Koul 	[SLAVE_EBI1] = &ebi,
1747fafc114aSVinod Koul 	[MASTER_LLCC_DISP] = &llcc_mc_disp,
1748fafc114aSVinod Koul 	[SLAVE_EBI1_DISP] = &ebi_disp,
1749fafc114aSVinod Koul };
1750fafc114aSVinod Koul 
17511625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_mc_virt = {
1752fafc114aSVinod Koul 	.nodes = mc_virt_nodes,
1753fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(mc_virt_nodes),
1754fafc114aSVinod Koul 	.bcms = mc_virt_bcms,
1755fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(mc_virt_bcms),
1756fafc114aSVinod Koul };
1757fafc114aSVinod Koul 
17587123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
1759fafc114aSVinod Koul 	&bcm_mm0,
1760fafc114aSVinod Koul 	&bcm_mm1,
1761fafc114aSVinod Koul 	&bcm_mm0_disp,
1762fafc114aSVinod Koul 	&bcm_mm1_disp,
1763fafc114aSVinod Koul };
1764fafc114aSVinod Koul 
17652ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const mmss_noc_nodes[] = {
1766fafc114aSVinod Koul 	[MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
1767fafc114aSVinod Koul 	[MASTER_CAMNOC_ICP] = &qnm_camnoc_icp,
1768fafc114aSVinod Koul 	[MASTER_CAMNOC_SF] = &qnm_camnoc_sf,
1769fafc114aSVinod Koul 	[MASTER_MDP] = &qnm_mdp,
1770fafc114aSVinod Koul 	[MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg,
1771fafc114aSVinod Koul 	[MASTER_ROTATOR] = &qnm_rot,
1772fafc114aSVinod Koul 	[MASTER_CDSP_HCP] = &qnm_vapss_hcp,
1773fafc114aSVinod Koul 	[MASTER_VIDEO] = &qnm_video,
1774fafc114aSVinod Koul 	[MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu,
1775fafc114aSVinod Koul 	[MASTER_VIDEO_PROC] = &qnm_video_cvp,
1776fafc114aSVinod Koul 	[MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu,
1777fafc114aSVinod Koul 	[SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
1778fafc114aSVinod Koul 	[SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
1779fafc114aSVinod Koul 	[SLAVE_SERVICE_MNOC] = &srvc_mnoc,
1780fafc114aSVinod Koul 	[MASTER_MDP_DISP] = &qnm_mdp_disp,
1781fafc114aSVinod Koul 	[MASTER_ROTATOR_DISP] = &qnm_rot_disp,
1782fafc114aSVinod Koul 	[SLAVE_MNOC_HF_MEM_NOC_DISP] = &qns_mem_noc_hf_disp,
1783fafc114aSVinod Koul 	[SLAVE_MNOC_SF_MEM_NOC_DISP] = &qns_mem_noc_sf_disp,
1784fafc114aSVinod Koul };
1785fafc114aSVinod Koul 
17861625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_mmss_noc = {
1787fafc114aSVinod Koul 	.nodes = mmss_noc_nodes,
1788fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(mmss_noc_nodes),
1789fafc114aSVinod Koul 	.bcms = mmss_noc_bcms,
1790fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(mmss_noc_bcms),
1791fafc114aSVinod Koul };
1792fafc114aSVinod Koul 
17937123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const nsp_noc_bcms[] = {
1794fafc114aSVinod Koul 	&bcm_co0,
1795fafc114aSVinod Koul };
1796fafc114aSVinod Koul 
17972ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const nsp_noc_nodes[] = {
1798fafc114aSVinod Koul 	[MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config,
1799fafc114aSVinod Koul 	[MASTER_CDSP_PROC] = &qxm_nsp,
1800fafc114aSVinod Koul 	[SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc,
1801fafc114aSVinod Koul 	[SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc,
1802fafc114aSVinod Koul };
1803fafc114aSVinod Koul 
18041625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_nsp_noc = {
1805fafc114aSVinod Koul 	.nodes = nsp_noc_nodes,
1806fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(nsp_noc_nodes),
1807fafc114aSVinod Koul 	.bcms = nsp_noc_bcms,
1808fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(nsp_noc_bcms),
1809fafc114aSVinod Koul };
1810fafc114aSVinod Koul 
18117123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const pcie_anoc_bcms[] = {
1812fafc114aSVinod Koul 	&bcm_sn7,
1813fafc114aSVinod Koul };
1814fafc114aSVinod Koul 
18152ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const pcie_anoc_nodes[] = {
1816fafc114aSVinod Koul 	[MASTER_PCIE_ANOC_CFG] = &qnm_pcie_anoc_cfg,
1817fafc114aSVinod Koul 	[MASTER_PCIE_0] = &xm_pcie3_0,
1818fafc114aSVinod Koul 	[MASTER_PCIE_1] = &xm_pcie3_1,
1819fafc114aSVinod Koul 	[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc,
1820fafc114aSVinod Koul 	[SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc,
1821fafc114aSVinod Koul };
1822fafc114aSVinod Koul 
18231625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_pcie_anoc = {
1824fafc114aSVinod Koul 	.nodes = pcie_anoc_nodes,
1825fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
1826fafc114aSVinod Koul 	.bcms = pcie_anoc_bcms,
1827fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(pcie_anoc_bcms),
1828fafc114aSVinod Koul };
1829fafc114aSVinod Koul 
18307123f883SKrzysztof Kozlowski static struct qcom_icc_bcm * const system_noc_bcms[] = {
1831fafc114aSVinod Koul 	&bcm_sn0,
1832fafc114aSVinod Koul 	&bcm_sn1,
1833fafc114aSVinod Koul 	&bcm_sn2,
1834fafc114aSVinod Koul 	&bcm_sn3,
1835fafc114aSVinod Koul 	&bcm_sn4,
1836fafc114aSVinod Koul };
1837fafc114aSVinod Koul 
18382ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const system_noc_nodes[] = {
1839fafc114aSVinod Koul 	[MASTER_GIC_AHB] = &qhm_gic,
1840fafc114aSVinod Koul 	[MASTER_A1NOC_SNOC] = &qnm_aggre1_noc,
1841fafc114aSVinod Koul 	[MASTER_A2NOC_SNOC] = &qnm_aggre2_noc,
1842fafc114aSVinod Koul 	[MASTER_LPASS_ANOC] = &qnm_lpass_noc,
1843fafc114aSVinod Koul 	[MASTER_SNOC_CFG] = &qnm_snoc_cfg,
1844fafc114aSVinod Koul 	[MASTER_PIMEM] = &qxm_pimem,
1845fafc114aSVinod Koul 	[MASTER_GIC] = &xm_gic,
1846fafc114aSVinod Koul 	[SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
1847fafc114aSVinod Koul 	[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
1848fafc114aSVinod Koul 	[SLAVE_SERVICE_SNOC] = &srvc_snoc,
1849fafc114aSVinod Koul };
1850fafc114aSVinod Koul 
18511625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sm8450_system_noc = {
1852fafc114aSVinod Koul 	.nodes = system_noc_nodes,
1853fafc114aSVinod Koul 	.num_nodes = ARRAY_SIZE(system_noc_nodes),
1854fafc114aSVinod Koul 	.bcms = system_noc_bcms,
1855fafc114aSVinod Koul 	.num_bcms = ARRAY_SIZE(system_noc_bcms),
1856fafc114aSVinod Koul };
1857fafc114aSVinod Koul 
1858fafc114aSVinod Koul static const struct of_device_id qnoc_of_match[] = {
1859fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-aggre1-noc",
1860fafc114aSVinod Koul 	  .data = &sm8450_aggre1_noc},
1861fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-aggre2-noc",
1862fafc114aSVinod Koul 	  .data = &sm8450_aggre2_noc},
1863fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-clk-virt",
1864fafc114aSVinod Koul 	  .data = &sm8450_clk_virt},
1865fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-config-noc",
1866fafc114aSVinod Koul 	  .data = &sm8450_config_noc},
1867fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-gem-noc",
1868fafc114aSVinod Koul 	  .data = &sm8450_gem_noc},
1869fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-lpass-ag-noc",
1870fafc114aSVinod Koul 	  .data = &sm8450_lpass_ag_noc},
1871fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-mc-virt",
1872fafc114aSVinod Koul 	  .data = &sm8450_mc_virt},
1873fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-mmss-noc",
1874fafc114aSVinod Koul 	  .data = &sm8450_mmss_noc},
1875fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-nsp-noc",
1876fafc114aSVinod Koul 	  .data = &sm8450_nsp_noc},
1877fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-pcie-anoc",
1878fafc114aSVinod Koul 	  .data = &sm8450_pcie_anoc},
1879fafc114aSVinod Koul 	{ .compatible = "qcom,sm8450-system-noc",
1880fafc114aSVinod Koul 	  .data = &sm8450_system_noc},
1881fafc114aSVinod Koul 	{ }
1882fafc114aSVinod Koul };
1883fafc114aSVinod Koul MODULE_DEVICE_TABLE(of, qnoc_of_match);
1884fafc114aSVinod Koul 
1885fafc114aSVinod Koul static struct platform_driver qnoc_driver = {
188687e8fab1SDmitry Baryshkov 	.probe = qcom_icc_rpmh_probe,
188787e8fab1SDmitry Baryshkov 	.remove = qcom_icc_rpmh_remove,
1888fafc114aSVinod Koul 	.driver = {
1889fafc114aSVinod Koul 		.name = "qnoc-sm8450",
1890fafc114aSVinod Koul 		.of_match_table = qnoc_of_match,
1891*16862f1bSKonrad Dybcio 		.sync_state = icc_sync_state,
1892fafc114aSVinod Koul 	},
1893fafc114aSVinod Koul };
1894fafc114aSVinod Koul 
qnoc_driver_init(void)1895fafc114aSVinod Koul static int __init qnoc_driver_init(void)
1896fafc114aSVinod Koul {
1897fafc114aSVinod Koul 	return platform_driver_register(&qnoc_driver);
1898fafc114aSVinod Koul }
1899fafc114aSVinod Koul core_initcall(qnoc_driver_init);
1900fafc114aSVinod Koul 
qnoc_driver_exit(void)1901fafc114aSVinod Koul static void __exit qnoc_driver_exit(void)
1902fafc114aSVinod Koul {
1903fafc114aSVinod Koul 	platform_driver_unregister(&qnoc_driver);
1904fafc114aSVinod Koul }
1905fafc114aSVinod Koul module_exit(qnoc_driver_exit);
1906fafc114aSVinod Koul 
1907fafc114aSVinod Koul MODULE_DESCRIPTION("sm8450 NoC driver");
1908fafc114aSVinod Koul MODULE_LICENSE("GPL v2");
1909