xref: /openbmc/linux/drivers/interconnect/qcom/sm8550.c (revision c595db6d7c8bcf87ef42204391fa890e5950e566)
1e6f0d6a3SAbel Vesa // SPDX-License-Identifier: GPL-2.0-only
2e6f0d6a3SAbel Vesa /*
3e6f0d6a3SAbel Vesa  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4e6f0d6a3SAbel Vesa  * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
5e6f0d6a3SAbel Vesa  * Copyright (c) 2022, Linaro Limited
6e6f0d6a3SAbel Vesa  *
7e6f0d6a3SAbel Vesa  */
8e6f0d6a3SAbel Vesa 
9e6f0d6a3SAbel Vesa #include <linux/device.h>
10e6f0d6a3SAbel Vesa #include <linux/interconnect.h>
11e6f0d6a3SAbel Vesa #include <linux/interconnect-provider.h>
12e6f0d6a3SAbel Vesa #include <linux/module.h>
13cff66aceSRob Herring #include <linux/mod_devicetable.h>
14cff66aceSRob Herring #include <linux/platform_device.h>
15cff66aceSRob Herring #include <linux/property.h>
16e6f0d6a3SAbel Vesa #include <dt-bindings/interconnect/qcom,sm8550-rpmh.h>
17e6f0d6a3SAbel Vesa 
18e6f0d6a3SAbel Vesa #include "bcm-voter.h"
19e6f0d6a3SAbel Vesa #include "icc-common.h"
20e6f0d6a3SAbel Vesa #include "icc-rpmh.h"
21e6f0d6a3SAbel Vesa #include "sm8550.h"
22e6f0d6a3SAbel Vesa 
23e6f0d6a3SAbel Vesa static struct qcom_icc_node qhm_qspi = {
24e6f0d6a3SAbel Vesa 	.name = "qhm_qspi",
25e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QSPI_0,
26e6f0d6a3SAbel Vesa 	.channels = 1,
27e6f0d6a3SAbel Vesa 	.buswidth = 4,
28e6f0d6a3SAbel Vesa 	.num_links = 1,
29e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A1NOC_SNOC },
30e6f0d6a3SAbel Vesa };
31e6f0d6a3SAbel Vesa 
32e6f0d6a3SAbel Vesa static struct qcom_icc_node qhm_qup1 = {
33e6f0d6a3SAbel Vesa 	.name = "qhm_qup1",
34e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QUP_1,
35e6f0d6a3SAbel Vesa 	.channels = 1,
36e6f0d6a3SAbel Vesa 	.buswidth = 4,
37e6f0d6a3SAbel Vesa 	.num_links = 1,
38e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A1NOC_SNOC },
39e6f0d6a3SAbel Vesa };
40e6f0d6a3SAbel Vesa 
41e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_sdc4 = {
42e6f0d6a3SAbel Vesa 	.name = "xm_sdc4",
43e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SDCC_4,
44e6f0d6a3SAbel Vesa 	.channels = 1,
45e6f0d6a3SAbel Vesa 	.buswidth = 8,
46e6f0d6a3SAbel Vesa 	.num_links = 1,
47e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A1NOC_SNOC },
48e6f0d6a3SAbel Vesa };
49e6f0d6a3SAbel Vesa 
50e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_ufs_mem = {
51e6f0d6a3SAbel Vesa 	.name = "xm_ufs_mem",
52e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_UFS_MEM,
53e6f0d6a3SAbel Vesa 	.channels = 1,
54e6f0d6a3SAbel Vesa 	.buswidth = 16,
55e6f0d6a3SAbel Vesa 	.num_links = 1,
56e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A1NOC_SNOC },
57e6f0d6a3SAbel Vesa };
58e6f0d6a3SAbel Vesa 
59e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_usb3_0 = {
60e6f0d6a3SAbel Vesa 	.name = "xm_usb3_0",
61e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_USB3_0,
62e6f0d6a3SAbel Vesa 	.channels = 1,
63e6f0d6a3SAbel Vesa 	.buswidth = 8,
64e6f0d6a3SAbel Vesa 	.num_links = 1,
65e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A1NOC_SNOC },
66e6f0d6a3SAbel Vesa };
67e6f0d6a3SAbel Vesa 
68e6f0d6a3SAbel Vesa static struct qcom_icc_node qhm_qdss_bam = {
69e6f0d6a3SAbel Vesa 	.name = "qhm_qdss_bam",
70e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QDSS_BAM,
71e6f0d6a3SAbel Vesa 	.channels = 1,
72e6f0d6a3SAbel Vesa 	.buswidth = 4,
73e6f0d6a3SAbel Vesa 	.num_links = 1,
74e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
75e6f0d6a3SAbel Vesa };
76e6f0d6a3SAbel Vesa 
77e6f0d6a3SAbel Vesa static struct qcom_icc_node qhm_qup2 = {
78e6f0d6a3SAbel Vesa 	.name = "qhm_qup2",
79e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QUP_2,
80e6f0d6a3SAbel Vesa 	.channels = 1,
81e6f0d6a3SAbel Vesa 	.buswidth = 4,
82e6f0d6a3SAbel Vesa 	.num_links = 1,
83e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
84e6f0d6a3SAbel Vesa };
85e6f0d6a3SAbel Vesa 
86e6f0d6a3SAbel Vesa static struct qcom_icc_node qxm_crypto = {
87e6f0d6a3SAbel Vesa 	.name = "qxm_crypto",
88e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CRYPTO,
89e6f0d6a3SAbel Vesa 	.channels = 1,
90e6f0d6a3SAbel Vesa 	.buswidth = 8,
91e6f0d6a3SAbel Vesa 	.num_links = 1,
92e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
93e6f0d6a3SAbel Vesa };
94e6f0d6a3SAbel Vesa 
95e6f0d6a3SAbel Vesa static struct qcom_icc_node qxm_ipa = {
96e6f0d6a3SAbel Vesa 	.name = "qxm_ipa",
97e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_IPA,
98e6f0d6a3SAbel Vesa 	.channels = 1,
99e6f0d6a3SAbel Vesa 	.buswidth = 8,
100e6f0d6a3SAbel Vesa 	.num_links = 1,
101e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
102e6f0d6a3SAbel Vesa };
103e6f0d6a3SAbel Vesa 
104e6f0d6a3SAbel Vesa static struct qcom_icc_node qxm_sp = {
105e6f0d6a3SAbel Vesa 	.name = "qxm_sp",
106e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SP,
107e6f0d6a3SAbel Vesa 	.channels = 1,
108e6f0d6a3SAbel Vesa 	.buswidth = 8,
109e6f0d6a3SAbel Vesa 	.num_links = 1,
110e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
111e6f0d6a3SAbel Vesa };
112e6f0d6a3SAbel Vesa 
113e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_qdss_etr_0 = {
114e6f0d6a3SAbel Vesa 	.name = "xm_qdss_etr_0",
115e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QDSS_ETR,
116e6f0d6a3SAbel Vesa 	.channels = 1,
117e6f0d6a3SAbel Vesa 	.buswidth = 8,
118e6f0d6a3SAbel Vesa 	.num_links = 1,
119e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
120e6f0d6a3SAbel Vesa };
121e6f0d6a3SAbel Vesa 
122e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_qdss_etr_1 = {
123e6f0d6a3SAbel Vesa 	.name = "xm_qdss_etr_1",
124e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QDSS_ETR_1,
125e6f0d6a3SAbel Vesa 	.channels = 1,
126e6f0d6a3SAbel Vesa 	.buswidth = 8,
127e6f0d6a3SAbel Vesa 	.num_links = 1,
128e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
129e6f0d6a3SAbel Vesa };
130e6f0d6a3SAbel Vesa 
131e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_sdc2 = {
132e6f0d6a3SAbel Vesa 	.name = "xm_sdc2",
133e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SDCC_2,
134e6f0d6a3SAbel Vesa 	.channels = 1,
135e6f0d6a3SAbel Vesa 	.buswidth = 8,
136e6f0d6a3SAbel Vesa 	.num_links = 1,
137e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_A2NOC_SNOC },
138e6f0d6a3SAbel Vesa };
139e6f0d6a3SAbel Vesa 
140e6f0d6a3SAbel Vesa static struct qcom_icc_node qup0_core_master = {
141e6f0d6a3SAbel Vesa 	.name = "qup0_core_master",
142e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QUP_CORE_0,
143e6f0d6a3SAbel Vesa 	.channels = 1,
144e6f0d6a3SAbel Vesa 	.buswidth = 4,
145e6f0d6a3SAbel Vesa 	.num_links = 1,
146e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_QUP_CORE_0 },
147e6f0d6a3SAbel Vesa };
148e6f0d6a3SAbel Vesa 
149e6f0d6a3SAbel Vesa static struct qcom_icc_node qup1_core_master = {
150e6f0d6a3SAbel Vesa 	.name = "qup1_core_master",
151e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QUP_CORE_1,
152e6f0d6a3SAbel Vesa 	.channels = 1,
153e6f0d6a3SAbel Vesa 	.buswidth = 4,
154e6f0d6a3SAbel Vesa 	.num_links = 1,
155e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_QUP_CORE_1 },
156e6f0d6a3SAbel Vesa };
157e6f0d6a3SAbel Vesa 
158e6f0d6a3SAbel Vesa static struct qcom_icc_node qup2_core_master = {
159e6f0d6a3SAbel Vesa 	.name = "qup2_core_master",
160e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_QUP_CORE_2,
161e6f0d6a3SAbel Vesa 	.channels = 1,
162e6f0d6a3SAbel Vesa 	.buswidth = 4,
163e6f0d6a3SAbel Vesa 	.num_links = 1,
164e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_QUP_CORE_2 },
165e6f0d6a3SAbel Vesa };
166e6f0d6a3SAbel Vesa 
167e6f0d6a3SAbel Vesa static struct qcom_icc_node qsm_cfg = {
168e6f0d6a3SAbel Vesa 	.name = "qsm_cfg",
169e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CNOC_CFG,
170e6f0d6a3SAbel Vesa 	.channels = 1,
171e6f0d6a3SAbel Vesa 	.buswidth = 4,
172e6f0d6a3SAbel Vesa 	.num_links = 44,
173e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_AHB2PHY_SOUTH, SM8550_SLAVE_AHB2PHY_NORTH,
174e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_APPSS, SM8550_SLAVE_CAMERA_CFG,
175e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_CLK_CTL, SM8550_SLAVE_RBCPR_CX_CFG,
176e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_RBCPR_MMCX_CFG, SM8550_SLAVE_RBCPR_MXA_CFG,
177e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_RBCPR_MXC_CFG, SM8550_SLAVE_CPR_NSPCX,
178e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_CRYPTO_0_CFG, SM8550_SLAVE_CX_RDPM,
179e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_DISPLAY_CFG, SM8550_SLAVE_GFX3D_CFG,
180e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_I2C, SM8550_SLAVE_IMEM_CFG,
181e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_IPA_CFG, SM8550_SLAVE_IPC_ROUTER_CFG,
182e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_CNOC_MSS, SM8550_SLAVE_MX_RDPM,
183e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_PCIE_0_CFG, SM8550_SLAVE_PCIE_1_CFG,
184e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_PDM, SM8550_SLAVE_PIMEM_CFG,
185e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_PRNG, SM8550_SLAVE_QDSS_CFG,
186e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_QSPI_0, SM8550_SLAVE_QUP_1,
187e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_QUP_2, SM8550_SLAVE_SDCC_2,
188e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_SDCC_4, SM8550_SLAVE_SPSS_CFG,
189e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_TCSR, SM8550_SLAVE_TLMM,
190e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_UFS_MEM_CFG, SM8550_SLAVE_USB3_0,
191e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_VENUS_CFG, SM8550_SLAVE_VSENSE_CTRL_CFG,
192e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_LPASS_QTB_CFG, SM8550_SLAVE_CNOC_MNOC_CFG,
193e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_NSP_QTB_CFG, SM8550_SLAVE_PCIE_ANOC_CFG,
194e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_QDSS_STM, SM8550_SLAVE_TCU },
195e6f0d6a3SAbel Vesa };
196e6f0d6a3SAbel Vesa 
197e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_gemnoc_cnoc = {
198e6f0d6a3SAbel Vesa 	.name = "qnm_gemnoc_cnoc",
199e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GEM_NOC_CNOC,
200e6f0d6a3SAbel Vesa 	.channels = 1,
201e6f0d6a3SAbel Vesa 	.buswidth = 16,
202e6f0d6a3SAbel Vesa 	.num_links = 6,
203e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_AOSS, SM8550_SLAVE_TME_CFG,
204e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_CNOC_CFG, SM8550_SLAVE_DDRSS_CFG,
205e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_BOOT_IMEM, SM8550_SLAVE_IMEM },
206e6f0d6a3SAbel Vesa };
207e6f0d6a3SAbel Vesa 
208e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_gemnoc_pcie = {
209e6f0d6a3SAbel Vesa 	.name = "qnm_gemnoc_pcie",
210e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GEM_NOC_PCIE_SNOC,
211e6f0d6a3SAbel Vesa 	.channels = 1,
212e6f0d6a3SAbel Vesa 	.buswidth = 8,
213e6f0d6a3SAbel Vesa 	.num_links = 2,
214e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_PCIE_0, SM8550_SLAVE_PCIE_1 },
215e6f0d6a3SAbel Vesa };
216e6f0d6a3SAbel Vesa 
217e6f0d6a3SAbel Vesa static struct qcom_icc_node alm_gpu_tcu = {
218e6f0d6a3SAbel Vesa 	.name = "alm_gpu_tcu",
219e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GPU_TCU,
220e6f0d6a3SAbel Vesa 	.channels = 1,
221e6f0d6a3SAbel Vesa 	.buswidth = 8,
222e6f0d6a3SAbel Vesa 	.num_links = 2,
223e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
224e6f0d6a3SAbel Vesa };
225e6f0d6a3SAbel Vesa 
226e6f0d6a3SAbel Vesa static struct qcom_icc_node alm_sys_tcu = {
227e6f0d6a3SAbel Vesa 	.name = "alm_sys_tcu",
228e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SYS_TCU,
229e6f0d6a3SAbel Vesa 	.channels = 1,
230e6f0d6a3SAbel Vesa 	.buswidth = 8,
231e6f0d6a3SAbel Vesa 	.num_links = 2,
232e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
233e6f0d6a3SAbel Vesa };
234e6f0d6a3SAbel Vesa 
235e6f0d6a3SAbel Vesa static struct qcom_icc_node chm_apps = {
236e6f0d6a3SAbel Vesa 	.name = "chm_apps",
237e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_APPSS_PROC,
238e6f0d6a3SAbel Vesa 	.channels = 3,
239e6f0d6a3SAbel Vesa 	.buswidth = 32,
240e6f0d6a3SAbel Vesa 	.num_links = 3,
241e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC,
242e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_MEM_NOC_PCIE_SNOC },
243e6f0d6a3SAbel Vesa };
244e6f0d6a3SAbel Vesa 
245e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_gpu = {
246e6f0d6a3SAbel Vesa 	.name = "qnm_gpu",
247e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GFX3D,
248e6f0d6a3SAbel Vesa 	.channels = 2,
249e6f0d6a3SAbel Vesa 	.buswidth = 32,
250e6f0d6a3SAbel Vesa 	.num_links = 2,
251e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
252e6f0d6a3SAbel Vesa };
253e6f0d6a3SAbel Vesa 
254e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_lpass_gemnoc = {
255e6f0d6a3SAbel Vesa 	.name = "qnm_lpass_gemnoc",
256e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LPASS_GEM_NOC,
257e6f0d6a3SAbel Vesa 	.channels = 1,
258e6f0d6a3SAbel Vesa 	.buswidth = 16,
259e6f0d6a3SAbel Vesa 	.num_links = 3,
260e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC,
261e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_MEM_NOC_PCIE_SNOC },
262e6f0d6a3SAbel Vesa };
263e6f0d6a3SAbel Vesa 
264e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mdsp = {
265e6f0d6a3SAbel Vesa 	.name = "qnm_mdsp",
266e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MSS_PROC,
267e6f0d6a3SAbel Vesa 	.channels = 1,
268e6f0d6a3SAbel Vesa 	.buswidth = 16,
269e6f0d6a3SAbel Vesa 	.num_links = 3,
270e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC,
271e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_MEM_NOC_PCIE_SNOC },
272e6f0d6a3SAbel Vesa };
273e6f0d6a3SAbel Vesa 
274e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_hf = {
275e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_hf",
276e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_HF_MEM_NOC,
277e6f0d6a3SAbel Vesa 	.channels = 2,
278e6f0d6a3SAbel Vesa 	.buswidth = 32,
279e6f0d6a3SAbel Vesa 	.num_links = 2,
280e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
281e6f0d6a3SAbel Vesa };
282e6f0d6a3SAbel Vesa 
283e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_sf = {
284e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_sf",
285e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_SF_MEM_NOC,
286e6f0d6a3SAbel Vesa 	.channels = 2,
287e6f0d6a3SAbel Vesa 	.buswidth = 32,
288e6f0d6a3SAbel Vesa 	.num_links = 2,
289e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
290e6f0d6a3SAbel Vesa };
291e6f0d6a3SAbel Vesa 
292e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_nsp_gemnoc = {
293e6f0d6a3SAbel Vesa 	.name = "qnm_nsp_gemnoc",
294e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_COMPUTE_NOC,
295e6f0d6a3SAbel Vesa 	.channels = 2,
296e6f0d6a3SAbel Vesa 	.buswidth = 32,
297e6f0d6a3SAbel Vesa 	.num_links = 2,
298e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
299e6f0d6a3SAbel Vesa };
300e6f0d6a3SAbel Vesa 
301e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_pcie = {
302e6f0d6a3SAbel Vesa 	.name = "qnm_pcie",
303e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_ANOC_PCIE_GEM_NOC,
304e6f0d6a3SAbel Vesa 	.channels = 1,
305e6f0d6a3SAbel Vesa 	.buswidth = 16,
306e6f0d6a3SAbel Vesa 	.num_links = 2,
307e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC },
308e6f0d6a3SAbel Vesa };
309e6f0d6a3SAbel Vesa 
310e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_snoc_gc = {
311e6f0d6a3SAbel Vesa 	.name = "qnm_snoc_gc",
312e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SNOC_GC_MEM_NOC,
313e6f0d6a3SAbel Vesa 	.channels = 1,
314e6f0d6a3SAbel Vesa 	.buswidth = 8,
315e6f0d6a3SAbel Vesa 	.num_links = 1,
316e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC },
317e6f0d6a3SAbel Vesa };
318e6f0d6a3SAbel Vesa 
319e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_snoc_sf = {
320e6f0d6a3SAbel Vesa 	.name = "qnm_snoc_sf",
321e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_SNOC_SF_MEM_NOC,
322e6f0d6a3SAbel Vesa 	.channels = 1,
323e6f0d6a3SAbel Vesa 	.buswidth = 16,
324e6f0d6a3SAbel Vesa 	.num_links = 3,
325e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_GEM_NOC_CNOC, SM8550_SLAVE_LLCC,
326e6f0d6a3SAbel Vesa 		   SM8550_SLAVE_MEM_NOC_PCIE_SNOC },
327e6f0d6a3SAbel Vesa };
328e6f0d6a3SAbel Vesa 
329e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_lpiaon_noc = {
330e6f0d6a3SAbel Vesa 	.name = "qnm_lpiaon_noc",
331e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LPIAON_NOC,
332e6f0d6a3SAbel Vesa 	.channels = 1,
333e6f0d6a3SAbel Vesa 	.buswidth = 16,
334e6f0d6a3SAbel Vesa 	.num_links = 1,
335e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LPASS_GEM_NOC },
336e6f0d6a3SAbel Vesa };
337e6f0d6a3SAbel Vesa 
338e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_lpass_lpinoc = {
339e6f0d6a3SAbel Vesa 	.name = "qnm_lpass_lpinoc",
340e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LPASS_LPINOC,
341e6f0d6a3SAbel Vesa 	.channels = 1,
342e6f0d6a3SAbel Vesa 	.buswidth = 16,
343e6f0d6a3SAbel Vesa 	.num_links = 1,
344e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LPIAON_NOC_LPASS_AG_NOC },
345e6f0d6a3SAbel Vesa };
346e6f0d6a3SAbel Vesa 
347e6f0d6a3SAbel Vesa static struct qcom_icc_node qxm_lpinoc_dsp_axim = {
348e6f0d6a3SAbel Vesa 	.name = "qxm_lpinoc_dsp_axim",
349e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LPASS_PROC,
350e6f0d6a3SAbel Vesa 	.channels = 1,
351e6f0d6a3SAbel Vesa 	.buswidth = 16,
352e6f0d6a3SAbel Vesa 	.num_links = 1,
353e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LPICX_NOC_LPIAON_NOC },
354e6f0d6a3SAbel Vesa };
355e6f0d6a3SAbel Vesa 
356e6f0d6a3SAbel Vesa static struct qcom_icc_node llcc_mc = {
357e6f0d6a3SAbel Vesa 	.name = "llcc_mc",
358e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LLCC,
359e6f0d6a3SAbel Vesa 	.channels = 4,
360e6f0d6a3SAbel Vesa 	.buswidth = 4,
361e6f0d6a3SAbel Vesa 	.num_links = 1,
362e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_EBI1 },
363e6f0d6a3SAbel Vesa };
364e6f0d6a3SAbel Vesa 
365e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_hf = {
366e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_hf",
367e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_HF,
368e6f0d6a3SAbel Vesa 	.channels = 2,
369e6f0d6a3SAbel Vesa 	.buswidth = 32,
370e6f0d6a3SAbel Vesa 	.num_links = 1,
371e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC },
372e6f0d6a3SAbel Vesa };
373e6f0d6a3SAbel Vesa 
374e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_icp = {
375e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_icp",
376e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_ICP,
377e6f0d6a3SAbel Vesa 	.channels = 1,
378e6f0d6a3SAbel Vesa 	.buswidth = 8,
379e6f0d6a3SAbel Vesa 	.num_links = 1,
380e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
381e6f0d6a3SAbel Vesa };
382e6f0d6a3SAbel Vesa 
383e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_sf = {
384e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_sf",
385e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_SF,
386e6f0d6a3SAbel Vesa 	.channels = 2,
387e6f0d6a3SAbel Vesa 	.buswidth = 32,
388e6f0d6a3SAbel Vesa 	.num_links = 1,
389e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
390e6f0d6a3SAbel Vesa };
391e6f0d6a3SAbel Vesa 
392e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mdp = {
393e6f0d6a3SAbel Vesa 	.name = "qnm_mdp",
394e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MDP,
395e6f0d6a3SAbel Vesa 	.channels = 2,
396e6f0d6a3SAbel Vesa 	.buswidth = 32,
397e6f0d6a3SAbel Vesa 	.num_links = 1,
398e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC },
399e6f0d6a3SAbel Vesa };
400e6f0d6a3SAbel Vesa 
401e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_vapss_hcp = {
402e6f0d6a3SAbel Vesa 	.name = "qnm_vapss_hcp",
403e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CDSP_HCP,
404e6f0d6a3SAbel Vesa 	.channels = 1,
405e6f0d6a3SAbel Vesa 	.buswidth = 32,
406e6f0d6a3SAbel Vesa 	.num_links = 1,
407e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
408e6f0d6a3SAbel Vesa };
409e6f0d6a3SAbel Vesa 
410e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_video = {
411e6f0d6a3SAbel Vesa 	.name = "qnm_video",
412e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_VIDEO,
413e6f0d6a3SAbel Vesa 	.channels = 2,
414e6f0d6a3SAbel Vesa 	.buswidth = 32,
415e6f0d6a3SAbel Vesa 	.num_links = 1,
416e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
417e6f0d6a3SAbel Vesa };
418e6f0d6a3SAbel Vesa 
419e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_video_cv_cpu = {
420e6f0d6a3SAbel Vesa 	.name = "qnm_video_cv_cpu",
421e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_VIDEO_CV_PROC,
422e6f0d6a3SAbel Vesa 	.channels = 1,
423e6f0d6a3SAbel Vesa 	.buswidth = 8,
424e6f0d6a3SAbel Vesa 	.num_links = 1,
425e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
426e6f0d6a3SAbel Vesa };
427e6f0d6a3SAbel Vesa 
428e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_video_cvp = {
429e6f0d6a3SAbel Vesa 	.name = "qnm_video_cvp",
430e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_VIDEO_PROC,
431e6f0d6a3SAbel Vesa 	.channels = 1,
432e6f0d6a3SAbel Vesa 	.buswidth = 32,
433e6f0d6a3SAbel Vesa 	.num_links = 1,
434e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
435e6f0d6a3SAbel Vesa };
436e6f0d6a3SAbel Vesa 
437e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_video_v_cpu = {
438e6f0d6a3SAbel Vesa 	.name = "qnm_video_v_cpu",
439e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_VIDEO_V_PROC,
440e6f0d6a3SAbel Vesa 	.channels = 1,
441e6f0d6a3SAbel Vesa 	.buswidth = 8,
442e6f0d6a3SAbel Vesa 	.num_links = 1,
443e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC },
444e6f0d6a3SAbel Vesa };
445e6f0d6a3SAbel Vesa 
446e6f0d6a3SAbel Vesa static struct qcom_icc_node qsm_mnoc_cfg = {
447e6f0d6a3SAbel Vesa 	.name = "qsm_mnoc_cfg",
448e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CNOC_MNOC_CFG,
449e6f0d6a3SAbel Vesa 	.channels = 1,
450e6f0d6a3SAbel Vesa 	.buswidth = 4,
451e6f0d6a3SAbel Vesa 	.num_links = 1,
452e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SERVICE_MNOC },
453e6f0d6a3SAbel Vesa };
454e6f0d6a3SAbel Vesa 
455e6f0d6a3SAbel Vesa static struct qcom_icc_node qxm_nsp = {
456e6f0d6a3SAbel Vesa 	.name = "qxm_nsp",
457e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CDSP_PROC,
458e6f0d6a3SAbel Vesa 	.channels = 2,
459e6f0d6a3SAbel Vesa 	.buswidth = 32,
460e6f0d6a3SAbel Vesa 	.num_links = 1,
461e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_CDSP_MEM_NOC },
462e6f0d6a3SAbel Vesa };
463e6f0d6a3SAbel Vesa 
464e6f0d6a3SAbel Vesa static struct qcom_icc_node qsm_pcie_anoc_cfg = {
465e6f0d6a3SAbel Vesa 	.name = "qsm_pcie_anoc_cfg",
466e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_PCIE_ANOC_CFG,
467e6f0d6a3SAbel Vesa 	.channels = 1,
468e6f0d6a3SAbel Vesa 	.buswidth = 4,
469e6f0d6a3SAbel Vesa 	.num_links = 1,
470e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SERVICE_PCIE_ANOC },
471e6f0d6a3SAbel Vesa };
472e6f0d6a3SAbel Vesa 
473e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_pcie3_0 = {
474e6f0d6a3SAbel Vesa 	.name = "xm_pcie3_0",
475e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_PCIE_0,
476e6f0d6a3SAbel Vesa 	.channels = 1,
477e6f0d6a3SAbel Vesa 	.buswidth = 8,
478e6f0d6a3SAbel Vesa 	.num_links = 1,
479e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_ANOC_PCIE_GEM_NOC },
480e6f0d6a3SAbel Vesa };
481e6f0d6a3SAbel Vesa 
482e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_pcie3_1 = {
483e6f0d6a3SAbel Vesa 	.name = "xm_pcie3_1",
484e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_PCIE_1,
485e6f0d6a3SAbel Vesa 	.channels = 1,
486e6f0d6a3SAbel Vesa 	.buswidth = 16,
487e6f0d6a3SAbel Vesa 	.num_links = 1,
488e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_ANOC_PCIE_GEM_NOC },
489e6f0d6a3SAbel Vesa };
490e6f0d6a3SAbel Vesa 
491e6f0d6a3SAbel Vesa static struct qcom_icc_node qhm_gic = {
492e6f0d6a3SAbel Vesa 	.name = "qhm_gic",
493e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GIC_AHB,
494e6f0d6a3SAbel Vesa 	.channels = 1,
495e6f0d6a3SAbel Vesa 	.buswidth = 4,
496e6f0d6a3SAbel Vesa 	.num_links = 1,
497e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SNOC_GEM_NOC_SF },
498e6f0d6a3SAbel Vesa };
499e6f0d6a3SAbel Vesa 
500e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_aggre1_noc = {
501e6f0d6a3SAbel Vesa 	.name = "qnm_aggre1_noc",
502e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_A1NOC_SNOC,
503e6f0d6a3SAbel Vesa 	.channels = 1,
504e6f0d6a3SAbel Vesa 	.buswidth = 16,
505e6f0d6a3SAbel Vesa 	.num_links = 1,
506e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SNOC_GEM_NOC_SF },
507e6f0d6a3SAbel Vesa };
508e6f0d6a3SAbel Vesa 
509e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_aggre2_noc = {
510e6f0d6a3SAbel Vesa 	.name = "qnm_aggre2_noc",
511e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_A2NOC_SNOC,
512e6f0d6a3SAbel Vesa 	.channels = 1,
513e6f0d6a3SAbel Vesa 	.buswidth = 16,
514e6f0d6a3SAbel Vesa 	.num_links = 1,
515e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SNOC_GEM_NOC_SF },
516e6f0d6a3SAbel Vesa };
517e6f0d6a3SAbel Vesa 
518e6f0d6a3SAbel Vesa static struct qcom_icc_node xm_gic = {
519e6f0d6a3SAbel Vesa 	.name = "xm_gic",
520e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_GIC,
521e6f0d6a3SAbel Vesa 	.channels = 1,
522e6f0d6a3SAbel Vesa 	.buswidth = 8,
523e6f0d6a3SAbel Vesa 	.num_links = 1,
524e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_SNOC_GEM_NOC_GC },
525e6f0d6a3SAbel Vesa };
526e6f0d6a3SAbel Vesa 
527e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_hf_disp = {
528e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_hf_disp",
529e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_HF_MEM_NOC_DISP,
530e6f0d6a3SAbel Vesa 	.channels = 2,
531e6f0d6a3SAbel Vesa 	.buswidth = 32,
532e6f0d6a3SAbel Vesa 	.num_links = 1,
533e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_DISP },
534e6f0d6a3SAbel Vesa };
535e6f0d6a3SAbel Vesa 
536e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_pcie_disp = {
537e6f0d6a3SAbel Vesa 	.name = "qnm_pcie_disp",
538e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_ANOC_PCIE_GEM_NOC_DISP,
539e6f0d6a3SAbel Vesa 	.channels = 1,
540e6f0d6a3SAbel Vesa 	.buswidth = 16,
541e6f0d6a3SAbel Vesa 	.num_links = 1,
542e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_DISP },
543e6f0d6a3SAbel Vesa };
544e6f0d6a3SAbel Vesa 
545e6f0d6a3SAbel Vesa static struct qcom_icc_node llcc_mc_disp = {
546e6f0d6a3SAbel Vesa 	.name = "llcc_mc_disp",
547e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LLCC_DISP,
548e6f0d6a3SAbel Vesa 	.channels = 4,
549e6f0d6a3SAbel Vesa 	.buswidth = 4,
550e6f0d6a3SAbel Vesa 	.num_links = 1,
551e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_EBI1_DISP },
552e6f0d6a3SAbel Vesa };
553e6f0d6a3SAbel Vesa 
554e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mdp_disp = {
555e6f0d6a3SAbel Vesa 	.name = "qnm_mdp_disp",
556e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MDP_DISP,
557e6f0d6a3SAbel Vesa 	.channels = 2,
558e6f0d6a3SAbel Vesa 	.buswidth = 32,
559e6f0d6a3SAbel Vesa 	.num_links = 1,
560e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC_DISP },
561e6f0d6a3SAbel Vesa };
562e6f0d6a3SAbel Vesa 
563e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_hf_cam_ife_0 = {
564e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_hf_cam_ife_0",
565e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_0,
566e6f0d6a3SAbel Vesa 	.channels = 2,
567e6f0d6a3SAbel Vesa 	.buswidth = 32,
568e6f0d6a3SAbel Vesa 	.num_links = 1,
569e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_0 },
570e6f0d6a3SAbel Vesa };
571e6f0d6a3SAbel Vesa 
572e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_sf_cam_ife_0 = {
573e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_sf_cam_ife_0",
574e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_0,
575e6f0d6a3SAbel Vesa 	.channels = 2,
576e6f0d6a3SAbel Vesa 	.buswidth = 32,
577e6f0d6a3SAbel Vesa 	.num_links = 1,
578e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_0 },
579e6f0d6a3SAbel Vesa };
580e6f0d6a3SAbel Vesa 
581e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_pcie_cam_ife_0 = {
582e6f0d6a3SAbel Vesa 	.name = "qnm_pcie_cam_ife_0",
583e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_0,
584e6f0d6a3SAbel Vesa 	.channels = 1,
585e6f0d6a3SAbel Vesa 	.buswidth = 16,
586e6f0d6a3SAbel Vesa 	.num_links = 1,
587e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_0 },
588e6f0d6a3SAbel Vesa };
589e6f0d6a3SAbel Vesa 
590e6f0d6a3SAbel Vesa static struct qcom_icc_node llcc_mc_cam_ife_0 = {
591e6f0d6a3SAbel Vesa 	.name = "llcc_mc_cam_ife_0",
592e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LLCC_CAM_IFE_0,
593e6f0d6a3SAbel Vesa 	.channels = 4,
594e6f0d6a3SAbel Vesa 	.buswidth = 4,
595e6f0d6a3SAbel Vesa 	.num_links = 1,
596e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_EBI1_CAM_IFE_0 },
597e6f0d6a3SAbel Vesa };
598e6f0d6a3SAbel Vesa 
599e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_hf_cam_ife_0 = {
600e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_hf_cam_ife_0",
601e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_HF_CAM_IFE_0,
602e6f0d6a3SAbel Vesa 	.channels = 2,
603e6f0d6a3SAbel Vesa 	.buswidth = 32,
604e6f0d6a3SAbel Vesa 	.num_links = 1,
605e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_0 },
606e6f0d6a3SAbel Vesa };
607e6f0d6a3SAbel Vesa 
608e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_icp_cam_ife_0 = {
609e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_icp_cam_ife_0",
610e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_ICP_CAM_IFE_0,
611e6f0d6a3SAbel Vesa 	.channels = 1,
612e6f0d6a3SAbel Vesa 	.buswidth = 8,
613e6f0d6a3SAbel Vesa 	.num_links = 1,
614e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_0 },
615e6f0d6a3SAbel Vesa };
616e6f0d6a3SAbel Vesa 
617e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_sf_cam_ife_0 = {
618e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_sf_cam_ife_0",
619e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_SF_CAM_IFE_0,
620e6f0d6a3SAbel Vesa 	.channels = 2,
621e6f0d6a3SAbel Vesa 	.buswidth = 32,
622e6f0d6a3SAbel Vesa 	.num_links = 1,
623e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_0 },
624e6f0d6a3SAbel Vesa };
625e6f0d6a3SAbel Vesa 
626e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_hf_cam_ife_1 = {
627e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_hf_cam_ife_1",
628e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_1,
629e6f0d6a3SAbel Vesa 	.channels = 2,
630e6f0d6a3SAbel Vesa 	.buswidth = 32,
631e6f0d6a3SAbel Vesa 	.num_links = 1,
632e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_1 },
633e6f0d6a3SAbel Vesa };
634e6f0d6a3SAbel Vesa 
635e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_sf_cam_ife_1 = {
636e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_sf_cam_ife_1",
637e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_1,
638e6f0d6a3SAbel Vesa 	.channels = 2,
639e6f0d6a3SAbel Vesa 	.buswidth = 32,
640e6f0d6a3SAbel Vesa 	.num_links = 1,
641e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_1 },
642e6f0d6a3SAbel Vesa };
643e6f0d6a3SAbel Vesa 
644e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_pcie_cam_ife_1 = {
645e6f0d6a3SAbel Vesa 	.name = "qnm_pcie_cam_ife_1",
646e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_1,
647e6f0d6a3SAbel Vesa 	.channels = 1,
648e6f0d6a3SAbel Vesa 	.buswidth = 16,
649e6f0d6a3SAbel Vesa 	.num_links = 1,
650e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_1 },
651e6f0d6a3SAbel Vesa };
652e6f0d6a3SAbel Vesa 
653e6f0d6a3SAbel Vesa static struct qcom_icc_node llcc_mc_cam_ife_1 = {
654e6f0d6a3SAbel Vesa 	.name = "llcc_mc_cam_ife_1",
655e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LLCC_CAM_IFE_1,
656e6f0d6a3SAbel Vesa 	.channels = 4,
657e6f0d6a3SAbel Vesa 	.buswidth = 4,
658e6f0d6a3SAbel Vesa 	.num_links = 1,
659e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_EBI1_CAM_IFE_1 },
660e6f0d6a3SAbel Vesa };
661e6f0d6a3SAbel Vesa 
662e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_hf_cam_ife_1 = {
663e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_hf_cam_ife_1",
664e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_HF_CAM_IFE_1,
665e6f0d6a3SAbel Vesa 	.channels = 2,
666e6f0d6a3SAbel Vesa 	.buswidth = 32,
667e6f0d6a3SAbel Vesa 	.num_links = 1,
668e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_1 },
669e6f0d6a3SAbel Vesa };
670e6f0d6a3SAbel Vesa 
671e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_icp_cam_ife_1 = {
672e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_icp_cam_ife_1",
673e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_ICP_CAM_IFE_1,
674e6f0d6a3SAbel Vesa 	.channels = 1,
675e6f0d6a3SAbel Vesa 	.buswidth = 8,
676e6f0d6a3SAbel Vesa 	.num_links = 1,
677e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_1 },
678e6f0d6a3SAbel Vesa };
679e6f0d6a3SAbel Vesa 
680e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_sf_cam_ife_1 = {
681e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_sf_cam_ife_1",
682e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_SF_CAM_IFE_1,
683e6f0d6a3SAbel Vesa 	.channels = 2,
684e6f0d6a3SAbel Vesa 	.buswidth = 32,
685e6f0d6a3SAbel Vesa 	.num_links = 1,
686e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_1 },
687e6f0d6a3SAbel Vesa };
688e6f0d6a3SAbel Vesa 
689e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_hf_cam_ife_2 = {
690e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_hf_cam_ife_2",
691e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_2,
692e6f0d6a3SAbel Vesa 	.channels = 2,
693e6f0d6a3SAbel Vesa 	.buswidth = 32,
694e6f0d6a3SAbel Vesa 	.num_links = 1,
695e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_2 },
696e6f0d6a3SAbel Vesa };
697e6f0d6a3SAbel Vesa 
698e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_mnoc_sf_cam_ife_2 = {
699e6f0d6a3SAbel Vesa 	.name = "qnm_mnoc_sf_cam_ife_2",
700e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_2,
701e6f0d6a3SAbel Vesa 	.channels = 2,
702e6f0d6a3SAbel Vesa 	.buswidth = 32,
703e6f0d6a3SAbel Vesa 	.num_links = 1,
704e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_2 },
705e6f0d6a3SAbel Vesa };
706e6f0d6a3SAbel Vesa 
707e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_pcie_cam_ife_2 = {
708e6f0d6a3SAbel Vesa 	.name = "qnm_pcie_cam_ife_2",
709e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_2,
710e6f0d6a3SAbel Vesa 	.channels = 1,
711e6f0d6a3SAbel Vesa 	.buswidth = 16,
712e6f0d6a3SAbel Vesa 	.num_links = 1,
713e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_LLCC_CAM_IFE_2 },
714e6f0d6a3SAbel Vesa };
715e6f0d6a3SAbel Vesa 
716e6f0d6a3SAbel Vesa static struct qcom_icc_node llcc_mc_cam_ife_2 = {
717e6f0d6a3SAbel Vesa 	.name = "llcc_mc_cam_ife_2",
718e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_LLCC_CAM_IFE_2,
719e6f0d6a3SAbel Vesa 	.channels = 4,
720e6f0d6a3SAbel Vesa 	.buswidth = 4,
721e6f0d6a3SAbel Vesa 	.num_links = 1,
722e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_EBI1_CAM_IFE_2 },
723e6f0d6a3SAbel Vesa };
724e6f0d6a3SAbel Vesa 
725e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_hf_cam_ife_2 = {
726e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_hf_cam_ife_2",
727e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_HF_CAM_IFE_2,
728e6f0d6a3SAbel Vesa 	.channels = 2,
729e6f0d6a3SAbel Vesa 	.buswidth = 32,
730e6f0d6a3SAbel Vesa 	.num_links = 1,
731e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_2 },
732e6f0d6a3SAbel Vesa };
733e6f0d6a3SAbel Vesa 
734e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_icp_cam_ife_2 = {
735e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_icp_cam_ife_2",
736e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_ICP_CAM_IFE_2,
737e6f0d6a3SAbel Vesa 	.channels = 1,
738e6f0d6a3SAbel Vesa 	.buswidth = 8,
739e6f0d6a3SAbel Vesa 	.num_links = 1,
740e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_2 },
741e6f0d6a3SAbel Vesa };
742e6f0d6a3SAbel Vesa 
743e6f0d6a3SAbel Vesa static struct qcom_icc_node qnm_camnoc_sf_cam_ife_2 = {
744e6f0d6a3SAbel Vesa 	.name = "qnm_camnoc_sf_cam_ife_2",
745e6f0d6a3SAbel Vesa 	.id = SM8550_MASTER_CAMNOC_SF_CAM_IFE_2,
746e6f0d6a3SAbel Vesa 	.channels = 2,
747e6f0d6a3SAbel Vesa 	.buswidth = 32,
748e6f0d6a3SAbel Vesa 	.num_links = 1,
749e6f0d6a3SAbel Vesa 	.links = { SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_2 },
750e6f0d6a3SAbel Vesa };
751e6f0d6a3SAbel Vesa 
752e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_a1noc_snoc = {
753e6f0d6a3SAbel Vesa 	.name = "qns_a1noc_snoc",
754e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_A1NOC_SNOC,
755e6f0d6a3SAbel Vesa 	.channels = 1,
756e6f0d6a3SAbel Vesa 	.buswidth = 16,
757e6f0d6a3SAbel Vesa 	.num_links = 1,
758e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_A1NOC_SNOC },
759e6f0d6a3SAbel Vesa };
760e6f0d6a3SAbel Vesa 
761e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_a2noc_snoc = {
762e6f0d6a3SAbel Vesa 	.name = "qns_a2noc_snoc",
763e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_A2NOC_SNOC,
764e6f0d6a3SAbel Vesa 	.channels = 1,
765e6f0d6a3SAbel Vesa 	.buswidth = 16,
766e6f0d6a3SAbel Vesa 	.num_links = 1,
767e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_A2NOC_SNOC },
768e6f0d6a3SAbel Vesa };
769e6f0d6a3SAbel Vesa 
770e6f0d6a3SAbel Vesa static struct qcom_icc_node qup0_core_slave = {
771e6f0d6a3SAbel Vesa 	.name = "qup0_core_slave",
772e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QUP_CORE_0,
773e6f0d6a3SAbel Vesa 	.channels = 1,
774e6f0d6a3SAbel Vesa 	.buswidth = 4,
775e6f0d6a3SAbel Vesa 	.num_links = 0,
776e6f0d6a3SAbel Vesa };
777e6f0d6a3SAbel Vesa 
778e6f0d6a3SAbel Vesa static struct qcom_icc_node qup1_core_slave = {
779e6f0d6a3SAbel Vesa 	.name = "qup1_core_slave",
780e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QUP_CORE_1,
781e6f0d6a3SAbel Vesa 	.channels = 1,
782e6f0d6a3SAbel Vesa 	.buswidth = 4,
783e6f0d6a3SAbel Vesa 	.num_links = 0,
784e6f0d6a3SAbel Vesa };
785e6f0d6a3SAbel Vesa 
786e6f0d6a3SAbel Vesa static struct qcom_icc_node qup2_core_slave = {
787e6f0d6a3SAbel Vesa 	.name = "qup2_core_slave",
788e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QUP_CORE_2,
789e6f0d6a3SAbel Vesa 	.channels = 1,
790e6f0d6a3SAbel Vesa 	.buswidth = 4,
791e6f0d6a3SAbel Vesa 	.num_links = 0,
792e6f0d6a3SAbel Vesa };
793e6f0d6a3SAbel Vesa 
794e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_ahb2phy0 = {
795e6f0d6a3SAbel Vesa 	.name = "qhs_ahb2phy0",
796e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_AHB2PHY_SOUTH,
797e6f0d6a3SAbel Vesa 	.channels = 1,
798e6f0d6a3SAbel Vesa 	.buswidth = 4,
799e6f0d6a3SAbel Vesa 	.num_links = 0,
800e6f0d6a3SAbel Vesa };
801e6f0d6a3SAbel Vesa 
802e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_ahb2phy1 = {
803e6f0d6a3SAbel Vesa 	.name = "qhs_ahb2phy1",
804e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_AHB2PHY_NORTH,
805e6f0d6a3SAbel Vesa 	.channels = 1,
806e6f0d6a3SAbel Vesa 	.buswidth = 4,
807e6f0d6a3SAbel Vesa 	.num_links = 0,
808e6f0d6a3SAbel Vesa };
809e6f0d6a3SAbel Vesa 
810e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_apss = {
811e6f0d6a3SAbel Vesa 	.name = "qhs_apss",
812e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_APPSS,
813e6f0d6a3SAbel Vesa 	.channels = 1,
814e6f0d6a3SAbel Vesa 	.buswidth = 8,
815e6f0d6a3SAbel Vesa 	.num_links = 0,
816e6f0d6a3SAbel Vesa };
817e6f0d6a3SAbel Vesa 
818e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_camera_cfg = {
819e6f0d6a3SAbel Vesa 	.name = "qhs_camera_cfg",
820e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CAMERA_CFG,
821e6f0d6a3SAbel Vesa 	.channels = 1,
822e6f0d6a3SAbel Vesa 	.buswidth = 4,
823e6f0d6a3SAbel Vesa 	.num_links = 0,
824e6f0d6a3SAbel Vesa };
825e6f0d6a3SAbel Vesa 
826e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_clk_ctl = {
827e6f0d6a3SAbel Vesa 	.name = "qhs_clk_ctl",
828e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CLK_CTL,
829e6f0d6a3SAbel Vesa 	.channels = 1,
830e6f0d6a3SAbel Vesa 	.buswidth = 4,
831e6f0d6a3SAbel Vesa 	.num_links = 0,
832e6f0d6a3SAbel Vesa };
833e6f0d6a3SAbel Vesa 
834e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cpr_cx = {
835e6f0d6a3SAbel Vesa 	.name = "qhs_cpr_cx",
836e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_RBCPR_CX_CFG,
837e6f0d6a3SAbel Vesa 	.channels = 1,
838e6f0d6a3SAbel Vesa 	.buswidth = 4,
839e6f0d6a3SAbel Vesa 	.num_links = 0,
840e6f0d6a3SAbel Vesa };
841e6f0d6a3SAbel Vesa 
842e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cpr_mmcx = {
843e6f0d6a3SAbel Vesa 	.name = "qhs_cpr_mmcx",
844e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_RBCPR_MMCX_CFG,
845e6f0d6a3SAbel Vesa 	.channels = 1,
846e6f0d6a3SAbel Vesa 	.buswidth = 4,
847e6f0d6a3SAbel Vesa 	.num_links = 0,
848e6f0d6a3SAbel Vesa };
849e6f0d6a3SAbel Vesa 
850e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cpr_mxa = {
851e6f0d6a3SAbel Vesa 	.name = "qhs_cpr_mxa",
852e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_RBCPR_MXA_CFG,
853e6f0d6a3SAbel Vesa 	.channels = 1,
854e6f0d6a3SAbel Vesa 	.buswidth = 4,
855e6f0d6a3SAbel Vesa 	.num_links = 0,
856e6f0d6a3SAbel Vesa };
857e6f0d6a3SAbel Vesa 
858e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cpr_mxc = {
859e6f0d6a3SAbel Vesa 	.name = "qhs_cpr_mxc",
860e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_RBCPR_MXC_CFG,
861e6f0d6a3SAbel Vesa 	.channels = 1,
862e6f0d6a3SAbel Vesa 	.buswidth = 4,
863e6f0d6a3SAbel Vesa 	.num_links = 0,
864e6f0d6a3SAbel Vesa };
865e6f0d6a3SAbel Vesa 
866e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cpr_nspcx = {
867e6f0d6a3SAbel Vesa 	.name = "qhs_cpr_nspcx",
868e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CPR_NSPCX,
869e6f0d6a3SAbel Vesa 	.channels = 1,
870e6f0d6a3SAbel Vesa 	.buswidth = 4,
871e6f0d6a3SAbel Vesa 	.num_links = 0,
872e6f0d6a3SAbel Vesa };
873e6f0d6a3SAbel Vesa 
874e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_crypto0_cfg = {
875e6f0d6a3SAbel Vesa 	.name = "qhs_crypto0_cfg",
876e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CRYPTO_0_CFG,
877e6f0d6a3SAbel Vesa 	.channels = 1,
878e6f0d6a3SAbel Vesa 	.buswidth = 4,
879e6f0d6a3SAbel Vesa 	.num_links = 0,
880e6f0d6a3SAbel Vesa };
881e6f0d6a3SAbel Vesa 
882e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_cx_rdpm = {
883e6f0d6a3SAbel Vesa 	.name = "qhs_cx_rdpm",
884e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CX_RDPM,
885e6f0d6a3SAbel Vesa 	.channels = 1,
886e6f0d6a3SAbel Vesa 	.buswidth = 4,
887e6f0d6a3SAbel Vesa 	.num_links = 0,
888e6f0d6a3SAbel Vesa };
889e6f0d6a3SAbel Vesa 
890e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_display_cfg = {
891e6f0d6a3SAbel Vesa 	.name = "qhs_display_cfg",
892e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_DISPLAY_CFG,
893e6f0d6a3SAbel Vesa 	.channels = 1,
894e6f0d6a3SAbel Vesa 	.buswidth = 4,
895e6f0d6a3SAbel Vesa 	.num_links = 0,
896e6f0d6a3SAbel Vesa };
897e6f0d6a3SAbel Vesa 
898e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_gpuss_cfg = {
899e6f0d6a3SAbel Vesa 	.name = "qhs_gpuss_cfg",
900e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_GFX3D_CFG,
901e6f0d6a3SAbel Vesa 	.channels = 1,
902e6f0d6a3SAbel Vesa 	.buswidth = 8,
903e6f0d6a3SAbel Vesa 	.num_links = 0,
904e6f0d6a3SAbel Vesa };
905e6f0d6a3SAbel Vesa 
906e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_i2c = {
907e6f0d6a3SAbel Vesa 	.name = "qhs_i2c",
908e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_I2C,
909e6f0d6a3SAbel Vesa 	.channels = 1,
910e6f0d6a3SAbel Vesa 	.buswidth = 4,
911e6f0d6a3SAbel Vesa 	.num_links = 0,
912e6f0d6a3SAbel Vesa };
913e6f0d6a3SAbel Vesa 
914e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_imem_cfg = {
915e6f0d6a3SAbel Vesa 	.name = "qhs_imem_cfg",
916e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_IMEM_CFG,
917e6f0d6a3SAbel Vesa 	.channels = 1,
918e6f0d6a3SAbel Vesa 	.buswidth = 4,
919e6f0d6a3SAbel Vesa 	.num_links = 0,
920e6f0d6a3SAbel Vesa };
921e6f0d6a3SAbel Vesa 
922e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_ipa = {
923e6f0d6a3SAbel Vesa 	.name = "qhs_ipa",
924e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_IPA_CFG,
925e6f0d6a3SAbel Vesa 	.channels = 1,
926e6f0d6a3SAbel Vesa 	.buswidth = 4,
927e6f0d6a3SAbel Vesa 	.num_links = 0,
928e6f0d6a3SAbel Vesa };
929e6f0d6a3SAbel Vesa 
930e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_ipc_router = {
931e6f0d6a3SAbel Vesa 	.name = "qhs_ipc_router",
932e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_IPC_ROUTER_CFG,
933e6f0d6a3SAbel Vesa 	.channels = 1,
934e6f0d6a3SAbel Vesa 	.buswidth = 4,
935e6f0d6a3SAbel Vesa 	.num_links = 0,
936e6f0d6a3SAbel Vesa };
937e6f0d6a3SAbel Vesa 
938e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_mss_cfg = {
939e6f0d6a3SAbel Vesa 	.name = "qhs_mss_cfg",
940e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CNOC_MSS,
941e6f0d6a3SAbel Vesa 	.channels = 1,
942e6f0d6a3SAbel Vesa 	.buswidth = 4,
943e6f0d6a3SAbel Vesa 	.num_links = 0,
944e6f0d6a3SAbel Vesa };
945e6f0d6a3SAbel Vesa 
946e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_mx_rdpm = {
947e6f0d6a3SAbel Vesa 	.name = "qhs_mx_rdpm",
948e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MX_RDPM,
949e6f0d6a3SAbel Vesa 	.channels = 1,
950e6f0d6a3SAbel Vesa 	.buswidth = 4,
951e6f0d6a3SAbel Vesa 	.num_links = 0,
952e6f0d6a3SAbel Vesa };
953e6f0d6a3SAbel Vesa 
954e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_pcie0_cfg = {
955e6f0d6a3SAbel Vesa 	.name = "qhs_pcie0_cfg",
956e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PCIE_0_CFG,
957e6f0d6a3SAbel Vesa 	.channels = 1,
958e6f0d6a3SAbel Vesa 	.buswidth = 4,
959e6f0d6a3SAbel Vesa 	.num_links = 0,
960e6f0d6a3SAbel Vesa };
961e6f0d6a3SAbel Vesa 
962e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_pcie1_cfg = {
963e6f0d6a3SAbel Vesa 	.name = "qhs_pcie1_cfg",
964e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PCIE_1_CFG,
965e6f0d6a3SAbel Vesa 	.channels = 1,
966e6f0d6a3SAbel Vesa 	.buswidth = 4,
967e6f0d6a3SAbel Vesa 	.num_links = 0,
968e6f0d6a3SAbel Vesa };
969e6f0d6a3SAbel Vesa 
970e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_pdm = {
971e6f0d6a3SAbel Vesa 	.name = "qhs_pdm",
972e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PDM,
973e6f0d6a3SAbel Vesa 	.channels = 1,
974e6f0d6a3SAbel Vesa 	.buswidth = 4,
975e6f0d6a3SAbel Vesa 	.num_links = 0,
976e6f0d6a3SAbel Vesa };
977e6f0d6a3SAbel Vesa 
978e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_pimem_cfg = {
979e6f0d6a3SAbel Vesa 	.name = "qhs_pimem_cfg",
980e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PIMEM_CFG,
981e6f0d6a3SAbel Vesa 	.channels = 1,
982e6f0d6a3SAbel Vesa 	.buswidth = 4,
983e6f0d6a3SAbel Vesa 	.num_links = 0,
984e6f0d6a3SAbel Vesa };
985e6f0d6a3SAbel Vesa 
986e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_prng = {
987e6f0d6a3SAbel Vesa 	.name = "qhs_prng",
988e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PRNG,
989e6f0d6a3SAbel Vesa 	.channels = 1,
990e6f0d6a3SAbel Vesa 	.buswidth = 4,
991e6f0d6a3SAbel Vesa 	.num_links = 0,
992e6f0d6a3SAbel Vesa };
993e6f0d6a3SAbel Vesa 
994e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_qdss_cfg = {
995e6f0d6a3SAbel Vesa 	.name = "qhs_qdss_cfg",
996e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QDSS_CFG,
997e6f0d6a3SAbel Vesa 	.channels = 1,
998e6f0d6a3SAbel Vesa 	.buswidth = 4,
999e6f0d6a3SAbel Vesa 	.num_links = 0,
1000e6f0d6a3SAbel Vesa };
1001e6f0d6a3SAbel Vesa 
1002e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_qspi = {
1003e6f0d6a3SAbel Vesa 	.name = "qhs_qspi",
1004e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QSPI_0,
1005e6f0d6a3SAbel Vesa 	.channels = 1,
1006e6f0d6a3SAbel Vesa 	.buswidth = 4,
1007e6f0d6a3SAbel Vesa 	.num_links = 0,
1008e6f0d6a3SAbel Vesa };
1009e6f0d6a3SAbel Vesa 
1010e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_qup1 = {
1011e6f0d6a3SAbel Vesa 	.name = "qhs_qup1",
1012e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QUP_1,
1013e6f0d6a3SAbel Vesa 	.channels = 1,
1014e6f0d6a3SAbel Vesa 	.buswidth = 4,
1015e6f0d6a3SAbel Vesa 	.num_links = 0,
1016e6f0d6a3SAbel Vesa };
1017e6f0d6a3SAbel Vesa 
1018e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_qup2 = {
1019e6f0d6a3SAbel Vesa 	.name = "qhs_qup2",
1020e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QUP_2,
1021e6f0d6a3SAbel Vesa 	.channels = 1,
1022e6f0d6a3SAbel Vesa 	.buswidth = 4,
1023e6f0d6a3SAbel Vesa 	.num_links = 0,
1024e6f0d6a3SAbel Vesa };
1025e6f0d6a3SAbel Vesa 
1026e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_sdc2 = {
1027e6f0d6a3SAbel Vesa 	.name = "qhs_sdc2",
1028e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SDCC_2,
1029e6f0d6a3SAbel Vesa 	.channels = 1,
1030e6f0d6a3SAbel Vesa 	.buswidth = 4,
1031e6f0d6a3SAbel Vesa 	.num_links = 0,
1032e6f0d6a3SAbel Vesa };
1033e6f0d6a3SAbel Vesa 
1034e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_sdc4 = {
1035e6f0d6a3SAbel Vesa 	.name = "qhs_sdc4",
1036e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SDCC_4,
1037e6f0d6a3SAbel Vesa 	.channels = 1,
1038e6f0d6a3SAbel Vesa 	.buswidth = 4,
1039e6f0d6a3SAbel Vesa 	.num_links = 0,
1040e6f0d6a3SAbel Vesa };
1041e6f0d6a3SAbel Vesa 
1042e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_spss_cfg = {
1043e6f0d6a3SAbel Vesa 	.name = "qhs_spss_cfg",
1044e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SPSS_CFG,
1045e6f0d6a3SAbel Vesa 	.channels = 1,
1046e6f0d6a3SAbel Vesa 	.buswidth = 4,
1047e6f0d6a3SAbel Vesa 	.num_links = 0,
1048e6f0d6a3SAbel Vesa };
1049e6f0d6a3SAbel Vesa 
1050e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_tcsr = {
1051e6f0d6a3SAbel Vesa 	.name = "qhs_tcsr",
1052e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_TCSR,
1053e6f0d6a3SAbel Vesa 	.channels = 1,
1054e6f0d6a3SAbel Vesa 	.buswidth = 4,
1055e6f0d6a3SAbel Vesa 	.num_links = 0,
1056e6f0d6a3SAbel Vesa };
1057e6f0d6a3SAbel Vesa 
1058e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_tlmm = {
1059e6f0d6a3SAbel Vesa 	.name = "qhs_tlmm",
1060e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_TLMM,
1061e6f0d6a3SAbel Vesa 	.channels = 1,
1062e6f0d6a3SAbel Vesa 	.buswidth = 4,
1063e6f0d6a3SAbel Vesa 	.num_links = 0,
1064e6f0d6a3SAbel Vesa };
1065e6f0d6a3SAbel Vesa 
1066e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_ufs_mem_cfg = {
1067e6f0d6a3SAbel Vesa 	.name = "qhs_ufs_mem_cfg",
1068e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_UFS_MEM_CFG,
1069e6f0d6a3SAbel Vesa 	.channels = 1,
1070e6f0d6a3SAbel Vesa 	.buswidth = 4,
1071e6f0d6a3SAbel Vesa 	.num_links = 0,
1072e6f0d6a3SAbel Vesa };
1073e6f0d6a3SAbel Vesa 
1074e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_usb3_0 = {
1075e6f0d6a3SAbel Vesa 	.name = "qhs_usb3_0",
1076e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_USB3_0,
1077e6f0d6a3SAbel Vesa 	.channels = 1,
1078e6f0d6a3SAbel Vesa 	.buswidth = 4,
1079e6f0d6a3SAbel Vesa 	.num_links = 0,
1080e6f0d6a3SAbel Vesa };
1081e6f0d6a3SAbel Vesa 
1082e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_venus_cfg = {
1083e6f0d6a3SAbel Vesa 	.name = "qhs_venus_cfg",
1084e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_VENUS_CFG,
1085e6f0d6a3SAbel Vesa 	.channels = 1,
1086e6f0d6a3SAbel Vesa 	.buswidth = 4,
1087e6f0d6a3SAbel Vesa 	.num_links = 0,
1088e6f0d6a3SAbel Vesa };
1089e6f0d6a3SAbel Vesa 
1090e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
1091e6f0d6a3SAbel Vesa 	.name = "qhs_vsense_ctrl_cfg",
1092e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_VSENSE_CTRL_CFG,
1093e6f0d6a3SAbel Vesa 	.channels = 1,
1094e6f0d6a3SAbel Vesa 	.buswidth = 4,
1095e6f0d6a3SAbel Vesa 	.num_links = 0,
1096e6f0d6a3SAbel Vesa };
1097e6f0d6a3SAbel Vesa 
1098e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_lpass_qtb_cfg = {
1099e6f0d6a3SAbel Vesa 	.name = "qss_lpass_qtb_cfg",
1100e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LPASS_QTB_CFG,
1101e6f0d6a3SAbel Vesa 	.channels = 1,
1102e6f0d6a3SAbel Vesa 	.buswidth = 4,
1103e6f0d6a3SAbel Vesa 	.num_links = 0,
1104e6f0d6a3SAbel Vesa };
1105e6f0d6a3SAbel Vesa 
1106e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_mnoc_cfg = {
1107e6f0d6a3SAbel Vesa 	.name = "qss_mnoc_cfg",
1108e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CNOC_MNOC_CFG,
1109e6f0d6a3SAbel Vesa 	.channels = 1,
1110e6f0d6a3SAbel Vesa 	.buswidth = 4,
1111e6f0d6a3SAbel Vesa 	.num_links = 1,
1112e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_CNOC_MNOC_CFG },
1113e6f0d6a3SAbel Vesa };
1114e6f0d6a3SAbel Vesa 
1115e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_nsp_qtb_cfg = {
1116e6f0d6a3SAbel Vesa 	.name = "qss_nsp_qtb_cfg",
1117e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_NSP_QTB_CFG,
1118e6f0d6a3SAbel Vesa 	.channels = 1,
1119e6f0d6a3SAbel Vesa 	.buswidth = 4,
1120e6f0d6a3SAbel Vesa 	.num_links = 0,
1121e6f0d6a3SAbel Vesa };
1122e6f0d6a3SAbel Vesa 
1123e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_pcie_anoc_cfg = {
1124e6f0d6a3SAbel Vesa 	.name = "qss_pcie_anoc_cfg",
1125e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PCIE_ANOC_CFG,
1126e6f0d6a3SAbel Vesa 	.channels = 1,
1127e6f0d6a3SAbel Vesa 	.buswidth = 4,
1128e6f0d6a3SAbel Vesa 	.num_links = 1,
1129e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_PCIE_ANOC_CFG },
1130e6f0d6a3SAbel Vesa };
1131e6f0d6a3SAbel Vesa 
1132e6f0d6a3SAbel Vesa static struct qcom_icc_node xs_qdss_stm = {
1133e6f0d6a3SAbel Vesa 	.name = "xs_qdss_stm",
1134e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_QDSS_STM,
1135e6f0d6a3SAbel Vesa 	.channels = 1,
1136e6f0d6a3SAbel Vesa 	.buswidth = 4,
1137e6f0d6a3SAbel Vesa 	.num_links = 0,
1138e6f0d6a3SAbel Vesa };
1139e6f0d6a3SAbel Vesa 
1140e6f0d6a3SAbel Vesa static struct qcom_icc_node xs_sys_tcu_cfg = {
1141e6f0d6a3SAbel Vesa 	.name = "xs_sys_tcu_cfg",
1142e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_TCU,
1143e6f0d6a3SAbel Vesa 	.channels = 1,
1144e6f0d6a3SAbel Vesa 	.buswidth = 8,
1145e6f0d6a3SAbel Vesa 	.num_links = 0,
1146e6f0d6a3SAbel Vesa };
1147e6f0d6a3SAbel Vesa 
1148e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_aoss = {
1149e6f0d6a3SAbel Vesa 	.name = "qhs_aoss",
1150e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_AOSS,
1151e6f0d6a3SAbel Vesa 	.channels = 1,
1152e6f0d6a3SAbel Vesa 	.buswidth = 4,
1153e6f0d6a3SAbel Vesa 	.num_links = 0,
1154e6f0d6a3SAbel Vesa };
1155e6f0d6a3SAbel Vesa 
1156e6f0d6a3SAbel Vesa static struct qcom_icc_node qhs_tme_cfg = {
1157e6f0d6a3SAbel Vesa 	.name = "qhs_tme_cfg",
1158e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_TME_CFG,
1159e6f0d6a3SAbel Vesa 	.channels = 1,
1160e6f0d6a3SAbel Vesa 	.buswidth = 4,
1161e6f0d6a3SAbel Vesa 	.num_links = 0,
1162e6f0d6a3SAbel Vesa };
1163e6f0d6a3SAbel Vesa 
1164e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_cfg = {
1165e6f0d6a3SAbel Vesa 	.name = "qss_cfg",
1166e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CNOC_CFG,
1167e6f0d6a3SAbel Vesa 	.channels = 1,
1168e6f0d6a3SAbel Vesa 	.buswidth = 4,
1169e6f0d6a3SAbel Vesa 	.num_links = 1,
1170e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_CNOC_CFG },
1171e6f0d6a3SAbel Vesa };
1172e6f0d6a3SAbel Vesa 
1173e6f0d6a3SAbel Vesa static struct qcom_icc_node qss_ddrss_cfg = {
1174e6f0d6a3SAbel Vesa 	.name = "qss_ddrss_cfg",
1175e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_DDRSS_CFG,
1176e6f0d6a3SAbel Vesa 	.channels = 1,
1177e6f0d6a3SAbel Vesa 	.buswidth = 4,
1178e6f0d6a3SAbel Vesa 	.num_links = 0,
1179e6f0d6a3SAbel Vesa };
1180e6f0d6a3SAbel Vesa 
1181e6f0d6a3SAbel Vesa static struct qcom_icc_node qxs_boot_imem = {
1182e6f0d6a3SAbel Vesa 	.name = "qxs_boot_imem",
1183e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_BOOT_IMEM,
1184e6f0d6a3SAbel Vesa 	.channels = 1,
1185e6f0d6a3SAbel Vesa 	.buswidth = 8,
1186e6f0d6a3SAbel Vesa 	.num_links = 0,
1187e6f0d6a3SAbel Vesa };
1188e6f0d6a3SAbel Vesa 
1189e6f0d6a3SAbel Vesa static struct qcom_icc_node qxs_imem = {
1190e6f0d6a3SAbel Vesa 	.name = "qxs_imem",
1191e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_IMEM,
1192e6f0d6a3SAbel Vesa 	.channels = 1,
1193e6f0d6a3SAbel Vesa 	.buswidth = 8,
1194e6f0d6a3SAbel Vesa 	.num_links = 0,
1195e6f0d6a3SAbel Vesa };
1196e6f0d6a3SAbel Vesa 
1197e6f0d6a3SAbel Vesa static struct qcom_icc_node xs_pcie_0 = {
1198e6f0d6a3SAbel Vesa 	.name = "xs_pcie_0",
1199e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PCIE_0,
1200e6f0d6a3SAbel Vesa 	.channels = 1,
1201e6f0d6a3SAbel Vesa 	.buswidth = 8,
1202e6f0d6a3SAbel Vesa 	.num_links = 0,
1203e6f0d6a3SAbel Vesa };
1204e6f0d6a3SAbel Vesa 
1205e6f0d6a3SAbel Vesa static struct qcom_icc_node xs_pcie_1 = {
1206e6f0d6a3SAbel Vesa 	.name = "xs_pcie_1",
1207e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_PCIE_1,
1208e6f0d6a3SAbel Vesa 	.channels = 1,
1209e6f0d6a3SAbel Vesa 	.buswidth = 16,
1210e6f0d6a3SAbel Vesa 	.num_links = 0,
1211e6f0d6a3SAbel Vesa };
1212e6f0d6a3SAbel Vesa 
1213e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_gem_noc_cnoc = {
1214e6f0d6a3SAbel Vesa 	.name = "qns_gem_noc_cnoc",
1215e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_GEM_NOC_CNOC,
1216e6f0d6a3SAbel Vesa 	.channels = 1,
1217e6f0d6a3SAbel Vesa 	.buswidth = 16,
1218e6f0d6a3SAbel Vesa 	.num_links = 1,
1219e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_GEM_NOC_CNOC },
1220e6f0d6a3SAbel Vesa };
1221e6f0d6a3SAbel Vesa 
1222e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_llcc = {
1223e6f0d6a3SAbel Vesa 	.name = "qns_llcc",
1224e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LLCC,
1225e6f0d6a3SAbel Vesa 	.channels = 4,
1226e6f0d6a3SAbel Vesa 	.buswidth = 16,
1227e6f0d6a3SAbel Vesa 	.num_links = 1,
1228e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LLCC },
1229e6f0d6a3SAbel Vesa };
1230e6f0d6a3SAbel Vesa 
1231e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_pcie = {
1232e6f0d6a3SAbel Vesa 	.name = "qns_pcie",
1233e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MEM_NOC_PCIE_SNOC,
1234e6f0d6a3SAbel Vesa 	.channels = 1,
1235e6f0d6a3SAbel Vesa 	.buswidth = 8,
1236e6f0d6a3SAbel Vesa 	.num_links = 1,
1237e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_GEM_NOC_PCIE_SNOC },
1238e6f0d6a3SAbel Vesa };
1239e6f0d6a3SAbel Vesa 
1240e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_lpass_ag_noc_gemnoc = {
1241e6f0d6a3SAbel Vesa 	.name = "qns_lpass_ag_noc_gemnoc",
1242e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LPASS_GEM_NOC,
1243e6f0d6a3SAbel Vesa 	.channels = 1,
1244e6f0d6a3SAbel Vesa 	.buswidth = 16,
1245e6f0d6a3SAbel Vesa 	.num_links = 1,
1246e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LPASS_GEM_NOC },
1247e6f0d6a3SAbel Vesa };
1248e6f0d6a3SAbel Vesa 
1249e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_lpass_aggnoc = {
1250e6f0d6a3SAbel Vesa 	.name = "qns_lpass_aggnoc",
1251e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LPIAON_NOC_LPASS_AG_NOC,
1252e6f0d6a3SAbel Vesa 	.channels = 1,
1253e6f0d6a3SAbel Vesa 	.buswidth = 16,
1254e6f0d6a3SAbel Vesa 	.num_links = 1,
1255e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LPIAON_NOC },
1256e6f0d6a3SAbel Vesa };
1257e6f0d6a3SAbel Vesa 
1258e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_lpi_aon_noc = {
1259e6f0d6a3SAbel Vesa 	.name = "qns_lpi_aon_noc",
1260e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LPICX_NOC_LPIAON_NOC,
1261e6f0d6a3SAbel Vesa 	.channels = 1,
1262e6f0d6a3SAbel Vesa 	.buswidth = 16,
1263e6f0d6a3SAbel Vesa 	.num_links = 1,
1264e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LPASS_LPINOC },
1265e6f0d6a3SAbel Vesa };
1266e6f0d6a3SAbel Vesa 
1267e6f0d6a3SAbel Vesa static struct qcom_icc_node ebi = {
1268e6f0d6a3SAbel Vesa 	.name = "ebi",
1269e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_EBI1,
1270e6f0d6a3SAbel Vesa 	.channels = 4,
1271e6f0d6a3SAbel Vesa 	.buswidth = 4,
1272e6f0d6a3SAbel Vesa 	.num_links = 0,
1273e6f0d6a3SAbel Vesa };
1274e6f0d6a3SAbel Vesa 
1275e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_hf = {
1276e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_hf",
1277e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_HF_MEM_NOC,
1278e6f0d6a3SAbel Vesa 	.channels = 2,
1279e6f0d6a3SAbel Vesa 	.buswidth = 32,
1280e6f0d6a3SAbel Vesa 	.num_links = 1,
1281e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_HF_MEM_NOC },
1282e6f0d6a3SAbel Vesa };
1283e6f0d6a3SAbel Vesa 
1284e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_sf = {
1285e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_sf",
1286e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_SF_MEM_NOC,
1287e6f0d6a3SAbel Vesa 	.channels = 2,
1288e6f0d6a3SAbel Vesa 	.buswidth = 32,
1289e6f0d6a3SAbel Vesa 	.num_links = 1,
1290e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_SF_MEM_NOC },
1291e6f0d6a3SAbel Vesa };
1292e6f0d6a3SAbel Vesa 
1293e6f0d6a3SAbel Vesa static struct qcom_icc_node srvc_mnoc = {
1294e6f0d6a3SAbel Vesa 	.name = "srvc_mnoc",
1295e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SERVICE_MNOC,
1296e6f0d6a3SAbel Vesa 	.channels = 1,
1297e6f0d6a3SAbel Vesa 	.buswidth = 4,
1298e6f0d6a3SAbel Vesa 	.num_links = 0,
1299e6f0d6a3SAbel Vesa };
1300e6f0d6a3SAbel Vesa 
1301e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_nsp_gemnoc = {
1302e6f0d6a3SAbel Vesa 	.name = "qns_nsp_gemnoc",
1303e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_CDSP_MEM_NOC,
1304e6f0d6a3SAbel Vesa 	.channels = 2,
1305e6f0d6a3SAbel Vesa 	.buswidth = 32,
1306e6f0d6a3SAbel Vesa 	.num_links = 1,
1307e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_COMPUTE_NOC },
1308e6f0d6a3SAbel Vesa };
1309e6f0d6a3SAbel Vesa 
1310e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_pcie_mem_noc = {
1311e6f0d6a3SAbel Vesa 	.name = "qns_pcie_mem_noc",
1312e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_ANOC_PCIE_GEM_NOC,
1313e6f0d6a3SAbel Vesa 	.channels = 1,
1314e6f0d6a3SAbel Vesa 	.buswidth = 16,
1315e6f0d6a3SAbel Vesa 	.num_links = 1,
1316e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_ANOC_PCIE_GEM_NOC },
1317e6f0d6a3SAbel Vesa };
1318e6f0d6a3SAbel Vesa 
1319e6f0d6a3SAbel Vesa static struct qcom_icc_node srvc_pcie_aggre_noc = {
1320e6f0d6a3SAbel Vesa 	.name = "srvc_pcie_aggre_noc",
1321e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SERVICE_PCIE_ANOC,
1322e6f0d6a3SAbel Vesa 	.channels = 1,
1323e6f0d6a3SAbel Vesa 	.buswidth = 4,
1324e6f0d6a3SAbel Vesa 	.num_links = 0,
1325e6f0d6a3SAbel Vesa };
1326e6f0d6a3SAbel Vesa 
1327e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_gemnoc_gc = {
1328e6f0d6a3SAbel Vesa 	.name = "qns_gemnoc_gc",
1329e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SNOC_GEM_NOC_GC,
1330e6f0d6a3SAbel Vesa 	.channels = 1,
1331e6f0d6a3SAbel Vesa 	.buswidth = 8,
1332e6f0d6a3SAbel Vesa 	.num_links = 1,
1333e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_SNOC_GC_MEM_NOC },
1334e6f0d6a3SAbel Vesa };
1335e6f0d6a3SAbel Vesa 
1336e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_gemnoc_sf = {
1337e6f0d6a3SAbel Vesa 	.name = "qns_gemnoc_sf",
1338e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_SNOC_GEM_NOC_SF,
1339e6f0d6a3SAbel Vesa 	.channels = 1,
1340e6f0d6a3SAbel Vesa 	.buswidth = 16,
1341e6f0d6a3SAbel Vesa 	.num_links = 1,
1342e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_SNOC_SF_MEM_NOC },
1343e6f0d6a3SAbel Vesa };
1344e6f0d6a3SAbel Vesa 
1345e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_llcc_disp = {
1346e6f0d6a3SAbel Vesa 	.name = "qns_llcc_disp",
1347e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LLCC_DISP,
1348e6f0d6a3SAbel Vesa 	.channels = 4,
1349e6f0d6a3SAbel Vesa 	.buswidth = 16,
1350e6f0d6a3SAbel Vesa 	.num_links = 1,
1351e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LLCC_DISP },
1352e6f0d6a3SAbel Vesa };
1353e6f0d6a3SAbel Vesa 
1354e6f0d6a3SAbel Vesa static struct qcom_icc_node ebi_disp = {
1355e6f0d6a3SAbel Vesa 	.name = "ebi_disp",
1356e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_EBI1_DISP,
1357e6f0d6a3SAbel Vesa 	.channels = 4,
1358e6f0d6a3SAbel Vesa 	.buswidth = 4,
1359e6f0d6a3SAbel Vesa 	.num_links = 0,
1360e6f0d6a3SAbel Vesa };
1361e6f0d6a3SAbel Vesa 
1362e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_hf_disp = {
1363e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_hf_disp",
1364e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_HF_MEM_NOC_DISP,
1365e6f0d6a3SAbel Vesa 	.channels = 2,
1366e6f0d6a3SAbel Vesa 	.buswidth = 32,
1367e6f0d6a3SAbel Vesa 	.num_links = 1,
1368e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_HF_MEM_NOC_DISP },
1369e6f0d6a3SAbel Vesa };
1370e6f0d6a3SAbel Vesa 
1371e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_llcc_cam_ife_0 = {
1372e6f0d6a3SAbel Vesa 	.name = "qns_llcc_cam_ife_0",
1373e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LLCC_CAM_IFE_0,
1374e6f0d6a3SAbel Vesa 	.channels = 4,
1375e6f0d6a3SAbel Vesa 	.buswidth = 16,
1376e6f0d6a3SAbel Vesa 	.num_links = 1,
1377e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LLCC_CAM_IFE_0 },
1378e6f0d6a3SAbel Vesa };
1379e6f0d6a3SAbel Vesa 
1380e6f0d6a3SAbel Vesa static struct qcom_icc_node ebi_cam_ife_0 = {
1381e6f0d6a3SAbel Vesa 	.name = "ebi_cam_ife_0",
1382e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_EBI1_CAM_IFE_0,
1383e6f0d6a3SAbel Vesa 	.channels = 4,
1384e6f0d6a3SAbel Vesa 	.buswidth = 4,
1385e6f0d6a3SAbel Vesa 	.num_links = 0,
1386e6f0d6a3SAbel Vesa };
1387e6f0d6a3SAbel Vesa 
1388e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_hf_cam_ife_0 = {
1389e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_hf_cam_ife_0",
1390e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_0,
1391e6f0d6a3SAbel Vesa 	.channels = 2,
1392e6f0d6a3SAbel Vesa 	.buswidth = 32,
1393e6f0d6a3SAbel Vesa 	.num_links = 1,
1394e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_0 },
1395e6f0d6a3SAbel Vesa };
1396e6f0d6a3SAbel Vesa 
1397e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_sf_cam_ife_0 = {
1398e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_sf_cam_ife_0",
1399e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_0,
1400e6f0d6a3SAbel Vesa 	.channels = 2,
1401e6f0d6a3SAbel Vesa 	.buswidth = 32,
1402e6f0d6a3SAbel Vesa 	.num_links = 1,
1403e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_0 },
1404e6f0d6a3SAbel Vesa };
1405e6f0d6a3SAbel Vesa 
1406e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_llcc_cam_ife_1 = {
1407e6f0d6a3SAbel Vesa 	.name = "qns_llcc_cam_ife_1",
1408e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LLCC_CAM_IFE_1,
1409e6f0d6a3SAbel Vesa 	.channels = 4,
1410e6f0d6a3SAbel Vesa 	.buswidth = 16,
1411e6f0d6a3SAbel Vesa 	.num_links = 1,
1412e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LLCC_CAM_IFE_1 },
1413e6f0d6a3SAbel Vesa };
1414e6f0d6a3SAbel Vesa 
1415e6f0d6a3SAbel Vesa static struct qcom_icc_node ebi_cam_ife_1 = {
1416e6f0d6a3SAbel Vesa 	.name = "ebi_cam_ife_1",
1417e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_EBI1_CAM_IFE_1,
1418e6f0d6a3SAbel Vesa 	.channels = 4,
1419e6f0d6a3SAbel Vesa 	.buswidth = 4,
1420e6f0d6a3SAbel Vesa 	.num_links = 0,
1421e6f0d6a3SAbel Vesa };
1422e6f0d6a3SAbel Vesa 
1423e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_hf_cam_ife_1 = {
1424e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_hf_cam_ife_1",
1425e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_1,
1426e6f0d6a3SAbel Vesa 	.channels = 2,
1427e6f0d6a3SAbel Vesa 	.buswidth = 32,
1428e6f0d6a3SAbel Vesa 	.num_links = 1,
1429e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_1 },
1430e6f0d6a3SAbel Vesa };
1431e6f0d6a3SAbel Vesa 
1432e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_sf_cam_ife_1 = {
1433e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_sf_cam_ife_1",
1434e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_1,
1435e6f0d6a3SAbel Vesa 	.channels = 2,
1436e6f0d6a3SAbel Vesa 	.buswidth = 32,
1437e6f0d6a3SAbel Vesa 	.num_links = 1,
1438e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_1 },
1439e6f0d6a3SAbel Vesa };
1440e6f0d6a3SAbel Vesa 
1441e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_llcc_cam_ife_2 = {
1442e6f0d6a3SAbel Vesa 	.name = "qns_llcc_cam_ife_2",
1443e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_LLCC_CAM_IFE_2,
1444e6f0d6a3SAbel Vesa 	.channels = 4,
1445e6f0d6a3SAbel Vesa 	.buswidth = 16,
1446e6f0d6a3SAbel Vesa 	.num_links = 1,
1447e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_LLCC_CAM_IFE_2 },
1448e6f0d6a3SAbel Vesa };
1449e6f0d6a3SAbel Vesa 
1450e6f0d6a3SAbel Vesa static struct qcom_icc_node ebi_cam_ife_2 = {
1451e6f0d6a3SAbel Vesa 	.name = "ebi_cam_ife_2",
1452e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_EBI1_CAM_IFE_2,
1453e6f0d6a3SAbel Vesa 	.channels = 4,
1454e6f0d6a3SAbel Vesa 	.buswidth = 4,
1455e6f0d6a3SAbel Vesa 	.num_links = 0,
1456e6f0d6a3SAbel Vesa };
1457e6f0d6a3SAbel Vesa 
1458e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_hf_cam_ife_2 = {
1459e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_hf_cam_ife_2",
1460e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_2,
1461e6f0d6a3SAbel Vesa 	.channels = 2,
1462e6f0d6a3SAbel Vesa 	.buswidth = 32,
1463e6f0d6a3SAbel Vesa 	.num_links = 1,
1464e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_HF_MEM_NOC_CAM_IFE_2 },
1465e6f0d6a3SAbel Vesa };
1466e6f0d6a3SAbel Vesa 
1467e6f0d6a3SAbel Vesa static struct qcom_icc_node qns_mem_noc_sf_cam_ife_2 = {
1468e6f0d6a3SAbel Vesa 	.name = "qns_mem_noc_sf_cam_ife_2",
1469e6f0d6a3SAbel Vesa 	.id = SM8550_SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_2,
1470e6f0d6a3SAbel Vesa 	.channels = 2,
1471e6f0d6a3SAbel Vesa 	.buswidth = 32,
1472e6f0d6a3SAbel Vesa 	.num_links = 1,
1473e6f0d6a3SAbel Vesa 	.links = { SM8550_MASTER_MNOC_SF_MEM_NOC_CAM_IFE_2 },
1474e6f0d6a3SAbel Vesa };
1475e6f0d6a3SAbel Vesa 
1476e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_acv = {
1477e6f0d6a3SAbel Vesa 	.name = "ACV",
14780dc82bd9SNeil Armstrong 	.enable_mask = 0x8,
1479e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1480e6f0d6a3SAbel Vesa 	.nodes = { &ebi },
1481e6f0d6a3SAbel Vesa };
1482e6f0d6a3SAbel Vesa 
1483e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_ce0 = {
1484e6f0d6a3SAbel Vesa 	.name = "CE0",
1485e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1486e6f0d6a3SAbel Vesa 	.nodes = { &qxm_crypto },
1487e6f0d6a3SAbel Vesa };
1488e6f0d6a3SAbel Vesa 
1489e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_cn0 = {
1490e6f0d6a3SAbel Vesa 	.name = "CN0",
14910dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1492e6f0d6a3SAbel Vesa 	.keepalive = true,
1493e6f0d6a3SAbel Vesa 	.num_nodes = 54,
1494e6f0d6a3SAbel Vesa 	.nodes = { &qsm_cfg, &qhs_ahb2phy0,
1495e6f0d6a3SAbel Vesa 		   &qhs_ahb2phy1, &qhs_apss,
1496e6f0d6a3SAbel Vesa 		   &qhs_camera_cfg, &qhs_clk_ctl,
1497e6f0d6a3SAbel Vesa 		   &qhs_cpr_cx, &qhs_cpr_mmcx,
1498e6f0d6a3SAbel Vesa 		   &qhs_cpr_mxa, &qhs_cpr_mxc,
1499e6f0d6a3SAbel Vesa 		   &qhs_cpr_nspcx, &qhs_crypto0_cfg,
1500e6f0d6a3SAbel Vesa 		   &qhs_cx_rdpm, &qhs_gpuss_cfg,
1501e6f0d6a3SAbel Vesa 		   &qhs_i2c, &qhs_imem_cfg,
1502e6f0d6a3SAbel Vesa 		   &qhs_ipa, &qhs_ipc_router,
1503e6f0d6a3SAbel Vesa 		   &qhs_mss_cfg, &qhs_mx_rdpm,
1504e6f0d6a3SAbel Vesa 		   &qhs_pcie0_cfg, &qhs_pcie1_cfg,
1505e6f0d6a3SAbel Vesa 		   &qhs_pdm, &qhs_pimem_cfg,
1506e6f0d6a3SAbel Vesa 		   &qhs_prng, &qhs_qdss_cfg,
1507e6f0d6a3SAbel Vesa 		   &qhs_qspi, &qhs_qup1,
1508e6f0d6a3SAbel Vesa 		   &qhs_qup2, &qhs_sdc2,
1509e6f0d6a3SAbel Vesa 		   &qhs_sdc4, &qhs_spss_cfg,
1510e6f0d6a3SAbel Vesa 		   &qhs_tcsr, &qhs_tlmm,
1511e6f0d6a3SAbel Vesa 		   &qhs_ufs_mem_cfg, &qhs_usb3_0,
1512e6f0d6a3SAbel Vesa 		   &qhs_venus_cfg, &qhs_vsense_ctrl_cfg,
1513e6f0d6a3SAbel Vesa 		   &qss_lpass_qtb_cfg, &qss_mnoc_cfg,
1514e6f0d6a3SAbel Vesa 		   &qss_nsp_qtb_cfg, &qss_pcie_anoc_cfg,
1515e6f0d6a3SAbel Vesa 		   &xs_qdss_stm, &xs_sys_tcu_cfg,
1516e6f0d6a3SAbel Vesa 		   &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
1517e6f0d6a3SAbel Vesa 		   &qhs_aoss, &qhs_tme_cfg,
1518e6f0d6a3SAbel Vesa 		   &qss_cfg, &qss_ddrss_cfg,
1519e6f0d6a3SAbel Vesa 		   &qxs_boot_imem, &qxs_imem,
1520e6f0d6a3SAbel Vesa 		   &xs_pcie_0, &xs_pcie_1 },
1521e6f0d6a3SAbel Vesa };
1522e6f0d6a3SAbel Vesa 
1523e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_cn1 = {
1524e6f0d6a3SAbel Vesa 	.name = "CN1",
1525e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1526e6f0d6a3SAbel Vesa 	.nodes = { &qhs_display_cfg },
1527e6f0d6a3SAbel Vesa };
1528e6f0d6a3SAbel Vesa 
1529e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_co0 = {
1530e6f0d6a3SAbel Vesa 	.name = "CO0",
15310dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1532e6f0d6a3SAbel Vesa 	.num_nodes = 2,
1533e6f0d6a3SAbel Vesa 	.nodes = { &qxm_nsp, &qns_nsp_gemnoc },
1534e6f0d6a3SAbel Vesa };
1535e6f0d6a3SAbel Vesa 
1536e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_lp0 = {
1537e6f0d6a3SAbel Vesa 	.name = "LP0",
1538e6f0d6a3SAbel Vesa 	.num_nodes = 2,
1539e6f0d6a3SAbel Vesa 	.nodes = { &qnm_lpass_lpinoc, &qns_lpass_aggnoc },
1540e6f0d6a3SAbel Vesa };
1541e6f0d6a3SAbel Vesa 
1542e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mc0 = {
1543e6f0d6a3SAbel Vesa 	.name = "MC0",
1544e6f0d6a3SAbel Vesa 	.keepalive = true,
1545e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1546e6f0d6a3SAbel Vesa 	.nodes = { &ebi },
1547e6f0d6a3SAbel Vesa };
1548e6f0d6a3SAbel Vesa 
1549e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm0 = {
1550e6f0d6a3SAbel Vesa 	.name = "MM0",
1551e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1552e6f0d6a3SAbel Vesa 	.nodes = { &qns_mem_noc_hf },
1553e6f0d6a3SAbel Vesa };
1554e6f0d6a3SAbel Vesa 
1555e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm1 = {
1556e6f0d6a3SAbel Vesa 	.name = "MM1",
15570dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1558e6f0d6a3SAbel Vesa 	.num_nodes = 8,
1559e6f0d6a3SAbel Vesa 	.nodes = { &qnm_camnoc_hf, &qnm_camnoc_icp,
1560e6f0d6a3SAbel Vesa 		   &qnm_camnoc_sf, &qnm_vapss_hcp,
1561e6f0d6a3SAbel Vesa 		   &qnm_video_cv_cpu, &qnm_video_cvp,
1562e6f0d6a3SAbel Vesa 		   &qnm_video_v_cpu, &qns_mem_noc_sf },
1563e6f0d6a3SAbel Vesa };
1564e6f0d6a3SAbel Vesa 
1565e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_qup0 = {
1566e6f0d6a3SAbel Vesa 	.name = "QUP0",
1567e6f0d6a3SAbel Vesa 	.keepalive = true,
1568e6f0d6a3SAbel Vesa 	.vote_scale = 1,
1569e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1570e6f0d6a3SAbel Vesa 	.nodes = { &qup0_core_slave },
1571e6f0d6a3SAbel Vesa };
1572e6f0d6a3SAbel Vesa 
1573e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_qup1 = {
1574e6f0d6a3SAbel Vesa 	.name = "QUP1",
1575e6f0d6a3SAbel Vesa 	.keepalive = true,
1576e6f0d6a3SAbel Vesa 	.vote_scale = 1,
1577e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1578e6f0d6a3SAbel Vesa 	.nodes = { &qup1_core_slave },
1579e6f0d6a3SAbel Vesa };
1580e6f0d6a3SAbel Vesa 
1581e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_qup2 = {
1582e6f0d6a3SAbel Vesa 	.name = "QUP2",
1583e6f0d6a3SAbel Vesa 	.keepalive = true,
1584e6f0d6a3SAbel Vesa 	.vote_scale = 1,
1585e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1586e6f0d6a3SAbel Vesa 	.nodes = { &qup2_core_slave },
1587e6f0d6a3SAbel Vesa };
1588e6f0d6a3SAbel Vesa 
1589e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh0 = {
1590e6f0d6a3SAbel Vesa 	.name = "SH0",
1591e6f0d6a3SAbel Vesa 	.keepalive = true,
1592e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1593e6f0d6a3SAbel Vesa 	.nodes = { &qns_llcc },
1594e6f0d6a3SAbel Vesa };
1595e6f0d6a3SAbel Vesa 
1596e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh1 = {
1597e6f0d6a3SAbel Vesa 	.name = "SH1",
15980dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1599e6f0d6a3SAbel Vesa 	.num_nodes = 13,
1600e6f0d6a3SAbel Vesa 	.nodes = { &alm_gpu_tcu, &alm_sys_tcu,
1601e6f0d6a3SAbel Vesa 		   &chm_apps, &qnm_gpu,
1602e6f0d6a3SAbel Vesa 		   &qnm_mdsp, &qnm_mnoc_hf,
1603e6f0d6a3SAbel Vesa 		   &qnm_mnoc_sf, &qnm_nsp_gemnoc,
1604e6f0d6a3SAbel Vesa 		   &qnm_pcie, &qnm_snoc_gc,
1605e6f0d6a3SAbel Vesa 		   &qnm_snoc_sf, &qns_gem_noc_cnoc,
1606e6f0d6a3SAbel Vesa 		   &qns_pcie },
1607e6f0d6a3SAbel Vesa };
1608e6f0d6a3SAbel Vesa 
1609e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sn0 = {
1610e6f0d6a3SAbel Vesa 	.name = "SN0",
1611e6f0d6a3SAbel Vesa 	.keepalive = true,
1612e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1613e6f0d6a3SAbel Vesa 	.nodes = { &qns_gemnoc_sf },
1614e6f0d6a3SAbel Vesa };
1615e6f0d6a3SAbel Vesa 
1616e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sn1 = {
1617e6f0d6a3SAbel Vesa 	.name = "SN1",
16180dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1619e6f0d6a3SAbel Vesa 	.num_nodes = 3,
1620e6f0d6a3SAbel Vesa 	.nodes = { &qhm_gic, &xm_gic,
1621e6f0d6a3SAbel Vesa 		   &qns_gemnoc_gc },
1622e6f0d6a3SAbel Vesa };
1623e6f0d6a3SAbel Vesa 
1624e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sn2 = {
1625e6f0d6a3SAbel Vesa 	.name = "SN2",
1626e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1627e6f0d6a3SAbel Vesa 	.nodes = { &qnm_aggre1_noc },
1628e6f0d6a3SAbel Vesa };
1629e6f0d6a3SAbel Vesa 
1630e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sn3 = {
1631e6f0d6a3SAbel Vesa 	.name = "SN3",
1632e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1633e6f0d6a3SAbel Vesa 	.nodes = { &qnm_aggre2_noc },
1634e6f0d6a3SAbel Vesa };
1635e6f0d6a3SAbel Vesa 
1636e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sn7 = {
1637e6f0d6a3SAbel Vesa 	.name = "SN7",
1638e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1639e6f0d6a3SAbel Vesa 	.nodes = { &qns_pcie_mem_noc },
1640e6f0d6a3SAbel Vesa };
1641e6f0d6a3SAbel Vesa 
1642e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_acv_disp = {
1643e6f0d6a3SAbel Vesa 	.name = "ACV",
16440dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1645e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1646e6f0d6a3SAbel Vesa 	.nodes = { &ebi_disp },
1647e6f0d6a3SAbel Vesa };
1648e6f0d6a3SAbel Vesa 
1649e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mc0_disp = {
1650e6f0d6a3SAbel Vesa 	.name = "MC0",
1651e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1652e6f0d6a3SAbel Vesa 	.nodes = { &ebi_disp },
1653e6f0d6a3SAbel Vesa };
1654e6f0d6a3SAbel Vesa 
1655e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm0_disp = {
1656e6f0d6a3SAbel Vesa 	.name = "MM0",
1657e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1658e6f0d6a3SAbel Vesa 	.nodes = { &qns_mem_noc_hf_disp },
1659e6f0d6a3SAbel Vesa };
1660e6f0d6a3SAbel Vesa 
1661e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh0_disp = {
1662e6f0d6a3SAbel Vesa 	.name = "SH0",
1663e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1664e6f0d6a3SAbel Vesa 	.nodes = { &qns_llcc_disp },
1665e6f0d6a3SAbel Vesa };
1666e6f0d6a3SAbel Vesa 
1667e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh1_disp = {
1668e6f0d6a3SAbel Vesa 	.name = "SH1",
16690dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1670e6f0d6a3SAbel Vesa 	.num_nodes = 2,
1671e6f0d6a3SAbel Vesa 	.nodes = { &qnm_mnoc_hf_disp, &qnm_pcie_disp },
1672e6f0d6a3SAbel Vesa };
1673e6f0d6a3SAbel Vesa 
1674e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_acv_cam_ife_0 = {
1675e6f0d6a3SAbel Vesa 	.name = "ACV",
16760dc82bd9SNeil Armstrong 	.enable_mask = 0x0,
1677e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1678e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_0 },
1679e6f0d6a3SAbel Vesa };
1680e6f0d6a3SAbel Vesa 
1681e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mc0_cam_ife_0 = {
1682e6f0d6a3SAbel Vesa 	.name = "MC0",
1683e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1684e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_0 },
1685e6f0d6a3SAbel Vesa };
1686e6f0d6a3SAbel Vesa 
1687e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm0_cam_ife_0 = {
1688e6f0d6a3SAbel Vesa 	.name = "MM0",
1689e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1690e6f0d6a3SAbel Vesa 	.nodes = { &qns_mem_noc_hf_cam_ife_0 },
1691e6f0d6a3SAbel Vesa };
1692e6f0d6a3SAbel Vesa 
1693e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm1_cam_ife_0 = {
1694e6f0d6a3SAbel Vesa 	.name = "MM1",
16950dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1696e6f0d6a3SAbel Vesa 	.num_nodes = 4,
1697e6f0d6a3SAbel Vesa 	.nodes = { &qnm_camnoc_hf_cam_ife_0, &qnm_camnoc_icp_cam_ife_0,
1698e6f0d6a3SAbel Vesa 		   &qnm_camnoc_sf_cam_ife_0, &qns_mem_noc_sf_cam_ife_0 },
1699e6f0d6a3SAbel Vesa };
1700e6f0d6a3SAbel Vesa 
1701e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh0_cam_ife_0 = {
1702e6f0d6a3SAbel Vesa 	.name = "SH0",
1703e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1704e6f0d6a3SAbel Vesa 	.nodes = { &qns_llcc_cam_ife_0 },
1705e6f0d6a3SAbel Vesa };
1706e6f0d6a3SAbel Vesa 
1707e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh1_cam_ife_0 = {
1708e6f0d6a3SAbel Vesa 	.name = "SH1",
17090dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1710e6f0d6a3SAbel Vesa 	.num_nodes = 3,
1711e6f0d6a3SAbel Vesa 	.nodes = { &qnm_mnoc_hf_cam_ife_0, &qnm_mnoc_sf_cam_ife_0,
1712e6f0d6a3SAbel Vesa 		   &qnm_pcie_cam_ife_0 },
1713e6f0d6a3SAbel Vesa };
1714e6f0d6a3SAbel Vesa 
1715e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_acv_cam_ife_1 = {
1716e6f0d6a3SAbel Vesa 	.name = "ACV",
17170dc82bd9SNeil Armstrong 	.enable_mask = 0x0,
1718e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1719e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_1 },
1720e6f0d6a3SAbel Vesa };
1721e6f0d6a3SAbel Vesa 
1722e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mc0_cam_ife_1 = {
1723e6f0d6a3SAbel Vesa 	.name = "MC0",
1724e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1725e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_1 },
1726e6f0d6a3SAbel Vesa };
1727e6f0d6a3SAbel Vesa 
1728e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm0_cam_ife_1 = {
1729e6f0d6a3SAbel Vesa 	.name = "MM0",
1730e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1731e6f0d6a3SAbel Vesa 	.nodes = { &qns_mem_noc_hf_cam_ife_1 },
1732e6f0d6a3SAbel Vesa };
1733e6f0d6a3SAbel Vesa 
1734e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm1_cam_ife_1 = {
1735e6f0d6a3SAbel Vesa 	.name = "MM1",
17360dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1737e6f0d6a3SAbel Vesa 	.num_nodes = 4,
1738e6f0d6a3SAbel Vesa 	.nodes = { &qnm_camnoc_hf_cam_ife_1, &qnm_camnoc_icp_cam_ife_1,
1739e6f0d6a3SAbel Vesa 		   &qnm_camnoc_sf_cam_ife_1, &qns_mem_noc_sf_cam_ife_1 },
1740e6f0d6a3SAbel Vesa };
1741e6f0d6a3SAbel Vesa 
1742e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh0_cam_ife_1 = {
1743e6f0d6a3SAbel Vesa 	.name = "SH0",
1744e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1745e6f0d6a3SAbel Vesa 	.nodes = { &qns_llcc_cam_ife_1 },
1746e6f0d6a3SAbel Vesa };
1747e6f0d6a3SAbel Vesa 
1748e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh1_cam_ife_1 = {
1749e6f0d6a3SAbel Vesa 	.name = "SH1",
17500dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1751e6f0d6a3SAbel Vesa 	.num_nodes = 3,
1752e6f0d6a3SAbel Vesa 	.nodes = { &qnm_mnoc_hf_cam_ife_1, &qnm_mnoc_sf_cam_ife_1,
1753e6f0d6a3SAbel Vesa 		   &qnm_pcie_cam_ife_1 },
1754e6f0d6a3SAbel Vesa };
1755e6f0d6a3SAbel Vesa 
1756e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_acv_cam_ife_2 = {
1757e6f0d6a3SAbel Vesa 	.name = "ACV",
17580dc82bd9SNeil Armstrong 	.enable_mask = 0x0,
1759e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1760e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_2 },
1761e6f0d6a3SAbel Vesa };
1762e6f0d6a3SAbel Vesa 
1763e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mc0_cam_ife_2 = {
1764e6f0d6a3SAbel Vesa 	.name = "MC0",
1765e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1766e6f0d6a3SAbel Vesa 	.nodes = { &ebi_cam_ife_2 },
1767e6f0d6a3SAbel Vesa };
1768e6f0d6a3SAbel Vesa 
1769e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm0_cam_ife_2 = {
1770e6f0d6a3SAbel Vesa 	.name = "MM0",
1771e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1772e6f0d6a3SAbel Vesa 	.nodes = { &qns_mem_noc_hf_cam_ife_2 },
1773e6f0d6a3SAbel Vesa };
1774e6f0d6a3SAbel Vesa 
1775e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_mm1_cam_ife_2 = {
1776e6f0d6a3SAbel Vesa 	.name = "MM1",
17770dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1778e6f0d6a3SAbel Vesa 	.num_nodes = 4,
1779e6f0d6a3SAbel Vesa 	.nodes = { &qnm_camnoc_hf_cam_ife_2, &qnm_camnoc_icp_cam_ife_2,
1780e6f0d6a3SAbel Vesa 		   &qnm_camnoc_sf_cam_ife_2, &qns_mem_noc_sf_cam_ife_2 },
1781e6f0d6a3SAbel Vesa };
1782e6f0d6a3SAbel Vesa 
1783e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh0_cam_ife_2 = {
1784e6f0d6a3SAbel Vesa 	.name = "SH0",
1785e6f0d6a3SAbel Vesa 	.num_nodes = 1,
1786e6f0d6a3SAbel Vesa 	.nodes = { &qns_llcc_cam_ife_2 },
1787e6f0d6a3SAbel Vesa };
1788e6f0d6a3SAbel Vesa 
1789e6f0d6a3SAbel Vesa static struct qcom_icc_bcm bcm_sh1_cam_ife_2 = {
1790e6f0d6a3SAbel Vesa 	.name = "SH1",
17910dc82bd9SNeil Armstrong 	.enable_mask = 0x1,
1792e6f0d6a3SAbel Vesa 	.num_nodes = 3,
1793e6f0d6a3SAbel Vesa 	.nodes = { &qnm_mnoc_hf_cam_ife_2, &qnm_mnoc_sf_cam_ife_2,
1794e6f0d6a3SAbel Vesa 		   &qnm_pcie_cam_ife_2 },
1795e6f0d6a3SAbel Vesa };
1796e6f0d6a3SAbel Vesa 
1797e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1798e6f0d6a3SAbel Vesa };
1799e6f0d6a3SAbel Vesa 
1800e6f0d6a3SAbel Vesa static struct qcom_icc_node * const aggre1_noc_nodes[] = {
1801e6f0d6a3SAbel Vesa 	[MASTER_QSPI_0] = &qhm_qspi,
1802e6f0d6a3SAbel Vesa 	[MASTER_QUP_1] = &qhm_qup1,
1803e6f0d6a3SAbel Vesa 	[MASTER_SDCC_4] = &xm_sdc4,
1804e6f0d6a3SAbel Vesa 	[MASTER_UFS_MEM] = &xm_ufs_mem,
1805e6f0d6a3SAbel Vesa 	[MASTER_USB3_0] = &xm_usb3_0,
1806e6f0d6a3SAbel Vesa 	[SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
1807e6f0d6a3SAbel Vesa };
1808e6f0d6a3SAbel Vesa 
1809e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_aggre1_noc = {
1810e6f0d6a3SAbel Vesa 	.nodes = aggre1_noc_nodes,
1811e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
1812e6f0d6a3SAbel Vesa 	.bcms = aggre1_noc_bcms,
1813e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
1814e6f0d6a3SAbel Vesa };
1815e6f0d6a3SAbel Vesa 
1816e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const aggre2_noc_bcms[] = {
1817e6f0d6a3SAbel Vesa 	&bcm_ce0,
1818e6f0d6a3SAbel Vesa };
1819e6f0d6a3SAbel Vesa 
1820e6f0d6a3SAbel Vesa static struct qcom_icc_node * const aggre2_noc_nodes[] = {
1821e6f0d6a3SAbel Vesa 	[MASTER_QDSS_BAM] = &qhm_qdss_bam,
1822e6f0d6a3SAbel Vesa 	[MASTER_QUP_2] = &qhm_qup2,
1823e6f0d6a3SAbel Vesa 	[MASTER_CRYPTO] = &qxm_crypto,
1824e6f0d6a3SAbel Vesa 	[MASTER_IPA] = &qxm_ipa,
1825e6f0d6a3SAbel Vesa 	[MASTER_SP] = &qxm_sp,
1826e6f0d6a3SAbel Vesa 	[MASTER_QDSS_ETR] = &xm_qdss_etr_0,
1827e6f0d6a3SAbel Vesa 	[MASTER_QDSS_ETR_1] = &xm_qdss_etr_1,
1828e6f0d6a3SAbel Vesa 	[MASTER_SDCC_2] = &xm_sdc2,
1829e6f0d6a3SAbel Vesa 	[SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc,
1830e6f0d6a3SAbel Vesa };
1831e6f0d6a3SAbel Vesa 
1832e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_aggre2_noc = {
1833e6f0d6a3SAbel Vesa 	.nodes = aggre2_noc_nodes,
1834e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(aggre2_noc_nodes),
1835e6f0d6a3SAbel Vesa 	.bcms = aggre2_noc_bcms,
1836e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(aggre2_noc_bcms),
1837e6f0d6a3SAbel Vesa };
1838e6f0d6a3SAbel Vesa 
1839e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const clk_virt_bcms[] = {
1840e6f0d6a3SAbel Vesa 	&bcm_qup0,
1841e6f0d6a3SAbel Vesa 	&bcm_qup1,
1842e6f0d6a3SAbel Vesa 	&bcm_qup2,
1843e6f0d6a3SAbel Vesa };
1844e6f0d6a3SAbel Vesa 
1845e6f0d6a3SAbel Vesa static struct qcom_icc_node * const clk_virt_nodes[] = {
1846e6f0d6a3SAbel Vesa 	[MASTER_QUP_CORE_0] = &qup0_core_master,
1847e6f0d6a3SAbel Vesa 	[MASTER_QUP_CORE_1] = &qup1_core_master,
1848e6f0d6a3SAbel Vesa 	[MASTER_QUP_CORE_2] = &qup2_core_master,
1849e6f0d6a3SAbel Vesa 	[SLAVE_QUP_CORE_0] = &qup0_core_slave,
1850e6f0d6a3SAbel Vesa 	[SLAVE_QUP_CORE_1] = &qup1_core_slave,
1851e6f0d6a3SAbel Vesa 	[SLAVE_QUP_CORE_2] = &qup2_core_slave,
1852e6f0d6a3SAbel Vesa };
1853e6f0d6a3SAbel Vesa 
1854e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_clk_virt = {
1855e6f0d6a3SAbel Vesa 	.nodes = clk_virt_nodes,
1856e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(clk_virt_nodes),
1857e6f0d6a3SAbel Vesa 	.bcms = clk_virt_bcms,
1858e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(clk_virt_bcms),
1859e6f0d6a3SAbel Vesa };
1860e6f0d6a3SAbel Vesa 
1861e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const config_noc_bcms[] = {
1862e6f0d6a3SAbel Vesa 	&bcm_cn0,
1863e6f0d6a3SAbel Vesa 	&bcm_cn1,
1864e6f0d6a3SAbel Vesa };
1865e6f0d6a3SAbel Vesa 
1866e6f0d6a3SAbel Vesa static struct qcom_icc_node * const config_noc_nodes[] = {
1867e6f0d6a3SAbel Vesa 	[MASTER_CNOC_CFG] = &qsm_cfg,
1868e6f0d6a3SAbel Vesa 	[SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
1869e6f0d6a3SAbel Vesa 	[SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1,
1870e6f0d6a3SAbel Vesa 	[SLAVE_APPSS] = &qhs_apss,
1871e6f0d6a3SAbel Vesa 	[SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
1872e6f0d6a3SAbel Vesa 	[SLAVE_CLK_CTL] = &qhs_clk_ctl,
1873e6f0d6a3SAbel Vesa 	[SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
1874e6f0d6a3SAbel Vesa 	[SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx,
1875e6f0d6a3SAbel Vesa 	[SLAVE_RBCPR_MXA_CFG] = &qhs_cpr_mxa,
1876e6f0d6a3SAbel Vesa 	[SLAVE_RBCPR_MXC_CFG] = &qhs_cpr_mxc,
1877e6f0d6a3SAbel Vesa 	[SLAVE_CPR_NSPCX] = &qhs_cpr_nspcx,
1878e6f0d6a3SAbel Vesa 	[SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg,
1879e6f0d6a3SAbel Vesa 	[SLAVE_CX_RDPM] = &qhs_cx_rdpm,
1880e6f0d6a3SAbel Vesa 	[SLAVE_DISPLAY_CFG] = &qhs_display_cfg,
1881e6f0d6a3SAbel Vesa 	[SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg,
1882e6f0d6a3SAbel Vesa 	[SLAVE_I2C] = &qhs_i2c,
1883e6f0d6a3SAbel Vesa 	[SLAVE_IMEM_CFG] = &qhs_imem_cfg,
1884e6f0d6a3SAbel Vesa 	[SLAVE_IPA_CFG] = &qhs_ipa,
1885e6f0d6a3SAbel Vesa 	[SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
1886e6f0d6a3SAbel Vesa 	[SLAVE_CNOC_MSS] = &qhs_mss_cfg,
1887e6f0d6a3SAbel Vesa 	[SLAVE_MX_RDPM] = &qhs_mx_rdpm,
1888e6f0d6a3SAbel Vesa 	[SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg,
1889e6f0d6a3SAbel Vesa 	[SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg,
1890e6f0d6a3SAbel Vesa 	[SLAVE_PDM] = &qhs_pdm,
1891e6f0d6a3SAbel Vesa 	[SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
1892e6f0d6a3SAbel Vesa 	[SLAVE_PRNG] = &qhs_prng,
1893e6f0d6a3SAbel Vesa 	[SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
1894e6f0d6a3SAbel Vesa 	[SLAVE_QSPI_0] = &qhs_qspi,
1895e6f0d6a3SAbel Vesa 	[SLAVE_QUP_1] = &qhs_qup1,
1896e6f0d6a3SAbel Vesa 	[SLAVE_QUP_2] = &qhs_qup2,
1897e6f0d6a3SAbel Vesa 	[SLAVE_SDCC_2] = &qhs_sdc2,
1898e6f0d6a3SAbel Vesa 	[SLAVE_SDCC_4] = &qhs_sdc4,
1899e6f0d6a3SAbel Vesa 	[SLAVE_SPSS_CFG] = &qhs_spss_cfg,
1900e6f0d6a3SAbel Vesa 	[SLAVE_TCSR] = &qhs_tcsr,
1901e6f0d6a3SAbel Vesa 	[SLAVE_TLMM] = &qhs_tlmm,
1902e6f0d6a3SAbel Vesa 	[SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
1903e6f0d6a3SAbel Vesa 	[SLAVE_USB3_0] = &qhs_usb3_0,
1904e6f0d6a3SAbel Vesa 	[SLAVE_VENUS_CFG] = &qhs_venus_cfg,
1905e6f0d6a3SAbel Vesa 	[SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
1906e6f0d6a3SAbel Vesa 	[SLAVE_LPASS_QTB_CFG] = &qss_lpass_qtb_cfg,
1907e6f0d6a3SAbel Vesa 	[SLAVE_CNOC_MNOC_CFG] = &qss_mnoc_cfg,
1908e6f0d6a3SAbel Vesa 	[SLAVE_NSP_QTB_CFG] = &qss_nsp_qtb_cfg,
1909e6f0d6a3SAbel Vesa 	[SLAVE_PCIE_ANOC_CFG] = &qss_pcie_anoc_cfg,
1910e6f0d6a3SAbel Vesa 	[SLAVE_QDSS_STM] = &xs_qdss_stm,
1911e6f0d6a3SAbel Vesa 	[SLAVE_TCU] = &xs_sys_tcu_cfg,
1912e6f0d6a3SAbel Vesa };
1913e6f0d6a3SAbel Vesa 
1914e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_config_noc = {
1915e6f0d6a3SAbel Vesa 	.nodes = config_noc_nodes,
1916e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(config_noc_nodes),
1917e6f0d6a3SAbel Vesa 	.bcms = config_noc_bcms,
1918e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(config_noc_bcms),
1919e6f0d6a3SAbel Vesa };
1920e6f0d6a3SAbel Vesa 
1921e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const cnoc_main_bcms[] = {
1922e6f0d6a3SAbel Vesa 	&bcm_cn0,
1923e6f0d6a3SAbel Vesa };
1924e6f0d6a3SAbel Vesa 
1925e6f0d6a3SAbel Vesa static struct qcom_icc_node * const cnoc_main_nodes[] = {
1926e6f0d6a3SAbel Vesa 	[MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
1927e6f0d6a3SAbel Vesa 	[MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
1928e6f0d6a3SAbel Vesa 	[SLAVE_AOSS] = &qhs_aoss,
1929e6f0d6a3SAbel Vesa 	[SLAVE_TME_CFG] = &qhs_tme_cfg,
1930e6f0d6a3SAbel Vesa 	[SLAVE_CNOC_CFG] = &qss_cfg,
1931e6f0d6a3SAbel Vesa 	[SLAVE_DDRSS_CFG] = &qss_ddrss_cfg,
1932e6f0d6a3SAbel Vesa 	[SLAVE_BOOT_IMEM] = &qxs_boot_imem,
1933e6f0d6a3SAbel Vesa 	[SLAVE_IMEM] = &qxs_imem,
1934e6f0d6a3SAbel Vesa 	[SLAVE_PCIE_0] = &xs_pcie_0,
1935e6f0d6a3SAbel Vesa 	[SLAVE_PCIE_1] = &xs_pcie_1,
1936e6f0d6a3SAbel Vesa };
1937e6f0d6a3SAbel Vesa 
1938e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_cnoc_main = {
1939e6f0d6a3SAbel Vesa 	.nodes = cnoc_main_nodes,
1940e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(cnoc_main_nodes),
1941e6f0d6a3SAbel Vesa 	.bcms = cnoc_main_bcms,
1942e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(cnoc_main_bcms),
1943e6f0d6a3SAbel Vesa };
1944e6f0d6a3SAbel Vesa 
1945e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const gem_noc_bcms[] = {
1946e6f0d6a3SAbel Vesa 	&bcm_sh0,
1947e6f0d6a3SAbel Vesa 	&bcm_sh1,
1948e6f0d6a3SAbel Vesa 	&bcm_sh0_disp,
1949e6f0d6a3SAbel Vesa 	&bcm_sh1_disp,
1950e6f0d6a3SAbel Vesa 	&bcm_sh0_cam_ife_0,
1951e6f0d6a3SAbel Vesa 	&bcm_sh1_cam_ife_0,
1952e6f0d6a3SAbel Vesa 	&bcm_sh0_cam_ife_1,
1953e6f0d6a3SAbel Vesa 	&bcm_sh1_cam_ife_1,
1954e6f0d6a3SAbel Vesa 	&bcm_sh0_cam_ife_2,
1955e6f0d6a3SAbel Vesa 	&bcm_sh1_cam_ife_2,
1956e6f0d6a3SAbel Vesa };
1957e6f0d6a3SAbel Vesa 
1958e6f0d6a3SAbel Vesa static struct qcom_icc_node * const gem_noc_nodes[] = {
1959e6f0d6a3SAbel Vesa 	[MASTER_GPU_TCU] = &alm_gpu_tcu,
1960e6f0d6a3SAbel Vesa 	[MASTER_SYS_TCU] = &alm_sys_tcu,
1961e6f0d6a3SAbel Vesa 	[MASTER_APPSS_PROC] = &chm_apps,
1962e6f0d6a3SAbel Vesa 	[MASTER_GFX3D] = &qnm_gpu,
1963e6f0d6a3SAbel Vesa 	[MASTER_LPASS_GEM_NOC] = &qnm_lpass_gemnoc,
1964e6f0d6a3SAbel Vesa 	[MASTER_MSS_PROC] = &qnm_mdsp,
1965e6f0d6a3SAbel Vesa 	[MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
1966e6f0d6a3SAbel Vesa 	[MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
1967e6f0d6a3SAbel Vesa 	[MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc,
1968e6f0d6a3SAbel Vesa 	[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
1969e6f0d6a3SAbel Vesa 	[MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
1970e6f0d6a3SAbel Vesa 	[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
1971e6f0d6a3SAbel Vesa 	[SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
1972e6f0d6a3SAbel Vesa 	[SLAVE_LLCC] = &qns_llcc,
1973e6f0d6a3SAbel Vesa 	[SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
1974e6f0d6a3SAbel Vesa 	[MASTER_MNOC_HF_MEM_NOC_DISP] = &qnm_mnoc_hf_disp,
1975e6f0d6a3SAbel Vesa 	[MASTER_ANOC_PCIE_GEM_NOC_DISP] = &qnm_pcie_disp,
1976e6f0d6a3SAbel Vesa 	[SLAVE_LLCC_DISP] = &qns_llcc_disp,
1977e6f0d6a3SAbel Vesa 	[MASTER_MNOC_HF_MEM_NOC_CAM_IFE_0] = &qnm_mnoc_hf_cam_ife_0,
1978e6f0d6a3SAbel Vesa 	[MASTER_MNOC_SF_MEM_NOC_CAM_IFE_0] = &qnm_mnoc_sf_cam_ife_0,
1979e6f0d6a3SAbel Vesa 	[MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_0] = &qnm_pcie_cam_ife_0,
1980e6f0d6a3SAbel Vesa 	[SLAVE_LLCC_CAM_IFE_0] = &qns_llcc_cam_ife_0,
1981e6f0d6a3SAbel Vesa 	[MASTER_MNOC_HF_MEM_NOC_CAM_IFE_1] = &qnm_mnoc_hf_cam_ife_1,
1982e6f0d6a3SAbel Vesa 	[MASTER_MNOC_SF_MEM_NOC_CAM_IFE_1] = &qnm_mnoc_sf_cam_ife_1,
1983e6f0d6a3SAbel Vesa 	[MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_1] = &qnm_pcie_cam_ife_1,
1984e6f0d6a3SAbel Vesa 	[SLAVE_LLCC_CAM_IFE_1] = &qns_llcc_cam_ife_1,
1985e6f0d6a3SAbel Vesa 	[MASTER_MNOC_HF_MEM_NOC_CAM_IFE_2] = &qnm_mnoc_hf_cam_ife_2,
1986e6f0d6a3SAbel Vesa 	[MASTER_MNOC_SF_MEM_NOC_CAM_IFE_2] = &qnm_mnoc_sf_cam_ife_2,
1987e6f0d6a3SAbel Vesa 	[MASTER_ANOC_PCIE_GEM_NOC_CAM_IFE_2] = &qnm_pcie_cam_ife_2,
1988e6f0d6a3SAbel Vesa 	[SLAVE_LLCC_CAM_IFE_2] = &qns_llcc_cam_ife_2,
1989e6f0d6a3SAbel Vesa };
1990e6f0d6a3SAbel Vesa 
1991e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_gem_noc = {
1992e6f0d6a3SAbel Vesa 	.nodes = gem_noc_nodes,
1993e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(gem_noc_nodes),
1994e6f0d6a3SAbel Vesa 	.bcms = gem_noc_bcms,
1995e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(gem_noc_bcms),
1996e6f0d6a3SAbel Vesa };
1997e6f0d6a3SAbel Vesa 
1998e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = {
1999e6f0d6a3SAbel Vesa };
2000e6f0d6a3SAbel Vesa 
2001e6f0d6a3SAbel Vesa static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
2002e6f0d6a3SAbel Vesa 	[MASTER_LPIAON_NOC] = &qnm_lpiaon_noc,
2003e6f0d6a3SAbel Vesa 	[SLAVE_LPASS_GEM_NOC] = &qns_lpass_ag_noc_gemnoc,
2004e6f0d6a3SAbel Vesa };
2005e6f0d6a3SAbel Vesa 
2006e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_lpass_ag_noc = {
2007e6f0d6a3SAbel Vesa 	.nodes = lpass_ag_noc_nodes,
2008e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
2009e6f0d6a3SAbel Vesa 	.bcms = lpass_ag_noc_bcms,
2010e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms),
2011e6f0d6a3SAbel Vesa };
2012e6f0d6a3SAbel Vesa 
2013e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const lpass_lpiaon_noc_bcms[] = {
2014e6f0d6a3SAbel Vesa 	&bcm_lp0,
2015e6f0d6a3SAbel Vesa };
2016e6f0d6a3SAbel Vesa 
2017e6f0d6a3SAbel Vesa static struct qcom_icc_node * const lpass_lpiaon_noc_nodes[] = {
2018e6f0d6a3SAbel Vesa 	[MASTER_LPASS_LPINOC] = &qnm_lpass_lpinoc,
2019e6f0d6a3SAbel Vesa 	[SLAVE_LPIAON_NOC_LPASS_AG_NOC] = &qns_lpass_aggnoc,
2020e6f0d6a3SAbel Vesa };
2021e6f0d6a3SAbel Vesa 
2022e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_lpass_lpiaon_noc = {
2023e6f0d6a3SAbel Vesa 	.nodes = lpass_lpiaon_noc_nodes,
2024e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(lpass_lpiaon_noc_nodes),
2025e6f0d6a3SAbel Vesa 	.bcms = lpass_lpiaon_noc_bcms,
2026e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(lpass_lpiaon_noc_bcms),
2027e6f0d6a3SAbel Vesa };
2028e6f0d6a3SAbel Vesa 
2029e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const lpass_lpicx_noc_bcms[] = {
2030e6f0d6a3SAbel Vesa };
2031e6f0d6a3SAbel Vesa 
2032e6f0d6a3SAbel Vesa static struct qcom_icc_node * const lpass_lpicx_noc_nodes[] = {
2033e6f0d6a3SAbel Vesa 	[MASTER_LPASS_PROC] = &qxm_lpinoc_dsp_axim,
2034e6f0d6a3SAbel Vesa 	[SLAVE_LPICX_NOC_LPIAON_NOC] = &qns_lpi_aon_noc,
2035e6f0d6a3SAbel Vesa };
2036e6f0d6a3SAbel Vesa 
2037e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_lpass_lpicx_noc = {
2038e6f0d6a3SAbel Vesa 	.nodes = lpass_lpicx_noc_nodes,
2039e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(lpass_lpicx_noc_nodes),
2040e6f0d6a3SAbel Vesa 	.bcms = lpass_lpicx_noc_bcms,
2041e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(lpass_lpicx_noc_bcms),
2042e6f0d6a3SAbel Vesa };
2043e6f0d6a3SAbel Vesa 
2044e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const mc_virt_bcms[] = {
2045e6f0d6a3SAbel Vesa 	&bcm_acv,
2046e6f0d6a3SAbel Vesa 	&bcm_mc0,
2047e6f0d6a3SAbel Vesa 	&bcm_acv_disp,
2048e6f0d6a3SAbel Vesa 	&bcm_mc0_disp,
2049e6f0d6a3SAbel Vesa 	&bcm_acv_cam_ife_0,
2050e6f0d6a3SAbel Vesa 	&bcm_mc0_cam_ife_0,
2051e6f0d6a3SAbel Vesa 	&bcm_acv_cam_ife_1,
2052e6f0d6a3SAbel Vesa 	&bcm_mc0_cam_ife_1,
2053e6f0d6a3SAbel Vesa 	&bcm_acv_cam_ife_2,
2054e6f0d6a3SAbel Vesa 	&bcm_mc0_cam_ife_2,
2055e6f0d6a3SAbel Vesa };
2056e6f0d6a3SAbel Vesa 
2057e6f0d6a3SAbel Vesa static struct qcom_icc_node * const mc_virt_nodes[] = {
2058e6f0d6a3SAbel Vesa 	[MASTER_LLCC] = &llcc_mc,
2059e6f0d6a3SAbel Vesa 	[SLAVE_EBI1] = &ebi,
2060e6f0d6a3SAbel Vesa 	[MASTER_LLCC_DISP] = &llcc_mc_disp,
2061e6f0d6a3SAbel Vesa 	[SLAVE_EBI1_DISP] = &ebi_disp,
2062e6f0d6a3SAbel Vesa 	[MASTER_LLCC_CAM_IFE_0] = &llcc_mc_cam_ife_0,
2063e6f0d6a3SAbel Vesa 	[SLAVE_EBI1_CAM_IFE_0] = &ebi_cam_ife_0,
2064e6f0d6a3SAbel Vesa 	[MASTER_LLCC_CAM_IFE_1] = &llcc_mc_cam_ife_1,
2065e6f0d6a3SAbel Vesa 	[SLAVE_EBI1_CAM_IFE_1] = &ebi_cam_ife_1,
2066e6f0d6a3SAbel Vesa 	[MASTER_LLCC_CAM_IFE_2] = &llcc_mc_cam_ife_2,
2067e6f0d6a3SAbel Vesa 	[SLAVE_EBI1_CAM_IFE_2] = &ebi_cam_ife_2,
2068e6f0d6a3SAbel Vesa };
2069e6f0d6a3SAbel Vesa 
2070e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_mc_virt = {
2071e6f0d6a3SAbel Vesa 	.nodes = mc_virt_nodes,
2072e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(mc_virt_nodes),
2073e6f0d6a3SAbel Vesa 	.bcms = mc_virt_bcms,
2074e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(mc_virt_bcms),
2075e6f0d6a3SAbel Vesa };
2076e6f0d6a3SAbel Vesa 
2077e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
2078e6f0d6a3SAbel Vesa 	&bcm_mm0,
2079e6f0d6a3SAbel Vesa 	&bcm_mm1,
2080e6f0d6a3SAbel Vesa 	&bcm_mm0_disp,
2081e6f0d6a3SAbel Vesa 	&bcm_mm0_cam_ife_0,
2082e6f0d6a3SAbel Vesa 	&bcm_mm1_cam_ife_0,
2083e6f0d6a3SAbel Vesa 	&bcm_mm0_cam_ife_1,
2084e6f0d6a3SAbel Vesa 	&bcm_mm1_cam_ife_1,
2085e6f0d6a3SAbel Vesa 	&bcm_mm0_cam_ife_2,
2086e6f0d6a3SAbel Vesa 	&bcm_mm1_cam_ife_2,
2087e6f0d6a3SAbel Vesa };
2088e6f0d6a3SAbel Vesa 
2089e6f0d6a3SAbel Vesa static struct qcom_icc_node * const mmss_noc_nodes[] = {
2090e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
2091e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_ICP] = &qnm_camnoc_icp,
2092e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_SF] = &qnm_camnoc_sf,
2093e6f0d6a3SAbel Vesa 	[MASTER_MDP] = &qnm_mdp,
2094e6f0d6a3SAbel Vesa 	[MASTER_CDSP_HCP] = &qnm_vapss_hcp,
2095e6f0d6a3SAbel Vesa 	[MASTER_VIDEO] = &qnm_video,
2096e6f0d6a3SAbel Vesa 	[MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu,
2097e6f0d6a3SAbel Vesa 	[MASTER_VIDEO_PROC] = &qnm_video_cvp,
2098e6f0d6a3SAbel Vesa 	[MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu,
2099e6f0d6a3SAbel Vesa 	[MASTER_CNOC_MNOC_CFG] = &qsm_mnoc_cfg,
2100e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
2101e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
2102e6f0d6a3SAbel Vesa 	[SLAVE_SERVICE_MNOC] = &srvc_mnoc,
2103e6f0d6a3SAbel Vesa 	[MASTER_MDP_DISP] = &qnm_mdp_disp,
2104e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_HF_MEM_NOC_DISP] = &qns_mem_noc_hf_disp,
2105e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_HF_CAM_IFE_0] = &qnm_camnoc_hf_cam_ife_0,
2106e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_ICP_CAM_IFE_0] = &qnm_camnoc_icp_cam_ife_0,
2107e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_SF_CAM_IFE_0] = &qnm_camnoc_sf_cam_ife_0,
2108e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_0] = &qns_mem_noc_hf_cam_ife_0,
2109e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_0] = &qns_mem_noc_sf_cam_ife_0,
2110e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_HF_CAM_IFE_1] = &qnm_camnoc_hf_cam_ife_1,
2111e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_ICP_CAM_IFE_1] = &qnm_camnoc_icp_cam_ife_1,
2112e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_SF_CAM_IFE_1] = &qnm_camnoc_sf_cam_ife_1,
2113e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_1] = &qns_mem_noc_hf_cam_ife_1,
2114e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_1] = &qns_mem_noc_sf_cam_ife_1,
2115e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_HF_CAM_IFE_2] = &qnm_camnoc_hf_cam_ife_2,
2116e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_ICP_CAM_IFE_2] = &qnm_camnoc_icp_cam_ife_2,
2117e6f0d6a3SAbel Vesa 	[MASTER_CAMNOC_SF_CAM_IFE_2] = &qnm_camnoc_sf_cam_ife_2,
2118e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_HF_MEM_NOC_CAM_IFE_2] = &qns_mem_noc_hf_cam_ife_2,
2119e6f0d6a3SAbel Vesa 	[SLAVE_MNOC_SF_MEM_NOC_CAM_IFE_2] = &qns_mem_noc_sf_cam_ife_2,
2120e6f0d6a3SAbel Vesa };
2121e6f0d6a3SAbel Vesa 
2122e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_mmss_noc = {
2123e6f0d6a3SAbel Vesa 	.nodes = mmss_noc_nodes,
2124e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(mmss_noc_nodes),
2125e6f0d6a3SAbel Vesa 	.bcms = mmss_noc_bcms,
2126e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(mmss_noc_bcms),
2127e6f0d6a3SAbel Vesa };
2128e6f0d6a3SAbel Vesa 
2129e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const nsp_noc_bcms[] = {
2130e6f0d6a3SAbel Vesa 	&bcm_co0,
2131e6f0d6a3SAbel Vesa };
2132e6f0d6a3SAbel Vesa 
2133e6f0d6a3SAbel Vesa static struct qcom_icc_node * const nsp_noc_nodes[] = {
2134e6f0d6a3SAbel Vesa 	[MASTER_CDSP_PROC] = &qxm_nsp,
2135e6f0d6a3SAbel Vesa 	[SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc,
2136e6f0d6a3SAbel Vesa };
2137e6f0d6a3SAbel Vesa 
2138e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_nsp_noc = {
2139e6f0d6a3SAbel Vesa 	.nodes = nsp_noc_nodes,
2140e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(nsp_noc_nodes),
2141e6f0d6a3SAbel Vesa 	.bcms = nsp_noc_bcms,
2142e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(nsp_noc_bcms),
2143e6f0d6a3SAbel Vesa };
2144e6f0d6a3SAbel Vesa 
2145e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const pcie_anoc_bcms[] = {
2146e6f0d6a3SAbel Vesa 	&bcm_sn7,
2147e6f0d6a3SAbel Vesa };
2148e6f0d6a3SAbel Vesa 
2149e6f0d6a3SAbel Vesa static struct qcom_icc_node * const pcie_anoc_nodes[] = {
2150e6f0d6a3SAbel Vesa 	[MASTER_PCIE_ANOC_CFG] = &qsm_pcie_anoc_cfg,
2151e6f0d6a3SAbel Vesa 	[MASTER_PCIE_0] = &xm_pcie3_0,
2152e6f0d6a3SAbel Vesa 	[MASTER_PCIE_1] = &xm_pcie3_1,
2153e6f0d6a3SAbel Vesa 	[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc,
2154e6f0d6a3SAbel Vesa 	[SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc,
2155e6f0d6a3SAbel Vesa };
2156e6f0d6a3SAbel Vesa 
2157e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_pcie_anoc = {
2158e6f0d6a3SAbel Vesa 	.nodes = pcie_anoc_nodes,
2159e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
2160e6f0d6a3SAbel Vesa 	.bcms = pcie_anoc_bcms,
2161e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(pcie_anoc_bcms),
2162e6f0d6a3SAbel Vesa };
2163e6f0d6a3SAbel Vesa 
2164e6f0d6a3SAbel Vesa static struct qcom_icc_bcm * const system_noc_bcms[] = {
2165e6f0d6a3SAbel Vesa 	&bcm_sn0,
2166e6f0d6a3SAbel Vesa 	&bcm_sn1,
2167e6f0d6a3SAbel Vesa 	&bcm_sn2,
2168e6f0d6a3SAbel Vesa 	&bcm_sn3,
2169e6f0d6a3SAbel Vesa };
2170e6f0d6a3SAbel Vesa 
2171e6f0d6a3SAbel Vesa static struct qcom_icc_node * const system_noc_nodes[] = {
2172e6f0d6a3SAbel Vesa 	[MASTER_GIC_AHB] = &qhm_gic,
2173e6f0d6a3SAbel Vesa 	[MASTER_A1NOC_SNOC] = &qnm_aggre1_noc,
2174e6f0d6a3SAbel Vesa 	[MASTER_A2NOC_SNOC] = &qnm_aggre2_noc,
2175e6f0d6a3SAbel Vesa 	[MASTER_GIC] = &xm_gic,
2176e6f0d6a3SAbel Vesa 	[SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
2177e6f0d6a3SAbel Vesa 	[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
2178e6f0d6a3SAbel Vesa };
2179e6f0d6a3SAbel Vesa 
2180e6f0d6a3SAbel Vesa static const struct qcom_icc_desc sm8550_system_noc = {
2181e6f0d6a3SAbel Vesa 	.nodes = system_noc_nodes,
2182e6f0d6a3SAbel Vesa 	.num_nodes = ARRAY_SIZE(system_noc_nodes),
2183e6f0d6a3SAbel Vesa 	.bcms = system_noc_bcms,
2184e6f0d6a3SAbel Vesa 	.num_bcms = ARRAY_SIZE(system_noc_bcms),
2185e6f0d6a3SAbel Vesa };
2186e6f0d6a3SAbel Vesa 
2187e6f0d6a3SAbel Vesa static const struct of_device_id qnoc_of_match[] = {
2188e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-aggre1-noc",
2189e6f0d6a3SAbel Vesa 	  .data = &sm8550_aggre1_noc},
2190e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-aggre2-noc",
2191e6f0d6a3SAbel Vesa 	  .data = &sm8550_aggre2_noc},
2192e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-clk-virt",
2193e6f0d6a3SAbel Vesa 	  .data = &sm8550_clk_virt},
2194e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-config-noc",
2195e6f0d6a3SAbel Vesa 	  .data = &sm8550_config_noc},
2196e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-cnoc-main",
2197e6f0d6a3SAbel Vesa 	  .data = &sm8550_cnoc_main},
2198e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-gem-noc",
2199e6f0d6a3SAbel Vesa 	  .data = &sm8550_gem_noc},
2200e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-lpass-ag-noc",
2201e6f0d6a3SAbel Vesa 	  .data = &sm8550_lpass_ag_noc},
2202e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-lpass-lpiaon-noc",
2203e6f0d6a3SAbel Vesa 	  .data = &sm8550_lpass_lpiaon_noc},
2204e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-lpass-lpicx-noc",
2205e6f0d6a3SAbel Vesa 	  .data = &sm8550_lpass_lpicx_noc},
2206e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-mc-virt",
2207e6f0d6a3SAbel Vesa 	  .data = &sm8550_mc_virt},
2208e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-mmss-noc",
2209e6f0d6a3SAbel Vesa 	  .data = &sm8550_mmss_noc},
2210e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-nsp-noc",
2211e6f0d6a3SAbel Vesa 	  .data = &sm8550_nsp_noc},
2212e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-pcie-anoc",
2213e6f0d6a3SAbel Vesa 	  .data = &sm8550_pcie_anoc},
2214e6f0d6a3SAbel Vesa 	{ .compatible = "qcom,sm8550-system-noc",
2215e6f0d6a3SAbel Vesa 	  .data = &sm8550_system_noc},
2216e6f0d6a3SAbel Vesa 	{ }
2217e6f0d6a3SAbel Vesa };
2218e6f0d6a3SAbel Vesa MODULE_DEVICE_TABLE(of, qnoc_of_match);
2219e6f0d6a3SAbel Vesa 
2220e6f0d6a3SAbel Vesa static struct platform_driver qnoc_driver = {
22210d00cd11SDmitry Baryshkov 	.probe = qcom_icc_rpmh_probe,
22220d00cd11SDmitry Baryshkov 	.remove = qcom_icc_rpmh_remove,
2223e6f0d6a3SAbel Vesa 	.driver = {
2224e6f0d6a3SAbel Vesa 		.name = "qnoc-sm8550",
2225e6f0d6a3SAbel Vesa 		.of_match_table = qnoc_of_match,
2226*008cf5d1SKonrad Dybcio 		.sync_state = icc_sync_state,
2227e6f0d6a3SAbel Vesa 	},
2228e6f0d6a3SAbel Vesa };
2229e6f0d6a3SAbel Vesa 
qnoc_driver_init(void)2230e6f0d6a3SAbel Vesa static int __init qnoc_driver_init(void)
2231e6f0d6a3SAbel Vesa {
2232e6f0d6a3SAbel Vesa 	return platform_driver_register(&qnoc_driver);
2233e6f0d6a3SAbel Vesa }
2234e6f0d6a3SAbel Vesa core_initcall(qnoc_driver_init);
2235e6f0d6a3SAbel Vesa 
qnoc_driver_exit(void)2236e6f0d6a3SAbel Vesa static void __exit qnoc_driver_exit(void)
2237e6f0d6a3SAbel Vesa {
2238e6f0d6a3SAbel Vesa 	platform_driver_unregister(&qnoc_driver);
2239e6f0d6a3SAbel Vesa }
2240e6f0d6a3SAbel Vesa module_exit(qnoc_driver_exit);
2241e6f0d6a3SAbel Vesa 
2242e6f0d6a3SAbel Vesa MODULE_DESCRIPTION("sm8550 NoC driver");
2243e6f0d6a3SAbel Vesa MODULE_LICENSE("GPL");
2244