1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
7 #include <linux/device.h>
8 #include <linux/interconnect.h>
9 #include <linux/interconnect-provider.h>
10 #include <linux/module.h>
11 #include <linux/of_platform.h>
12 #include <dt-bindings/interconnect/qcom,qcs615-rpmh.h>
14 #include "bcm-voter.h"
18 static struct qcom_icc_node qhm_a1noc_cfg
= {
19 .name
= "qhm_a1noc_cfg",
20 .id
= QCS615_MASTER_A1NOC_CFG
,
24 .links
= { QCS615_SLAVE_SERVICE_A2NOC
},
27 static struct qcom_icc_node qhm_qdss_bam
= {
28 .name
= "qhm_qdss_bam",
29 .id
= QCS615_MASTER_QDSS_BAM
,
33 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
36 static struct qcom_icc_node qhm_qspi
= {
38 .id
= QCS615_MASTER_QSPI
,
42 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
45 static struct qcom_icc_node qhm_qup0
= {
47 .id
= QCS615_MASTER_QUP_0
,
51 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
54 static struct qcom_icc_node qhm_qup1
= {
56 .id
= QCS615_MASTER_BLSP_1
,
60 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
63 static struct qcom_icc_node qnm_cnoc
= {
65 .id
= QCS615_MASTER_CNOC_A2NOC
,
69 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
72 static struct qcom_icc_node qxm_crypto
= {
74 .id
= QCS615_MASTER_CRYPTO
,
78 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
81 static struct qcom_icc_node qxm_ipa
= {
83 .id
= QCS615_MASTER_IPA
,
87 .links
= { QCS615_SLAVE_LPASS_SNOC
},
90 static struct qcom_icc_node xm_emac_avb
= {
91 .name
= "xm_emac_avb",
92 .id
= QCS615_MASTER_EMAC_EVB
,
96 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
99 static struct qcom_icc_node xm_pcie
= {
101 .id
= QCS615_MASTER_PCIE
,
105 .links
= { QCS615_SLAVE_ANOC_PCIE_SNOC
},
108 static struct qcom_icc_node xm_qdss_etr
= {
109 .name
= "xm_qdss_etr",
110 .id
= QCS615_MASTER_QDSS_ETR
,
114 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
117 static struct qcom_icc_node xm_sdc1
= {
119 .id
= QCS615_MASTER_SDCC_1
,
123 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
126 static struct qcom_icc_node xm_sdc2
= {
128 .id
= QCS615_MASTER_SDCC_2
,
132 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
135 static struct qcom_icc_node xm_ufs_mem
= {
136 .name
= "xm_ufs_mem",
137 .id
= QCS615_MASTER_UFS_MEM
,
141 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
144 static struct qcom_icc_node xm_usb2
= {
146 .id
= QCS615_MASTER_USB2
,
150 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
153 static struct qcom_icc_node xm_usb3_0
= {
155 .id
= QCS615_MASTER_USB3_0
,
159 .links
= { QCS615_SLAVE_A1NOC_SNOC
},
162 static struct qcom_icc_node qxm_camnoc_hf0_uncomp
= {
163 .name
= "qxm_camnoc_hf0_uncomp",
164 .id
= QCS615_MASTER_CAMNOC_HF0_UNCOMP
,
168 .links
= { QCS615_SLAVE_CAMNOC_UNCOMP
},
171 static struct qcom_icc_node qxm_camnoc_hf1_uncomp
= {
172 .name
= "qxm_camnoc_hf1_uncomp",
173 .id
= QCS615_MASTER_CAMNOC_HF1_UNCOMP
,
177 .links
= { QCS615_SLAVE_CAMNOC_UNCOMP
},
180 static struct qcom_icc_node qxm_camnoc_sf_uncomp
= {
181 .name
= "qxm_camnoc_sf_uncomp",
182 .id
= QCS615_MASTER_CAMNOC_SF_UNCOMP
,
186 .links
= { QCS615_SLAVE_CAMNOC_UNCOMP
},
189 static struct qcom_icc_node qhm_spdm
= {
191 .id
= QCS615_MASTER_SPDM
,
195 .links
= { QCS615_SLAVE_CNOC_A2NOC
},
198 static struct qcom_icc_node qnm_snoc
= {
200 .id
= QCS615_MASTER_SNOC_CNOC
,
204 .links
= { QCS615_SLAVE_A1NOC_CFG
, QCS615_SLAVE_AHB2PHY_EAST
,
205 QCS615_SLAVE_AHB2PHY_WEST
, QCS615_SLAVE_AOP
,
206 QCS615_SLAVE_AOSS
, QCS615_SLAVE_CAMERA_CFG
,
207 QCS615_SLAVE_CLK_CTL
, QCS615_SLAVE_RBCPR_CX_CFG
,
208 QCS615_SLAVE_RBCPR_MX_CFG
, QCS615_SLAVE_CRYPTO_0_CFG
,
209 QCS615_SLAVE_CNOC_DDRSS
, QCS615_SLAVE_DISPLAY_CFG
,
210 QCS615_SLAVE_EMAC_AVB_CFG
, QCS615_SLAVE_GLM
,
211 QCS615_SLAVE_GFX3D_CFG
, QCS615_SLAVE_IMEM_CFG
,
212 QCS615_SLAVE_IPA_CFG
, QCS615_SLAVE_CNOC_MNOC_CFG
,
213 QCS615_SLAVE_PCIE_CFG
, QCS615_SLAVE_PIMEM_CFG
,
214 QCS615_SLAVE_PRNG
, QCS615_SLAVE_QDSS_CFG
,
215 QCS615_SLAVE_QSPI
, QCS615_SLAVE_QUP_0
,
216 QCS615_SLAVE_QUP_1
, QCS615_SLAVE_SDCC_1
,
217 QCS615_SLAVE_SDCC_2
, QCS615_SLAVE_SNOC_CFG
,
218 QCS615_SLAVE_SPDM_WRAPPER
, QCS615_SLAVE_TCSR
,
219 QCS615_SLAVE_TLMM_EAST
, QCS615_SLAVE_TLMM_SOUTH
,
220 QCS615_SLAVE_TLMM_WEST
, QCS615_SLAVE_UFS_MEM_CFG
,
221 QCS615_SLAVE_USB2
, QCS615_SLAVE_USB3
,
222 QCS615_SLAVE_VENUS_CFG
, QCS615_SLAVE_VSENSE_CTRL_CFG
,
223 QCS615_SLAVE_SERVICE_CNOC
},
226 static struct qcom_icc_node xm_qdss_dap
= {
227 .name
= "xm_qdss_dap",
228 .id
= QCS615_MASTER_QDSS_DAP
,
232 .links
= { QCS615_SLAVE_A1NOC_CFG
, QCS615_SLAVE_AHB2PHY_EAST
,
233 QCS615_SLAVE_AHB2PHY_WEST
, QCS615_SLAVE_AOP
,
234 QCS615_SLAVE_AOSS
, QCS615_SLAVE_CAMERA_CFG
,
235 QCS615_SLAVE_CLK_CTL
, QCS615_SLAVE_RBCPR_CX_CFG
,
236 QCS615_SLAVE_RBCPR_MX_CFG
, QCS615_SLAVE_CRYPTO_0_CFG
,
237 QCS615_SLAVE_CNOC_DDRSS
, QCS615_SLAVE_DISPLAY_CFG
,
238 QCS615_SLAVE_EMAC_AVB_CFG
, QCS615_SLAVE_GLM
,
239 QCS615_SLAVE_GFX3D_CFG
, QCS615_SLAVE_IMEM_CFG
,
240 QCS615_SLAVE_IPA_CFG
, QCS615_SLAVE_CNOC_MNOC_CFG
,
241 QCS615_SLAVE_PCIE_CFG
, QCS615_SLAVE_PIMEM_CFG
,
242 QCS615_SLAVE_PRNG
, QCS615_SLAVE_QDSS_CFG
,
243 QCS615_SLAVE_QSPI
, QCS615_SLAVE_QUP_0
,
244 QCS615_SLAVE_QUP_1
, QCS615_SLAVE_SDCC_1
,
245 QCS615_SLAVE_SDCC_2
, QCS615_SLAVE_SNOC_CFG
,
246 QCS615_SLAVE_SPDM_WRAPPER
, QCS615_SLAVE_TCSR
,
247 QCS615_SLAVE_TLMM_EAST
, QCS615_SLAVE_TLMM_SOUTH
,
248 QCS615_SLAVE_TLMM_WEST
, QCS615_SLAVE_UFS_MEM_CFG
,
249 QCS615_SLAVE_USB2
, QCS615_SLAVE_USB3
,
250 QCS615_SLAVE_VENUS_CFG
, QCS615_SLAVE_VSENSE_CTRL_CFG
,
251 QCS615_SLAVE_CNOC_A2NOC
, QCS615_SLAVE_SERVICE_CNOC
},
254 static struct qcom_icc_node qhm_cnoc
= {
256 .id
= QCS615_MASTER_CNOC_DC_NOC
,
260 .links
= { QCS615_SLAVE_DC_NOC_GEMNOC
, QCS615_SLAVE_LLCC_CFG
},
263 static struct qcom_icc_node acm_apps
= {
265 .id
= QCS615_MASTER_APPSS_PROC
,
269 .links
= { QCS615_SLAVE_GEM_NOC_SNOC
, QCS615_SLAVE_LLCC
,
270 QCS615_SLAVE_MEM_NOC_PCIE_SNOC
},
273 static struct qcom_icc_node acm_gpu_tcu
= {
274 .name
= "acm_gpu_tcu",
275 .id
= QCS615_MASTER_GPU_TCU
,
279 .links
= { QCS615_SLAVE_GEM_NOC_SNOC
, QCS615_SLAVE_LLCC
},
282 static struct qcom_icc_node acm_sys_tcu
= {
283 .name
= "acm_sys_tcu",
284 .id
= QCS615_MASTER_SYS_TCU
,
288 .links
= { QCS615_SLAVE_GEM_NOC_SNOC
, QCS615_SLAVE_LLCC
},
291 static struct qcom_icc_node qhm_gemnoc_cfg
= {
292 .name
= "qhm_gemnoc_cfg",
293 .id
= QCS615_MASTER_GEM_NOC_CFG
,
297 .links
= { QCS615_SLAVE_MSS_PROC_MS_MPU_CFG
, QCS615_SLAVE_SERVICE_GEM_NOC
},
300 static struct qcom_icc_node qnm_gpu
= {
302 .id
= QCS615_MASTER_GFX3D
,
306 .links
= { QCS615_SLAVE_GEM_NOC_SNOC
, QCS615_SLAVE_LLCC
},
309 static struct qcom_icc_node qnm_mnoc_hf
= {
310 .name
= "qnm_mnoc_hf",
311 .id
= QCS615_MASTER_MNOC_HF_MEM_NOC
,
315 .links
= { QCS615_SLAVE_LLCC
},
318 static struct qcom_icc_node qnm_mnoc_sf
= {
319 .name
= "qnm_mnoc_sf",
320 .id
= QCS615_MASTER_MNOC_SF_MEM_NOC
,
324 .links
= { QCS615_SLAVE_GEM_NOC_SNOC
, QCS615_SLAVE_LLCC
},
327 static struct qcom_icc_node qnm_snoc_gc
= {
328 .name
= "qnm_snoc_gc",
329 .id
= QCS615_MASTER_SNOC_GC_MEM_NOC
,
333 .links
= { QCS615_SLAVE_LLCC
},
336 static struct qcom_icc_node qnm_snoc_sf
= {
337 .name
= "qnm_snoc_sf",
338 .id
= QCS615_MASTER_SNOC_SF_MEM_NOC
,
342 .links
= { QCS615_SLAVE_LLCC
},
345 static struct qcom_icc_node ipa_core_master
= {
346 .name
= "ipa_core_master",
347 .id
= QCS615_MASTER_IPA_CORE
,
351 .links
= { QCS615_SLAVE_IPA_CORE
},
354 static struct qcom_icc_node llcc_mc
= {
356 .id
= QCS615_MASTER_LLCC
,
360 .links
= { QCS615_SLAVE_EBI1
},
363 static struct qcom_icc_node qhm_mnoc_cfg
= {
364 .name
= "qhm_mnoc_cfg",
365 .id
= QCS615_MASTER_CNOC_MNOC_CFG
,
369 .links
= { QCS615_SLAVE_SERVICE_MNOC
},
372 static struct qcom_icc_node qxm_camnoc_hf0
= {
373 .name
= "qxm_camnoc_hf0",
374 .id
= QCS615_MASTER_CAMNOC_HF0
,
378 .links
= { QCS615_SLAVE_MNOC_HF_MEM_NOC
},
381 static struct qcom_icc_node qxm_camnoc_hf1
= {
382 .name
= "qxm_camnoc_hf1",
383 .id
= QCS615_MASTER_CAMNOC_HF1
,
387 .links
= { QCS615_SLAVE_MNOC_HF_MEM_NOC
},
390 static struct qcom_icc_node qxm_camnoc_sf
= {
391 .name
= "qxm_camnoc_sf",
392 .id
= QCS615_MASTER_CAMNOC_SF
,
396 .links
= { QCS615_SLAVE_MNOC_SF_MEM_NOC
},
399 static struct qcom_icc_node qxm_mdp0
= {
401 .id
= QCS615_MASTER_MDP0
,
405 .links
= { QCS615_SLAVE_MNOC_HF_MEM_NOC
},
408 static struct qcom_icc_node qxm_rot
= {
410 .id
= QCS615_MASTER_ROTATOR
,
414 .links
= { QCS615_SLAVE_MNOC_SF_MEM_NOC
},
417 static struct qcom_icc_node qxm_venus0
= {
418 .name
= "qxm_venus0",
419 .id
= QCS615_MASTER_VIDEO_P0
,
423 .links
= { QCS615_SLAVE_MNOC_SF_MEM_NOC
},
426 static struct qcom_icc_node qxm_venus_arm9
= {
427 .name
= "qxm_venus_arm9",
428 .id
= QCS615_MASTER_VIDEO_PROC
,
432 .links
= { QCS615_SLAVE_MNOC_SF_MEM_NOC
},
435 static struct qcom_icc_node qhm_snoc_cfg
= {
436 .name
= "qhm_snoc_cfg",
437 .id
= QCS615_MASTER_SNOC_CFG
,
441 .links
= { QCS615_SLAVE_SERVICE_SNOC
},
444 static struct qcom_icc_node qnm_aggre1_noc
= {
445 .name
= "qnm_aggre1_noc",
446 .id
= QCS615_MASTER_A1NOC_SNOC
,
450 .links
= { QCS615_SLAVE_APPSS
, QCS615_SLAVE_SNOC_CNOC
,
451 QCS615_SLAVE_SNOC_GEM_NOC_SF
, QCS615_SLAVE_IMEM
,
452 QCS615_SLAVE_PIMEM
, QCS615_SLAVE_PCIE_0
,
453 QCS615_SLAVE_QDSS_STM
, QCS615_SLAVE_TCU
},
456 static struct qcom_icc_node qnm_gemnoc
= {
457 .name
= "qnm_gemnoc",
458 .id
= QCS615_MASTER_GEM_NOC_SNOC
,
462 .links
= { QCS615_SLAVE_APPSS
, QCS615_SLAVE_SNOC_CNOC
,
463 QCS615_SLAVE_IMEM
, QCS615_SLAVE_PIMEM
,
464 QCS615_SLAVE_QDSS_STM
, QCS615_SLAVE_TCU
},
467 static struct qcom_icc_node qnm_gemnoc_pcie
= {
468 .name
= "qnm_gemnoc_pcie",
469 .id
= QCS615_MASTER_GEM_NOC_PCIE_SNOC
,
473 .links
= { QCS615_SLAVE_PCIE_0
},
476 static struct qcom_icc_node qnm_lpass_anoc
= {
477 .name
= "qnm_lpass_anoc",
478 .id
= QCS615_MASTER_LPASS_ANOC
,
482 .links
= { QCS615_SLAVE_APPSS
, QCS615_SLAVE_SNOC_CNOC
,
483 QCS615_SLAVE_SNOC_GEM_NOC_SF
, QCS615_SLAVE_IMEM
,
484 QCS615_SLAVE_PIMEM
, QCS615_SLAVE_PCIE_0
,
485 QCS615_SLAVE_QDSS_STM
},
488 static struct qcom_icc_node qnm_pcie_anoc
= {
489 .name
= "qnm_pcie_anoc",
490 .id
= QCS615_MASTER_ANOC_PCIE_SNOC
,
494 .links
= { QCS615_SLAVE_APPSS
, QCS615_SLAVE_SNOC_CNOC
,
495 QCS615_SLAVE_SNOC_GEM_NOC_SF
, QCS615_SLAVE_IMEM
,
496 QCS615_SLAVE_QDSS_STM
},
499 static struct qcom_icc_node qxm_pimem
= {
501 .id
= QCS615_MASTER_PIMEM
,
505 .links
= { QCS615_SLAVE_SNOC_MEM_NOC_GC
, QCS615_SLAVE_IMEM
},
508 static struct qcom_icc_node xm_gic
= {
510 .id
= QCS615_MASTER_GIC
,
514 .links
= { QCS615_SLAVE_SNOC_MEM_NOC_GC
, QCS615_SLAVE_IMEM
},
517 static struct qcom_icc_node qns_a1noc_snoc
= {
518 .name
= "qns_a1noc_snoc",
519 .id
= QCS615_SLAVE_A1NOC_SNOC
,
523 .links
= { QCS615_MASTER_A1NOC_SNOC
},
526 static struct qcom_icc_node qns_lpass_snoc
= {
527 .name
= "qns_lpass_snoc",
528 .id
= QCS615_SLAVE_LPASS_SNOC
,
532 .links
= { QCS615_MASTER_LPASS_ANOC
},
535 static struct qcom_icc_node qns_pcie_snoc
= {
536 .name
= "qns_pcie_snoc",
537 .id
= QCS615_SLAVE_ANOC_PCIE_SNOC
,
541 .links
= { QCS615_MASTER_ANOC_PCIE_SNOC
},
544 static struct qcom_icc_node srvc_aggre2_noc
= {
545 .name
= "srvc_aggre2_noc",
546 .id
= QCS615_SLAVE_SERVICE_A2NOC
,
552 static struct qcom_icc_node qns_camnoc_uncomp
= {
553 .name
= "qns_camnoc_uncomp",
554 .id
= QCS615_SLAVE_CAMNOC_UNCOMP
,
560 static struct qcom_icc_node qhs_a1_noc_cfg
= {
561 .name
= "qhs_a1_noc_cfg",
562 .id
= QCS615_SLAVE_A1NOC_CFG
,
566 .links
= { QCS615_MASTER_A1NOC_CFG
},
569 static struct qcom_icc_node qhs_ahb2phy_east
= {
570 .name
= "qhs_ahb2phy_east",
571 .id
= QCS615_SLAVE_AHB2PHY_EAST
,
577 static struct qcom_icc_node qhs_ahb2phy_west
= {
578 .name
= "qhs_ahb2phy_west",
579 .id
= QCS615_SLAVE_AHB2PHY_WEST
,
585 static struct qcom_icc_node qhs_aop
= {
587 .id
= QCS615_SLAVE_AOP
,
593 static struct qcom_icc_node qhs_aoss
= {
595 .id
= QCS615_SLAVE_AOSS
,
601 static struct qcom_icc_node qhs_camera_cfg
= {
602 .name
= "qhs_camera_cfg",
603 .id
= QCS615_SLAVE_CAMERA_CFG
,
609 static struct qcom_icc_node qhs_clk_ctl
= {
610 .name
= "qhs_clk_ctl",
611 .id
= QCS615_SLAVE_CLK_CTL
,
617 static struct qcom_icc_node qhs_cpr_cx
= {
618 .name
= "qhs_cpr_cx",
619 .id
= QCS615_SLAVE_RBCPR_CX_CFG
,
625 static struct qcom_icc_node qhs_cpr_mx
= {
626 .name
= "qhs_cpr_mx",
627 .id
= QCS615_SLAVE_RBCPR_MX_CFG
,
633 static struct qcom_icc_node qhs_crypto0_cfg
= {
634 .name
= "qhs_crypto0_cfg",
635 .id
= QCS615_SLAVE_CRYPTO_0_CFG
,
641 static struct qcom_icc_node qhs_ddrss_cfg
= {
642 .name
= "qhs_ddrss_cfg",
643 .id
= QCS615_SLAVE_CNOC_DDRSS
,
647 .links
= { QCS615_MASTER_CNOC_DC_NOC
},
650 static struct qcom_icc_node qhs_display_cfg
= {
651 .name
= "qhs_display_cfg",
652 .id
= QCS615_SLAVE_DISPLAY_CFG
,
658 static struct qcom_icc_node qhs_emac_avb_cfg
= {
659 .name
= "qhs_emac_avb_cfg",
660 .id
= QCS615_SLAVE_EMAC_AVB_CFG
,
666 static struct qcom_icc_node qhs_glm
= {
668 .id
= QCS615_SLAVE_GLM
,
674 static struct qcom_icc_node qhs_gpuss_cfg
= {
675 .name
= "qhs_gpuss_cfg",
676 .id
= QCS615_SLAVE_GFX3D_CFG
,
682 static struct qcom_icc_node qhs_imem_cfg
= {
683 .name
= "qhs_imem_cfg",
684 .id
= QCS615_SLAVE_IMEM_CFG
,
690 static struct qcom_icc_node qhs_ipa
= {
692 .id
= QCS615_SLAVE_IPA_CFG
,
698 static struct qcom_icc_node qhs_mnoc_cfg
= {
699 .name
= "qhs_mnoc_cfg",
700 .id
= QCS615_SLAVE_CNOC_MNOC_CFG
,
704 .links
= { QCS615_MASTER_CNOC_MNOC_CFG
},
707 static struct qcom_icc_node qhs_pcie_config
= {
708 .name
= "qhs_pcie_config",
709 .id
= QCS615_SLAVE_PCIE_CFG
,
715 static struct qcom_icc_node qhs_pimem_cfg
= {
716 .name
= "qhs_pimem_cfg",
717 .id
= QCS615_SLAVE_PIMEM_CFG
,
723 static struct qcom_icc_node qhs_prng
= {
725 .id
= QCS615_SLAVE_PRNG
,
731 static struct qcom_icc_node qhs_qdss_cfg
= {
732 .name
= "qhs_qdss_cfg",
733 .id
= QCS615_SLAVE_QDSS_CFG
,
739 static struct qcom_icc_node qhs_qspi
= {
741 .id
= QCS615_SLAVE_QSPI
,
747 static struct qcom_icc_node qhs_qup0
= {
749 .id
= QCS615_SLAVE_QUP_0
,
755 static struct qcom_icc_node qhs_qup1
= {
757 .id
= QCS615_SLAVE_QUP_1
,
763 static struct qcom_icc_node qhs_sdc1
= {
765 .id
= QCS615_SLAVE_SDCC_1
,
771 static struct qcom_icc_node qhs_sdc2
= {
773 .id
= QCS615_SLAVE_SDCC_2
,
779 static struct qcom_icc_node qhs_snoc_cfg
= {
780 .name
= "qhs_snoc_cfg",
781 .id
= QCS615_SLAVE_SNOC_CFG
,
785 .links
= { QCS615_MASTER_SNOC_CFG
},
788 static struct qcom_icc_node qhs_spdm
= {
790 .id
= QCS615_SLAVE_SPDM_WRAPPER
,
796 static struct qcom_icc_node qhs_tcsr
= {
798 .id
= QCS615_SLAVE_TCSR
,
804 static struct qcom_icc_node qhs_tlmm_east
= {
805 .name
= "qhs_tlmm_east",
806 .id
= QCS615_SLAVE_TLMM_EAST
,
812 static struct qcom_icc_node qhs_tlmm_south
= {
813 .name
= "qhs_tlmm_south",
814 .id
= QCS615_SLAVE_TLMM_SOUTH
,
820 static struct qcom_icc_node qhs_tlmm_west
= {
821 .name
= "qhs_tlmm_west",
822 .id
= QCS615_SLAVE_TLMM_WEST
,
828 static struct qcom_icc_node qhs_ufs_mem_cfg
= {
829 .name
= "qhs_ufs_mem_cfg",
830 .id
= QCS615_SLAVE_UFS_MEM_CFG
,
836 static struct qcom_icc_node qhs_usb2
= {
838 .id
= QCS615_SLAVE_USB2
,
844 static struct qcom_icc_node qhs_usb3
= {
846 .id
= QCS615_SLAVE_USB3
,
852 static struct qcom_icc_node qhs_venus_cfg
= {
853 .name
= "qhs_venus_cfg",
854 .id
= QCS615_SLAVE_VENUS_CFG
,
860 static struct qcom_icc_node qhs_vsense_ctrl_cfg
= {
861 .name
= "qhs_vsense_ctrl_cfg",
862 .id
= QCS615_SLAVE_VSENSE_CTRL_CFG
,
868 static struct qcom_icc_node qns_cnoc_a2noc
= {
869 .name
= "qns_cnoc_a2noc",
870 .id
= QCS615_SLAVE_CNOC_A2NOC
,
874 .links
= { QCS615_MASTER_CNOC_A2NOC
},
877 static struct qcom_icc_node srvc_cnoc
= {
879 .id
= QCS615_SLAVE_SERVICE_CNOC
,
885 static struct qcom_icc_node qhs_dc_noc_gemnoc
= {
886 .name
= "qhs_dc_noc_gemnoc",
887 .id
= QCS615_SLAVE_DC_NOC_GEMNOC
,
891 .links
= { QCS615_MASTER_GEM_NOC_CFG
},
894 static struct qcom_icc_node qhs_llcc
= {
896 .id
= QCS615_SLAVE_LLCC_CFG
,
902 static struct qcom_icc_node qhs_mdsp_ms_mpu_cfg
= {
903 .name
= "qhs_mdsp_ms_mpu_cfg",
904 .id
= QCS615_SLAVE_MSS_PROC_MS_MPU_CFG
,
910 static struct qcom_icc_node qns_gem_noc_snoc
= {
911 .name
= "qns_gem_noc_snoc",
912 .id
= QCS615_SLAVE_GEM_NOC_SNOC
,
916 .links
= { QCS615_MASTER_GEM_NOC_SNOC
},
919 static struct qcom_icc_node qns_llcc
= {
921 .id
= QCS615_SLAVE_LLCC
,
925 .links
= { QCS615_MASTER_LLCC
},
928 static struct qcom_icc_node qns_sys_pcie
= {
929 .name
= "qns_sys_pcie",
930 .id
= QCS615_SLAVE_MEM_NOC_PCIE_SNOC
,
934 .links
= { QCS615_MASTER_GEM_NOC_PCIE_SNOC
},
937 static struct qcom_icc_node srvc_gemnoc
= {
938 .name
= "srvc_gemnoc",
939 .id
= QCS615_SLAVE_SERVICE_GEM_NOC
,
945 static struct qcom_icc_node ipa_core_slave
= {
946 .name
= "ipa_core_slave",
947 .id
= QCS615_SLAVE_IPA_CORE
,
953 static struct qcom_icc_node ebi
= {
955 .id
= QCS615_SLAVE_EBI1
,
961 static struct qcom_icc_node qns2_mem_noc
= {
962 .name
= "qns2_mem_noc",
963 .id
= QCS615_SLAVE_MNOC_SF_MEM_NOC
,
967 .links
= { QCS615_MASTER_MNOC_SF_MEM_NOC
},
970 static struct qcom_icc_node qns_mem_noc_hf
= {
971 .name
= "qns_mem_noc_hf",
972 .id
= QCS615_SLAVE_MNOC_HF_MEM_NOC
,
976 .links
= { QCS615_MASTER_MNOC_HF_MEM_NOC
},
979 static struct qcom_icc_node srvc_mnoc
= {
981 .id
= QCS615_SLAVE_SERVICE_MNOC
,
987 static struct qcom_icc_node qhs_apss
= {
989 .id
= QCS615_SLAVE_APPSS
,
995 static struct qcom_icc_node qns_cnoc
= {
997 .id
= QCS615_SLAVE_SNOC_CNOC
,
1001 .links
= { QCS615_MASTER_SNOC_CNOC
},
1004 static struct qcom_icc_node qns_gemnoc_sf
= {
1005 .name
= "qns_gemnoc_sf",
1006 .id
= QCS615_SLAVE_SNOC_GEM_NOC_SF
,
1010 .links
= { QCS615_MASTER_SNOC_SF_MEM_NOC
},
1013 static struct qcom_icc_node qns_memnoc_gc
= {
1014 .name
= "qns_memnoc_gc",
1015 .id
= QCS615_SLAVE_SNOC_MEM_NOC_GC
,
1019 .links
= { QCS615_MASTER_SNOC_GC_MEM_NOC
},
1022 static struct qcom_icc_node qxs_imem
= {
1024 .id
= QCS615_SLAVE_IMEM
,
1030 static struct qcom_icc_node qxs_pimem
= {
1031 .name
= "qxs_pimem",
1032 .id
= QCS615_SLAVE_PIMEM
,
1038 static struct qcom_icc_node srvc_snoc
= {
1039 .name
= "srvc_snoc",
1040 .id
= QCS615_SLAVE_SERVICE_SNOC
,
1046 static struct qcom_icc_node xs_pcie
= {
1048 .id
= QCS615_SLAVE_PCIE_0
,
1054 static struct qcom_icc_node xs_qdss_stm
= {
1055 .name
= "xs_qdss_stm",
1056 .id
= QCS615_SLAVE_QDSS_STM
,
1062 static struct qcom_icc_node xs_sys_tcu_cfg
= {
1063 .name
= "xs_sys_tcu_cfg",
1064 .id
= QCS615_SLAVE_TCU
,
1070 static struct qcom_icc_bcm bcm_acv
= {
1076 static struct qcom_icc_bcm bcm_ce0
= {
1079 .nodes
= { &qxm_crypto
},
1082 static struct qcom_icc_bcm bcm_cn0
= {
1086 .nodes
= { &qhm_spdm
, &qnm_snoc
,
1087 &qhs_a1_noc_cfg
, &qhs_aop
,
1088 &qhs_aoss
, &qhs_camera_cfg
,
1089 &qhs_clk_ctl
, &qhs_cpr_cx
,
1090 &qhs_cpr_mx
, &qhs_crypto0_cfg
,
1091 &qhs_ddrss_cfg
, &qhs_display_cfg
,
1092 &qhs_emac_avb_cfg
, &qhs_glm
,
1093 &qhs_gpuss_cfg
, &qhs_imem_cfg
,
1094 &qhs_ipa
, &qhs_mnoc_cfg
,
1095 &qhs_pcie_config
, &qhs_pimem_cfg
,
1096 &qhs_prng
, &qhs_qdss_cfg
,
1097 &qhs_qup0
, &qhs_qup1
,
1098 &qhs_snoc_cfg
, &qhs_spdm
,
1099 &qhs_tcsr
, &qhs_tlmm_east
,
1100 &qhs_tlmm_south
, &qhs_tlmm_west
,
1101 &qhs_ufs_mem_cfg
, &qhs_usb2
,
1102 &qhs_usb3
, &qhs_venus_cfg
,
1103 &qhs_vsense_ctrl_cfg
, &qns_cnoc_a2noc
,
1107 static struct qcom_icc_bcm bcm_cn1
= {
1110 .nodes
= { &qhm_qspi
, &xm_sdc1
,
1111 &xm_sdc2
, &qhs_ahb2phy_east
,
1112 &qhs_ahb2phy_west
, &qhs_qspi
,
1113 &qhs_sdc1
, &qhs_sdc2
},
1116 static struct qcom_icc_bcm bcm_ip0
= {
1119 .nodes
= { &ipa_core_slave
},
1122 static struct qcom_icc_bcm bcm_mc0
= {
1129 static struct qcom_icc_bcm bcm_mm0
= {
1133 .nodes
= { &qns_mem_noc_hf
},
1136 static struct qcom_icc_bcm bcm_mm1
= {
1139 .nodes
= { &qxm_camnoc_hf0_uncomp
, &qxm_camnoc_hf1_uncomp
,
1140 &qxm_camnoc_sf_uncomp
, &qxm_camnoc_hf0
,
1141 &qxm_camnoc_hf1
, &qxm_mdp0
,
1145 static struct qcom_icc_bcm bcm_mm2
= {
1148 .nodes
= { &qxm_camnoc_sf
, &qns2_mem_noc
},
1151 static struct qcom_icc_bcm bcm_mm3
= {
1154 .nodes
= { &qxm_venus0
, &qxm_venus_arm9
},
1157 static struct qcom_icc_bcm bcm_qup0
= {
1162 .nodes
= { &qhm_qup0
, &qhm_qup1
},
1165 static struct qcom_icc_bcm bcm_sh0
= {
1169 .nodes
= { &qns_llcc
},
1172 static struct qcom_icc_bcm bcm_sh2
= {
1175 .nodes
= { &acm_apps
},
1178 static struct qcom_icc_bcm bcm_sh3
= {
1181 .nodes
= { &qns_gem_noc_snoc
},
1184 static struct qcom_icc_bcm bcm_sn0
= {
1188 .nodes
= { &qns_gemnoc_sf
},
1191 static struct qcom_icc_bcm bcm_sn1
= {
1194 .nodes
= { &qxs_imem
},
1197 static struct qcom_icc_bcm bcm_sn2
= {
1200 .nodes
= { &qns_memnoc_gc
},
1203 static struct qcom_icc_bcm bcm_sn3
= {
1206 .nodes
= { &srvc_aggre2_noc
, &qns_cnoc
},
1209 static struct qcom_icc_bcm bcm_sn4
= {
1212 .nodes
= { &qxs_pimem
},
1215 static struct qcom_icc_bcm bcm_sn5
= {
1218 .nodes
= { &xs_qdss_stm
},
1221 static struct qcom_icc_bcm bcm_sn8
= {
1224 .nodes
= { &qnm_gemnoc_pcie
, &xs_pcie
},
1227 static struct qcom_icc_bcm bcm_sn9
= {
1230 .nodes
= { &qnm_aggre1_noc
},
1233 static struct qcom_icc_bcm bcm_sn12
= {
1236 .nodes
= { &qxm_pimem
, &xm_gic
},
1239 static struct qcom_icc_bcm bcm_sn13
= {
1242 .nodes
= { &qnm_lpass_anoc
},
1245 static struct qcom_icc_bcm bcm_sn14
= {
1248 .nodes
= { &qns_pcie_snoc
},
1251 static struct qcom_icc_bcm bcm_sn15
= {
1254 .nodes
= { &qnm_gemnoc
},
1257 static struct qcom_icc_bcm
* const aggre1_noc_bcms
[] = {
1266 static struct qcom_icc_node
* const aggre1_noc_nodes
[] = {
1267 [MASTER_A1NOC_CFG
] = &qhm_a1noc_cfg
,
1268 [MASTER_QDSS_BAM
] = &qhm_qdss_bam
,
1269 [MASTER_QSPI
] = &qhm_qspi
,
1270 [MASTER_QUP_0
] = &qhm_qup0
,
1271 [MASTER_BLSP_1
] = &qhm_qup1
,
1272 [MASTER_CNOC_A2NOC
] = &qnm_cnoc
,
1273 [MASTER_CRYPTO
] = &qxm_crypto
,
1274 [MASTER_IPA
] = &qxm_ipa
,
1275 [MASTER_EMAC_EVB
] = &xm_emac_avb
,
1276 [MASTER_PCIE
] = &xm_pcie
,
1277 [MASTER_QDSS_ETR
] = &xm_qdss_etr
,
1278 [MASTER_SDCC_1
] = &xm_sdc1
,
1279 [MASTER_SDCC_2
] = &xm_sdc2
,
1280 [MASTER_UFS_MEM
] = &xm_ufs_mem
,
1281 [MASTER_USB2
] = &xm_usb2
,
1282 [MASTER_USB3_0
] = &xm_usb3_0
,
1283 [SLAVE_A1NOC_SNOC
] = &qns_a1noc_snoc
,
1284 [SLAVE_LPASS_SNOC
] = &qns_lpass_snoc
,
1285 [SLAVE_ANOC_PCIE_SNOC
] = &qns_pcie_snoc
,
1286 [SLAVE_SERVICE_A2NOC
] = &srvc_aggre2_noc
,
1289 static const struct qcom_icc_desc qcs615_aggre1_noc
= {
1290 .nodes
= aggre1_noc_nodes
,
1291 .num_nodes
= ARRAY_SIZE(aggre1_noc_nodes
),
1292 .bcms
= aggre1_noc_bcms
,
1293 .num_bcms
= ARRAY_SIZE(aggre1_noc_bcms
),
1296 static struct qcom_icc_bcm
* const camnoc_virt_bcms
[] = {
1300 static struct qcom_icc_node
* const camnoc_virt_nodes
[] = {
1301 [MASTER_CAMNOC_HF0_UNCOMP
] = &qxm_camnoc_hf0_uncomp
,
1302 [MASTER_CAMNOC_HF1_UNCOMP
] = &qxm_camnoc_hf1_uncomp
,
1303 [MASTER_CAMNOC_SF_UNCOMP
] = &qxm_camnoc_sf_uncomp
,
1304 [SLAVE_CAMNOC_UNCOMP
] = &qns_camnoc_uncomp
,
1307 static const struct qcom_icc_desc qcs615_camnoc_virt
= {
1308 .nodes
= camnoc_virt_nodes
,
1309 .num_nodes
= ARRAY_SIZE(camnoc_virt_nodes
),
1310 .bcms
= camnoc_virt_bcms
,
1311 .num_bcms
= ARRAY_SIZE(camnoc_virt_bcms
),
1314 static struct qcom_icc_bcm
* const config_noc_bcms
[] = {
1319 static struct qcom_icc_node
* const config_noc_nodes
[] = {
1320 [MASTER_SPDM
] = &qhm_spdm
,
1321 [MASTER_SNOC_CNOC
] = &qnm_snoc
,
1322 [MASTER_QDSS_DAP
] = &xm_qdss_dap
,
1323 [SLAVE_A1NOC_CFG
] = &qhs_a1_noc_cfg
,
1324 [SLAVE_AHB2PHY_EAST
] = &qhs_ahb2phy_east
,
1325 [SLAVE_AHB2PHY_WEST
] = &qhs_ahb2phy_west
,
1326 [SLAVE_AOP
] = &qhs_aop
,
1327 [SLAVE_AOSS
] = &qhs_aoss
,
1328 [SLAVE_CAMERA_CFG
] = &qhs_camera_cfg
,
1329 [SLAVE_CLK_CTL
] = &qhs_clk_ctl
,
1330 [SLAVE_RBCPR_CX_CFG
] = &qhs_cpr_cx
,
1331 [SLAVE_RBCPR_MX_CFG
] = &qhs_cpr_mx
,
1332 [SLAVE_CRYPTO_0_CFG
] = &qhs_crypto0_cfg
,
1333 [SLAVE_CNOC_DDRSS
] = &qhs_ddrss_cfg
,
1334 [SLAVE_DISPLAY_CFG
] = &qhs_display_cfg
,
1335 [SLAVE_EMAC_AVB_CFG
] = &qhs_emac_avb_cfg
,
1336 [SLAVE_GLM
] = &qhs_glm
,
1337 [SLAVE_GFX3D_CFG
] = &qhs_gpuss_cfg
,
1338 [SLAVE_IMEM_CFG
] = &qhs_imem_cfg
,
1339 [SLAVE_IPA_CFG
] = &qhs_ipa
,
1340 [SLAVE_CNOC_MNOC_CFG
] = &qhs_mnoc_cfg
,
1341 [SLAVE_PCIE_CFG
] = &qhs_pcie_config
,
1342 [SLAVE_PIMEM_CFG
] = &qhs_pimem_cfg
,
1343 [SLAVE_PRNG
] = &qhs_prng
,
1344 [SLAVE_QDSS_CFG
] = &qhs_qdss_cfg
,
1345 [SLAVE_QSPI
] = &qhs_qspi
,
1346 [SLAVE_QUP_0
] = &qhs_qup0
,
1347 [SLAVE_QUP_1
] = &qhs_qup1
,
1348 [SLAVE_SDCC_1
] = &qhs_sdc1
,
1349 [SLAVE_SDCC_2
] = &qhs_sdc2
,
1350 [SLAVE_SNOC_CFG
] = &qhs_snoc_cfg
,
1351 [SLAVE_SPDM_WRAPPER
] = &qhs_spdm
,
1352 [SLAVE_TCSR
] = &qhs_tcsr
,
1353 [SLAVE_TLMM_EAST
] = &qhs_tlmm_east
,
1354 [SLAVE_TLMM_SOUTH
] = &qhs_tlmm_south
,
1355 [SLAVE_TLMM_WEST
] = &qhs_tlmm_west
,
1356 [SLAVE_UFS_MEM_CFG
] = &qhs_ufs_mem_cfg
,
1357 [SLAVE_USB2
] = &qhs_usb2
,
1358 [SLAVE_USB3
] = &qhs_usb3
,
1359 [SLAVE_VENUS_CFG
] = &qhs_venus_cfg
,
1360 [SLAVE_VSENSE_CTRL_CFG
] = &qhs_vsense_ctrl_cfg
,
1361 [SLAVE_CNOC_A2NOC
] = &qns_cnoc_a2noc
,
1362 [SLAVE_SERVICE_CNOC
] = &srvc_cnoc
,
1365 static const struct qcom_icc_desc qcs615_config_noc
= {
1366 .nodes
= config_noc_nodes
,
1367 .num_nodes
= ARRAY_SIZE(config_noc_nodes
),
1368 .bcms
= config_noc_bcms
,
1369 .num_bcms
= ARRAY_SIZE(config_noc_bcms
),
1372 static struct qcom_icc_node
* const dc_noc_nodes
[] = {
1373 [MASTER_CNOC_DC_NOC
] = &qhm_cnoc
,
1374 [SLAVE_DC_NOC_GEMNOC
] = &qhs_dc_noc_gemnoc
,
1375 [SLAVE_LLCC_CFG
] = &qhs_llcc
,
1378 static const struct qcom_icc_desc qcs615_dc_noc
= {
1379 .nodes
= dc_noc_nodes
,
1380 .num_nodes
= ARRAY_SIZE(dc_noc_nodes
),
1383 static struct qcom_icc_bcm
* const gem_noc_bcms
[] = {
1390 static struct qcom_icc_node
* const gem_noc_nodes
[] = {
1391 [MASTER_APPSS_PROC
] = &acm_apps
,
1392 [MASTER_GPU_TCU
] = &acm_gpu_tcu
,
1393 [MASTER_SYS_TCU
] = &acm_sys_tcu
,
1394 [MASTER_GEM_NOC_CFG
] = &qhm_gemnoc_cfg
,
1395 [MASTER_GFX3D
] = &qnm_gpu
,
1396 [MASTER_MNOC_HF_MEM_NOC
] = &qnm_mnoc_hf
,
1397 [MASTER_MNOC_SF_MEM_NOC
] = &qnm_mnoc_sf
,
1398 [MASTER_SNOC_GC_MEM_NOC
] = &qnm_snoc_gc
,
1399 [MASTER_SNOC_SF_MEM_NOC
] = &qnm_snoc_sf
,
1400 [SLAVE_MSS_PROC_MS_MPU_CFG
] = &qhs_mdsp_ms_mpu_cfg
,
1401 [SLAVE_GEM_NOC_SNOC
] = &qns_gem_noc_snoc
,
1402 [SLAVE_LLCC
] = &qns_llcc
,
1403 [SLAVE_MEM_NOC_PCIE_SNOC
] = &qns_sys_pcie
,
1404 [SLAVE_SERVICE_GEM_NOC
] = &srvc_gemnoc
,
1407 static const struct qcom_icc_desc qcs615_gem_noc
= {
1408 .nodes
= gem_noc_nodes
,
1409 .num_nodes
= ARRAY_SIZE(gem_noc_nodes
),
1410 .bcms
= gem_noc_bcms
,
1411 .num_bcms
= ARRAY_SIZE(gem_noc_bcms
),
1414 static struct qcom_icc_bcm
* const ipa_virt_bcms
[] = {
1418 static struct qcom_icc_node
* const ipa_virt_nodes
[] = {
1419 [MASTER_IPA_CORE
] = &ipa_core_master
,
1420 [SLAVE_IPA_CORE
] = &ipa_core_slave
,
1423 static const struct qcom_icc_desc qcs615_ipa_virt
= {
1424 .nodes
= ipa_virt_nodes
,
1425 .num_nodes
= ARRAY_SIZE(ipa_virt_nodes
),
1426 .bcms
= ipa_virt_bcms
,
1427 .num_bcms
= ARRAY_SIZE(ipa_virt_bcms
),
1430 static struct qcom_icc_bcm
* const mc_virt_bcms
[] = {
1435 static struct qcom_icc_node
* const mc_virt_nodes
[] = {
1436 [MASTER_LLCC
] = &llcc_mc
,
1437 [SLAVE_EBI1
] = &ebi
,
1440 static const struct qcom_icc_desc qcs615_mc_virt
= {
1441 .nodes
= mc_virt_nodes
,
1442 .num_nodes
= ARRAY_SIZE(mc_virt_nodes
),
1443 .bcms
= mc_virt_bcms
,
1444 .num_bcms
= ARRAY_SIZE(mc_virt_bcms
),
1447 static struct qcom_icc_bcm
* const mmss_noc_bcms
[] = {
1454 static struct qcom_icc_node
* const mmss_noc_nodes
[] = {
1455 [MASTER_CNOC_MNOC_CFG
] = &qhm_mnoc_cfg
,
1456 [MASTER_CAMNOC_HF0
] = &qxm_camnoc_hf0
,
1457 [MASTER_CAMNOC_HF1
] = &qxm_camnoc_hf1
,
1458 [MASTER_CAMNOC_SF
] = &qxm_camnoc_sf
,
1459 [MASTER_MDP0
] = &qxm_mdp0
,
1460 [MASTER_ROTATOR
] = &qxm_rot
,
1461 [MASTER_VIDEO_P0
] = &qxm_venus0
,
1462 [MASTER_VIDEO_PROC
] = &qxm_venus_arm9
,
1463 [SLAVE_MNOC_SF_MEM_NOC
] = &qns2_mem_noc
,
1464 [SLAVE_MNOC_HF_MEM_NOC
] = &qns_mem_noc_hf
,
1465 [SLAVE_SERVICE_MNOC
] = &srvc_mnoc
,
1468 static const struct qcom_icc_desc qcs615_mmss_noc
= {
1469 .nodes
= mmss_noc_nodes
,
1470 .num_nodes
= ARRAY_SIZE(mmss_noc_nodes
),
1471 .bcms
= mmss_noc_bcms
,
1472 .num_bcms
= ARRAY_SIZE(mmss_noc_bcms
),
1475 static struct qcom_icc_bcm
* const system_noc_bcms
[] = {
1489 static struct qcom_icc_node
* const system_noc_nodes
[] = {
1490 [MASTER_SNOC_CFG
] = &qhm_snoc_cfg
,
1491 [MASTER_A1NOC_SNOC
] = &qnm_aggre1_noc
,
1492 [MASTER_GEM_NOC_SNOC
] = &qnm_gemnoc
,
1493 [MASTER_GEM_NOC_PCIE_SNOC
] = &qnm_gemnoc_pcie
,
1494 [MASTER_LPASS_ANOC
] = &qnm_lpass_anoc
,
1495 [MASTER_ANOC_PCIE_SNOC
] = &qnm_pcie_anoc
,
1496 [MASTER_PIMEM
] = &qxm_pimem
,
1497 [MASTER_GIC
] = &xm_gic
,
1498 [SLAVE_APPSS
] = &qhs_apss
,
1499 [SLAVE_SNOC_CNOC
] = &qns_cnoc
,
1500 [SLAVE_SNOC_GEM_NOC_SF
] = &qns_gemnoc_sf
,
1501 [SLAVE_SNOC_MEM_NOC_GC
] = &qns_memnoc_gc
,
1502 [SLAVE_IMEM
] = &qxs_imem
,
1503 [SLAVE_PIMEM
] = &qxs_pimem
,
1504 [SLAVE_SERVICE_SNOC
] = &srvc_snoc
,
1505 [SLAVE_PCIE_0
] = &xs_pcie
,
1506 [SLAVE_QDSS_STM
] = &xs_qdss_stm
,
1507 [SLAVE_TCU
] = &xs_sys_tcu_cfg
,
1510 static const struct qcom_icc_desc qcs615_system_noc
= {
1511 .nodes
= system_noc_nodes
,
1512 .num_nodes
= ARRAY_SIZE(system_noc_nodes
),
1513 .bcms
= system_noc_bcms
,
1514 .num_bcms
= ARRAY_SIZE(system_noc_bcms
),
1517 static const struct of_device_id qnoc_of_match
[] = {
1518 { .compatible
= "qcom,qcs615-aggre1-noc",
1519 .data
= &qcs615_aggre1_noc
},
1520 { .compatible
= "qcom,qcs615-camnoc-virt",
1521 .data
= &qcs615_camnoc_virt
},
1522 { .compatible
= "qcom,qcs615-config-noc",
1523 .data
= &qcs615_config_noc
},
1524 { .compatible
= "qcom,qcs615-dc-noc",
1525 .data
= &qcs615_dc_noc
},
1526 { .compatible
= "qcom,qcs615-gem-noc",
1527 .data
= &qcs615_gem_noc
},
1528 { .compatible
= "qcom,qcs615-ipa-virt",
1529 .data
= &qcs615_ipa_virt
},
1530 { .compatible
= "qcom,qcs615-mc-virt",
1531 .data
= &qcs615_mc_virt
},
1532 { .compatible
= "qcom,qcs615-mmss-noc",
1533 .data
= &qcs615_mmss_noc
},
1534 { .compatible
= "qcom,qcs615-system-noc",
1535 .data
= &qcs615_system_noc
},
1538 MODULE_DEVICE_TABLE(of
, qnoc_of_match
);
1540 static struct platform_driver qnoc_driver
= {
1541 .probe
= qcom_icc_rpmh_probe
,
1542 .remove
= qcom_icc_rpmh_remove
,
1544 .name
= "qnoc-qcs615",
1545 .of_match_table
= qnoc_of_match
,
1546 .sync_state
= icc_sync_state
,
1550 static int __init
qnoc_driver_init(void)
1552 return platform_driver_register(&qnoc_driver
);
1554 core_initcall(qnoc_driver_init
);
1556 static void __exit
qnoc_driver_exit(void)
1558 platform_driver_unregister(&qnoc_driver
);
1560 module_exit(qnoc_driver_exit
);
1562 MODULE_DESCRIPTION("qcs615 NoC driver");
1563 MODULE_LICENSE("GPL");