1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2022, Linaro Ltd
7 #include <linux/device.h>
8 #include <linux/interconnect.h>
9 #include <linux/interconnect-provider.h>
10 #include <linux/mod_devicetable.h>
11 #include <linux/module.h>
12 #include <linux/platform_device.h>
13 #include <dt-bindings/interconnect/qcom,sc8280xp.h>
15 #include "bcm-voter.h"
19 static struct qcom_icc_node qhm_qspi
= {
21 .id
= SC8280XP_MASTER_QSPI_0
,
25 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
28 static struct qcom_icc_node qhm_qup1
= {
30 .id
= SC8280XP_MASTER_QUP_1
,
34 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
37 static struct qcom_icc_node qhm_qup2
= {
39 .id
= SC8280XP_MASTER_QUP_2
,
43 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
46 static struct qcom_icc_node qnm_a1noc_cfg
= {
47 .name
= "qnm_a1noc_cfg",
48 .id
= SC8280XP_MASTER_A1NOC_CFG
,
51 .links
= { SC8280XP_SLAVE_SERVICE_A1NOC
},
54 static struct qcom_icc_node qxm_ipa
= {
56 .id
= SC8280XP_MASTER_IPA
,
60 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
63 static struct qcom_icc_node xm_emac_1
= {
65 .id
= SC8280XP_MASTER_EMAC_1
,
69 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
72 static struct qcom_icc_node xm_sdc4
= {
74 .id
= SC8280XP_MASTER_SDCC_4
,
78 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
81 static struct qcom_icc_node xm_ufs_mem
= {
83 .id
= SC8280XP_MASTER_UFS_MEM
,
87 .links
= { SC8280XP_SLAVE_A1NOC_SNOC
},
90 static struct qcom_icc_node xm_usb3_0
= {
92 .id
= SC8280XP_MASTER_USB3_0
,
96 .links
= { SC8280XP_SLAVE_USB_NOC_SNOC
},
99 static struct qcom_icc_node xm_usb3_1
= {
101 .id
= SC8280XP_MASTER_USB3_1
,
105 .links
= { SC8280XP_SLAVE_USB_NOC_SNOC
},
108 static struct qcom_icc_node xm_usb3_mp
= {
109 .name
= "xm_usb3_mp",
110 .id
= SC8280XP_MASTER_USB3_MP
,
114 .links
= { SC8280XP_SLAVE_USB_NOC_SNOC
},
117 static struct qcom_icc_node xm_usb4_host0
= {
118 .name
= "xm_usb4_host0",
119 .id
= SC8280XP_MASTER_USB4_0
,
123 .links
= { SC8280XP_SLAVE_USB_NOC_SNOC
},
126 static struct qcom_icc_node xm_usb4_host1
= {
127 .name
= "xm_usb4_host1",
128 .id
= SC8280XP_MASTER_USB4_1
,
132 .links
= { SC8280XP_SLAVE_USB_NOC_SNOC
},
135 static struct qcom_icc_node qhm_qdss_bam
= {
136 .name
= "qhm_qdss_bam",
137 .id
= SC8280XP_MASTER_QDSS_BAM
,
141 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
144 static struct qcom_icc_node qhm_qup0
= {
146 .id
= SC8280XP_MASTER_QUP_0
,
150 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
153 static struct qcom_icc_node qnm_a2noc_cfg
= {
154 .name
= "qnm_a2noc_cfg",
155 .id
= SC8280XP_MASTER_A2NOC_CFG
,
159 .links
= { SC8280XP_SLAVE_SERVICE_A2NOC
},
162 static struct qcom_icc_node qxm_crypto
= {
163 .name
= "qxm_crypto",
164 .id
= SC8280XP_MASTER_CRYPTO
,
168 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
171 static struct qcom_icc_node qxm_sensorss_q6
= {
172 .name
= "qxm_sensorss_q6",
173 .id
= SC8280XP_MASTER_SENSORS_PROC
,
177 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
180 static struct qcom_icc_node qxm_sp
= {
182 .id
= SC8280XP_MASTER_SP
,
186 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
189 static struct qcom_icc_node xm_emac_0
= {
191 .id
= SC8280XP_MASTER_EMAC
,
195 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
198 static struct qcom_icc_node xm_pcie3_0
= {
199 .name
= "xm_pcie3_0",
200 .id
= SC8280XP_MASTER_PCIE_0
,
204 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
207 static struct qcom_icc_node xm_pcie3_1
= {
208 .name
= "xm_pcie3_1",
209 .id
= SC8280XP_MASTER_PCIE_1
,
213 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
216 static struct qcom_icc_node xm_pcie3_2a
= {
217 .name
= "xm_pcie3_2a",
218 .id
= SC8280XP_MASTER_PCIE_2A
,
222 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
225 static struct qcom_icc_node xm_pcie3_2b
= {
226 .name
= "xm_pcie3_2b",
227 .id
= SC8280XP_MASTER_PCIE_2B
,
231 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
234 static struct qcom_icc_node xm_pcie3_3a
= {
235 .name
= "xm_pcie3_3a",
236 .id
= SC8280XP_MASTER_PCIE_3A
,
240 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
243 static struct qcom_icc_node xm_pcie3_3b
= {
244 .name
= "xm_pcie3_3b",
245 .id
= SC8280XP_MASTER_PCIE_3B
,
249 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
252 static struct qcom_icc_node xm_pcie3_4
= {
253 .name
= "xm_pcie3_4",
254 .id
= SC8280XP_MASTER_PCIE_4
,
258 .links
= { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
},
261 static struct qcom_icc_node xm_qdss_etr
= {
262 .name
= "xm_qdss_etr",
263 .id
= SC8280XP_MASTER_QDSS_ETR
,
267 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
270 static struct qcom_icc_node xm_sdc2
= {
272 .id
= SC8280XP_MASTER_SDCC_2
,
276 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
279 static struct qcom_icc_node xm_ufs_card
= {
280 .name
= "xm_ufs_card",
281 .id
= SC8280XP_MASTER_UFS_CARD
,
285 .links
= { SC8280XP_SLAVE_A2NOC_SNOC
},
288 static struct qcom_icc_node qup0_core_master
= {
289 .name
= "qup0_core_master",
290 .id
= SC8280XP_MASTER_QUP_CORE_0
,
294 .links
= { SC8280XP_SLAVE_QUP_CORE_0
},
297 static struct qcom_icc_node qup1_core_master
= {
298 .name
= "qup1_core_master",
299 .id
= SC8280XP_MASTER_QUP_CORE_1
,
303 .links
= { SC8280XP_SLAVE_QUP_CORE_1
},
306 static struct qcom_icc_node qup2_core_master
= {
307 .name
= "qup2_core_master",
308 .id
= SC8280XP_MASTER_QUP_CORE_2
,
312 .links
= { SC8280XP_SLAVE_QUP_CORE_2
},
315 static struct qcom_icc_node qnm_gemnoc_cnoc
= {
316 .name
= "qnm_gemnoc_cnoc",
317 .id
= SC8280XP_MASTER_GEM_NOC_CNOC
,
321 .links
= { SC8280XP_SLAVE_AHB2PHY_0
,
322 SC8280XP_SLAVE_AHB2PHY_1
,
323 SC8280XP_SLAVE_AHB2PHY_2
,
325 SC8280XP_SLAVE_APPSS
,
326 SC8280XP_SLAVE_CAMERA_CFG
,
327 SC8280XP_SLAVE_CLK_CTL
,
328 SC8280XP_SLAVE_CDSP_CFG
,
329 SC8280XP_SLAVE_CDSP1_CFG
,
330 SC8280XP_SLAVE_RBCPR_CX_CFG
,
331 SC8280XP_SLAVE_RBCPR_MMCX_CFG
,
332 SC8280XP_SLAVE_RBCPR_MX_CFG
,
333 SC8280XP_SLAVE_CPR_NSPCX
,
334 SC8280XP_SLAVE_CRYPTO_0_CFG
,
335 SC8280XP_SLAVE_CX_RDPM
,
336 SC8280XP_SLAVE_DCC_CFG
,
337 SC8280XP_SLAVE_DISPLAY_CFG
,
338 SC8280XP_SLAVE_DISPLAY1_CFG
,
339 SC8280XP_SLAVE_EMAC_CFG
,
340 SC8280XP_SLAVE_EMAC1_CFG
,
341 SC8280XP_SLAVE_GFX3D_CFG
,
343 SC8280XP_SLAVE_IMEM_CFG
,
344 SC8280XP_SLAVE_IPA_CFG
,
345 SC8280XP_SLAVE_IPC_ROUTER_CFG
,
346 SC8280XP_SLAVE_LPASS
,
347 SC8280XP_SLAVE_MX_RDPM
,
348 SC8280XP_SLAVE_MXC_RDPM
,
349 SC8280XP_SLAVE_PCIE_0_CFG
,
350 SC8280XP_SLAVE_PCIE_1_CFG
,
351 SC8280XP_SLAVE_PCIE_2A_CFG
,
352 SC8280XP_SLAVE_PCIE_2B_CFG
,
353 SC8280XP_SLAVE_PCIE_3A_CFG
,
354 SC8280XP_SLAVE_PCIE_3B_CFG
,
355 SC8280XP_SLAVE_PCIE_4_CFG
,
356 SC8280XP_SLAVE_PCIE_RSC_CFG
,
358 SC8280XP_SLAVE_PIMEM_CFG
,
359 SC8280XP_SLAVE_PKA_WRAPPER_CFG
,
360 SC8280XP_SLAVE_PMU_WRAPPER_CFG
,
361 SC8280XP_SLAVE_QDSS_CFG
,
362 SC8280XP_SLAVE_QSPI_0
,
363 SC8280XP_SLAVE_QUP_0
,
364 SC8280XP_SLAVE_QUP_1
,
365 SC8280XP_SLAVE_QUP_2
,
366 SC8280XP_SLAVE_SDCC_2
,
367 SC8280XP_SLAVE_SDCC_4
,
368 SC8280XP_SLAVE_SECURITY
,
369 SC8280XP_SLAVE_SMMUV3_CFG
,
370 SC8280XP_SLAVE_SMSS_CFG
,
371 SC8280XP_SLAVE_SPSS_CFG
,
374 SC8280XP_SLAVE_UFS_CARD_CFG
,
375 SC8280XP_SLAVE_UFS_MEM_CFG
,
376 SC8280XP_SLAVE_USB3_0
,
377 SC8280XP_SLAVE_USB3_1
,
378 SC8280XP_SLAVE_USB3_MP
,
379 SC8280XP_SLAVE_USB4_0
,
380 SC8280XP_SLAVE_USB4_1
,
381 SC8280XP_SLAVE_VENUS_CFG
,
382 SC8280XP_SLAVE_VSENSE_CTRL_CFG
,
383 SC8280XP_SLAVE_VSENSE_CTRL_R_CFG
,
384 SC8280XP_SLAVE_A1NOC_CFG
,
385 SC8280XP_SLAVE_A2NOC_CFG
,
386 SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG
,
387 SC8280XP_SLAVE_DDRSS_CFG
,
388 SC8280XP_SLAVE_CNOC_MNOC_CFG
,
389 SC8280XP_SLAVE_SNOC_CFG
,
390 SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG
,
392 SC8280XP_SLAVE_PIMEM
,
393 SC8280XP_SLAVE_SERVICE_CNOC
,
394 SC8280XP_SLAVE_QDSS_STM
,
400 static struct qcom_icc_node qnm_gemnoc_pcie
= {
401 .name
= "qnm_gemnoc_pcie",
402 .id
= SC8280XP_MASTER_GEM_NOC_PCIE_SNOC
,
406 .links
= { SC8280XP_SLAVE_PCIE_0
,
407 SC8280XP_SLAVE_PCIE_1
,
408 SC8280XP_SLAVE_PCIE_2A
,
409 SC8280XP_SLAVE_PCIE_2B
,
410 SC8280XP_SLAVE_PCIE_3A
,
411 SC8280XP_SLAVE_PCIE_3B
,
412 SC8280XP_SLAVE_PCIE_4
416 static struct qcom_icc_node qnm_cnoc_dc_noc
= {
417 .name
= "qnm_cnoc_dc_noc",
418 .id
= SC8280XP_MASTER_CNOC_DC_NOC
,
422 .links
= { SC8280XP_SLAVE_LLCC_CFG
,
423 SC8280XP_SLAVE_GEM_NOC_CFG
427 static struct qcom_icc_node alm_gpu_tcu
= {
428 .name
= "alm_gpu_tcu",
429 .id
= SC8280XP_MASTER_GPU_TCU
,
433 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
438 static struct qcom_icc_node alm_pcie_tcu
= {
439 .name
= "alm_pcie_tcu",
440 .id
= SC8280XP_MASTER_PCIE_TCU
,
444 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
449 static struct qcom_icc_node alm_sys_tcu
= {
450 .name
= "alm_sys_tcu",
451 .id
= SC8280XP_MASTER_SYS_TCU
,
455 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
460 static struct qcom_icc_node chm_apps
= {
462 .id
= SC8280XP_MASTER_APPSS_PROC
,
466 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
468 SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
472 static struct qcom_icc_node qnm_cmpnoc0
= {
473 .name
= "qnm_cmpnoc0",
474 .id
= SC8280XP_MASTER_COMPUTE_NOC
,
478 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
483 static struct qcom_icc_node qnm_cmpnoc1
= {
484 .name
= "qnm_cmpnoc1",
485 .id
= SC8280XP_MASTER_COMPUTE_NOC_1
,
489 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
494 static struct qcom_icc_node qnm_gemnoc_cfg
= {
495 .name
= "qnm_gemnoc_cfg",
496 .id
= SC8280XP_MASTER_GEM_NOC_CFG
,
500 .links
= { SC8280XP_SLAVE_SERVICE_GEM_NOC_1
,
501 SC8280XP_SLAVE_SERVICE_GEM_NOC_2
,
502 SC8280XP_SLAVE_SERVICE_GEM_NOC
506 static struct qcom_icc_node qnm_gpu
= {
508 .id
= SC8280XP_MASTER_GFX3D
,
512 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
517 static struct qcom_icc_node qnm_mnoc_hf
= {
518 .name
= "qnm_mnoc_hf",
519 .id
= SC8280XP_MASTER_MNOC_HF_MEM_NOC
,
523 .links
= { SC8280XP_SLAVE_LLCC
,
524 SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
528 static struct qcom_icc_node qnm_mnoc_sf
= {
529 .name
= "qnm_mnoc_sf",
530 .id
= SC8280XP_MASTER_MNOC_SF_MEM_NOC
,
534 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
539 static struct qcom_icc_node qnm_pcie
= {
541 .id
= SC8280XP_MASTER_ANOC_PCIE_GEM_NOC
,
545 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
550 static struct qcom_icc_node qnm_snoc_gc
= {
551 .name
= "qnm_snoc_gc",
552 .id
= SC8280XP_MASTER_SNOC_GC_MEM_NOC
,
556 .links
= { SC8280XP_SLAVE_LLCC
},
559 static struct qcom_icc_node qnm_snoc_sf
= {
560 .name
= "qnm_snoc_sf",
561 .id
= SC8280XP_MASTER_SNOC_SF_MEM_NOC
,
565 .links
= { SC8280XP_SLAVE_GEM_NOC_CNOC
,
567 SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
},
570 static struct qcom_icc_node qhm_config_noc
= {
571 .name
= "qhm_config_noc",
572 .id
= SC8280XP_MASTER_CNOC_LPASS_AG_NOC
,
576 .links
= { SC8280XP_SLAVE_LPASS_CORE_CFG
,
577 SC8280XP_SLAVE_LPASS_LPI_CFG
,
578 SC8280XP_SLAVE_LPASS_MPU_CFG
,
579 SC8280XP_SLAVE_LPASS_TOP_CFG
,
580 SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC
,
581 SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC
585 static struct qcom_icc_node qxm_lpass_dsp
= {
586 .name
= "qxm_lpass_dsp",
587 .id
= SC8280XP_MASTER_LPASS_PROC
,
591 .links
= { SC8280XP_SLAVE_LPASS_TOP_CFG
,
592 SC8280XP_SLAVE_LPASS_SNOC
,
593 SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC
,
594 SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC
598 static struct qcom_icc_node llcc_mc
= {
600 .id
= SC8280XP_MASTER_LLCC
,
604 .links
= { SC8280XP_SLAVE_EBI1
},
607 static struct qcom_icc_node qnm_camnoc_hf
= {
608 .name
= "qnm_camnoc_hf",
609 .id
= SC8280XP_MASTER_CAMNOC_HF
,
613 .links
= { SC8280XP_SLAVE_MNOC_HF_MEM_NOC
},
616 static struct qcom_icc_node qnm_mdp0_0
= {
617 .name
= "qnm_mdp0_0",
618 .id
= SC8280XP_MASTER_MDP0
,
622 .links
= { SC8280XP_SLAVE_MNOC_HF_MEM_NOC
},
625 static struct qcom_icc_node qnm_mdp0_1
= {
626 .name
= "qnm_mdp0_1",
627 .id
= SC8280XP_MASTER_MDP1
,
631 .links
= { SC8280XP_SLAVE_MNOC_HF_MEM_NOC
},
634 static struct qcom_icc_node qnm_mdp1_0
= {
635 .name
= "qnm_mdp1_0",
636 .id
= SC8280XP_MASTER_MDP_CORE1_0
,
640 .links
= { SC8280XP_SLAVE_MNOC_HF_MEM_NOC
},
643 static struct qcom_icc_node qnm_mdp1_1
= {
644 .name
= "qnm_mdp1_1",
645 .id
= SC8280XP_MASTER_MDP_CORE1_1
,
649 .links
= { SC8280XP_SLAVE_MNOC_HF_MEM_NOC
},
652 static struct qcom_icc_node qnm_mnoc_cfg
= {
653 .name
= "qnm_mnoc_cfg",
654 .id
= SC8280XP_MASTER_CNOC_MNOC_CFG
,
658 .links
= { SC8280XP_SLAVE_SERVICE_MNOC
},
661 static struct qcom_icc_node qnm_rot_0
= {
663 .id
= SC8280XP_MASTER_ROTATOR
,
667 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
670 static struct qcom_icc_node qnm_rot_1
= {
672 .id
= SC8280XP_MASTER_ROTATOR_1
,
676 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
679 static struct qcom_icc_node qnm_video0
= {
680 .name
= "qnm_video0",
681 .id
= SC8280XP_MASTER_VIDEO_P0
,
685 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
688 static struct qcom_icc_node qnm_video1
= {
689 .name
= "qnm_video1",
690 .id
= SC8280XP_MASTER_VIDEO_P1
,
694 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
697 static struct qcom_icc_node qnm_video_cvp
= {
698 .name
= "qnm_video_cvp",
699 .id
= SC8280XP_MASTER_VIDEO_PROC
,
703 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
706 static struct qcom_icc_node qxm_camnoc_icp
= {
707 .name
= "qxm_camnoc_icp",
708 .id
= SC8280XP_MASTER_CAMNOC_ICP
,
712 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
715 static struct qcom_icc_node qxm_camnoc_sf
= {
716 .name
= "qxm_camnoc_sf",
717 .id
= SC8280XP_MASTER_CAMNOC_SF
,
721 .links
= { SC8280XP_SLAVE_MNOC_SF_MEM_NOC
},
724 static struct qcom_icc_node qhm_nsp_noc_config
= {
725 .name
= "qhm_nsp_noc_config",
726 .id
= SC8280XP_MASTER_CDSP_NOC_CFG
,
730 .links
= { SC8280XP_SLAVE_SERVICE_NSP_NOC
},
733 static struct qcom_icc_node qxm_nsp
= {
735 .id
= SC8280XP_MASTER_CDSP_PROC
,
739 .links
= { SC8280XP_SLAVE_CDSP_MEM_NOC
,
740 SC8280XP_SLAVE_NSP_XFR
744 static struct qcom_icc_node qhm_nspb_noc_config
= {
745 .name
= "qhm_nspb_noc_config",
746 .id
= SC8280XP_MASTER_CDSPB_NOC_CFG
,
750 .links
= { SC8280XP_SLAVE_SERVICE_NSPB_NOC
},
753 static struct qcom_icc_node qxm_nspb
= {
755 .id
= SC8280XP_MASTER_CDSP_PROC_B
,
759 .links
= { SC8280XP_SLAVE_CDSPB_MEM_NOC
,
760 SC8280XP_SLAVE_NSPB_XFR
764 static struct qcom_icc_node qnm_aggre1_noc
= {
765 .name
= "qnm_aggre1_noc",
766 .id
= SC8280XP_MASTER_A1NOC_SNOC
,
770 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_SF
},
773 static struct qcom_icc_node qnm_aggre2_noc
= {
774 .name
= "qnm_aggre2_noc",
775 .id
= SC8280XP_MASTER_A2NOC_SNOC
,
779 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_SF
},
782 static struct qcom_icc_node qnm_aggre_usb_noc
= {
783 .name
= "qnm_aggre_usb_noc",
784 .id
= SC8280XP_MASTER_USB_NOC_SNOC
,
788 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_SF
},
791 static struct qcom_icc_node qnm_lpass_noc
= {
792 .name
= "qnm_lpass_noc",
793 .id
= SC8280XP_MASTER_LPASS_ANOC
,
797 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_SF
},
800 static struct qcom_icc_node qnm_snoc_cfg
= {
801 .name
= "qnm_snoc_cfg",
802 .id
= SC8280XP_MASTER_SNOC_CFG
,
806 .links
= { SC8280XP_SLAVE_SERVICE_SNOC
},
809 static struct qcom_icc_node qxm_pimem
= {
811 .id
= SC8280XP_MASTER_PIMEM
,
815 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_GC
},
818 static struct qcom_icc_node xm_gic
= {
820 .id
= SC8280XP_MASTER_GIC
,
824 .links
= { SC8280XP_SLAVE_SNOC_GEM_NOC_GC
},
827 static struct qcom_icc_node qns_a1noc_snoc
= {
828 .name
= "qns_a1noc_snoc",
829 .id
= SC8280XP_SLAVE_A1NOC_SNOC
,
833 .links
= { SC8280XP_MASTER_A1NOC_SNOC
},
836 static struct qcom_icc_node qns_aggre_usb_snoc
= {
837 .name
= "qns_aggre_usb_snoc",
838 .id
= SC8280XP_SLAVE_USB_NOC_SNOC
,
842 .links
= { SC8280XP_MASTER_USB_NOC_SNOC
},
845 static struct qcom_icc_node srvc_aggre1_noc
= {
846 .name
= "srvc_aggre1_noc",
847 .id
= SC8280XP_SLAVE_SERVICE_A1NOC
,
852 static struct qcom_icc_node qns_a2noc_snoc
= {
853 .name
= "qns_a2noc_snoc",
854 .id
= SC8280XP_SLAVE_A2NOC_SNOC
,
858 .links
= { SC8280XP_MASTER_A2NOC_SNOC
},
861 static struct qcom_icc_node qns_pcie_gem_noc
= {
862 .name
= "qns_pcie_gem_noc",
863 .id
= SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC
,
867 .links
= { SC8280XP_MASTER_ANOC_PCIE_GEM_NOC
},
870 static struct qcom_icc_node srvc_aggre2_noc
= {
871 .name
= "srvc_aggre2_noc",
872 .id
= SC8280XP_SLAVE_SERVICE_A2NOC
,
877 static struct qcom_icc_node qup0_core_slave
= {
878 .name
= "qup0_core_slave",
879 .id
= SC8280XP_SLAVE_QUP_CORE_0
,
884 static struct qcom_icc_node qup1_core_slave
= {
885 .name
= "qup1_core_slave",
886 .id
= SC8280XP_SLAVE_QUP_CORE_1
,
891 static struct qcom_icc_node qup2_core_slave
= {
892 .name
= "qup2_core_slave",
893 .id
= SC8280XP_SLAVE_QUP_CORE_2
,
898 static struct qcom_icc_node qhs_ahb2phy0
= {
899 .name
= "qhs_ahb2phy0",
900 .id
= SC8280XP_SLAVE_AHB2PHY_0
,
905 static struct qcom_icc_node qhs_ahb2phy1
= {
906 .name
= "qhs_ahb2phy1",
907 .id
= SC8280XP_SLAVE_AHB2PHY_1
,
912 static struct qcom_icc_node qhs_ahb2phy2
= {
913 .name
= "qhs_ahb2phy2",
914 .id
= SC8280XP_SLAVE_AHB2PHY_2
,
919 static struct qcom_icc_node qhs_aoss
= {
921 .id
= SC8280XP_SLAVE_AOSS
,
926 static struct qcom_icc_node qhs_apss
= {
928 .id
= SC8280XP_SLAVE_APPSS
,
933 static struct qcom_icc_node qhs_camera_cfg
= {
934 .name
= "qhs_camera_cfg",
935 .id
= SC8280XP_SLAVE_CAMERA_CFG
,
940 static struct qcom_icc_node qhs_clk_ctl
= {
941 .name
= "qhs_clk_ctl",
942 .id
= SC8280XP_SLAVE_CLK_CTL
,
947 static struct qcom_icc_node qhs_compute0_cfg
= {
948 .name
= "qhs_compute0_cfg",
949 .id
= SC8280XP_SLAVE_CDSP_CFG
,
953 .links
= { SC8280XP_MASTER_CDSP_NOC_CFG
},
956 static struct qcom_icc_node qhs_compute1_cfg
= {
957 .name
= "qhs_compute1_cfg",
958 .id
= SC8280XP_SLAVE_CDSP1_CFG
,
962 .links
= { SC8280XP_MASTER_CDSPB_NOC_CFG
},
965 static struct qcom_icc_node qhs_cpr_cx
= {
966 .name
= "qhs_cpr_cx",
967 .id
= SC8280XP_SLAVE_RBCPR_CX_CFG
,
972 static struct qcom_icc_node qhs_cpr_mmcx
= {
973 .name
= "qhs_cpr_mmcx",
974 .id
= SC8280XP_SLAVE_RBCPR_MMCX_CFG
,
979 static struct qcom_icc_node qhs_cpr_mx
= {
980 .name
= "qhs_cpr_mx",
981 .id
= SC8280XP_SLAVE_RBCPR_MX_CFG
,
986 static struct qcom_icc_node qhs_cpr_nspcx
= {
987 .name
= "qhs_cpr_nspcx",
988 .id
= SC8280XP_SLAVE_CPR_NSPCX
,
993 static struct qcom_icc_node qhs_crypto0_cfg
= {
994 .name
= "qhs_crypto0_cfg",
995 .id
= SC8280XP_SLAVE_CRYPTO_0_CFG
,
1000 static struct qcom_icc_node qhs_cx_rdpm
= {
1001 .name
= "qhs_cx_rdpm",
1002 .id
= SC8280XP_SLAVE_CX_RDPM
,
1007 static struct qcom_icc_node qhs_dcc_cfg
= {
1008 .name
= "qhs_dcc_cfg",
1009 .id
= SC8280XP_SLAVE_DCC_CFG
,
1014 static struct qcom_icc_node qhs_display0_cfg
= {
1015 .name
= "qhs_display0_cfg",
1016 .id
= SC8280XP_SLAVE_DISPLAY_CFG
,
1021 static struct qcom_icc_node qhs_display1_cfg
= {
1022 .name
= "qhs_display1_cfg",
1023 .id
= SC8280XP_SLAVE_DISPLAY1_CFG
,
1028 static struct qcom_icc_node qhs_emac0_cfg
= {
1029 .name
= "qhs_emac0_cfg",
1030 .id
= SC8280XP_SLAVE_EMAC_CFG
,
1035 static struct qcom_icc_node qhs_emac1_cfg
= {
1036 .name
= "qhs_emac1_cfg",
1037 .id
= SC8280XP_SLAVE_EMAC1_CFG
,
1042 static struct qcom_icc_node qhs_gpuss_cfg
= {
1043 .name
= "qhs_gpuss_cfg",
1044 .id
= SC8280XP_SLAVE_GFX3D_CFG
,
1049 static struct qcom_icc_node qhs_hwkm
= {
1051 .id
= SC8280XP_SLAVE_HWKM
,
1056 static struct qcom_icc_node qhs_imem_cfg
= {
1057 .name
= "qhs_imem_cfg",
1058 .id
= SC8280XP_SLAVE_IMEM_CFG
,
1063 static struct qcom_icc_node qhs_ipa
= {
1065 .id
= SC8280XP_SLAVE_IPA_CFG
,
1070 static struct qcom_icc_node qhs_ipc_router
= {
1071 .name
= "qhs_ipc_router",
1072 .id
= SC8280XP_SLAVE_IPC_ROUTER_CFG
,
1077 static struct qcom_icc_node qhs_lpass_cfg
= {
1078 .name
= "qhs_lpass_cfg",
1079 .id
= SC8280XP_SLAVE_LPASS
,
1083 .links
= { SC8280XP_MASTER_CNOC_LPASS_AG_NOC
},
1086 static struct qcom_icc_node qhs_mx_rdpm
= {
1087 .name
= "qhs_mx_rdpm",
1088 .id
= SC8280XP_SLAVE_MX_RDPM
,
1093 static struct qcom_icc_node qhs_mxc_rdpm
= {
1094 .name
= "qhs_mxc_rdpm",
1095 .id
= SC8280XP_SLAVE_MXC_RDPM
,
1100 static struct qcom_icc_node qhs_pcie0_cfg
= {
1101 .name
= "qhs_pcie0_cfg",
1102 .id
= SC8280XP_SLAVE_PCIE_0_CFG
,
1107 static struct qcom_icc_node qhs_pcie1_cfg
= {
1108 .name
= "qhs_pcie1_cfg",
1109 .id
= SC8280XP_SLAVE_PCIE_1_CFG
,
1114 static struct qcom_icc_node qhs_pcie2a_cfg
= {
1115 .name
= "qhs_pcie2a_cfg",
1116 .id
= SC8280XP_SLAVE_PCIE_2A_CFG
,
1121 static struct qcom_icc_node qhs_pcie2b_cfg
= {
1122 .name
= "qhs_pcie2b_cfg",
1123 .id
= SC8280XP_SLAVE_PCIE_2B_CFG
,
1128 static struct qcom_icc_node qhs_pcie3a_cfg
= {
1129 .name
= "qhs_pcie3a_cfg",
1130 .id
= SC8280XP_SLAVE_PCIE_3A_CFG
,
1135 static struct qcom_icc_node qhs_pcie3b_cfg
= {
1136 .name
= "qhs_pcie3b_cfg",
1137 .id
= SC8280XP_SLAVE_PCIE_3B_CFG
,
1142 static struct qcom_icc_node qhs_pcie4_cfg
= {
1143 .name
= "qhs_pcie4_cfg",
1144 .id
= SC8280XP_SLAVE_PCIE_4_CFG
,
1149 static struct qcom_icc_node qhs_pcie_rsc_cfg
= {
1150 .name
= "qhs_pcie_rsc_cfg",
1151 .id
= SC8280XP_SLAVE_PCIE_RSC_CFG
,
1156 static struct qcom_icc_node qhs_pdm
= {
1158 .id
= SC8280XP_SLAVE_PDM
,
1163 static struct qcom_icc_node qhs_pimem_cfg
= {
1164 .name
= "qhs_pimem_cfg",
1165 .id
= SC8280XP_SLAVE_PIMEM_CFG
,
1170 static struct qcom_icc_node qhs_pka_wrapper_cfg
= {
1171 .name
= "qhs_pka_wrapper_cfg",
1172 .id
= SC8280XP_SLAVE_PKA_WRAPPER_CFG
,
1177 static struct qcom_icc_node qhs_pmu_wrapper_cfg
= {
1178 .name
= "qhs_pmu_wrapper_cfg",
1179 .id
= SC8280XP_SLAVE_PMU_WRAPPER_CFG
,
1184 static struct qcom_icc_node qhs_qdss_cfg
= {
1185 .name
= "qhs_qdss_cfg",
1186 .id
= SC8280XP_SLAVE_QDSS_CFG
,
1191 static struct qcom_icc_node qhs_qspi
= {
1193 .id
= SC8280XP_SLAVE_QSPI_0
,
1198 static struct qcom_icc_node qhs_qup0
= {
1200 .id
= SC8280XP_SLAVE_QUP_0
,
1205 static struct qcom_icc_node qhs_qup1
= {
1207 .id
= SC8280XP_SLAVE_QUP_1
,
1212 static struct qcom_icc_node qhs_qup2
= {
1214 .id
= SC8280XP_SLAVE_QUP_2
,
1219 static struct qcom_icc_node qhs_sdc2
= {
1221 .id
= SC8280XP_SLAVE_SDCC_2
,
1226 static struct qcom_icc_node qhs_sdc4
= {
1228 .id
= SC8280XP_SLAVE_SDCC_4
,
1233 static struct qcom_icc_node qhs_security
= {
1234 .name
= "qhs_security",
1235 .id
= SC8280XP_SLAVE_SECURITY
,
1240 static struct qcom_icc_node qhs_smmuv3_cfg
= {
1241 .name
= "qhs_smmuv3_cfg",
1242 .id
= SC8280XP_SLAVE_SMMUV3_CFG
,
1247 static struct qcom_icc_node qhs_smss_cfg
= {
1248 .name
= "qhs_smss_cfg",
1249 .id
= SC8280XP_SLAVE_SMSS_CFG
,
1254 static struct qcom_icc_node qhs_spss_cfg
= {
1255 .name
= "qhs_spss_cfg",
1256 .id
= SC8280XP_SLAVE_SPSS_CFG
,
1261 static struct qcom_icc_node qhs_tcsr
= {
1263 .id
= SC8280XP_SLAVE_TCSR
,
1268 static struct qcom_icc_node qhs_tlmm
= {
1270 .id
= SC8280XP_SLAVE_TLMM
,
1275 static struct qcom_icc_node qhs_ufs_card_cfg
= {
1276 .name
= "qhs_ufs_card_cfg",
1277 .id
= SC8280XP_SLAVE_UFS_CARD_CFG
,
1282 static struct qcom_icc_node qhs_ufs_mem_cfg
= {
1283 .name
= "qhs_ufs_mem_cfg",
1284 .id
= SC8280XP_SLAVE_UFS_MEM_CFG
,
1289 static struct qcom_icc_node qhs_usb3_0
= {
1290 .name
= "qhs_usb3_0",
1291 .id
= SC8280XP_SLAVE_USB3_0
,
1296 static struct qcom_icc_node qhs_usb3_1
= {
1297 .name
= "qhs_usb3_1",
1298 .id
= SC8280XP_SLAVE_USB3_1
,
1303 static struct qcom_icc_node qhs_usb3_mp
= {
1304 .name
= "qhs_usb3_mp",
1305 .id
= SC8280XP_SLAVE_USB3_MP
,
1310 static struct qcom_icc_node qhs_usb4_host_0
= {
1311 .name
= "qhs_usb4_host_0",
1312 .id
= SC8280XP_SLAVE_USB4_0
,
1317 static struct qcom_icc_node qhs_usb4_host_1
= {
1318 .name
= "qhs_usb4_host_1",
1319 .id
= SC8280XP_SLAVE_USB4_1
,
1324 static struct qcom_icc_node qhs_venus_cfg
= {
1325 .name
= "qhs_venus_cfg",
1326 .id
= SC8280XP_SLAVE_VENUS_CFG
,
1331 static struct qcom_icc_node qhs_vsense_ctrl_cfg
= {
1332 .name
= "qhs_vsense_ctrl_cfg",
1333 .id
= SC8280XP_SLAVE_VSENSE_CTRL_CFG
,
1338 static struct qcom_icc_node qhs_vsense_ctrl_r_cfg
= {
1339 .name
= "qhs_vsense_ctrl_r_cfg",
1340 .id
= SC8280XP_SLAVE_VSENSE_CTRL_R_CFG
,
1345 static struct qcom_icc_node qns_a1_noc_cfg
= {
1346 .name
= "qns_a1_noc_cfg",
1347 .id
= SC8280XP_SLAVE_A1NOC_CFG
,
1351 .links
= { SC8280XP_MASTER_A1NOC_CFG
},
1354 static struct qcom_icc_node qns_a2_noc_cfg
= {
1355 .name
= "qns_a2_noc_cfg",
1356 .id
= SC8280XP_SLAVE_A2NOC_CFG
,
1360 .links
= { SC8280XP_MASTER_A2NOC_CFG
},
1363 static struct qcom_icc_node qns_anoc_pcie_bridge_cfg
= {
1364 .name
= "qns_anoc_pcie_bridge_cfg",
1365 .id
= SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG
,
1370 static struct qcom_icc_node qns_ddrss_cfg
= {
1371 .name
= "qns_ddrss_cfg",
1372 .id
= SC8280XP_SLAVE_DDRSS_CFG
,
1376 .links
= { SC8280XP_MASTER_CNOC_DC_NOC
},
1379 static struct qcom_icc_node qns_mnoc_cfg
= {
1380 .name
= "qns_mnoc_cfg",
1381 .id
= SC8280XP_SLAVE_CNOC_MNOC_CFG
,
1385 .links
= { SC8280XP_MASTER_CNOC_MNOC_CFG
},
1388 static struct qcom_icc_node qns_snoc_cfg
= {
1389 .name
= "qns_snoc_cfg",
1390 .id
= SC8280XP_SLAVE_SNOC_CFG
,
1394 .links
= { SC8280XP_MASTER_SNOC_CFG
},
1397 static struct qcom_icc_node qns_snoc_sf_bridge_cfg
= {
1398 .name
= "qns_snoc_sf_bridge_cfg",
1399 .id
= SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG
,
1404 static struct qcom_icc_node qxs_imem
= {
1406 .id
= SC8280XP_SLAVE_IMEM
,
1411 static struct qcom_icc_node qxs_pimem
= {
1412 .name
= "qxs_pimem",
1413 .id
= SC8280XP_SLAVE_PIMEM
,
1418 static struct qcom_icc_node srvc_cnoc
= {
1419 .name
= "srvc_cnoc",
1420 .id
= SC8280XP_SLAVE_SERVICE_CNOC
,
1425 static struct qcom_icc_node xs_pcie_0
= {
1426 .name
= "xs_pcie_0",
1427 .id
= SC8280XP_SLAVE_PCIE_0
,
1432 static struct qcom_icc_node xs_pcie_1
= {
1433 .name
= "xs_pcie_1",
1434 .id
= SC8280XP_SLAVE_PCIE_1
,
1439 static struct qcom_icc_node xs_pcie_2a
= {
1440 .name
= "xs_pcie_2a",
1441 .id
= SC8280XP_SLAVE_PCIE_2A
,
1446 static struct qcom_icc_node xs_pcie_2b
= {
1447 .name
= "xs_pcie_2b",
1448 .id
= SC8280XP_SLAVE_PCIE_2B
,
1453 static struct qcom_icc_node xs_pcie_3a
= {
1454 .name
= "xs_pcie_3a",
1455 .id
= SC8280XP_SLAVE_PCIE_3A
,
1460 static struct qcom_icc_node xs_pcie_3b
= {
1461 .name
= "xs_pcie_3b",
1462 .id
= SC8280XP_SLAVE_PCIE_3B
,
1467 static struct qcom_icc_node xs_pcie_4
= {
1468 .name
= "xs_pcie_4",
1469 .id
= SC8280XP_SLAVE_PCIE_4
,
1474 static struct qcom_icc_node xs_qdss_stm
= {
1475 .name
= "xs_qdss_stm",
1476 .id
= SC8280XP_SLAVE_QDSS_STM
,
1481 static struct qcom_icc_node xs_smss
= {
1483 .id
= SC8280XP_SLAVE_SMSS
,
1488 static struct qcom_icc_node xs_sys_tcu_cfg
= {
1489 .name
= "xs_sys_tcu_cfg",
1490 .id
= SC8280XP_SLAVE_TCU
,
1495 static struct qcom_icc_node qhs_llcc
= {
1497 .id
= SC8280XP_SLAVE_LLCC_CFG
,
1502 static struct qcom_icc_node qns_gemnoc
= {
1503 .name
= "qns_gemnoc",
1504 .id
= SC8280XP_SLAVE_GEM_NOC_CFG
,
1508 .links
= { SC8280XP_MASTER_GEM_NOC_CFG
},
1511 static struct qcom_icc_node qns_gem_noc_cnoc
= {
1512 .name
= "qns_gem_noc_cnoc",
1513 .id
= SC8280XP_SLAVE_GEM_NOC_CNOC
,
1517 .links
= { SC8280XP_MASTER_GEM_NOC_CNOC
},
1520 static struct qcom_icc_node qns_llcc
= {
1522 .id
= SC8280XP_SLAVE_LLCC
,
1526 .links
= { SC8280XP_MASTER_LLCC
},
1529 static struct qcom_icc_node qns_pcie
= {
1531 .id
= SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
,
1535 .links
= { SC8280XP_MASTER_GEM_NOC_PCIE_SNOC
},
1538 static struct qcom_icc_node srvc_even_gemnoc
= {
1539 .name
= "srvc_even_gemnoc",
1540 .id
= SC8280XP_SLAVE_SERVICE_GEM_NOC_1
,
1545 static struct qcom_icc_node srvc_odd_gemnoc
= {
1546 .name
= "srvc_odd_gemnoc",
1547 .id
= SC8280XP_SLAVE_SERVICE_GEM_NOC_2
,
1552 static struct qcom_icc_node srvc_sys_gemnoc
= {
1553 .name
= "srvc_sys_gemnoc",
1554 .id
= SC8280XP_SLAVE_SERVICE_GEM_NOC
,
1559 static struct qcom_icc_node qhs_lpass_core
= {
1560 .name
= "qhs_lpass_core",
1561 .id
= SC8280XP_SLAVE_LPASS_CORE_CFG
,
1566 static struct qcom_icc_node qhs_lpass_lpi
= {
1567 .name
= "qhs_lpass_lpi",
1568 .id
= SC8280XP_SLAVE_LPASS_LPI_CFG
,
1573 static struct qcom_icc_node qhs_lpass_mpu
= {
1574 .name
= "qhs_lpass_mpu",
1575 .id
= SC8280XP_SLAVE_LPASS_MPU_CFG
,
1580 static struct qcom_icc_node qhs_lpass_top
= {
1581 .name
= "qhs_lpass_top",
1582 .id
= SC8280XP_SLAVE_LPASS_TOP_CFG
,
1587 static struct qcom_icc_node qns_sysnoc
= {
1588 .name
= "qns_sysnoc",
1589 .id
= SC8280XP_SLAVE_LPASS_SNOC
,
1593 .links
= { SC8280XP_MASTER_LPASS_ANOC
},
1596 static struct qcom_icc_node srvc_niu_aml_noc
= {
1597 .name
= "srvc_niu_aml_noc",
1598 .id
= SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC
,
1603 static struct qcom_icc_node srvc_niu_lpass_agnoc
= {
1604 .name
= "srvc_niu_lpass_agnoc",
1605 .id
= SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC
,
1610 static struct qcom_icc_node ebi
= {
1612 .id
= SC8280XP_SLAVE_EBI1
,
1617 static struct qcom_icc_node qns_mem_noc_hf
= {
1618 .name
= "qns_mem_noc_hf",
1619 .id
= SC8280XP_SLAVE_MNOC_HF_MEM_NOC
,
1623 .links
= { SC8280XP_MASTER_MNOC_HF_MEM_NOC
},
1626 static struct qcom_icc_node qns_mem_noc_sf
= {
1627 .name
= "qns_mem_noc_sf",
1628 .id
= SC8280XP_SLAVE_MNOC_SF_MEM_NOC
,
1632 .links
= { SC8280XP_MASTER_MNOC_SF_MEM_NOC
},
1635 static struct qcom_icc_node srvc_mnoc
= {
1636 .name
= "srvc_mnoc",
1637 .id
= SC8280XP_SLAVE_SERVICE_MNOC
,
1642 static struct qcom_icc_node qns_nsp_gemnoc
= {
1643 .name
= "qns_nsp_gemnoc",
1644 .id
= SC8280XP_SLAVE_CDSP_MEM_NOC
,
1648 .links
= { SC8280XP_MASTER_COMPUTE_NOC
},
1651 static struct qcom_icc_node qxs_nsp_xfr
= {
1652 .name
= "qxs_nsp_xfr",
1653 .id
= SC8280XP_SLAVE_NSP_XFR
,
1658 static struct qcom_icc_node service_nsp_noc
= {
1659 .name
= "service_nsp_noc",
1660 .id
= SC8280XP_SLAVE_SERVICE_NSP_NOC
,
1665 static struct qcom_icc_node qns_nspb_gemnoc
= {
1666 .name
= "qns_nspb_gemnoc",
1667 .id
= SC8280XP_SLAVE_CDSPB_MEM_NOC
,
1671 .links
= { SC8280XP_MASTER_COMPUTE_NOC_1
},
1674 static struct qcom_icc_node qxs_nspb_xfr
= {
1675 .name
= "qxs_nspb_xfr",
1676 .id
= SC8280XP_SLAVE_NSPB_XFR
,
1681 static struct qcom_icc_node service_nspb_noc
= {
1682 .name
= "service_nspb_noc",
1683 .id
= SC8280XP_SLAVE_SERVICE_NSPB_NOC
,
1688 static struct qcom_icc_node qns_gemnoc_gc
= {
1689 .name
= "qns_gemnoc_gc",
1690 .id
= SC8280XP_SLAVE_SNOC_GEM_NOC_GC
,
1694 .links
= { SC8280XP_MASTER_SNOC_GC_MEM_NOC
},
1697 static struct qcom_icc_node qns_gemnoc_sf
= {
1698 .name
= "qns_gemnoc_sf",
1699 .id
= SC8280XP_SLAVE_SNOC_GEM_NOC_SF
,
1703 .links
= { SC8280XP_MASTER_SNOC_SF_MEM_NOC
},
1706 static struct qcom_icc_node srvc_snoc
= {
1707 .name
= "srvc_snoc",
1708 .id
= SC8280XP_SLAVE_SERVICE_SNOC
,
1713 static struct qcom_icc_bcm bcm_acv
= {
1715 .enable_mask
= BIT(3),
1720 static struct qcom_icc_bcm bcm_ce0
= {
1723 .nodes
= { &qxm_crypto
},
1726 static struct qcom_icc_bcm bcm_cn0
= {
1730 .nodes
= { &qnm_gemnoc_cnoc
,
1742 static struct qcom_icc_bcm bcm_cn1
= {
1745 .nodes
= { &qhs_ahb2phy0
,
1783 &qhs_pka_wrapper_cfg
,
1784 &qhs_pmu_wrapper_cfg
,
1802 &qhs_vsense_ctrl_cfg
,
1803 &qhs_vsense_ctrl_r_cfg
,
1806 &qns_anoc_pcie_bridge_cfg
,
1810 &qns_snoc_sf_bridge_cfg
,
1815 static struct qcom_icc_bcm bcm_cn2
= {
1818 .nodes
= { &qhs_qspi
,
1825 static struct qcom_icc_bcm bcm_cn3
= {
1828 .nodes
= { &qxs_imem
,
1834 static struct qcom_icc_bcm bcm_mc0
= {
1841 static struct qcom_icc_bcm bcm_mm0
= {
1845 .nodes
= { &qnm_camnoc_hf
,
1853 static struct qcom_icc_bcm bcm_mm1
= {
1856 .nodes
= { &qnm_rot_0
,
1867 static struct qcom_icc_bcm bcm_nsa0
= {
1870 .nodes
= { &qns_nsp_gemnoc
,
1875 static struct qcom_icc_bcm bcm_nsa1
= {
1878 .nodes
= { &qxm_nsp
},
1881 static struct qcom_icc_bcm bcm_nsb0
= {
1884 .nodes
= { &qns_nspb_gemnoc
,
1889 static struct qcom_icc_bcm bcm_nsb1
= {
1892 .nodes
= { &qxm_nspb
},
1895 static struct qcom_icc_bcm bcm_pci0
= {
1898 .nodes
= { &qns_pcie_gem_noc
},
1901 static struct qcom_icc_bcm bcm_qup0
= {
1905 .nodes
= { &qup0_core_slave
},
1908 static struct qcom_icc_bcm bcm_qup1
= {
1912 .nodes
= { &qup1_core_slave
},
1915 static struct qcom_icc_bcm bcm_qup2
= {
1919 .nodes
= { &qup2_core_slave
},
1922 static struct qcom_icc_bcm bcm_sh0
= {
1926 .nodes
= { &qns_llcc
},
1929 static struct qcom_icc_bcm bcm_sh2
= {
1932 .nodes
= { &chm_apps
},
1935 static struct qcom_icc_bcm bcm_sn0
= {
1939 .nodes
= { &qns_gemnoc_sf
},
1942 static struct qcom_icc_bcm bcm_sn1
= {
1945 .nodes
= { &qns_gemnoc_gc
},
1948 static struct qcom_icc_bcm bcm_sn2
= {
1951 .nodes
= { &qxs_pimem
},
1954 static struct qcom_icc_bcm bcm_sn3
= {
1957 .nodes
= { &qns_a1noc_snoc
,
1962 static struct qcom_icc_bcm bcm_sn4
= {
1965 .nodes
= { &qns_a2noc_snoc
,
1970 static struct qcom_icc_bcm bcm_sn5
= {
1973 .nodes
= { &qns_aggre_usb_snoc
,
1978 static struct qcom_icc_bcm bcm_sn9
= {
1981 .nodes
= { &qns_sysnoc
,
1986 static struct qcom_icc_bcm bcm_sn10
= {
1989 .nodes
= { &xs_qdss_stm
},
1992 static struct qcom_icc_bcm
* const aggre1_noc_bcms
[] = {
1997 static struct qcom_icc_node
* const aggre1_noc_nodes
[] = {
1998 [MASTER_QSPI_0
] = &qhm_qspi
,
1999 [MASTER_QUP_1
] = &qhm_qup1
,
2000 [MASTER_QUP_2
] = &qhm_qup2
,
2001 [MASTER_A1NOC_CFG
] = &qnm_a1noc_cfg
,
2002 [MASTER_IPA
] = &qxm_ipa
,
2003 [MASTER_EMAC_1
] = &xm_emac_1
,
2004 [MASTER_SDCC_4
] = &xm_sdc4
,
2005 [MASTER_UFS_MEM
] = &xm_ufs_mem
,
2006 [MASTER_USB3_0
] = &xm_usb3_0
,
2007 [MASTER_USB3_1
] = &xm_usb3_1
,
2008 [MASTER_USB3_MP
] = &xm_usb3_mp
,
2009 [MASTER_USB4_0
] = &xm_usb4_host0
,
2010 [MASTER_USB4_1
] = &xm_usb4_host1
,
2011 [SLAVE_A1NOC_SNOC
] = &qns_a1noc_snoc
,
2012 [SLAVE_USB_NOC_SNOC
] = &qns_aggre_usb_snoc
,
2013 [SLAVE_SERVICE_A1NOC
] = &srvc_aggre1_noc
,
2016 static const struct qcom_icc_desc sc8280xp_aggre1_noc
= {
2017 .nodes
= aggre1_noc_nodes
,
2018 .num_nodes
= ARRAY_SIZE(aggre1_noc_nodes
),
2019 .bcms
= aggre1_noc_bcms
,
2020 .num_bcms
= ARRAY_SIZE(aggre1_noc_bcms
),
2023 static struct qcom_icc_bcm
* const aggre2_noc_bcms
[] = {
2029 static struct qcom_icc_node
* const aggre2_noc_nodes
[] = {
2030 [MASTER_QDSS_BAM
] = &qhm_qdss_bam
,
2031 [MASTER_QUP_0
] = &qhm_qup0
,
2032 [MASTER_A2NOC_CFG
] = &qnm_a2noc_cfg
,
2033 [MASTER_CRYPTO
] = &qxm_crypto
,
2034 [MASTER_SENSORS_PROC
] = &qxm_sensorss_q6
,
2035 [MASTER_SP
] = &qxm_sp
,
2036 [MASTER_EMAC
] = &xm_emac_0
,
2037 [MASTER_PCIE_0
] = &xm_pcie3_0
,
2038 [MASTER_PCIE_1
] = &xm_pcie3_1
,
2039 [MASTER_PCIE_2A
] = &xm_pcie3_2a
,
2040 [MASTER_PCIE_2B
] = &xm_pcie3_2b
,
2041 [MASTER_PCIE_3A
] = &xm_pcie3_3a
,
2042 [MASTER_PCIE_3B
] = &xm_pcie3_3b
,
2043 [MASTER_PCIE_4
] = &xm_pcie3_4
,
2044 [MASTER_QDSS_ETR
] = &xm_qdss_etr
,
2045 [MASTER_SDCC_2
] = &xm_sdc2
,
2046 [MASTER_UFS_CARD
] = &xm_ufs_card
,
2047 [SLAVE_A2NOC_SNOC
] = &qns_a2noc_snoc
,
2048 [SLAVE_ANOC_PCIE_GEM_NOC
] = &qns_pcie_gem_noc
,
2049 [SLAVE_SERVICE_A2NOC
] = &srvc_aggre2_noc
,
2052 static const struct qcom_icc_desc sc8280xp_aggre2_noc
= {
2053 .nodes
= aggre2_noc_nodes
,
2054 .num_nodes
= ARRAY_SIZE(aggre2_noc_nodes
),
2055 .bcms
= aggre2_noc_bcms
,
2056 .num_bcms
= ARRAY_SIZE(aggre2_noc_bcms
),
2059 static struct qcom_icc_bcm
* const clk_virt_bcms
[] = {
2065 static struct qcom_icc_node
* const clk_virt_nodes
[] = {
2066 [MASTER_QUP_CORE_0
] = &qup0_core_master
,
2067 [MASTER_QUP_CORE_1
] = &qup1_core_master
,
2068 [MASTER_QUP_CORE_2
] = &qup2_core_master
,
2069 [SLAVE_QUP_CORE_0
] = &qup0_core_slave
,
2070 [SLAVE_QUP_CORE_1
] = &qup1_core_slave
,
2071 [SLAVE_QUP_CORE_2
] = &qup2_core_slave
,
2074 static const struct qcom_icc_desc sc8280xp_clk_virt
= {
2075 .nodes
= clk_virt_nodes
,
2076 .num_nodes
= ARRAY_SIZE(clk_virt_nodes
),
2077 .bcms
= clk_virt_bcms
,
2078 .num_bcms
= ARRAY_SIZE(clk_virt_bcms
),
2081 static struct qcom_icc_bcm
* const config_noc_bcms
[] = {
2090 static struct qcom_icc_node
* const config_noc_nodes
[] = {
2091 [MASTER_GEM_NOC_CNOC
] = &qnm_gemnoc_cnoc
,
2092 [MASTER_GEM_NOC_PCIE_SNOC
] = &qnm_gemnoc_pcie
,
2093 [SLAVE_AHB2PHY_0
] = &qhs_ahb2phy0
,
2094 [SLAVE_AHB2PHY_1
] = &qhs_ahb2phy1
,
2095 [SLAVE_AHB2PHY_2
] = &qhs_ahb2phy2
,
2096 [SLAVE_AOSS
] = &qhs_aoss
,
2097 [SLAVE_APPSS
] = &qhs_apss
,
2098 [SLAVE_CAMERA_CFG
] = &qhs_camera_cfg
,
2099 [SLAVE_CLK_CTL
] = &qhs_clk_ctl
,
2100 [SLAVE_CDSP_CFG
] = &qhs_compute0_cfg
,
2101 [SLAVE_CDSP1_CFG
] = &qhs_compute1_cfg
,
2102 [SLAVE_RBCPR_CX_CFG
] = &qhs_cpr_cx
,
2103 [SLAVE_RBCPR_MMCX_CFG
] = &qhs_cpr_mmcx
,
2104 [SLAVE_RBCPR_MX_CFG
] = &qhs_cpr_mx
,
2105 [SLAVE_CPR_NSPCX
] = &qhs_cpr_nspcx
,
2106 [SLAVE_CRYPTO_0_CFG
] = &qhs_crypto0_cfg
,
2107 [SLAVE_CX_RDPM
] = &qhs_cx_rdpm
,
2108 [SLAVE_DCC_CFG
] = &qhs_dcc_cfg
,
2109 [SLAVE_DISPLAY_CFG
] = &qhs_display0_cfg
,
2110 [SLAVE_DISPLAY1_CFG
] = &qhs_display1_cfg
,
2111 [SLAVE_EMAC_CFG
] = &qhs_emac0_cfg
,
2112 [SLAVE_EMAC1_CFG
] = &qhs_emac1_cfg
,
2113 [SLAVE_GFX3D_CFG
] = &qhs_gpuss_cfg
,
2114 [SLAVE_HWKM
] = &qhs_hwkm
,
2115 [SLAVE_IMEM_CFG
] = &qhs_imem_cfg
,
2116 [SLAVE_IPA_CFG
] = &qhs_ipa
,
2117 [SLAVE_IPC_ROUTER_CFG
] = &qhs_ipc_router
,
2118 [SLAVE_LPASS
] = &qhs_lpass_cfg
,
2119 [SLAVE_MX_RDPM
] = &qhs_mx_rdpm
,
2120 [SLAVE_MXC_RDPM
] = &qhs_mxc_rdpm
,
2121 [SLAVE_PCIE_0_CFG
] = &qhs_pcie0_cfg
,
2122 [SLAVE_PCIE_1_CFG
] = &qhs_pcie1_cfg
,
2123 [SLAVE_PCIE_2A_CFG
] = &qhs_pcie2a_cfg
,
2124 [SLAVE_PCIE_2B_CFG
] = &qhs_pcie2b_cfg
,
2125 [SLAVE_PCIE_3A_CFG
] = &qhs_pcie3a_cfg
,
2126 [SLAVE_PCIE_3B_CFG
] = &qhs_pcie3b_cfg
,
2127 [SLAVE_PCIE_4_CFG
] = &qhs_pcie4_cfg
,
2128 [SLAVE_PCIE_RSC_CFG
] = &qhs_pcie_rsc_cfg
,
2129 [SLAVE_PDM
] = &qhs_pdm
,
2130 [SLAVE_PIMEM_CFG
] = &qhs_pimem_cfg
,
2131 [SLAVE_PKA_WRAPPER_CFG
] = &qhs_pka_wrapper_cfg
,
2132 [SLAVE_PMU_WRAPPER_CFG
] = &qhs_pmu_wrapper_cfg
,
2133 [SLAVE_QDSS_CFG
] = &qhs_qdss_cfg
,
2134 [SLAVE_QSPI_0
] = &qhs_qspi
,
2135 [SLAVE_QUP_0
] = &qhs_qup0
,
2136 [SLAVE_QUP_1
] = &qhs_qup1
,
2137 [SLAVE_QUP_2
] = &qhs_qup2
,
2138 [SLAVE_SDCC_2
] = &qhs_sdc2
,
2139 [SLAVE_SDCC_4
] = &qhs_sdc4
,
2140 [SLAVE_SECURITY
] = &qhs_security
,
2141 [SLAVE_SMMUV3_CFG
] = &qhs_smmuv3_cfg
,
2142 [SLAVE_SMSS_CFG
] = &qhs_smss_cfg
,
2143 [SLAVE_SPSS_CFG
] = &qhs_spss_cfg
,
2144 [SLAVE_TCSR
] = &qhs_tcsr
,
2145 [SLAVE_TLMM
] = &qhs_tlmm
,
2146 [SLAVE_UFS_CARD_CFG
] = &qhs_ufs_card_cfg
,
2147 [SLAVE_UFS_MEM_CFG
] = &qhs_ufs_mem_cfg
,
2148 [SLAVE_USB3_0
] = &qhs_usb3_0
,
2149 [SLAVE_USB3_1
] = &qhs_usb3_1
,
2150 [SLAVE_USB3_MP
] = &qhs_usb3_mp
,
2151 [SLAVE_USB4_0
] = &qhs_usb4_host_0
,
2152 [SLAVE_USB4_1
] = &qhs_usb4_host_1
,
2153 [SLAVE_VENUS_CFG
] = &qhs_venus_cfg
,
2154 [SLAVE_VSENSE_CTRL_CFG
] = &qhs_vsense_ctrl_cfg
,
2155 [SLAVE_VSENSE_CTRL_R_CFG
] = &qhs_vsense_ctrl_r_cfg
,
2156 [SLAVE_A1NOC_CFG
] = &qns_a1_noc_cfg
,
2157 [SLAVE_A2NOC_CFG
] = &qns_a2_noc_cfg
,
2158 [SLAVE_ANOC_PCIE_BRIDGE_CFG
] = &qns_anoc_pcie_bridge_cfg
,
2159 [SLAVE_DDRSS_CFG
] = &qns_ddrss_cfg
,
2160 [SLAVE_CNOC_MNOC_CFG
] = &qns_mnoc_cfg
,
2161 [SLAVE_SNOC_CFG
] = &qns_snoc_cfg
,
2162 [SLAVE_SNOC_SF_BRIDGE_CFG
] = &qns_snoc_sf_bridge_cfg
,
2163 [SLAVE_IMEM
] = &qxs_imem
,
2164 [SLAVE_PIMEM
] = &qxs_pimem
,
2165 [SLAVE_SERVICE_CNOC
] = &srvc_cnoc
,
2166 [SLAVE_PCIE_0
] = &xs_pcie_0
,
2167 [SLAVE_PCIE_1
] = &xs_pcie_1
,
2168 [SLAVE_PCIE_2A
] = &xs_pcie_2a
,
2169 [SLAVE_PCIE_2B
] = &xs_pcie_2b
,
2170 [SLAVE_PCIE_3A
] = &xs_pcie_3a
,
2171 [SLAVE_PCIE_3B
] = &xs_pcie_3b
,
2172 [SLAVE_PCIE_4
] = &xs_pcie_4
,
2173 [SLAVE_QDSS_STM
] = &xs_qdss_stm
,
2174 [SLAVE_SMSS
] = &xs_smss
,
2175 [SLAVE_TCU
] = &xs_sys_tcu_cfg
,
2178 static const struct qcom_icc_desc sc8280xp_config_noc
= {
2179 .nodes
= config_noc_nodes
,
2180 .num_nodes
= ARRAY_SIZE(config_noc_nodes
),
2181 .bcms
= config_noc_bcms
,
2182 .num_bcms
= ARRAY_SIZE(config_noc_bcms
),
2185 static struct qcom_icc_bcm
* const dc_noc_bcms
[] = {
2188 static struct qcom_icc_node
* const dc_noc_nodes
[] = {
2189 [MASTER_CNOC_DC_NOC
] = &qnm_cnoc_dc_noc
,
2190 [SLAVE_LLCC_CFG
] = &qhs_llcc
,
2191 [SLAVE_GEM_NOC_CFG
] = &qns_gemnoc
,
2194 static const struct qcom_icc_desc sc8280xp_dc_noc
= {
2195 .nodes
= dc_noc_nodes
,
2196 .num_nodes
= ARRAY_SIZE(dc_noc_nodes
),
2197 .bcms
= dc_noc_bcms
,
2198 .num_bcms
= ARRAY_SIZE(dc_noc_bcms
),
2201 static struct qcom_icc_bcm
* const gem_noc_bcms
[] = {
2206 static struct qcom_icc_node
* const gem_noc_nodes
[] = {
2207 [MASTER_GPU_TCU
] = &alm_gpu_tcu
,
2208 [MASTER_PCIE_TCU
] = &alm_pcie_tcu
,
2209 [MASTER_SYS_TCU
] = &alm_sys_tcu
,
2210 [MASTER_APPSS_PROC
] = &chm_apps
,
2211 [MASTER_COMPUTE_NOC
] = &qnm_cmpnoc0
,
2212 [MASTER_COMPUTE_NOC_1
] = &qnm_cmpnoc1
,
2213 [MASTER_GEM_NOC_CFG
] = &qnm_gemnoc_cfg
,
2214 [MASTER_GFX3D
] = &qnm_gpu
,
2215 [MASTER_MNOC_HF_MEM_NOC
] = &qnm_mnoc_hf
,
2216 [MASTER_MNOC_SF_MEM_NOC
] = &qnm_mnoc_sf
,
2217 [MASTER_ANOC_PCIE_GEM_NOC
] = &qnm_pcie
,
2218 [MASTER_SNOC_GC_MEM_NOC
] = &qnm_snoc_gc
,
2219 [MASTER_SNOC_SF_MEM_NOC
] = &qnm_snoc_sf
,
2220 [SLAVE_GEM_NOC_CNOC
] = &qns_gem_noc_cnoc
,
2221 [SLAVE_LLCC
] = &qns_llcc
,
2222 [SLAVE_GEM_NOC_PCIE_CNOC
] = &qns_pcie
,
2223 [SLAVE_SERVICE_GEM_NOC_1
] = &srvc_even_gemnoc
,
2224 [SLAVE_SERVICE_GEM_NOC_2
] = &srvc_odd_gemnoc
,
2225 [SLAVE_SERVICE_GEM_NOC
] = &srvc_sys_gemnoc
,
2228 static const struct qcom_icc_desc sc8280xp_gem_noc
= {
2229 .nodes
= gem_noc_nodes
,
2230 .num_nodes
= ARRAY_SIZE(gem_noc_nodes
),
2231 .bcms
= gem_noc_bcms
,
2232 .num_bcms
= ARRAY_SIZE(gem_noc_bcms
),
2235 static struct qcom_icc_bcm
* const lpass_ag_noc_bcms
[] = {
2239 static struct qcom_icc_node
* const lpass_ag_noc_nodes
[] = {
2240 [MASTER_CNOC_LPASS_AG_NOC
] = &qhm_config_noc
,
2241 [MASTER_LPASS_PROC
] = &qxm_lpass_dsp
,
2242 [SLAVE_LPASS_CORE_CFG
] = &qhs_lpass_core
,
2243 [SLAVE_LPASS_LPI_CFG
] = &qhs_lpass_lpi
,
2244 [SLAVE_LPASS_MPU_CFG
] = &qhs_lpass_mpu
,
2245 [SLAVE_LPASS_TOP_CFG
] = &qhs_lpass_top
,
2246 [SLAVE_LPASS_SNOC
] = &qns_sysnoc
,
2247 [SLAVE_SERVICES_LPASS_AML_NOC
] = &srvc_niu_aml_noc
,
2248 [SLAVE_SERVICE_LPASS_AG_NOC
] = &srvc_niu_lpass_agnoc
,
2251 static const struct qcom_icc_desc sc8280xp_lpass_ag_noc
= {
2252 .nodes
= lpass_ag_noc_nodes
,
2253 .num_nodes
= ARRAY_SIZE(lpass_ag_noc_nodes
),
2254 .bcms
= lpass_ag_noc_bcms
,
2255 .num_bcms
= ARRAY_SIZE(lpass_ag_noc_bcms
),
2258 static struct qcom_icc_bcm
* const mc_virt_bcms
[] = {
2263 static struct qcom_icc_node
* const mc_virt_nodes
[] = {
2264 [MASTER_LLCC
] = &llcc_mc
,
2265 [SLAVE_EBI1
] = &ebi
,
2268 static const struct qcom_icc_desc sc8280xp_mc_virt
= {
2269 .nodes
= mc_virt_nodes
,
2270 .num_nodes
= ARRAY_SIZE(mc_virt_nodes
),
2271 .bcms
= mc_virt_bcms
,
2272 .num_bcms
= ARRAY_SIZE(mc_virt_bcms
),
2275 static struct qcom_icc_bcm
* const mmss_noc_bcms
[] = {
2280 static struct qcom_icc_node
* const mmss_noc_nodes
[] = {
2281 [MASTER_CAMNOC_HF
] = &qnm_camnoc_hf
,
2282 [MASTER_MDP0
] = &qnm_mdp0_0
,
2283 [MASTER_MDP1
] = &qnm_mdp0_1
,
2284 [MASTER_MDP_CORE1_0
] = &qnm_mdp1_0
,
2285 [MASTER_MDP_CORE1_1
] = &qnm_mdp1_1
,
2286 [MASTER_CNOC_MNOC_CFG
] = &qnm_mnoc_cfg
,
2287 [MASTER_ROTATOR
] = &qnm_rot_0
,
2288 [MASTER_ROTATOR_1
] = &qnm_rot_1
,
2289 [MASTER_VIDEO_P0
] = &qnm_video0
,
2290 [MASTER_VIDEO_P1
] = &qnm_video1
,
2291 [MASTER_VIDEO_PROC
] = &qnm_video_cvp
,
2292 [MASTER_CAMNOC_ICP
] = &qxm_camnoc_icp
,
2293 [MASTER_CAMNOC_SF
] = &qxm_camnoc_sf
,
2294 [SLAVE_MNOC_HF_MEM_NOC
] = &qns_mem_noc_hf
,
2295 [SLAVE_MNOC_SF_MEM_NOC
] = &qns_mem_noc_sf
,
2296 [SLAVE_SERVICE_MNOC
] = &srvc_mnoc
,
2299 static const struct qcom_icc_desc sc8280xp_mmss_noc
= {
2300 .nodes
= mmss_noc_nodes
,
2301 .num_nodes
= ARRAY_SIZE(mmss_noc_nodes
),
2302 .bcms
= mmss_noc_bcms
,
2303 .num_bcms
= ARRAY_SIZE(mmss_noc_bcms
),
2306 static struct qcom_icc_bcm
* const nspa_noc_bcms
[] = {
2311 static struct qcom_icc_node
* const nspa_noc_nodes
[] = {
2312 [MASTER_CDSP_NOC_CFG
] = &qhm_nsp_noc_config
,
2313 [MASTER_CDSP_PROC
] = &qxm_nsp
,
2314 [SLAVE_CDSP_MEM_NOC
] = &qns_nsp_gemnoc
,
2315 [SLAVE_NSP_XFR
] = &qxs_nsp_xfr
,
2316 [SLAVE_SERVICE_NSP_NOC
] = &service_nsp_noc
,
2319 static const struct qcom_icc_desc sc8280xp_nspa_noc
= {
2320 .nodes
= nspa_noc_nodes
,
2321 .num_nodes
= ARRAY_SIZE(nspa_noc_nodes
),
2322 .bcms
= nspa_noc_bcms
,
2323 .num_bcms
= ARRAY_SIZE(nspa_noc_bcms
),
2326 static struct qcom_icc_bcm
* const nspb_noc_bcms
[] = {
2331 static struct qcom_icc_node
* const nspb_noc_nodes
[] = {
2332 [MASTER_CDSPB_NOC_CFG
] = &qhm_nspb_noc_config
,
2333 [MASTER_CDSP_PROC_B
] = &qxm_nspb
,
2334 [SLAVE_CDSPB_MEM_NOC
] = &qns_nspb_gemnoc
,
2335 [SLAVE_NSPB_XFR
] = &qxs_nspb_xfr
,
2336 [SLAVE_SERVICE_NSPB_NOC
] = &service_nspb_noc
,
2339 static const struct qcom_icc_desc sc8280xp_nspb_noc
= {
2340 .nodes
= nspb_noc_nodes
,
2341 .num_nodes
= ARRAY_SIZE(nspb_noc_nodes
),
2342 .bcms
= nspb_noc_bcms
,
2343 .num_bcms
= ARRAY_SIZE(nspb_noc_bcms
),
2346 static struct qcom_icc_bcm
* const system_noc_main_bcms
[] = {
2355 static struct qcom_icc_node
* const system_noc_main_nodes
[] = {
2356 [MASTER_A1NOC_SNOC
] = &qnm_aggre1_noc
,
2357 [MASTER_A2NOC_SNOC
] = &qnm_aggre2_noc
,
2358 [MASTER_USB_NOC_SNOC
] = &qnm_aggre_usb_noc
,
2359 [MASTER_LPASS_ANOC
] = &qnm_lpass_noc
,
2360 [MASTER_SNOC_CFG
] = &qnm_snoc_cfg
,
2361 [MASTER_PIMEM
] = &qxm_pimem
,
2362 [MASTER_GIC
] = &xm_gic
,
2363 [SLAVE_SNOC_GEM_NOC_GC
] = &qns_gemnoc_gc
,
2364 [SLAVE_SNOC_GEM_NOC_SF
] = &qns_gemnoc_sf
,
2365 [SLAVE_SERVICE_SNOC
] = &srvc_snoc
,
2368 static const struct qcom_icc_desc sc8280xp_system_noc_main
= {
2369 .nodes
= system_noc_main_nodes
,
2370 .num_nodes
= ARRAY_SIZE(system_noc_main_nodes
),
2371 .bcms
= system_noc_main_bcms
,
2372 .num_bcms
= ARRAY_SIZE(system_noc_main_bcms
),
2375 static const struct of_device_id qnoc_of_match
[] = {
2376 { .compatible
= "qcom,sc8280xp-aggre1-noc", .data
= &sc8280xp_aggre1_noc
, },
2377 { .compatible
= "qcom,sc8280xp-aggre2-noc", .data
= &sc8280xp_aggre2_noc
, },
2378 { .compatible
= "qcom,sc8280xp-clk-virt", .data
= &sc8280xp_clk_virt
, },
2379 { .compatible
= "qcom,sc8280xp-config-noc", .data
= &sc8280xp_config_noc
, },
2380 { .compatible
= "qcom,sc8280xp-dc-noc", .data
= &sc8280xp_dc_noc
, },
2381 { .compatible
= "qcom,sc8280xp-gem-noc", .data
= &sc8280xp_gem_noc
, },
2382 { .compatible
= "qcom,sc8280xp-lpass-ag-noc", .data
= &sc8280xp_lpass_ag_noc
, },
2383 { .compatible
= "qcom,sc8280xp-mc-virt", .data
= &sc8280xp_mc_virt
, },
2384 { .compatible
= "qcom,sc8280xp-mmss-noc", .data
= &sc8280xp_mmss_noc
, },
2385 { .compatible
= "qcom,sc8280xp-nspa-noc", .data
= &sc8280xp_nspa_noc
, },
2386 { .compatible
= "qcom,sc8280xp-nspb-noc", .data
= &sc8280xp_nspb_noc
, },
2387 { .compatible
= "qcom,sc8280xp-system-noc", .data
= &sc8280xp_system_noc_main
, },
2390 MODULE_DEVICE_TABLE(of
, qnoc_of_match
);
2392 static struct platform_driver qnoc_driver
= {
2393 .probe
= qcom_icc_rpmh_probe
,
2394 .remove
= qcom_icc_rpmh_remove
,
2396 .name
= "qnoc-sc8280xp",
2397 .of_match_table
= qnoc_of_match
,
2398 .sync_state
= icc_sync_state
,
2402 static int __init
qnoc_driver_init(void)
2404 return platform_driver_register(&qnoc_driver
);
2406 core_initcall(qnoc_driver_init
);
2408 static void __exit
qnoc_driver_exit(void)
2410 platform_driver_unregister(&qnoc_driver
);
2412 module_exit(qnoc_driver_exit
);
2414 MODULE_DESCRIPTION("Qualcomm SC8280XP NoC driver");
2415 MODULE_LICENSE("GPL");