1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
5 * Copyright (c) 2024, Linaro Ltd.
8 #include <linux/device.h>
9 #include <linux/interconnect.h>
10 #include <linux/interconnect-provider.h>
12 #include <linux/module.h>
13 #include <linux/of_device.h>
14 #include <linux/of_platform.h>
15 #include <linux/platform_device.h>
16 #include <linux/sort.h>
17 #include <dt-bindings/interconnect/qcom,sar2130p-rpmh.h>
19 #include "bcm-voter.h"
20 #include "icc-common.h"
24 SAR2130P_MASTER_QUP_CORE_0
,
25 SAR2130P_MASTER_QUP_CORE_1
,
26 SAR2130P_MASTER_GEM_NOC_CNOC
,
27 SAR2130P_MASTER_GEM_NOC_PCIE_SNOC
,
28 SAR2130P_MASTER_QDSS_DAP
,
29 SAR2130P_MASTER_GPU_TCU
,
30 SAR2130P_MASTER_SYS_TCU
,
31 SAR2130P_MASTER_APPSS_PROC
,
32 SAR2130P_MASTER_GFX3D
,
33 SAR2130P_MASTER_MNOC_HF_MEM_NOC
,
34 SAR2130P_MASTER_MNOC_SF_MEM_NOC
,
35 SAR2130P_MASTER_COMPUTE_NOC
,
36 SAR2130P_MASTER_ANOC_PCIE_GEM_NOC
,
37 SAR2130P_MASTER_SNOC_GC_MEM_NOC
,
38 SAR2130P_MASTER_SNOC_SF_MEM_NOC
,
39 SAR2130P_MASTER_WLAN_Q6
,
40 SAR2130P_MASTER_CNOC_LPASS_AG_NOC
,
41 SAR2130P_MASTER_LPASS_PROC
,
43 SAR2130P_MASTER_CAMNOC_HF
,
44 SAR2130P_MASTER_CAMNOC_ICP
,
45 SAR2130P_MASTER_CAMNOC_SF
,
48 SAR2130P_MASTER_CNOC_MNOC_CFG
,
49 SAR2130P_MASTER_VIDEO
,
50 SAR2130P_MASTER_VIDEO_CV_PROC
,
51 SAR2130P_MASTER_VIDEO_PROC
,
52 SAR2130P_MASTER_VIDEO_V_PROC
,
53 SAR2130P_MASTER_CDSP_NOC_CFG
,
54 SAR2130P_MASTER_CDSP_PROC
,
55 SAR2130P_MASTER_PCIE_0
,
56 SAR2130P_MASTER_PCIE_1
,
57 SAR2130P_MASTER_GIC_AHB
,
58 SAR2130P_MASTER_QDSS_BAM
,
59 SAR2130P_MASTER_QSPI_0
,
60 SAR2130P_MASTER_QUP_0
,
61 SAR2130P_MASTER_QUP_1
,
62 SAR2130P_MASTER_A2NOC_SNOC
,
63 SAR2130P_MASTER_CNOC_DATAPATH
,
64 SAR2130P_MASTER_LPASS_ANOC
,
65 SAR2130P_MASTER_SNOC_CFG
,
66 SAR2130P_MASTER_CRYPTO
,
67 SAR2130P_MASTER_PIMEM
,
69 SAR2130P_MASTER_QDSS_ETR
,
70 SAR2130P_MASTER_QDSS_ETR_1
,
71 SAR2130P_MASTER_SDCC_1
,
72 SAR2130P_MASTER_USB3_0
,
73 SAR2130P_SLAVE_QUP_CORE_0
,
74 SAR2130P_SLAVE_QUP_CORE_1
,
75 SAR2130P_SLAVE_AHB2PHY_SOUTH
,
77 SAR2130P_SLAVE_CAMERA_CFG
,
78 SAR2130P_SLAVE_CLK_CTL
,
79 SAR2130P_SLAVE_CDSP_CFG
,
80 SAR2130P_SLAVE_RBCPR_CX_CFG
,
81 SAR2130P_SLAVE_RBCPR_MMCX_CFG
,
82 SAR2130P_SLAVE_RBCPR_MXA_CFG
,
83 SAR2130P_SLAVE_RBCPR_MXC_CFG
,
84 SAR2130P_SLAVE_CPR_NSPCX
,
85 SAR2130P_SLAVE_CRYPTO_0_CFG
,
86 SAR2130P_SLAVE_CX_RDPM
,
87 SAR2130P_SLAVE_DISPLAY_CFG
,
88 SAR2130P_SLAVE_GFX3D_CFG
,
89 SAR2130P_SLAVE_IMEM_CFG
,
90 SAR2130P_SLAVE_IPC_ROUTER_CFG
,
92 SAR2130P_SLAVE_MX_RDPM
,
93 SAR2130P_SLAVE_PCIE_0_CFG
,
94 SAR2130P_SLAVE_PCIE_1_CFG
,
96 SAR2130P_SLAVE_PIMEM_CFG
,
98 SAR2130P_SLAVE_QDSS_CFG
,
99 SAR2130P_SLAVE_QSPI_0
,
100 SAR2130P_SLAVE_QUP_0
,
101 SAR2130P_SLAVE_QUP_1
,
102 SAR2130P_SLAVE_SDCC_1
,
105 SAR2130P_SLAVE_TME_CFG
,
106 SAR2130P_SLAVE_USB3_0
,
107 SAR2130P_SLAVE_VENUS_CFG
,
108 SAR2130P_SLAVE_VSENSE_CTRL_CFG
,
109 SAR2130P_SLAVE_WLAN_Q6_CFG
,
110 SAR2130P_SLAVE_DDRSS_CFG
,
111 SAR2130P_SLAVE_CNOC_MNOC_CFG
,
112 SAR2130P_SLAVE_SNOC_CFG
,
114 SAR2130P_SLAVE_PIMEM
,
115 SAR2130P_SLAVE_SERVICE_CNOC
,
116 SAR2130P_SLAVE_PCIE_0
,
117 SAR2130P_SLAVE_PCIE_1
,
118 SAR2130P_SLAVE_QDSS_STM
,
120 SAR2130P_SLAVE_GEM_NOC_CNOC
,
122 SAR2130P_SLAVE_MEM_NOC_PCIE_SNOC
,
123 SAR2130P_SLAVE_LPASS_CORE_CFG
,
124 SAR2130P_SLAVE_LPASS_LPI_CFG
,
125 SAR2130P_SLAVE_LPASS_MPU_CFG
,
126 SAR2130P_SLAVE_LPASS_TOP_CFG
,
127 SAR2130P_SLAVE_LPASS_SNOC
,
128 SAR2130P_SLAVE_SERVICES_LPASS_AML_NOC
,
129 SAR2130P_SLAVE_SERVICE_LPASS_AG_NOC
,
131 SAR2130P_SLAVE_MNOC_HF_MEM_NOC
,
132 SAR2130P_SLAVE_MNOC_SF_MEM_NOC
,
133 SAR2130P_SLAVE_SERVICE_MNOC
,
134 SAR2130P_SLAVE_CDSP_MEM_NOC
,
135 SAR2130P_SLAVE_SERVICE_NSP_NOC
,
136 SAR2130P_SLAVE_ANOC_PCIE_GEM_NOC
,
137 SAR2130P_SLAVE_A2NOC_SNOC
,
138 SAR2130P_SLAVE_SNOC_GEM_NOC_GC
,
139 SAR2130P_SLAVE_SNOC_GEM_NOC_SF
,
140 SAR2130P_SLAVE_SERVICE_SNOC
,
143 static const struct regmap_config icc_regmap_config
= {
150 static struct qcom_icc_node qup0_core_master
= {
151 .name
= "qup0_core_master",
152 .id
= SAR2130P_MASTER_QUP_CORE_0
,
156 .links
= { SAR2130P_SLAVE_QUP_CORE_0
},
159 static struct qcom_icc_node qup1_core_master
= {
160 .name
= "qup1_core_master",
161 .id
= SAR2130P_MASTER_QUP_CORE_1
,
165 .links
= { SAR2130P_SLAVE_QUP_CORE_1
},
168 static struct qcom_icc_node qnm_gemnoc_cnoc
= {
169 .name
= "qnm_gemnoc_cnoc",
170 .id
= SAR2130P_MASTER_GEM_NOC_CNOC
,
174 .links
= { SAR2130P_SLAVE_AHB2PHY_SOUTH
, SAR2130P_SLAVE_AOSS
,
175 SAR2130P_SLAVE_CAMERA_CFG
, SAR2130P_SLAVE_CLK_CTL
,
176 SAR2130P_SLAVE_CDSP_CFG
, SAR2130P_SLAVE_RBCPR_CX_CFG
,
177 SAR2130P_SLAVE_RBCPR_MMCX_CFG
, SAR2130P_SLAVE_RBCPR_MXA_CFG
,
178 SAR2130P_SLAVE_RBCPR_MXC_CFG
, SAR2130P_SLAVE_CPR_NSPCX
,
179 SAR2130P_SLAVE_CRYPTO_0_CFG
, SAR2130P_SLAVE_CX_RDPM
,
180 SAR2130P_SLAVE_DISPLAY_CFG
, SAR2130P_SLAVE_GFX3D_CFG
,
181 SAR2130P_SLAVE_IMEM_CFG
, SAR2130P_SLAVE_IPC_ROUTER_CFG
,
182 SAR2130P_SLAVE_LPASS
, SAR2130P_SLAVE_MX_RDPM
,
183 SAR2130P_SLAVE_PCIE_0_CFG
, SAR2130P_SLAVE_PCIE_1_CFG
,
184 SAR2130P_SLAVE_PDM
, SAR2130P_SLAVE_PIMEM_CFG
,
185 SAR2130P_SLAVE_PRNG
, SAR2130P_SLAVE_QDSS_CFG
,
186 SAR2130P_SLAVE_QSPI_0
, SAR2130P_SLAVE_QUP_0
,
187 SAR2130P_SLAVE_QUP_1
, SAR2130P_SLAVE_SDCC_1
,
188 SAR2130P_SLAVE_TCSR
, SAR2130P_SLAVE_TLMM
,
189 SAR2130P_SLAVE_TME_CFG
, SAR2130P_SLAVE_USB3_0
,
190 SAR2130P_SLAVE_VENUS_CFG
, SAR2130P_SLAVE_VSENSE_CTRL_CFG
,
191 SAR2130P_SLAVE_WLAN_Q6_CFG
, SAR2130P_SLAVE_DDRSS_CFG
,
192 SAR2130P_SLAVE_CNOC_MNOC_CFG
, SAR2130P_SLAVE_SNOC_CFG
,
193 SAR2130P_SLAVE_IMEM
, SAR2130P_SLAVE_PIMEM
,
194 SAR2130P_SLAVE_SERVICE_CNOC
, SAR2130P_SLAVE_QDSS_STM
,
195 SAR2130P_SLAVE_TCU
},
198 static struct qcom_icc_node qnm_gemnoc_pcie
= {
199 .name
= "qnm_gemnoc_pcie",
200 .id
= SAR2130P_MASTER_GEM_NOC_PCIE_SNOC
,
204 .links
= { SAR2130P_SLAVE_PCIE_0
, SAR2130P_SLAVE_PCIE_1
},
207 static struct qcom_icc_node xm_qdss_dap
= {
208 .name
= "xm_qdss_dap",
209 .id
= SAR2130P_MASTER_QDSS_DAP
,
213 .links
= { SAR2130P_SLAVE_AHB2PHY_SOUTH
, SAR2130P_SLAVE_AOSS
,
214 SAR2130P_SLAVE_CAMERA_CFG
, SAR2130P_SLAVE_CLK_CTL
,
215 SAR2130P_SLAVE_CDSP_CFG
, SAR2130P_SLAVE_RBCPR_CX_CFG
,
216 SAR2130P_SLAVE_RBCPR_MMCX_CFG
, SAR2130P_SLAVE_RBCPR_MXA_CFG
,
217 SAR2130P_SLAVE_RBCPR_MXC_CFG
, SAR2130P_SLAVE_CPR_NSPCX
,
218 SAR2130P_SLAVE_CRYPTO_0_CFG
, SAR2130P_SLAVE_CX_RDPM
,
219 SAR2130P_SLAVE_DISPLAY_CFG
, SAR2130P_SLAVE_GFX3D_CFG
,
220 SAR2130P_SLAVE_IMEM_CFG
, SAR2130P_SLAVE_IPC_ROUTER_CFG
,
221 SAR2130P_SLAVE_LPASS
, SAR2130P_SLAVE_MX_RDPM
,
222 SAR2130P_SLAVE_PCIE_0_CFG
, SAR2130P_SLAVE_PCIE_1_CFG
,
223 SAR2130P_SLAVE_PDM
, SAR2130P_SLAVE_PIMEM_CFG
,
224 SAR2130P_SLAVE_PRNG
, SAR2130P_SLAVE_QDSS_CFG
,
225 SAR2130P_SLAVE_QSPI_0
, SAR2130P_SLAVE_QUP_0
,
226 SAR2130P_SLAVE_QUP_1
, SAR2130P_SLAVE_SDCC_1
,
227 SAR2130P_SLAVE_TCSR
, SAR2130P_SLAVE_TLMM
,
228 SAR2130P_SLAVE_TME_CFG
, SAR2130P_SLAVE_USB3_0
,
229 SAR2130P_SLAVE_VENUS_CFG
, SAR2130P_SLAVE_VSENSE_CTRL_CFG
,
230 SAR2130P_SLAVE_WLAN_Q6_CFG
, SAR2130P_SLAVE_DDRSS_CFG
,
231 SAR2130P_SLAVE_CNOC_MNOC_CFG
, SAR2130P_SLAVE_SNOC_CFG
,
232 SAR2130P_SLAVE_IMEM
, SAR2130P_SLAVE_PIMEM
,
233 SAR2130P_SLAVE_SERVICE_CNOC
, SAR2130P_SLAVE_QDSS_STM
,
234 SAR2130P_SLAVE_TCU
},
237 static const struct qcom_icc_qosbox alm_gpu_tcu_qos
= {
239 .port_offsets
= { 0x9e000 },
242 .prio_fwd_disable
= 1,
245 static struct qcom_icc_node alm_gpu_tcu
= {
246 .name
= "alm_gpu_tcu",
247 .id
= SAR2130P_MASTER_GPU_TCU
,
250 .qosbox
= &alm_gpu_tcu_qos
,
252 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
255 static const struct qcom_icc_qosbox alm_sys_tcu_qos
= {
257 .port_offsets
= { 0x9f000 },
260 .prio_fwd_disable
= 1,
263 static struct qcom_icc_node alm_sys_tcu
= {
264 .name
= "alm_sys_tcu",
265 .id
= SAR2130P_MASTER_SYS_TCU
,
268 .qosbox
= &alm_sys_tcu_qos
,
270 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
273 static struct qcom_icc_node chm_apps
= {
275 .id
= SAR2130P_MASTER_APPSS_PROC
,
279 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
,
280 SAR2130P_SLAVE_MEM_NOC_PCIE_SNOC
},
283 static const struct qcom_icc_qosbox qnm_gpu_qos
= {
285 .port_offsets
= { 0xe000, 0x4e000 },
288 .prio_fwd_disable
= 1,
291 static struct qcom_icc_node qnm_gpu
= {
293 .id
= SAR2130P_MASTER_GFX3D
,
296 .qosbox
= &qnm_gpu_qos
,
298 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
301 static const struct qcom_icc_qosbox qnm_mnoc_hf_qos
= {
303 .port_offsets
= { 0xf000, 0x4f000 },
308 static struct qcom_icc_node qnm_mnoc_hf
= {
309 .name
= "qnm_mnoc_hf",
310 .id
= SAR2130P_MASTER_MNOC_HF_MEM_NOC
,
313 .qosbox
= &qnm_mnoc_hf_qos
,
315 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
318 static const struct qcom_icc_qosbox qnm_mnoc_sf_qos
= {
320 .port_offsets
= { 0x9d000 },
325 static struct qcom_icc_node qnm_mnoc_sf
= {
326 .name
= "qnm_mnoc_sf",
327 .id
= SAR2130P_MASTER_MNOC_SF_MEM_NOC
,
330 .qosbox
= &qnm_mnoc_sf_qos
,
332 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
335 static const struct qcom_icc_qosbox qnm_nsp_gemnoc_qos
= {
337 .port_offsets
= { 0x10000, 0x50000 },
340 .prio_fwd_disable
= 1,
343 static struct qcom_icc_node qnm_nsp_gemnoc
= {
344 .name
= "qnm_nsp_gemnoc",
345 .id
= SAR2130P_MASTER_COMPUTE_NOC
,
348 .qosbox
= &qnm_nsp_gemnoc_qos
,
350 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
353 static const struct qcom_icc_qosbox qnm_pcie_qos
= {
355 .port_offsets
= { 0xa2000 },
360 static struct qcom_icc_node qnm_pcie
= {
362 .id
= SAR2130P_MASTER_ANOC_PCIE_GEM_NOC
,
365 .qosbox
= &qnm_pcie_qos
,
367 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
},
370 static const struct qcom_icc_qosbox qnm_snoc_gc_qos
= {
372 .port_offsets
= { 0xa0000 },
377 static struct qcom_icc_node qnm_snoc_gc
= {
378 .name
= "qnm_snoc_gc",
379 .id
= SAR2130P_MASTER_SNOC_GC_MEM_NOC
,
382 .qosbox
= &qnm_snoc_gc_qos
,
384 .links
= { SAR2130P_SLAVE_LLCC
},
387 static const struct qcom_icc_qosbox qnm_snoc_sf_qos
= {
389 .port_offsets
= { 0xa1000 },
394 static struct qcom_icc_node qnm_snoc_sf
= {
395 .name
= "qnm_snoc_sf",
396 .id
= SAR2130P_MASTER_SNOC_SF_MEM_NOC
,
399 .qosbox
= &qnm_snoc_sf_qos
,
401 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
,
402 SAR2130P_SLAVE_MEM_NOC_PCIE_SNOC
},
405 static struct qcom_icc_node qxm_wlan_q6
= {
406 .name
= "qxm_wlan_q6",
407 .id
= SAR2130P_MASTER_WLAN_Q6
,
411 .links
= { SAR2130P_SLAVE_GEM_NOC_CNOC
, SAR2130P_SLAVE_LLCC
,
412 SAR2130P_SLAVE_MEM_NOC_PCIE_SNOC
},
415 static struct qcom_icc_node qhm_config_noc
= {
416 .name
= "qhm_config_noc",
417 .id
= SAR2130P_MASTER_CNOC_LPASS_AG_NOC
,
421 .links
= { SAR2130P_SLAVE_LPASS_CORE_CFG
, SAR2130P_SLAVE_LPASS_LPI_CFG
,
422 SAR2130P_SLAVE_LPASS_MPU_CFG
, SAR2130P_SLAVE_LPASS_TOP_CFG
,
423 SAR2130P_SLAVE_SERVICES_LPASS_AML_NOC
, SAR2130P_SLAVE_SERVICE_LPASS_AG_NOC
},
426 static struct qcom_icc_node qxm_lpass_dsp
= {
427 .name
= "qxm_lpass_dsp",
428 .id
= SAR2130P_MASTER_LPASS_PROC
,
432 .links
= { SAR2130P_SLAVE_LPASS_TOP_CFG
, SAR2130P_SLAVE_LPASS_SNOC
,
433 SAR2130P_SLAVE_SERVICES_LPASS_AML_NOC
, SAR2130P_SLAVE_SERVICE_LPASS_AG_NOC
},
436 static struct qcom_icc_node llcc_mc
= {
438 .id
= SAR2130P_MASTER_LLCC
,
442 .links
= { SAR2130P_SLAVE_EBI1
},
445 static const struct qcom_icc_qosbox qnm_camnoc_hf_qos
= {
447 .port_offsets
= { 0x1c000 },
452 static struct qcom_icc_node qnm_camnoc_hf
= {
453 .name
= "qnm_camnoc_hf",
454 .id
= SAR2130P_MASTER_CAMNOC_HF
,
457 .qosbox
= &qnm_camnoc_hf_qos
,
459 .links
= { SAR2130P_SLAVE_MNOC_HF_MEM_NOC
},
462 static const struct qcom_icc_qosbox qnm_camnoc_icp_qos
= {
464 .port_offsets
= { 0x1c080 },
469 static struct qcom_icc_node qnm_camnoc_icp
= {
470 .name
= "qnm_camnoc_icp",
471 .id
= SAR2130P_MASTER_CAMNOC_ICP
,
474 .qosbox
= &qnm_camnoc_icp_qos
,
476 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
479 static const struct qcom_icc_qosbox qnm_camnoc_sf_qos
= {
481 .port_offsets
= { 0x1c100 },
486 static struct qcom_icc_node qnm_camnoc_sf
= {
487 .name
= "qnm_camnoc_sf",
488 .id
= SAR2130P_MASTER_CAMNOC_SF
,
491 .qosbox
= &qnm_camnoc_sf_qos
,
493 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
496 static const struct qcom_icc_qosbox qnm_lsr_qos
= {
498 .port_offsets
= { 0x1f000, 0x1f080 },
503 static struct qcom_icc_node qnm_lsr
= {
505 .id
= SAR2130P_MASTER_LSR
,
508 .qosbox
= &qnm_lsr_qos
,
510 .links
= { SAR2130P_SLAVE_MNOC_HF_MEM_NOC
},
513 static const struct qcom_icc_qosbox qnm_mdp_qos
= {
515 .port_offsets
= { 0x1d000, 0x1d080 },
520 static struct qcom_icc_node qnm_mdp
= {
522 .id
= SAR2130P_MASTER_MDP
,
525 .qosbox
= &qnm_mdp_qos
,
527 .links
= { SAR2130P_SLAVE_MNOC_HF_MEM_NOC
},
530 static struct qcom_icc_node qnm_mnoc_cfg
= {
531 .name
= "qnm_mnoc_cfg",
532 .id
= SAR2130P_MASTER_CNOC_MNOC_CFG
,
536 .links
= { SAR2130P_SLAVE_SERVICE_MNOC
},
539 static const struct qcom_icc_qosbox qnm_video_qos
= {
541 .port_offsets
= { 0x1e000, 0x1e080 },
546 static struct qcom_icc_node qnm_video
= {
548 .id
= SAR2130P_MASTER_VIDEO
,
551 .qosbox
= &qnm_video_qos
,
553 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
556 static const struct qcom_icc_qosbox qnm_video_cv_cpu_qos
= {
558 .port_offsets
= { 0x1e100 },
563 static struct qcom_icc_node qnm_video_cv_cpu
= {
564 .name
= "qnm_video_cv_cpu",
565 .id
= SAR2130P_MASTER_VIDEO_CV_PROC
,
568 .qosbox
= &qnm_video_cv_cpu_qos
,
570 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
573 static const struct qcom_icc_qosbox qnm_video_cvp_qos
= {
575 .port_offsets
= { 0x1e180 },
580 static struct qcom_icc_node qnm_video_cvp
= {
581 .name
= "qnm_video_cvp",
582 .id
= SAR2130P_MASTER_VIDEO_PROC
,
585 .qosbox
= &qnm_video_cvp_qos
,
587 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
590 static const struct qcom_icc_qosbox qnm_video_v_cpu_qos
= {
592 .port_offsets
= { 0x1e200 },
597 static struct qcom_icc_node qnm_video_v_cpu
= {
598 .name
= "qnm_video_v_cpu",
599 .id
= SAR2130P_MASTER_VIDEO_V_PROC
,
602 .qosbox
= &qnm_video_v_cpu_qos
,
604 .links
= { SAR2130P_SLAVE_MNOC_SF_MEM_NOC
},
607 static struct qcom_icc_node qhm_nsp_noc_config
= {
608 .name
= "qhm_nsp_noc_config",
609 .id
= SAR2130P_MASTER_CDSP_NOC_CFG
,
613 .links
= { SAR2130P_SLAVE_SERVICE_NSP_NOC
},
616 static struct qcom_icc_node qxm_nsp
= {
618 .id
= SAR2130P_MASTER_CDSP_PROC
,
622 .links
= { SAR2130P_SLAVE_CDSP_MEM_NOC
},
625 static const struct qcom_icc_qosbox xm_pcie3_0_qos
= {
627 .port_offsets
= { 0x9000 },
630 .prio_fwd_disable
= 1,
633 static struct qcom_icc_node xm_pcie3_0
= {
634 .name
= "xm_pcie3_0",
635 .id
= SAR2130P_MASTER_PCIE_0
,
638 .qosbox
= &xm_pcie3_0_qos
,
640 .links
= { SAR2130P_SLAVE_ANOC_PCIE_GEM_NOC
},
643 static const struct qcom_icc_qosbox xm_pcie3_1_qos
= {
645 .port_offsets
= { 0xa000 },
648 .prio_fwd_disable
= 1,
651 static struct qcom_icc_node xm_pcie3_1
= {
652 .name
= "xm_pcie3_1",
653 .id
= SAR2130P_MASTER_PCIE_1
,
656 .qosbox
= &xm_pcie3_1_qos
,
658 .links
= { SAR2130P_SLAVE_ANOC_PCIE_GEM_NOC
},
661 static const struct qcom_icc_qosbox qhm_gic_qos
= {
663 .port_offsets
= { 0x1d000 },
666 .prio_fwd_disable
= 1,
669 static struct qcom_icc_node qhm_gic
= {
671 .id
= SAR2130P_MASTER_GIC_AHB
,
674 .qosbox
= &qhm_gic_qos
,
676 .links
= { SAR2130P_SLAVE_SNOC_GEM_NOC_SF
},
679 static const struct qcom_icc_qosbox qhm_qdss_bam_qos
= {
681 .port_offsets
= { 0x22000 },
684 .prio_fwd_disable
= 1,
687 static struct qcom_icc_node qhm_qdss_bam
= {
688 .name
= "qhm_qdss_bam",
689 .id
= SAR2130P_MASTER_QDSS_BAM
,
692 .qosbox
= &qhm_qdss_bam_qos
,
694 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
697 static const struct qcom_icc_qosbox qhm_qspi_qos
= {
699 .port_offsets
= { 0x23000 },
702 .prio_fwd_disable
= 1,
705 static struct qcom_icc_node qhm_qspi
= {
707 .id
= SAR2130P_MASTER_QSPI_0
,
710 .qosbox
= &qhm_qspi_qos
,
712 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
715 static const struct qcom_icc_qosbox qhm_qup0_qos
= {
717 .port_offsets
= { 0x24000 },
720 .prio_fwd_disable
= 1,
723 static struct qcom_icc_node qhm_qup0
= {
725 .id
= SAR2130P_MASTER_QUP_0
,
728 .qosbox
= &qhm_qup0_qos
,
730 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
733 static const struct qcom_icc_qosbox qhm_qup1_qos
= {
735 .port_offsets
= { 0x25000 },
738 .prio_fwd_disable
= 1,
741 static struct qcom_icc_node qhm_qup1
= {
743 .id
= SAR2130P_MASTER_QUP_1
,
746 .qosbox
= &qhm_qup1_qos
,
748 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
751 static struct qcom_icc_node qnm_aggre2_noc
= {
752 .name
= "qnm_aggre2_noc",
753 .id
= SAR2130P_MASTER_A2NOC_SNOC
,
757 .links
= { SAR2130P_SLAVE_SNOC_GEM_NOC_SF
},
760 static const struct qcom_icc_qosbox qnm_cnoc_datapath_qos
= {
762 .port_offsets
= { 0x26000 },
765 .prio_fwd_disable
= 1,
768 static struct qcom_icc_node qnm_cnoc_datapath
= {
769 .name
= "qnm_cnoc_datapath",
770 .id
= SAR2130P_MASTER_CNOC_DATAPATH
,
773 .qosbox
= &qnm_cnoc_datapath_qos
,
775 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
778 static const struct qcom_icc_qosbox qnm_lpass_noc_qos
= {
780 .port_offsets
= { 0x1e000 },
783 .prio_fwd_disable
= 1,
786 static struct qcom_icc_node qnm_lpass_noc
= {
787 .name
= "qnm_lpass_noc",
788 .id
= SAR2130P_MASTER_LPASS_ANOC
,
791 .qosbox
= &qnm_lpass_noc_qos
,
793 .links
= { SAR2130P_SLAVE_SNOC_GEM_NOC_SF
},
796 static struct qcom_icc_node qnm_snoc_cfg
= {
797 .name
= "qnm_snoc_cfg",
798 .id
= SAR2130P_MASTER_SNOC_CFG
,
802 .links
= { SAR2130P_SLAVE_SERVICE_SNOC
},
805 static const struct qcom_icc_qosbox qxm_crypto_qos
= {
807 .port_offsets
= { 0x27000 },
810 .prio_fwd_disable
= 1,
813 static struct qcom_icc_node qxm_crypto
= {
814 .name
= "qxm_crypto",
815 .id
= SAR2130P_MASTER_CRYPTO
,
818 .qosbox
= &qxm_crypto_qos
,
820 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
823 static const struct qcom_icc_qosbox qxm_pimem_qos
= {
825 .port_offsets
= { 0x1f000 },
828 .prio_fwd_disable
= 1,
831 static struct qcom_icc_node qxm_pimem
= {
833 .id
= SAR2130P_MASTER_PIMEM
,
836 .qosbox
= &qxm_pimem_qos
,
838 .links
= { SAR2130P_SLAVE_SNOC_GEM_NOC_GC
},
841 static const struct qcom_icc_qosbox xm_gic_qos
= {
843 .port_offsets
= { 0x21000 },
846 .prio_fwd_disable
= 1,
849 static struct qcom_icc_node xm_gic
= {
851 .id
= SAR2130P_MASTER_GIC
,
854 .qosbox
= &xm_gic_qos
,
856 .links
= { SAR2130P_SLAVE_SNOC_GEM_NOC_GC
},
859 static const struct qcom_icc_qosbox xm_qdss_etr_0_qos
= {
861 .port_offsets
= { 0x1b000 },
864 .prio_fwd_disable
= 1,
867 static struct qcom_icc_node xm_qdss_etr_0
= {
868 .name
= "xm_qdss_etr_0",
869 .id
= SAR2130P_MASTER_QDSS_ETR
,
872 .qosbox
= &xm_qdss_etr_0_qos
,
874 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
877 static const struct qcom_icc_qosbox xm_qdss_etr_1_qos
= {
879 .port_offsets
= { 0x1c000 },
882 .prio_fwd_disable
= 1,
885 static struct qcom_icc_node xm_qdss_etr_1
= {
886 .name
= "xm_qdss_etr_1",
887 .id
= SAR2130P_MASTER_QDSS_ETR_1
,
890 .qosbox
= &xm_qdss_etr_1_qos
,
892 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
895 static const struct qcom_icc_qosbox xm_sdc1_qos
= {
897 .port_offsets
= { 0x29000 },
900 .prio_fwd_disable
= 1,
903 static struct qcom_icc_node xm_sdc1
= {
905 .id
= SAR2130P_MASTER_SDCC_1
,
908 .qosbox
= &xm_sdc1_qos
,
910 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
913 static const struct qcom_icc_qosbox xm_usb3_0_qos
= {
915 .port_offsets
= { 0x28000 },
918 .prio_fwd_disable
= 1,
921 static struct qcom_icc_node xm_usb3_0
= {
923 .id
= SAR2130P_MASTER_USB3_0
,
926 .qosbox
= &xm_usb3_0_qos
,
928 .links
= { SAR2130P_SLAVE_A2NOC_SNOC
},
931 static struct qcom_icc_node qup0_core_slave
= {
932 .name
= "qup0_core_slave",
933 .id
= SAR2130P_SLAVE_QUP_CORE_0
,
939 static struct qcom_icc_node qup1_core_slave
= {
940 .name
= "qup1_core_slave",
941 .id
= SAR2130P_SLAVE_QUP_CORE_1
,
947 static struct qcom_icc_node qhs_ahb2phy0
= {
948 .name
= "qhs_ahb2phy0",
949 .id
= SAR2130P_SLAVE_AHB2PHY_SOUTH
,
955 static struct qcom_icc_node qhs_aoss
= {
957 .id
= SAR2130P_SLAVE_AOSS
,
963 static struct qcom_icc_node qhs_camera_cfg
= {
964 .name
= "qhs_camera_cfg",
965 .id
= SAR2130P_SLAVE_CAMERA_CFG
,
971 static struct qcom_icc_node qhs_clk_ctl
= {
972 .name
= "qhs_clk_ctl",
973 .id
= SAR2130P_SLAVE_CLK_CTL
,
979 static struct qcom_icc_node qhs_compute_cfg
= {
980 .name
= "qhs_compute_cfg",
981 .id
= SAR2130P_SLAVE_CDSP_CFG
,
985 .links
= { SAR2130P_MASTER_CDSP_NOC_CFG
},
988 static struct qcom_icc_node qhs_cpr_cx
= {
989 .name
= "qhs_cpr_cx",
990 .id
= SAR2130P_SLAVE_RBCPR_CX_CFG
,
996 static struct qcom_icc_node qhs_cpr_mmcx
= {
997 .name
= "qhs_cpr_mmcx",
998 .id
= SAR2130P_SLAVE_RBCPR_MMCX_CFG
,
1004 static struct qcom_icc_node qhs_cpr_mxa
= {
1005 .name
= "qhs_cpr_mxa",
1006 .id
= SAR2130P_SLAVE_RBCPR_MXA_CFG
,
1012 static struct qcom_icc_node qhs_cpr_mxc
= {
1013 .name
= "qhs_cpr_mxc",
1014 .id
= SAR2130P_SLAVE_RBCPR_MXC_CFG
,
1020 static struct qcom_icc_node qhs_cpr_nspcx
= {
1021 .name
= "qhs_cpr_nspcx",
1022 .id
= SAR2130P_SLAVE_CPR_NSPCX
,
1028 static struct qcom_icc_node qhs_crypto0_cfg
= {
1029 .name
= "qhs_crypto0_cfg",
1030 .id
= SAR2130P_SLAVE_CRYPTO_0_CFG
,
1036 static struct qcom_icc_node qhs_cx_rdpm
= {
1037 .name
= "qhs_cx_rdpm",
1038 .id
= SAR2130P_SLAVE_CX_RDPM
,
1044 static struct qcom_icc_node qhs_display_cfg
= {
1045 .name
= "qhs_display_cfg",
1046 .id
= SAR2130P_SLAVE_DISPLAY_CFG
,
1052 static struct qcom_icc_node qhs_gpuss_cfg
= {
1053 .name
= "qhs_gpuss_cfg",
1054 .id
= SAR2130P_SLAVE_GFX3D_CFG
,
1060 static struct qcom_icc_node qhs_imem_cfg
= {
1061 .name
= "qhs_imem_cfg",
1062 .id
= SAR2130P_SLAVE_IMEM_CFG
,
1068 static struct qcom_icc_node qhs_ipc_router
= {
1069 .name
= "qhs_ipc_router",
1070 .id
= SAR2130P_SLAVE_IPC_ROUTER_CFG
,
1076 static struct qcom_icc_node qhs_lpass_cfg
= {
1077 .name
= "qhs_lpass_cfg",
1078 .id
= SAR2130P_SLAVE_LPASS
,
1082 .links
= { SAR2130P_MASTER_CNOC_LPASS_AG_NOC
},
1085 static struct qcom_icc_node qhs_mx_rdpm
= {
1086 .name
= "qhs_mx_rdpm",
1087 .id
= SAR2130P_SLAVE_MX_RDPM
,
1093 static struct qcom_icc_node qhs_pcie0_cfg
= {
1094 .name
= "qhs_pcie0_cfg",
1095 .id
= SAR2130P_SLAVE_PCIE_0_CFG
,
1101 static struct qcom_icc_node qhs_pcie1_cfg
= {
1102 .name
= "qhs_pcie1_cfg",
1103 .id
= SAR2130P_SLAVE_PCIE_1_CFG
,
1109 static struct qcom_icc_node qhs_pdm
= {
1111 .id
= SAR2130P_SLAVE_PDM
,
1117 static struct qcom_icc_node qhs_pimem_cfg
= {
1118 .name
= "qhs_pimem_cfg",
1119 .id
= SAR2130P_SLAVE_PIMEM_CFG
,
1125 static struct qcom_icc_node qhs_prng
= {
1127 .id
= SAR2130P_SLAVE_PRNG
,
1133 static struct qcom_icc_node qhs_qdss_cfg
= {
1134 .name
= "qhs_qdss_cfg",
1135 .id
= SAR2130P_SLAVE_QDSS_CFG
,
1141 static struct qcom_icc_node qhs_qspi
= {
1143 .id
= SAR2130P_SLAVE_QSPI_0
,
1149 static struct qcom_icc_node qhs_qup0
= {
1151 .id
= SAR2130P_SLAVE_QUP_0
,
1157 static struct qcom_icc_node qhs_qup1
= {
1159 .id
= SAR2130P_SLAVE_QUP_1
,
1165 static struct qcom_icc_node qhs_sdc1
= {
1167 .id
= SAR2130P_SLAVE_SDCC_1
,
1173 static struct qcom_icc_node qhs_tcsr
= {
1175 .id
= SAR2130P_SLAVE_TCSR
,
1181 static struct qcom_icc_node qhs_tlmm
= {
1183 .id
= SAR2130P_SLAVE_TLMM
,
1189 static struct qcom_icc_node qhs_tme_cfg
= {
1190 .name
= "qhs_tme_cfg",
1191 .id
= SAR2130P_SLAVE_TME_CFG
,
1197 static struct qcom_icc_node qhs_usb3_0
= {
1198 .name
= "qhs_usb3_0",
1199 .id
= SAR2130P_SLAVE_USB3_0
,
1205 static struct qcom_icc_node qhs_venus_cfg
= {
1206 .name
= "qhs_venus_cfg",
1207 .id
= SAR2130P_SLAVE_VENUS_CFG
,
1213 static struct qcom_icc_node qhs_vsense_ctrl_cfg
= {
1214 .name
= "qhs_vsense_ctrl_cfg",
1215 .id
= SAR2130P_SLAVE_VSENSE_CTRL_CFG
,
1221 static struct qcom_icc_node qhs_wlan_q6
= {
1222 .name
= "qhs_wlan_q6",
1223 .id
= SAR2130P_SLAVE_WLAN_Q6_CFG
,
1229 static struct qcom_icc_node qns_ddrss_cfg
= {
1230 .name
= "qns_ddrss_cfg",
1231 .id
= SAR2130P_SLAVE_DDRSS_CFG
,
1237 static struct qcom_icc_node qns_mnoc_cfg
= {
1238 .name
= "qns_mnoc_cfg",
1239 .id
= SAR2130P_SLAVE_CNOC_MNOC_CFG
,
1243 .links
= { SAR2130P_MASTER_CNOC_MNOC_CFG
},
1246 static struct qcom_icc_node qns_snoc_cfg
= {
1247 .name
= "qns_snoc_cfg",
1248 .id
= SAR2130P_SLAVE_SNOC_CFG
,
1252 .links
= { SAR2130P_MASTER_SNOC_CFG
},
1255 static struct qcom_icc_node qxs_imem
= {
1257 .id
= SAR2130P_SLAVE_IMEM
,
1263 static struct qcom_icc_node qxs_pimem
= {
1264 .name
= "qxs_pimem",
1265 .id
= SAR2130P_SLAVE_PIMEM
,
1271 static struct qcom_icc_node srvc_cnoc
= {
1272 .name
= "srvc_cnoc",
1273 .id
= SAR2130P_SLAVE_SERVICE_CNOC
,
1279 static struct qcom_icc_node xs_pcie_0
= {
1280 .name
= "xs_pcie_0",
1281 .id
= SAR2130P_SLAVE_PCIE_0
,
1287 static struct qcom_icc_node xs_pcie_1
= {
1288 .name
= "xs_pcie_1",
1289 .id
= SAR2130P_SLAVE_PCIE_1
,
1295 static struct qcom_icc_node xs_qdss_stm
= {
1296 .name
= "xs_qdss_stm",
1297 .id
= SAR2130P_SLAVE_QDSS_STM
,
1303 static struct qcom_icc_node xs_sys_tcu_cfg
= {
1304 .name
= "xs_sys_tcu_cfg",
1305 .id
= SAR2130P_SLAVE_TCU
,
1311 static struct qcom_icc_node qns_gem_noc_cnoc
= {
1312 .name
= "qns_gem_noc_cnoc",
1313 .id
= SAR2130P_SLAVE_GEM_NOC_CNOC
,
1317 .links
= { SAR2130P_MASTER_GEM_NOC_CNOC
},
1320 static struct qcom_icc_node qns_llcc
= {
1322 .id
= SAR2130P_SLAVE_LLCC
,
1326 .links
= { SAR2130P_MASTER_LLCC
},
1329 static struct qcom_icc_node qns_pcie
= {
1331 .id
= SAR2130P_SLAVE_MEM_NOC_PCIE_SNOC
,
1335 .links
= { SAR2130P_MASTER_GEM_NOC_PCIE_SNOC
},
1338 static struct qcom_icc_node qhs_lpass_core
= {
1339 .name
= "qhs_lpass_core",
1340 .id
= SAR2130P_SLAVE_LPASS_CORE_CFG
,
1346 static struct qcom_icc_node qhs_lpass_lpi
= {
1347 .name
= "qhs_lpass_lpi",
1348 .id
= SAR2130P_SLAVE_LPASS_LPI_CFG
,
1354 static struct qcom_icc_node qhs_lpass_mpu
= {
1355 .name
= "qhs_lpass_mpu",
1356 .id
= SAR2130P_SLAVE_LPASS_MPU_CFG
,
1362 static struct qcom_icc_node qhs_lpass_top
= {
1363 .name
= "qhs_lpass_top",
1364 .id
= SAR2130P_SLAVE_LPASS_TOP_CFG
,
1370 static struct qcom_icc_node qns_sysnoc
= {
1371 .name
= "qns_sysnoc",
1372 .id
= SAR2130P_SLAVE_LPASS_SNOC
,
1376 .links
= { SAR2130P_MASTER_LPASS_ANOC
},
1379 static struct qcom_icc_node srvc_niu_aml_noc
= {
1380 .name
= "srvc_niu_aml_noc",
1381 .id
= SAR2130P_SLAVE_SERVICES_LPASS_AML_NOC
,
1387 static struct qcom_icc_node srvc_niu_lpass_agnoc
= {
1388 .name
= "srvc_niu_lpass_agnoc",
1389 .id
= SAR2130P_SLAVE_SERVICE_LPASS_AG_NOC
,
1395 static struct qcom_icc_node ebi
= {
1397 .id
= SAR2130P_SLAVE_EBI1
,
1403 static struct qcom_icc_node qns_mem_noc_hf
= {
1404 .name
= "qns_mem_noc_hf",
1405 .id
= SAR2130P_SLAVE_MNOC_HF_MEM_NOC
,
1409 .links
= { SAR2130P_MASTER_MNOC_HF_MEM_NOC
},
1412 static struct qcom_icc_node qns_mem_noc_sf
= {
1413 .name
= "qns_mem_noc_sf",
1414 .id
= SAR2130P_SLAVE_MNOC_SF_MEM_NOC
,
1418 .links
= { SAR2130P_MASTER_MNOC_SF_MEM_NOC
},
1421 static struct qcom_icc_node srvc_mnoc
= {
1422 .name
= "srvc_mnoc",
1423 .id
= SAR2130P_SLAVE_SERVICE_MNOC
,
1429 static struct qcom_icc_node qns_nsp_gemnoc
= {
1430 .name
= "qns_nsp_gemnoc",
1431 .id
= SAR2130P_SLAVE_CDSP_MEM_NOC
,
1435 .links
= { SAR2130P_MASTER_COMPUTE_NOC
},
1438 static struct qcom_icc_node service_nsp_noc
= {
1439 .name
= "service_nsp_noc",
1440 .id
= SAR2130P_SLAVE_SERVICE_NSP_NOC
,
1446 static struct qcom_icc_node qns_pcie_mem_noc
= {
1447 .name
= "qns_pcie_mem_noc",
1448 .id
= SAR2130P_SLAVE_ANOC_PCIE_GEM_NOC
,
1452 .links
= { SAR2130P_MASTER_ANOC_PCIE_GEM_NOC
},
1455 static struct qcom_icc_node qns_a2noc_snoc
= {
1456 .name
= "qns_a2noc_snoc",
1457 .id
= SAR2130P_SLAVE_A2NOC_SNOC
,
1461 .links
= { SAR2130P_MASTER_A2NOC_SNOC
},
1464 static struct qcom_icc_node qns_gemnoc_gc
= {
1465 .name
= "qns_gemnoc_gc",
1466 .id
= SAR2130P_SLAVE_SNOC_GEM_NOC_GC
,
1470 .links
= { SAR2130P_MASTER_SNOC_GC_MEM_NOC
},
1473 static struct qcom_icc_node qns_gemnoc_sf
= {
1474 .name
= "qns_gemnoc_sf",
1475 .id
= SAR2130P_SLAVE_SNOC_GEM_NOC_SF
,
1479 .links
= { SAR2130P_MASTER_SNOC_SF_MEM_NOC
},
1482 static struct qcom_icc_node srvc_snoc
= {
1483 .name
= "srvc_snoc",
1484 .id
= SAR2130P_SLAVE_SERVICE_SNOC
,
1490 static struct qcom_icc_bcm bcm_acv
= {
1492 .enable_mask
= BIT(3),
1497 static struct qcom_icc_bcm bcm_ce0
= {
1500 .nodes
= { &qxm_crypto
},
1503 static struct qcom_icc_bcm bcm_cn0
= {
1505 .enable_mask
= BIT(0),
1508 .nodes
= { &qnm_gemnoc_cnoc
, &qnm_gemnoc_pcie
,
1509 &xm_qdss_dap
, &qhs_ahb2phy0
,
1510 &qhs_aoss
, &qhs_camera_cfg
,
1511 &qhs_clk_ctl
, &qhs_compute_cfg
,
1512 &qhs_cpr_cx
, &qhs_cpr_mmcx
,
1513 &qhs_cpr_mxa
, &qhs_cpr_mxc
,
1514 &qhs_cpr_nspcx
, &qhs_crypto0_cfg
,
1515 &qhs_cx_rdpm
, &qhs_display_cfg
,
1516 &qhs_gpuss_cfg
, &qhs_imem_cfg
,
1517 &qhs_ipc_router
, &qhs_lpass_cfg
,
1518 &qhs_mx_rdpm
, &qhs_pcie0_cfg
,
1519 &qhs_pcie1_cfg
, &qhs_pdm
,
1520 &qhs_pimem_cfg
, &qhs_prng
,
1521 &qhs_qdss_cfg
, &qhs_qspi
,
1522 &qhs_qup0
, &qhs_qup1
,
1523 &qhs_sdc1
, &qhs_tcsr
,
1524 &qhs_tlmm
, &qhs_tme_cfg
,
1525 &qhs_usb3_0
, &qhs_venus_cfg
,
1526 &qhs_vsense_ctrl_cfg
, &qhs_wlan_q6
,
1527 &qns_ddrss_cfg
, &qns_mnoc_cfg
,
1528 &qns_snoc_cfg
, &qxs_imem
,
1529 &qxs_pimem
, &srvc_cnoc
,
1530 &xs_pcie_0
, &xs_pcie_1
,
1531 &xs_qdss_stm
, &xs_sys_tcu_cfg
},
1534 static struct qcom_icc_bcm bcm_co0
= {
1536 .enable_mask
= BIT(0),
1538 .nodes
= { &qxm_nsp
, &qns_nsp_gemnoc
},
1541 static struct qcom_icc_bcm bcm_mc0
= {
1548 static struct qcom_icc_bcm bcm_mm0
= {
1552 .nodes
= { &qns_mem_noc_hf
},
1555 static struct qcom_icc_bcm bcm_mm1
= {
1557 .enable_mask
= BIT(0),
1559 .nodes
= { &qnm_camnoc_hf
, &qnm_camnoc_icp
,
1560 &qnm_camnoc_sf
, &qnm_lsr
,
1561 &qnm_mdp
, &qnm_mnoc_cfg
,
1562 &qnm_video
, &qnm_video_cv_cpu
,
1563 &qnm_video_cvp
, &qnm_video_v_cpu
,
1567 static struct qcom_icc_bcm bcm_qup0
= {
1572 .nodes
= { &qup0_core_slave
},
1575 static struct qcom_icc_bcm bcm_qup1
= {
1580 .nodes
= { &qup1_core_slave
},
1583 static struct qcom_icc_bcm bcm_sh0
= {
1587 .nodes
= { &qns_llcc
},
1590 static struct qcom_icc_bcm bcm_sh1
= {
1592 .enable_mask
= BIT(0),
1594 .nodes
= { &alm_gpu_tcu
, &alm_sys_tcu
,
1595 &chm_apps
, &qnm_gpu
,
1596 &qnm_mnoc_hf
, &qnm_mnoc_sf
,
1597 &qnm_nsp_gemnoc
, &qnm_pcie
,
1598 &qnm_snoc_gc
, &qnm_snoc_sf
,
1599 &qxm_wlan_q6
, &qns_gem_noc_cnoc
,
1603 static struct qcom_icc_bcm bcm_sn0
= {
1607 .nodes
= { &qns_gemnoc_sf
},
1610 static struct qcom_icc_bcm bcm_sn1
= {
1612 .enable_mask
= BIT(0),
1614 .nodes
= { &qhm_gic
, &qxm_pimem
,
1615 &xm_gic
, &qns_gemnoc_gc
},
1618 static struct qcom_icc_bcm bcm_sn3
= {
1621 .nodes
= { &qnm_aggre2_noc
},
1624 static struct qcom_icc_bcm bcm_sn4
= {
1627 .nodes
= { &qnm_lpass_noc
},
1630 static struct qcom_icc_bcm bcm_sn7
= {
1633 .nodes
= { &qns_pcie_mem_noc
},
1636 static struct qcom_icc_bcm
* const clk_virt_bcms
[] = {
1641 static struct qcom_icc_node
* const clk_virt_nodes
[] = {
1642 [MASTER_QUP_CORE_0
] = &qup0_core_master
,
1643 [MASTER_QUP_CORE_1
] = &qup1_core_master
,
1644 [SLAVE_QUP_CORE_0
] = &qup0_core_slave
,
1645 [SLAVE_QUP_CORE_1
] = &qup1_core_slave
,
1648 static const struct qcom_icc_desc sar2130p_clk_virt
= {
1649 .nodes
= clk_virt_nodes
,
1650 .num_nodes
= ARRAY_SIZE(clk_virt_nodes
),
1651 .bcms
= clk_virt_bcms
,
1652 .num_bcms
= ARRAY_SIZE(clk_virt_bcms
),
1655 static struct qcom_icc_bcm
* const config_noc_bcms
[] = {
1659 static struct qcom_icc_node
* const config_noc_nodes
[] = {
1660 [MASTER_GEM_NOC_CNOC
] = &qnm_gemnoc_cnoc
,
1661 [MASTER_GEM_NOC_PCIE_SNOC
] = &qnm_gemnoc_pcie
,
1662 [MASTER_QDSS_DAP
] = &xm_qdss_dap
,
1663 [SLAVE_AHB2PHY_SOUTH
] = &qhs_ahb2phy0
,
1664 [SLAVE_AOSS
] = &qhs_aoss
,
1665 [SLAVE_CAMERA_CFG
] = &qhs_camera_cfg
,
1666 [SLAVE_CLK_CTL
] = &qhs_clk_ctl
,
1667 [SLAVE_CDSP_CFG
] = &qhs_compute_cfg
,
1668 [SLAVE_RBCPR_CX_CFG
] = &qhs_cpr_cx
,
1669 [SLAVE_RBCPR_MMCX_CFG
] = &qhs_cpr_mmcx
,
1670 [SLAVE_RBCPR_MXA_CFG
] = &qhs_cpr_mxa
,
1671 [SLAVE_RBCPR_MXC_CFG
] = &qhs_cpr_mxc
,
1672 [SLAVE_CPR_NSPCX
] = &qhs_cpr_nspcx
,
1673 [SLAVE_CRYPTO_0_CFG
] = &qhs_crypto0_cfg
,
1674 [SLAVE_CX_RDPM
] = &qhs_cx_rdpm
,
1675 [SLAVE_DISPLAY_CFG
] = &qhs_display_cfg
,
1676 [SLAVE_GFX3D_CFG
] = &qhs_gpuss_cfg
,
1677 [SLAVE_IMEM_CFG
] = &qhs_imem_cfg
,
1678 [SLAVE_IPC_ROUTER_CFG
] = &qhs_ipc_router
,
1679 [SLAVE_LPASS
] = &qhs_lpass_cfg
,
1680 [SLAVE_MX_RDPM
] = &qhs_mx_rdpm
,
1681 [SLAVE_PCIE_0_CFG
] = &qhs_pcie0_cfg
,
1682 [SLAVE_PCIE_1_CFG
] = &qhs_pcie1_cfg
,
1683 [SLAVE_PDM
] = &qhs_pdm
,
1684 [SLAVE_PIMEM_CFG
] = &qhs_pimem_cfg
,
1685 [SLAVE_PRNG
] = &qhs_prng
,
1686 [SLAVE_QDSS_CFG
] = &qhs_qdss_cfg
,
1687 [SLAVE_QSPI_0
] = &qhs_qspi
,
1688 [SLAVE_QUP_0
] = &qhs_qup0
,
1689 [SLAVE_QUP_1
] = &qhs_qup1
,
1690 [SLAVE_SDCC_1
] = &qhs_sdc1
,
1691 [SLAVE_TCSR
] = &qhs_tcsr
,
1692 [SLAVE_TLMM
] = &qhs_tlmm
,
1693 [SLAVE_TME_CFG
] = &qhs_tme_cfg
,
1694 [SLAVE_USB3_0
] = &qhs_usb3_0
,
1695 [SLAVE_VENUS_CFG
] = &qhs_venus_cfg
,
1696 [SLAVE_VSENSE_CTRL_CFG
] = &qhs_vsense_ctrl_cfg
,
1697 [SLAVE_WLAN_Q6_CFG
] = &qhs_wlan_q6
,
1698 [SLAVE_DDRSS_CFG
] = &qns_ddrss_cfg
,
1699 [SLAVE_CNOC_MNOC_CFG
] = &qns_mnoc_cfg
,
1700 [SLAVE_SNOC_CFG
] = &qns_snoc_cfg
,
1701 [SLAVE_IMEM
] = &qxs_imem
,
1702 [SLAVE_PIMEM
] = &qxs_pimem
,
1703 [SLAVE_SERVICE_CNOC
] = &srvc_cnoc
,
1704 [SLAVE_PCIE_0
] = &xs_pcie_0
,
1705 [SLAVE_PCIE_1
] = &xs_pcie_1
,
1706 [SLAVE_QDSS_STM
] = &xs_qdss_stm
,
1707 [SLAVE_TCU
] = &xs_sys_tcu_cfg
,
1710 static const struct qcom_icc_desc sar2130p_config_noc
= {
1711 .config
= &icc_regmap_config
,
1712 .nodes
= config_noc_nodes
,
1713 .num_nodes
= ARRAY_SIZE(config_noc_nodes
),
1714 .bcms
= config_noc_bcms
,
1715 .num_bcms
= ARRAY_SIZE(config_noc_bcms
),
1718 static struct qcom_icc_bcm
* const gem_noc_bcms
[] = {
1723 static struct qcom_icc_node
* const gem_noc_nodes
[] = {
1724 [MASTER_GPU_TCU
] = &alm_gpu_tcu
,
1725 [MASTER_SYS_TCU
] = &alm_sys_tcu
,
1726 [MASTER_APPSS_PROC
] = &chm_apps
,
1727 [MASTER_GFX3D
] = &qnm_gpu
,
1728 [MASTER_MNOC_HF_MEM_NOC
] = &qnm_mnoc_hf
,
1729 [MASTER_MNOC_SF_MEM_NOC
] = &qnm_mnoc_sf
,
1730 [MASTER_COMPUTE_NOC
] = &qnm_nsp_gemnoc
,
1731 [MASTER_ANOC_PCIE_GEM_NOC
] = &qnm_pcie
,
1732 [MASTER_SNOC_GC_MEM_NOC
] = &qnm_snoc_gc
,
1733 [MASTER_SNOC_SF_MEM_NOC
] = &qnm_snoc_sf
,
1734 [MASTER_WLAN_Q6
] = &qxm_wlan_q6
,
1735 [SLAVE_GEM_NOC_CNOC
] = &qns_gem_noc_cnoc
,
1736 [SLAVE_LLCC
] = &qns_llcc
,
1737 [SLAVE_MEM_NOC_PCIE_SNOC
] = &qns_pcie
,
1740 static const struct qcom_icc_desc sar2130p_gem_noc
= {
1741 .config
= &icc_regmap_config
,
1742 .nodes
= gem_noc_nodes
,
1743 .num_nodes
= ARRAY_SIZE(gem_noc_nodes
),
1744 .bcms
= gem_noc_bcms
,
1745 .num_bcms
= ARRAY_SIZE(gem_noc_bcms
),
1748 static struct qcom_icc_bcm
* const lpass_ag_noc_bcms
[] = {
1751 static struct qcom_icc_node
* const lpass_ag_noc_nodes
[] = {
1752 [MASTER_CNOC_LPASS_AG_NOC
] = &qhm_config_noc
,
1753 [MASTER_LPASS_PROC
] = &qxm_lpass_dsp
,
1754 [SLAVE_LPASS_CORE_CFG
] = &qhs_lpass_core
,
1755 [SLAVE_LPASS_LPI_CFG
] = &qhs_lpass_lpi
,
1756 [SLAVE_LPASS_MPU_CFG
] = &qhs_lpass_mpu
,
1757 [SLAVE_LPASS_TOP_CFG
] = &qhs_lpass_top
,
1758 [SLAVE_LPASS_SNOC
] = &qns_sysnoc
,
1759 [SLAVE_SERVICES_LPASS_AML_NOC
] = &srvc_niu_aml_noc
,
1760 [SLAVE_SERVICE_LPASS_AG_NOC
] = &srvc_niu_lpass_agnoc
,
1763 static const struct qcom_icc_desc sar2130p_lpass_ag_noc
= {
1764 .config
= &icc_regmap_config
,
1765 .nodes
= lpass_ag_noc_nodes
,
1766 .num_nodes
= ARRAY_SIZE(lpass_ag_noc_nodes
),
1767 .bcms
= lpass_ag_noc_bcms
,
1768 .num_bcms
= ARRAY_SIZE(lpass_ag_noc_bcms
),
1771 static struct qcom_icc_bcm
* const mc_virt_bcms
[] = {
1776 static struct qcom_icc_node
* const mc_virt_nodes
[] = {
1777 [MASTER_LLCC
] = &llcc_mc
,
1778 [SLAVE_EBI1
] = &ebi
,
1781 static const struct qcom_icc_desc sar2130p_mc_virt
= {
1782 .nodes
= mc_virt_nodes
,
1783 .num_nodes
= ARRAY_SIZE(mc_virt_nodes
),
1784 .bcms
= mc_virt_bcms
,
1785 .num_bcms
= ARRAY_SIZE(mc_virt_bcms
),
1788 static struct qcom_icc_bcm
* const mmss_noc_bcms
[] = {
1793 static struct qcom_icc_node
* const mmss_noc_nodes
[] = {
1794 [MASTER_CAMNOC_HF
] = &qnm_camnoc_hf
,
1795 [MASTER_CAMNOC_ICP
] = &qnm_camnoc_icp
,
1796 [MASTER_CAMNOC_SF
] = &qnm_camnoc_sf
,
1797 [MASTER_LSR
] = &qnm_lsr
,
1798 [MASTER_MDP
] = &qnm_mdp
,
1799 [MASTER_CNOC_MNOC_CFG
] = &qnm_mnoc_cfg
,
1800 [MASTER_VIDEO
] = &qnm_video
,
1801 [MASTER_VIDEO_CV_PROC
] = &qnm_video_cv_cpu
,
1802 [MASTER_VIDEO_PROC
] = &qnm_video_cvp
,
1803 [MASTER_VIDEO_V_PROC
] = &qnm_video_v_cpu
,
1804 [SLAVE_MNOC_HF_MEM_NOC
] = &qns_mem_noc_hf
,
1805 [SLAVE_MNOC_SF_MEM_NOC
] = &qns_mem_noc_sf
,
1806 [SLAVE_SERVICE_MNOC
] = &srvc_mnoc
,
1809 static const struct qcom_icc_desc sar2130p_mmss_noc
= {
1810 .config
= &icc_regmap_config
,
1811 .nodes
= mmss_noc_nodes
,
1812 .num_nodes
= ARRAY_SIZE(mmss_noc_nodes
),
1813 .bcms
= mmss_noc_bcms
,
1814 .num_bcms
= ARRAY_SIZE(mmss_noc_bcms
),
1817 static struct qcom_icc_bcm
* const nsp_noc_bcms
[] = {
1821 static struct qcom_icc_node
* const nsp_noc_nodes
[] = {
1822 [MASTER_CDSP_NOC_CFG
] = &qhm_nsp_noc_config
,
1823 [MASTER_CDSP_PROC
] = &qxm_nsp
,
1824 [SLAVE_CDSP_MEM_NOC
] = &qns_nsp_gemnoc
,
1825 [SLAVE_SERVICE_NSP_NOC
] = &service_nsp_noc
,
1828 static const struct qcom_icc_desc sar2130p_nsp_noc
= {
1829 .config
= &icc_regmap_config
,
1830 .nodes
= nsp_noc_nodes
,
1831 .num_nodes
= ARRAY_SIZE(nsp_noc_nodes
),
1832 .bcms
= nsp_noc_bcms
,
1833 .num_bcms
= ARRAY_SIZE(nsp_noc_bcms
),
1836 static struct qcom_icc_bcm
* const pcie_anoc_bcms
[] = {
1840 static struct qcom_icc_node
* const pcie_anoc_nodes
[] = {
1841 [MASTER_PCIE_0
] = &xm_pcie3_0
,
1842 [MASTER_PCIE_1
] = &xm_pcie3_1
,
1843 [SLAVE_ANOC_PCIE_GEM_NOC
] = &qns_pcie_mem_noc
,
1846 static const struct qcom_icc_desc sar2130p_pcie_anoc
= {
1847 .config
= &icc_regmap_config
,
1848 .nodes
= pcie_anoc_nodes
,
1849 .num_nodes
= ARRAY_SIZE(pcie_anoc_nodes
),
1850 .bcms
= pcie_anoc_bcms
,
1851 .num_bcms
= ARRAY_SIZE(pcie_anoc_bcms
),
1854 static struct qcom_icc_bcm
* const system_noc_bcms
[] = {
1862 static struct qcom_icc_node
* const system_noc_nodes
[] = {
1863 [MASTER_GIC_AHB
] = &qhm_gic
,
1864 [MASTER_QDSS_BAM
] = &qhm_qdss_bam
,
1865 [MASTER_QSPI_0
] = &qhm_qspi
,
1866 [MASTER_QUP_0
] = &qhm_qup0
,
1867 [MASTER_QUP_1
] = &qhm_qup1
,
1868 [MASTER_A2NOC_SNOC
] = &qnm_aggre2_noc
,
1869 [MASTER_CNOC_DATAPATH
] = &qnm_cnoc_datapath
,
1870 [MASTER_LPASS_ANOC
] = &qnm_lpass_noc
,
1871 [MASTER_SNOC_CFG
] = &qnm_snoc_cfg
,
1872 [MASTER_CRYPTO
] = &qxm_crypto
,
1873 [MASTER_PIMEM
] = &qxm_pimem
,
1874 [MASTER_GIC
] = &xm_gic
,
1875 [MASTER_QDSS_ETR
] = &xm_qdss_etr_0
,
1876 [MASTER_QDSS_ETR_1
] = &xm_qdss_etr_1
,
1877 [MASTER_SDCC_1
] = &xm_sdc1
,
1878 [MASTER_USB3_0
] = &xm_usb3_0
,
1879 [SLAVE_A2NOC_SNOC
] = &qns_a2noc_snoc
,
1880 [SLAVE_SNOC_GEM_NOC_GC
] = &qns_gemnoc_gc
,
1881 [SLAVE_SNOC_GEM_NOC_SF
] = &qns_gemnoc_sf
,
1882 [SLAVE_SERVICE_SNOC
] = &srvc_snoc
,
1885 static const struct qcom_icc_desc sar2130p_system_noc
= {
1886 .config
= &icc_regmap_config
,
1887 .nodes
= system_noc_nodes
,
1888 .num_nodes
= ARRAY_SIZE(system_noc_nodes
),
1889 .bcms
= system_noc_bcms
,
1890 .num_bcms
= ARRAY_SIZE(system_noc_bcms
),
1893 static const struct of_device_id qnoc_of_match
[] = {
1894 { .compatible
= "qcom,sar2130p-clk-virt", .data
= &sar2130p_clk_virt
},
1895 { .compatible
= "qcom,sar2130p-config-noc", .data
= &sar2130p_config_noc
},
1896 { .compatible
= "qcom,sar2130p-gem-noc", .data
= &sar2130p_gem_noc
},
1897 { .compatible
= "qcom,sar2130p-lpass-ag-noc", .data
= &sar2130p_lpass_ag_noc
},
1898 { .compatible
= "qcom,sar2130p-mc-virt", .data
= &sar2130p_mc_virt
},
1899 { .compatible
= "qcom,sar2130p-mmss-noc", .data
= &sar2130p_mmss_noc
},
1900 { .compatible
= "qcom,sar2130p-nsp-noc", .data
= &sar2130p_nsp_noc
},
1901 { .compatible
= "qcom,sar2130p-pcie-anoc", .data
= &sar2130p_pcie_anoc
},
1902 { .compatible
= "qcom,sar2130p-system-noc", .data
= &sar2130p_system_noc
},
1905 MODULE_DEVICE_TABLE(of
, qnoc_of_match
);
1907 static struct platform_driver qnoc_driver
= {
1908 .probe
= qcom_icc_rpmh_probe
,
1909 .remove
= qcom_icc_rpmh_remove
,
1911 .name
= "qnoc-sar2130p",
1912 .of_match_table
= qnoc_of_match
,
1913 .sync_state
= icc_sync_state
,
1917 static int __init
qnoc_driver_init(void)
1919 return platform_driver_register(&qnoc_driver
);
1921 core_initcall(qnoc_driver_init
);
1923 static void __exit
qnoc_driver_exit(void)
1925 platform_driver_unregister(&qnoc_driver
);
1928 module_exit(qnoc_driver_exit
);
1929 MODULE_DESCRIPTION("Qualcomm SAR2130P NoC driver");
1930 MODULE_LICENSE("GPL");