1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2022 Luca Weiss <luca.weiss@fairphone.com>
6 #include <linux/device.h>
7 #include <linux/interconnect.h>
8 #include <linux/interconnect-provider.h>
9 #include <linux/mod_devicetable.h>
10 #include <linux/module.h>
11 #include <linux/platform_device.h>
12 #include <dt-bindings/interconnect/qcom,sm6350.h>
14 #include "bcm-voter.h"
18 static struct qcom_icc_node qhm_a1noc_cfg
= {
19 .name
= "qhm_a1noc_cfg",
20 .id
= SM6350_MASTER_A1NOC_CFG
,
24 .links
= { SM6350_SLAVE_SERVICE_A1NOC
},
27 static struct qcom_icc_node qhm_qup_0
= {
29 .id
= SM6350_MASTER_QUP_0
,
33 .links
= { SM6350_A1NOC_SNOC_SLV
},
36 static struct qcom_icc_node xm_emmc
= {
38 .id
= SM6350_MASTER_EMMC
,
42 .links
= { SM6350_A1NOC_SNOC_SLV
},
45 static struct qcom_icc_node xm_ufs_mem
= {
47 .id
= SM6350_MASTER_UFS_MEM
,
51 .links
= { SM6350_A1NOC_SNOC_SLV
},
54 static struct qcom_icc_node qhm_a2noc_cfg
= {
55 .name
= "qhm_a2noc_cfg",
56 .id
= SM6350_MASTER_A2NOC_CFG
,
60 .links
= { SM6350_SLAVE_SERVICE_A2NOC
},
63 static struct qcom_icc_node qhm_qdss_bam
= {
64 .name
= "qhm_qdss_bam",
65 .id
= SM6350_MASTER_QDSS_BAM
,
69 .links
= { SM6350_A2NOC_SNOC_SLV
},
72 static struct qcom_icc_node qhm_qup_1
= {
74 .id
= SM6350_MASTER_QUP_1
,
78 .links
= { SM6350_A2NOC_SNOC_SLV
},
81 static struct qcom_icc_node qxm_crypto
= {
83 .id
= SM6350_MASTER_CRYPTO_CORE_0
,
87 .links
= { SM6350_A2NOC_SNOC_SLV
},
90 static struct qcom_icc_node qxm_ipa
= {
92 .id
= SM6350_MASTER_IPA
,
96 .links
= { SM6350_A2NOC_SNOC_SLV
},
99 static struct qcom_icc_node xm_qdss_etr
= {
100 .name
= "xm_qdss_etr",
101 .id
= SM6350_MASTER_QDSS_ETR
,
105 .links
= { SM6350_A2NOC_SNOC_SLV
},
108 static struct qcom_icc_node xm_sdc2
= {
110 .id
= SM6350_MASTER_SDCC_2
,
114 .links
= { SM6350_A2NOC_SNOC_SLV
},
117 static struct qcom_icc_node xm_usb3_0
= {
119 .id
= SM6350_MASTER_USB3
,
123 .links
= { SM6350_A2NOC_SNOC_SLV
},
126 static struct qcom_icc_node qxm_camnoc_hf0_uncomp
= {
127 .name
= "qxm_camnoc_hf0_uncomp",
128 .id
= SM6350_MASTER_CAMNOC_HF0_UNCOMP
,
132 .links
= { SM6350_SLAVE_CAMNOC_UNCOMP
},
135 static struct qcom_icc_node qxm_camnoc_icp_uncomp
= {
136 .name
= "qxm_camnoc_icp_uncomp",
137 .id
= SM6350_MASTER_CAMNOC_ICP_UNCOMP
,
141 .links
= { SM6350_SLAVE_CAMNOC_UNCOMP
},
144 static struct qcom_icc_node qxm_camnoc_sf_uncomp
= {
145 .name
= "qxm_camnoc_sf_uncomp",
146 .id
= SM6350_MASTER_CAMNOC_SF_UNCOMP
,
150 .links
= { SM6350_SLAVE_CAMNOC_UNCOMP
},
153 static struct qcom_icc_node qup0_core_master
= {
154 .name
= "qup0_core_master",
155 .id
= SM6350_MASTER_QUP_CORE_0
,
159 .links
= { SM6350_SLAVE_QUP_CORE_0
},
162 static struct qcom_icc_node qup1_core_master
= {
163 .name
= "qup1_core_master",
164 .id
= SM6350_MASTER_QUP_CORE_1
,
168 .links
= { SM6350_SLAVE_QUP_CORE_1
},
171 static struct qcom_icc_node qnm_npu
= {
173 .id
= SM6350_MASTER_NPU
,
177 .links
= { SM6350_SLAVE_CDSP_GEM_NOC
},
180 static struct qcom_icc_node qxm_npu_dsp
= {
181 .name
= "qxm_npu_dsp",
182 .id
= SM6350_MASTER_NPU_PROC
,
186 .links
= { SM6350_SLAVE_CDSP_GEM_NOC
},
189 static struct qcom_icc_node qnm_snoc
= {
191 .id
= SM6350_SNOC_CNOC_MAS
,
195 .links
= { SM6350_SLAVE_CAMERA_CFG
,
197 SM6350_SLAVE_CNOC_MNOC_CFG
,
198 SM6350_SLAVE_UFS_MEM_CFG
,
200 SM6350_SLAVE_SNOC_CFG
,
201 SM6350_SLAVE_QM_MPU_CFG
,
204 SM6350_SLAVE_CAMERA_NRT_THROTTLE_CFG
,
205 SM6350_SLAVE_A2NOC_CFG
,
206 SM6350_SLAVE_QDSS_CFG
,
207 SM6350_SLAVE_VSENSE_CTRL_CFG
,
208 SM6350_SLAVE_CAMERA_RT_THROTTLE_CFG
,
209 SM6350_SLAVE_DISPLAY_CFG
,
211 SM6350_SLAVE_DCC_CFG
,
212 SM6350_SLAVE_CNOC_DDRSS
,
213 SM6350_SLAVE_DISPLAY_THROTTLE_CFG
,
214 SM6350_SLAVE_NPU_CFG
,
215 SM6350_SLAVE_AHB2PHY
,
216 SM6350_SLAVE_GRAPHICS_3D_CFG
,
217 SM6350_SLAVE_BOOT_ROM
,
218 SM6350_SLAVE_VENUS_CFG
,
219 SM6350_SLAVE_IPA_CFG
,
220 SM6350_SLAVE_SECURITY
,
221 SM6350_SLAVE_IMEM_CFG
,
222 SM6350_SLAVE_CNOC_MSS
,
223 SM6350_SLAVE_SERVICE_CNOC
,
225 SM6350_SLAVE_VENUS_THROTTLE_CFG
,
226 SM6350_SLAVE_RBCPR_CX_CFG
,
227 SM6350_SLAVE_A1NOC_CFG
,
230 SM6350_SLAVE_EMMC_CFG
,
231 SM6350_SLAVE_CRYPTO_0_CFG
,
232 SM6350_SLAVE_PIMEM_CFG
,
233 SM6350_SLAVE_RBCPR_MX_CFG
,
240 static struct qcom_icc_node xm_qdss_dap
= {
241 .name
= "xm_qdss_dap",
242 .id
= SM6350_MASTER_QDSS_DAP
,
246 .links
= { SM6350_SLAVE_CAMERA_CFG
,
248 SM6350_SLAVE_CNOC_MNOC_CFG
,
249 SM6350_SLAVE_UFS_MEM_CFG
,
251 SM6350_SLAVE_SNOC_CFG
,
252 SM6350_SLAVE_QM_MPU_CFG
,
255 SM6350_SLAVE_CAMERA_NRT_THROTTLE_CFG
,
256 SM6350_SLAVE_A2NOC_CFG
,
257 SM6350_SLAVE_QDSS_CFG
,
258 SM6350_SLAVE_VSENSE_CTRL_CFG
,
259 SM6350_SLAVE_CAMERA_RT_THROTTLE_CFG
,
260 SM6350_SLAVE_DISPLAY_CFG
,
262 SM6350_SLAVE_DCC_CFG
,
263 SM6350_SLAVE_CNOC_DDRSS
,
264 SM6350_SLAVE_DISPLAY_THROTTLE_CFG
,
265 SM6350_SLAVE_NPU_CFG
,
266 SM6350_SLAVE_AHB2PHY
,
267 SM6350_SLAVE_GRAPHICS_3D_CFG
,
268 SM6350_SLAVE_BOOT_ROM
,
269 SM6350_SLAVE_VENUS_CFG
,
270 SM6350_SLAVE_IPA_CFG
,
271 SM6350_SLAVE_SECURITY
,
272 SM6350_SLAVE_IMEM_CFG
,
273 SM6350_SLAVE_CNOC_MSS
,
274 SM6350_SLAVE_SERVICE_CNOC
,
276 SM6350_SLAVE_VENUS_THROTTLE_CFG
,
277 SM6350_SLAVE_RBCPR_CX_CFG
,
278 SM6350_SLAVE_A1NOC_CFG
,
281 SM6350_SLAVE_EMMC_CFG
,
282 SM6350_SLAVE_CRYPTO_0_CFG
,
283 SM6350_SLAVE_PIMEM_CFG
,
284 SM6350_SLAVE_RBCPR_MX_CFG
,
291 static struct qcom_icc_node qhm_cnoc_dc_noc
= {
292 .name
= "qhm_cnoc_dc_noc",
293 .id
= SM6350_MASTER_CNOC_DC_NOC
,
297 .links
= { SM6350_SLAVE_LLCC_CFG
,
298 SM6350_SLAVE_GEM_NOC_CFG
302 static struct qcom_icc_node acm_apps
= {
304 .id
= SM6350_MASTER_AMPSS_M0
,
308 .links
= { SM6350_SLAVE_LLCC
,
309 SM6350_SLAVE_GEM_NOC_SNOC
313 static struct qcom_icc_node acm_sys_tcu
= {
314 .name
= "acm_sys_tcu",
315 .id
= SM6350_MASTER_SYS_TCU
,
319 .links
= { SM6350_SLAVE_LLCC
,
320 SM6350_SLAVE_GEM_NOC_SNOC
324 static struct qcom_icc_node qhm_gemnoc_cfg
= {
325 .name
= "qhm_gemnoc_cfg",
326 .id
= SM6350_MASTER_GEM_NOC_CFG
,
330 .links
= { SM6350_SLAVE_MCDMA_MS_MPU_CFG
,
331 SM6350_SLAVE_SERVICE_GEM_NOC
,
332 SM6350_SLAVE_MSS_PROC_MS_MPU_CFG
336 static struct qcom_icc_node qnm_cmpnoc
= {
337 .name
= "qnm_cmpnoc",
338 .id
= SM6350_MASTER_COMPUTE_NOC
,
342 .links
= { SM6350_SLAVE_LLCC
,
343 SM6350_SLAVE_GEM_NOC_SNOC
347 static struct qcom_icc_node qnm_mnoc_hf
= {
348 .name
= "qnm_mnoc_hf",
349 .id
= SM6350_MASTER_MNOC_HF_MEM_NOC
,
353 .links
= { SM6350_SLAVE_LLCC
,
354 SM6350_SLAVE_GEM_NOC_SNOC
358 static struct qcom_icc_node qnm_mnoc_sf
= {
359 .name
= "qnm_mnoc_sf",
360 .id
= SM6350_MASTER_MNOC_SF_MEM_NOC
,
364 .links
= { SM6350_SLAVE_LLCC
,
365 SM6350_SLAVE_GEM_NOC_SNOC
369 static struct qcom_icc_node qnm_snoc_gc
= {
370 .name
= "qnm_snoc_gc",
371 .id
= SM6350_MASTER_SNOC_GC_MEM_NOC
,
375 .links
= { SM6350_SLAVE_LLCC
},
378 static struct qcom_icc_node qnm_snoc_sf
= {
379 .name
= "qnm_snoc_sf",
380 .id
= SM6350_MASTER_SNOC_SF_MEM_NOC
,
384 .links
= { SM6350_SLAVE_LLCC
},
387 static struct qcom_icc_node qxm_gpu
= {
389 .id
= SM6350_MASTER_GRAPHICS_3D
,
393 .links
= { SM6350_SLAVE_LLCC
,
394 SM6350_SLAVE_GEM_NOC_SNOC
398 static struct qcom_icc_node llcc_mc
= {
400 .id
= SM6350_MASTER_LLCC
,
404 .links
= { SM6350_SLAVE_EBI_CH0
},
407 static struct qcom_icc_node qhm_mnoc_cfg
= {
408 .name
= "qhm_mnoc_cfg",
409 .id
= SM6350_MASTER_CNOC_MNOC_CFG
,
413 .links
= { SM6350_SLAVE_SERVICE_MNOC
},
416 static struct qcom_icc_node qnm_video0
= {
417 .name
= "qnm_video0",
418 .id
= SM6350_MASTER_VIDEO_P0
,
422 .links
= { SM6350_SLAVE_MNOC_SF_MEM_NOC
},
425 static struct qcom_icc_node qnm_video_cvp
= {
426 .name
= "qnm_video_cvp",
427 .id
= SM6350_MASTER_VIDEO_PROC
,
431 .links
= { SM6350_SLAVE_MNOC_SF_MEM_NOC
},
434 static struct qcom_icc_node qxm_camnoc_hf
= {
435 .name
= "qxm_camnoc_hf",
436 .id
= SM6350_MASTER_CAMNOC_HF
,
440 .links
= { SM6350_SLAVE_MNOC_HF_MEM_NOC
},
443 static struct qcom_icc_node qxm_camnoc_icp
= {
444 .name
= "qxm_camnoc_icp",
445 .id
= SM6350_MASTER_CAMNOC_ICP
,
449 .links
= { SM6350_SLAVE_MNOC_SF_MEM_NOC
},
452 static struct qcom_icc_node qxm_camnoc_sf
= {
453 .name
= "qxm_camnoc_sf",
454 .id
= SM6350_MASTER_CAMNOC_SF
,
458 .links
= { SM6350_SLAVE_MNOC_SF_MEM_NOC
},
461 static struct qcom_icc_node qxm_mdp0
= {
463 .id
= SM6350_MASTER_MDP_PORT0
,
467 .links
= { SM6350_SLAVE_MNOC_HF_MEM_NOC
},
470 static struct qcom_icc_node amm_npu_sys
= {
471 .name
= "amm_npu_sys",
472 .id
= SM6350_MASTER_NPU_SYS
,
476 .links
= { SM6350_SLAVE_NPU_COMPUTE_NOC
},
479 static struct qcom_icc_node qhm_npu_cfg
= {
480 .name
= "qhm_npu_cfg",
481 .id
= SM6350_MASTER_NPU_NOC_CFG
,
485 .links
= { SM6350_SLAVE_SERVICE_NPU_NOC
,
486 SM6350_SLAVE_ISENSE_CFG
,
487 SM6350_SLAVE_NPU_LLM_CFG
,
488 SM6350_SLAVE_NPU_INT_DMA_BWMON_CFG
,
490 SM6350_SLAVE_NPU_TCM
,
491 SM6350_SLAVE_NPU_CAL_DP0
,
496 static struct qcom_icc_node qhm_snoc_cfg
= {
497 .name
= "qhm_snoc_cfg",
498 .id
= SM6350_MASTER_SNOC_CFG
,
502 .links
= { SM6350_SLAVE_SERVICE_SNOC
},
505 static struct qcom_icc_node qnm_aggre1_noc
= {
506 .name
= "qnm_aggre1_noc",
507 .id
= SM6350_A1NOC_SNOC_MAS
,
511 .links
= { SM6350_SLAVE_SNOC_GEM_NOC_SF
,
515 SM6350_SNOC_CNOC_SLV
,
516 SM6350_SLAVE_QDSS_STM
520 static struct qcom_icc_node qnm_aggre2_noc
= {
521 .name
= "qnm_aggre2_noc",
522 .id
= SM6350_A2NOC_SNOC_MAS
,
526 .links
= { SM6350_SLAVE_SNOC_GEM_NOC_SF
,
530 SM6350_SNOC_CNOC_SLV
,
532 SM6350_SLAVE_QDSS_STM
536 static struct qcom_icc_node qnm_gemnoc
= {
537 .name
= "qnm_gemnoc",
538 .id
= SM6350_MASTER_GEM_NOC_SNOC
,
542 .links
= { SM6350_SLAVE_PIMEM
,
545 SM6350_SNOC_CNOC_SLV
,
547 SM6350_SLAVE_QDSS_STM
551 static struct qcom_icc_node qxm_pimem
= {
553 .id
= SM6350_MASTER_PIMEM
,
557 .links
= { SM6350_SLAVE_SNOC_GEM_NOC_GC
,
562 static struct qcom_icc_node xm_gic
= {
564 .id
= SM6350_MASTER_GIC
,
568 .links
= { SM6350_SLAVE_SNOC_GEM_NOC_GC
},
571 static struct qcom_icc_node qns_a1noc_snoc
= {
572 .name
= "qns_a1noc_snoc",
573 .id
= SM6350_A1NOC_SNOC_SLV
,
577 .links
= { SM6350_A1NOC_SNOC_MAS
},
580 static struct qcom_icc_node srvc_aggre1_noc
= {
581 .name
= "srvc_aggre1_noc",
582 .id
= SM6350_SLAVE_SERVICE_A1NOC
,
587 static struct qcom_icc_node qns_a2noc_snoc
= {
588 .name
= "qns_a2noc_snoc",
589 .id
= SM6350_A2NOC_SNOC_SLV
,
593 .links
= { SM6350_A2NOC_SNOC_MAS
},
596 static struct qcom_icc_node srvc_aggre2_noc
= {
597 .name
= "srvc_aggre2_noc",
598 .id
= SM6350_SLAVE_SERVICE_A2NOC
,
603 static struct qcom_icc_node qns_camnoc_uncomp
= {
604 .name
= "qns_camnoc_uncomp",
605 .id
= SM6350_SLAVE_CAMNOC_UNCOMP
,
610 static struct qcom_icc_node qup0_core_slave
= {
611 .name
= "qup0_core_slave",
612 .id
= SM6350_SLAVE_QUP_CORE_0
,
617 static struct qcom_icc_node qup1_core_slave
= {
618 .name
= "qup1_core_slave",
619 .id
= SM6350_SLAVE_QUP_CORE_1
,
624 static struct qcom_icc_node qns_cdsp_gemnoc
= {
625 .name
= "qns_cdsp_gemnoc",
626 .id
= SM6350_SLAVE_CDSP_GEM_NOC
,
630 .links
= { SM6350_MASTER_COMPUTE_NOC
},
633 static struct qcom_icc_node qhs_a1_noc_cfg
= {
634 .name
= "qhs_a1_noc_cfg",
635 .id
= SM6350_SLAVE_A1NOC_CFG
,
639 .links
= { SM6350_MASTER_A1NOC_CFG
},
642 static struct qcom_icc_node qhs_a2_noc_cfg
= {
643 .name
= "qhs_a2_noc_cfg",
644 .id
= SM6350_SLAVE_A2NOC_CFG
,
648 .links
= { SM6350_MASTER_A2NOC_CFG
},
651 static struct qcom_icc_node qhs_ahb2phy0
= {
652 .name
= "qhs_ahb2phy0",
653 .id
= SM6350_SLAVE_AHB2PHY
,
658 static struct qcom_icc_node qhs_ahb2phy2
= {
659 .name
= "qhs_ahb2phy2",
660 .id
= SM6350_SLAVE_AHB2PHY_2
,
665 static struct qcom_icc_node qhs_aoss
= {
667 .id
= SM6350_SLAVE_AOSS
,
672 static struct qcom_icc_node qhs_boot_rom
= {
673 .name
= "qhs_boot_rom",
674 .id
= SM6350_SLAVE_BOOT_ROM
,
679 static struct qcom_icc_node qhs_camera_cfg
= {
680 .name
= "qhs_camera_cfg",
681 .id
= SM6350_SLAVE_CAMERA_CFG
,
686 static struct qcom_icc_node qhs_camera_nrt_thrott_cfg
= {
687 .name
= "qhs_camera_nrt_thrott_cfg",
688 .id
= SM6350_SLAVE_CAMERA_NRT_THROTTLE_CFG
,
693 static struct qcom_icc_node qhs_camera_rt_throttle_cfg
= {
694 .name
= "qhs_camera_rt_throttle_cfg",
695 .id
= SM6350_SLAVE_CAMERA_RT_THROTTLE_CFG
,
700 static struct qcom_icc_node qhs_clk_ctl
= {
701 .name
= "qhs_clk_ctl",
702 .id
= SM6350_SLAVE_CLK_CTL
,
707 static struct qcom_icc_node qhs_cpr_cx
= {
708 .name
= "qhs_cpr_cx",
709 .id
= SM6350_SLAVE_RBCPR_CX_CFG
,
714 static struct qcom_icc_node qhs_cpr_mx
= {
715 .name
= "qhs_cpr_mx",
716 .id
= SM6350_SLAVE_RBCPR_MX_CFG
,
721 static struct qcom_icc_node qhs_crypto0_cfg
= {
722 .name
= "qhs_crypto0_cfg",
723 .id
= SM6350_SLAVE_CRYPTO_0_CFG
,
728 static struct qcom_icc_node qhs_dcc_cfg
= {
729 .name
= "qhs_dcc_cfg",
730 .id
= SM6350_SLAVE_DCC_CFG
,
735 static struct qcom_icc_node qhs_ddrss_cfg
= {
736 .name
= "qhs_ddrss_cfg",
737 .id
= SM6350_SLAVE_CNOC_DDRSS
,
741 .links
= { SM6350_MASTER_CNOC_DC_NOC
},
744 static struct qcom_icc_node qhs_display_cfg
= {
745 .name
= "qhs_display_cfg",
746 .id
= SM6350_SLAVE_DISPLAY_CFG
,
751 static struct qcom_icc_node qhs_display_throttle_cfg
= {
752 .name
= "qhs_display_throttle_cfg",
753 .id
= SM6350_SLAVE_DISPLAY_THROTTLE_CFG
,
758 static struct qcom_icc_node qhs_emmc_cfg
= {
759 .name
= "qhs_emmc_cfg",
760 .id
= SM6350_SLAVE_EMMC_CFG
,
765 static struct qcom_icc_node qhs_glm
= {
767 .id
= SM6350_SLAVE_GLM
,
772 static struct qcom_icc_node qhs_gpuss_cfg
= {
773 .name
= "qhs_gpuss_cfg",
774 .id
= SM6350_SLAVE_GRAPHICS_3D_CFG
,
779 static struct qcom_icc_node qhs_imem_cfg
= {
780 .name
= "qhs_imem_cfg",
781 .id
= SM6350_SLAVE_IMEM_CFG
,
786 static struct qcom_icc_node qhs_ipa
= {
788 .id
= SM6350_SLAVE_IPA_CFG
,
793 static struct qcom_icc_node qhs_mnoc_cfg
= {
794 .name
= "qhs_mnoc_cfg",
795 .id
= SM6350_SLAVE_CNOC_MNOC_CFG
,
799 .links
= { SM6350_MASTER_CNOC_MNOC_CFG
},
802 static struct qcom_icc_node qhs_mss_cfg
= {
803 .name
= "qhs_mss_cfg",
804 .id
= SM6350_SLAVE_CNOC_MSS
,
809 static struct qcom_icc_node qhs_npu_cfg
= {
810 .name
= "qhs_npu_cfg",
811 .id
= SM6350_SLAVE_NPU_CFG
,
815 .links
= { SM6350_MASTER_NPU_NOC_CFG
},
818 static struct qcom_icc_node qhs_pdm
= {
820 .id
= SM6350_SLAVE_PDM
,
825 static struct qcom_icc_node qhs_pimem_cfg
= {
826 .name
= "qhs_pimem_cfg",
827 .id
= SM6350_SLAVE_PIMEM_CFG
,
832 static struct qcom_icc_node qhs_prng
= {
834 .id
= SM6350_SLAVE_PRNG
,
839 static struct qcom_icc_node qhs_qdss_cfg
= {
840 .name
= "qhs_qdss_cfg",
841 .id
= SM6350_SLAVE_QDSS_CFG
,
846 static struct qcom_icc_node qhs_qm_cfg
= {
847 .name
= "qhs_qm_cfg",
848 .id
= SM6350_SLAVE_QM_CFG
,
853 static struct qcom_icc_node qhs_qm_mpu_cfg
= {
854 .name
= "qhs_qm_mpu_cfg",
855 .id
= SM6350_SLAVE_QM_MPU_CFG
,
860 static struct qcom_icc_node qhs_qup0
= {
862 .id
= SM6350_SLAVE_QUP_0
,
867 static struct qcom_icc_node qhs_qup1
= {
869 .id
= SM6350_SLAVE_QUP_1
,
874 static struct qcom_icc_node qhs_sdc2
= {
876 .id
= SM6350_SLAVE_SDCC_2
,
881 static struct qcom_icc_node qhs_security
= {
882 .name
= "qhs_security",
883 .id
= SM6350_SLAVE_SECURITY
,
888 static struct qcom_icc_node qhs_snoc_cfg
= {
889 .name
= "qhs_snoc_cfg",
890 .id
= SM6350_SLAVE_SNOC_CFG
,
894 .links
= { SM6350_MASTER_SNOC_CFG
},
897 static struct qcom_icc_node qhs_tcsr
= {
899 .id
= SM6350_SLAVE_TCSR
,
904 static struct qcom_icc_node qhs_ufs_mem_cfg
= {
905 .name
= "qhs_ufs_mem_cfg",
906 .id
= SM6350_SLAVE_UFS_MEM_CFG
,
911 static struct qcom_icc_node qhs_usb3_0
= {
912 .name
= "qhs_usb3_0",
913 .id
= SM6350_SLAVE_USB3
,
918 static struct qcom_icc_node qhs_venus_cfg
= {
919 .name
= "qhs_venus_cfg",
920 .id
= SM6350_SLAVE_VENUS_CFG
,
925 static struct qcom_icc_node qhs_venus_throttle_cfg
= {
926 .name
= "qhs_venus_throttle_cfg",
927 .id
= SM6350_SLAVE_VENUS_THROTTLE_CFG
,
932 static struct qcom_icc_node qhs_vsense_ctrl_cfg
= {
933 .name
= "qhs_vsense_ctrl_cfg",
934 .id
= SM6350_SLAVE_VSENSE_CTRL_CFG
,
939 static struct qcom_icc_node srvc_cnoc
= {
941 .id
= SM6350_SLAVE_SERVICE_CNOC
,
946 static struct qcom_icc_node qhs_gemnoc
= {
947 .name
= "qhs_gemnoc",
948 .id
= SM6350_SLAVE_GEM_NOC_CFG
,
952 .links
= { SM6350_MASTER_GEM_NOC_CFG
},
955 static struct qcom_icc_node qhs_llcc
= {
957 .id
= SM6350_SLAVE_LLCC_CFG
,
962 static struct qcom_icc_node qhs_mcdma_ms_mpu_cfg
= {
963 .name
= "qhs_mcdma_ms_mpu_cfg",
964 .id
= SM6350_SLAVE_MCDMA_MS_MPU_CFG
,
969 static struct qcom_icc_node qhs_mdsp_ms_mpu_cfg
= {
970 .name
= "qhs_mdsp_ms_mpu_cfg",
971 .id
= SM6350_SLAVE_MSS_PROC_MS_MPU_CFG
,
976 static struct qcom_icc_node qns_gem_noc_snoc
= {
977 .name
= "qns_gem_noc_snoc",
978 .id
= SM6350_SLAVE_GEM_NOC_SNOC
,
982 .links
= { SM6350_MASTER_GEM_NOC_SNOC
},
985 static struct qcom_icc_node qns_llcc
= {
987 .id
= SM6350_SLAVE_LLCC
,
991 .links
= { SM6350_MASTER_LLCC
},
994 static struct qcom_icc_node srvc_gemnoc
= {
995 .name
= "srvc_gemnoc",
996 .id
= SM6350_SLAVE_SERVICE_GEM_NOC
,
1001 static struct qcom_icc_node ebi
= {
1003 .id
= SM6350_SLAVE_EBI_CH0
,
1008 static struct qcom_icc_node qns_mem_noc_hf
= {
1009 .name
= "qns_mem_noc_hf",
1010 .id
= SM6350_SLAVE_MNOC_HF_MEM_NOC
,
1014 .links
= { SM6350_MASTER_MNOC_HF_MEM_NOC
},
1017 static struct qcom_icc_node qns_mem_noc_sf
= {
1018 .name
= "qns_mem_noc_sf",
1019 .id
= SM6350_SLAVE_MNOC_SF_MEM_NOC
,
1023 .links
= { SM6350_MASTER_MNOC_SF_MEM_NOC
},
1026 static struct qcom_icc_node srvc_mnoc
= {
1027 .name
= "srvc_mnoc",
1028 .id
= SM6350_SLAVE_SERVICE_MNOC
,
1033 static struct qcom_icc_node qhs_cal_dp0
= {
1034 .name
= "qhs_cal_dp0",
1035 .id
= SM6350_SLAVE_NPU_CAL_DP0
,
1040 static struct qcom_icc_node qhs_cp
= {
1042 .id
= SM6350_SLAVE_NPU_CP
,
1047 static struct qcom_icc_node qhs_dma_bwmon
= {
1048 .name
= "qhs_dma_bwmon",
1049 .id
= SM6350_SLAVE_NPU_INT_DMA_BWMON_CFG
,
1054 static struct qcom_icc_node qhs_dpm
= {
1056 .id
= SM6350_SLAVE_NPU_DPM
,
1061 static struct qcom_icc_node qhs_isense
= {
1062 .name
= "qhs_isense",
1063 .id
= SM6350_SLAVE_ISENSE_CFG
,
1068 static struct qcom_icc_node qhs_llm
= {
1070 .id
= SM6350_SLAVE_NPU_LLM_CFG
,
1075 static struct qcom_icc_node qhs_tcm
= {
1077 .id
= SM6350_SLAVE_NPU_TCM
,
1082 static struct qcom_icc_node qns_npu_sys
= {
1083 .name
= "qns_npu_sys",
1084 .id
= SM6350_SLAVE_NPU_COMPUTE_NOC
,
1089 static struct qcom_icc_node srvc_noc
= {
1091 .id
= SM6350_SLAVE_SERVICE_NPU_NOC
,
1096 static struct qcom_icc_node qhs_apss
= {
1098 .id
= SM6350_SLAVE_APPSS
,
1103 static struct qcom_icc_node qns_cnoc
= {
1105 .id
= SM6350_SNOC_CNOC_SLV
,
1109 .links
= { SM6350_SNOC_CNOC_MAS
},
1112 static struct qcom_icc_node qns_gemnoc_gc
= {
1113 .name
= "qns_gemnoc_gc",
1114 .id
= SM6350_SLAVE_SNOC_GEM_NOC_GC
,
1118 .links
= { SM6350_MASTER_SNOC_GC_MEM_NOC
},
1121 static struct qcom_icc_node qns_gemnoc_sf
= {
1122 .name
= "qns_gemnoc_sf",
1123 .id
= SM6350_SLAVE_SNOC_GEM_NOC_SF
,
1127 .links
= { SM6350_MASTER_SNOC_SF_MEM_NOC
},
1130 static struct qcom_icc_node qxs_imem
= {
1132 .id
= SM6350_SLAVE_OCIMEM
,
1137 static struct qcom_icc_node qxs_pimem
= {
1138 .name
= "qxs_pimem",
1139 .id
= SM6350_SLAVE_PIMEM
,
1144 static struct qcom_icc_node srvc_snoc
= {
1145 .name
= "srvc_snoc",
1146 .id
= SM6350_SLAVE_SERVICE_SNOC
,
1151 static struct qcom_icc_node xs_qdss_stm
= {
1152 .name
= "xs_qdss_stm",
1153 .id
= SM6350_SLAVE_QDSS_STM
,
1158 static struct qcom_icc_node xs_sys_tcu_cfg
= {
1159 .name
= "xs_sys_tcu_cfg",
1160 .id
= SM6350_SLAVE_TCU
,
1165 static struct qcom_icc_bcm bcm_acv
= {
1167 .enable_mask
= BIT(3),
1173 static struct qcom_icc_bcm bcm_ce0
= {
1177 .nodes
= { &qxm_crypto
},
1180 static struct qcom_icc_bcm bcm_cn0
= {
1184 .nodes
= { &qnm_snoc
,
1192 &qhs_camera_nrt_thrott_cfg
,
1193 &qhs_camera_rt_throttle_cfg
,
1201 &qhs_display_throttle_cfg
,
1222 &qhs_venus_throttle_cfg
,
1223 &qhs_vsense_ctrl_cfg
,
1228 static struct qcom_icc_bcm bcm_cn1
= {
1232 .nodes
= { &xm_emmc
,
1241 static struct qcom_icc_bcm bcm_co0
= {
1245 .nodes
= { &qns_cdsp_gemnoc
},
1248 static struct qcom_icc_bcm bcm_co2
= {
1252 .nodes
= { &qnm_npu
},
1255 static struct qcom_icc_bcm bcm_co3
= {
1259 .nodes
= { &qxm_npu_dsp
},
1262 static struct qcom_icc_bcm bcm_mc0
= {
1269 static struct qcom_icc_bcm bcm_mm0
= {
1273 .nodes
= { &qns_mem_noc_hf
},
1276 static struct qcom_icc_bcm bcm_mm1
= {
1280 .nodes
= { &qxm_camnoc_hf0_uncomp
,
1281 &qxm_camnoc_icp_uncomp
,
1282 &qxm_camnoc_sf_uncomp
,
1288 static struct qcom_icc_bcm bcm_mm2
= {
1292 .nodes
= { &qns_mem_noc_sf
},
1295 static struct qcom_icc_bcm bcm_mm3
= {
1299 .nodes
= { &qhm_mnoc_cfg
, &qnm_video0
, &qnm_video_cvp
, &qxm_camnoc_sf
},
1302 static struct qcom_icc_bcm bcm_qup0
= {
1306 .nodes
= { &qup0_core_master
, &qup1_core_master
, &qup0_core_slave
, &qup1_core_slave
},
1309 static struct qcom_icc_bcm bcm_sh0
= {
1313 .nodes
= { &qns_llcc
},
1316 static struct qcom_icc_bcm bcm_sh2
= {
1320 .nodes
= { &acm_sys_tcu
},
1323 static struct qcom_icc_bcm bcm_sh3
= {
1327 .nodes
= { &qnm_cmpnoc
},
1330 static struct qcom_icc_bcm bcm_sh4
= {
1334 .nodes
= { &acm_apps
},
1337 static struct qcom_icc_bcm bcm_sn0
= {
1341 .nodes
= { &qns_gemnoc_sf
},
1344 static struct qcom_icc_bcm bcm_sn1
= {
1348 .nodes
= { &qxs_imem
},
1351 static struct qcom_icc_bcm bcm_sn2
= {
1355 .nodes
= { &qns_gemnoc_gc
},
1358 static struct qcom_icc_bcm bcm_sn3
= {
1362 .nodes
= { &qxs_pimem
},
1365 static struct qcom_icc_bcm bcm_sn4
= {
1369 .nodes
= { &xs_qdss_stm
},
1372 static struct qcom_icc_bcm bcm_sn5
= {
1376 .nodes
= { &qnm_aggre1_noc
},
1379 static struct qcom_icc_bcm bcm_sn6
= {
1383 .nodes
= { &qnm_aggre2_noc
},
1386 static struct qcom_icc_bcm bcm_sn10
= {
1390 .nodes
= { &qnm_gemnoc
},
1393 static struct qcom_icc_bcm
* const aggre1_noc_bcms
[] = {
1397 static struct qcom_icc_node
* const aggre1_noc_nodes
[] = {
1398 [MASTER_A1NOC_CFG
] = &qhm_a1noc_cfg
,
1399 [MASTER_QUP_0
] = &qhm_qup_0
,
1400 [MASTER_EMMC
] = &xm_emmc
,
1401 [MASTER_UFS_MEM
] = &xm_ufs_mem
,
1402 [A1NOC_SNOC_SLV
] = &qns_a1noc_snoc
,
1403 [SLAVE_SERVICE_A1NOC
] = &srvc_aggre1_noc
,
1406 static const struct qcom_icc_desc sm6350_aggre1_noc
= {
1407 .nodes
= aggre1_noc_nodes
,
1408 .num_nodes
= ARRAY_SIZE(aggre1_noc_nodes
),
1409 .bcms
= aggre1_noc_bcms
,
1410 .num_bcms
= ARRAY_SIZE(aggre1_noc_bcms
),
1413 static struct qcom_icc_bcm
* const aggre2_noc_bcms
[] = {
1418 static struct qcom_icc_node
* const aggre2_noc_nodes
[] = {
1419 [MASTER_A2NOC_CFG
] = &qhm_a2noc_cfg
,
1420 [MASTER_QDSS_BAM
] = &qhm_qdss_bam
,
1421 [MASTER_QUP_1
] = &qhm_qup_1
,
1422 [MASTER_CRYPTO_CORE_0
] = &qxm_crypto
,
1423 [MASTER_IPA
] = &qxm_ipa
,
1424 [MASTER_QDSS_ETR
] = &xm_qdss_etr
,
1425 [MASTER_SDCC_2
] = &xm_sdc2
,
1426 [MASTER_USB3
] = &xm_usb3_0
,
1427 [A2NOC_SNOC_SLV
] = &qns_a2noc_snoc
,
1428 [SLAVE_SERVICE_A2NOC
] = &srvc_aggre2_noc
,
1431 static const struct qcom_icc_desc sm6350_aggre2_noc
= {
1432 .nodes
= aggre2_noc_nodes
,
1433 .num_nodes
= ARRAY_SIZE(aggre2_noc_nodes
),
1434 .bcms
= aggre2_noc_bcms
,
1435 .num_bcms
= ARRAY_SIZE(aggre2_noc_bcms
),
1438 static struct qcom_icc_bcm
* const clk_virt_bcms
[] = {
1445 static struct qcom_icc_node
* const clk_virt_nodes
[] = {
1446 [MASTER_CAMNOC_HF0_UNCOMP
] = &qxm_camnoc_hf0_uncomp
,
1447 [MASTER_CAMNOC_ICP_UNCOMP
] = &qxm_camnoc_icp_uncomp
,
1448 [MASTER_CAMNOC_SF_UNCOMP
] = &qxm_camnoc_sf_uncomp
,
1449 [MASTER_QUP_CORE_0
] = &qup0_core_master
,
1450 [MASTER_QUP_CORE_1
] = &qup1_core_master
,
1451 [MASTER_LLCC
] = &llcc_mc
,
1452 [SLAVE_CAMNOC_UNCOMP
] = &qns_camnoc_uncomp
,
1453 [SLAVE_QUP_CORE_0
] = &qup0_core_slave
,
1454 [SLAVE_QUP_CORE_1
] = &qup1_core_slave
,
1455 [SLAVE_EBI_CH0
] = &ebi
,
1458 static const struct qcom_icc_desc sm6350_clk_virt
= {
1459 .nodes
= clk_virt_nodes
,
1460 .num_nodes
= ARRAY_SIZE(clk_virt_nodes
),
1461 .bcms
= clk_virt_bcms
,
1462 .num_bcms
= ARRAY_SIZE(clk_virt_bcms
),
1465 static struct qcom_icc_bcm
* const compute_noc_bcms
[] = {
1471 static struct qcom_icc_node
* const compute_noc_nodes
[] = {
1472 [MASTER_NPU
] = &qnm_npu
,
1473 [MASTER_NPU_PROC
] = &qxm_npu_dsp
,
1474 [SLAVE_CDSP_GEM_NOC
] = &qns_cdsp_gemnoc
,
1477 static const struct qcom_icc_desc sm6350_compute_noc
= {
1478 .nodes
= compute_noc_nodes
,
1479 .num_nodes
= ARRAY_SIZE(compute_noc_nodes
),
1480 .bcms
= compute_noc_bcms
,
1481 .num_bcms
= ARRAY_SIZE(compute_noc_bcms
),
1484 static struct qcom_icc_bcm
* const config_noc_bcms
[] = {
1489 static struct qcom_icc_node
* const config_noc_nodes
[] = {
1490 [SNOC_CNOC_MAS
] = &qnm_snoc
,
1491 [MASTER_QDSS_DAP
] = &xm_qdss_dap
,
1492 [SLAVE_A1NOC_CFG
] = &qhs_a1_noc_cfg
,
1493 [SLAVE_A2NOC_CFG
] = &qhs_a2_noc_cfg
,
1494 [SLAVE_AHB2PHY
] = &qhs_ahb2phy0
,
1495 [SLAVE_AHB2PHY_2
] = &qhs_ahb2phy2
,
1496 [SLAVE_AOSS
] = &qhs_aoss
,
1497 [SLAVE_BOOT_ROM
] = &qhs_boot_rom
,
1498 [SLAVE_CAMERA_CFG
] = &qhs_camera_cfg
,
1499 [SLAVE_CAMERA_NRT_THROTTLE_CFG
] = &qhs_camera_nrt_thrott_cfg
,
1500 [SLAVE_CAMERA_RT_THROTTLE_CFG
] = &qhs_camera_rt_throttle_cfg
,
1501 [SLAVE_CLK_CTL
] = &qhs_clk_ctl
,
1502 [SLAVE_RBCPR_CX_CFG
] = &qhs_cpr_cx
,
1503 [SLAVE_RBCPR_MX_CFG
] = &qhs_cpr_mx
,
1504 [SLAVE_CRYPTO_0_CFG
] = &qhs_crypto0_cfg
,
1505 [SLAVE_DCC_CFG
] = &qhs_dcc_cfg
,
1506 [SLAVE_CNOC_DDRSS
] = &qhs_ddrss_cfg
,
1507 [SLAVE_DISPLAY_CFG
] = &qhs_display_cfg
,
1508 [SLAVE_DISPLAY_THROTTLE_CFG
] = &qhs_display_throttle_cfg
,
1509 [SLAVE_EMMC_CFG
] = &qhs_emmc_cfg
,
1510 [SLAVE_GLM
] = &qhs_glm
,
1511 [SLAVE_GRAPHICS_3D_CFG
] = &qhs_gpuss_cfg
,
1512 [SLAVE_IMEM_CFG
] = &qhs_imem_cfg
,
1513 [SLAVE_IPA_CFG
] = &qhs_ipa
,
1514 [SLAVE_CNOC_MNOC_CFG
] = &qhs_mnoc_cfg
,
1515 [SLAVE_CNOC_MSS
] = &qhs_mss_cfg
,
1516 [SLAVE_NPU_CFG
] = &qhs_npu_cfg
,
1517 [SLAVE_PDM
] = &qhs_pdm
,
1518 [SLAVE_PIMEM_CFG
] = &qhs_pimem_cfg
,
1519 [SLAVE_PRNG
] = &qhs_prng
,
1520 [SLAVE_QDSS_CFG
] = &qhs_qdss_cfg
,
1521 [SLAVE_QM_CFG
] = &qhs_qm_cfg
,
1522 [SLAVE_QM_MPU_CFG
] = &qhs_qm_mpu_cfg
,
1523 [SLAVE_QUP_0
] = &qhs_qup0
,
1524 [SLAVE_QUP_1
] = &qhs_qup1
,
1525 [SLAVE_SDCC_2
] = &qhs_sdc2
,
1526 [SLAVE_SECURITY
] = &qhs_security
,
1527 [SLAVE_SNOC_CFG
] = &qhs_snoc_cfg
,
1528 [SLAVE_TCSR
] = &qhs_tcsr
,
1529 [SLAVE_UFS_MEM_CFG
] = &qhs_ufs_mem_cfg
,
1530 [SLAVE_USB3
] = &qhs_usb3_0
,
1531 [SLAVE_VENUS_CFG
] = &qhs_venus_cfg
,
1532 [SLAVE_VENUS_THROTTLE_CFG
] = &qhs_venus_throttle_cfg
,
1533 [SLAVE_VSENSE_CTRL_CFG
] = &qhs_vsense_ctrl_cfg
,
1534 [SLAVE_SERVICE_CNOC
] = &srvc_cnoc
,
1537 static const struct qcom_icc_desc sm6350_config_noc
= {
1538 .nodes
= config_noc_nodes
,
1539 .num_nodes
= ARRAY_SIZE(config_noc_nodes
),
1540 .bcms
= config_noc_bcms
,
1541 .num_bcms
= ARRAY_SIZE(config_noc_bcms
),
1544 static struct qcom_icc_bcm
* const dc_noc_bcms
[] = {
1547 static struct qcom_icc_node
* const dc_noc_nodes
[] = {
1548 [MASTER_CNOC_DC_NOC
] = &qhm_cnoc_dc_noc
,
1549 [SLAVE_GEM_NOC_CFG
] = &qhs_gemnoc
,
1550 [SLAVE_LLCC_CFG
] = &qhs_llcc
,
1553 static const struct qcom_icc_desc sm6350_dc_noc
= {
1554 .nodes
= dc_noc_nodes
,
1555 .num_nodes
= ARRAY_SIZE(dc_noc_nodes
),
1556 .bcms
= dc_noc_bcms
,
1557 .num_bcms
= ARRAY_SIZE(dc_noc_bcms
),
1560 static struct qcom_icc_bcm
* const gem_noc_bcms
[] = {
1567 static struct qcom_icc_node
* const gem_noc_nodes
[] = {
1568 [MASTER_AMPSS_M0
] = &acm_apps
,
1569 [MASTER_SYS_TCU
] = &acm_sys_tcu
,
1570 [MASTER_GEM_NOC_CFG
] = &qhm_gemnoc_cfg
,
1571 [MASTER_COMPUTE_NOC
] = &qnm_cmpnoc
,
1572 [MASTER_MNOC_HF_MEM_NOC
] = &qnm_mnoc_hf
,
1573 [MASTER_MNOC_SF_MEM_NOC
] = &qnm_mnoc_sf
,
1574 [MASTER_SNOC_GC_MEM_NOC
] = &qnm_snoc_gc
,
1575 [MASTER_SNOC_SF_MEM_NOC
] = &qnm_snoc_sf
,
1576 [MASTER_GRAPHICS_3D
] = &qxm_gpu
,
1577 [SLAVE_MCDMA_MS_MPU_CFG
] = &qhs_mcdma_ms_mpu_cfg
,
1578 [SLAVE_MSS_PROC_MS_MPU_CFG
] = &qhs_mdsp_ms_mpu_cfg
,
1579 [SLAVE_GEM_NOC_SNOC
] = &qns_gem_noc_snoc
,
1580 [SLAVE_LLCC
] = &qns_llcc
,
1581 [SLAVE_SERVICE_GEM_NOC
] = &srvc_gemnoc
,
1584 static const struct qcom_icc_desc sm6350_gem_noc
= {
1585 .nodes
= gem_noc_nodes
,
1586 .num_nodes
= ARRAY_SIZE(gem_noc_nodes
),
1587 .bcms
= gem_noc_bcms
,
1588 .num_bcms
= ARRAY_SIZE(gem_noc_bcms
),
1591 static struct qcom_icc_bcm
* const mmss_noc_bcms
[] = {
1598 static struct qcom_icc_node
* const mmss_noc_nodes
[] = {
1599 [MASTER_CNOC_MNOC_CFG
] = &qhm_mnoc_cfg
,
1600 [MASTER_VIDEO_P0
] = &qnm_video0
,
1601 [MASTER_VIDEO_PROC
] = &qnm_video_cvp
,
1602 [MASTER_CAMNOC_HF
] = &qxm_camnoc_hf
,
1603 [MASTER_CAMNOC_ICP
] = &qxm_camnoc_icp
,
1604 [MASTER_CAMNOC_SF
] = &qxm_camnoc_sf
,
1605 [MASTER_MDP_PORT0
] = &qxm_mdp0
,
1606 [SLAVE_MNOC_HF_MEM_NOC
] = &qns_mem_noc_hf
,
1607 [SLAVE_MNOC_SF_MEM_NOC
] = &qns_mem_noc_sf
,
1608 [SLAVE_SERVICE_MNOC
] = &srvc_mnoc
,
1611 static const struct qcom_icc_desc sm6350_mmss_noc
= {
1612 .nodes
= mmss_noc_nodes
,
1613 .num_nodes
= ARRAY_SIZE(mmss_noc_nodes
),
1614 .bcms
= mmss_noc_bcms
,
1615 .num_bcms
= ARRAY_SIZE(mmss_noc_bcms
),
1618 static struct qcom_icc_bcm
* const npu_noc_bcms
[] = {
1621 static struct qcom_icc_node
* const npu_noc_nodes
[] = {
1622 [MASTER_NPU_SYS
] = &amm_npu_sys
,
1623 [MASTER_NPU_NOC_CFG
] = &qhm_npu_cfg
,
1624 [SLAVE_NPU_CAL_DP0
] = &qhs_cal_dp0
,
1625 [SLAVE_NPU_CP
] = &qhs_cp
,
1626 [SLAVE_NPU_INT_DMA_BWMON_CFG
] = &qhs_dma_bwmon
,
1627 [SLAVE_NPU_DPM
] = &qhs_dpm
,
1628 [SLAVE_ISENSE_CFG
] = &qhs_isense
,
1629 [SLAVE_NPU_LLM_CFG
] = &qhs_llm
,
1630 [SLAVE_NPU_TCM
] = &qhs_tcm
,
1631 [SLAVE_NPU_COMPUTE_NOC
] = &qns_npu_sys
,
1632 [SLAVE_SERVICE_NPU_NOC
] = &srvc_noc
,
1635 static const struct qcom_icc_desc sm6350_npu_noc
= {
1636 .nodes
= npu_noc_nodes
,
1637 .num_nodes
= ARRAY_SIZE(npu_noc_nodes
),
1638 .bcms
= npu_noc_bcms
,
1639 .num_bcms
= ARRAY_SIZE(npu_noc_bcms
),
1642 static struct qcom_icc_bcm
* const system_noc_bcms
[] = {
1653 static struct qcom_icc_node
* const system_noc_nodes
[] = {
1654 [MASTER_SNOC_CFG
] = &qhm_snoc_cfg
,
1655 [A1NOC_SNOC_MAS
] = &qnm_aggre1_noc
,
1656 [A2NOC_SNOC_MAS
] = &qnm_aggre2_noc
,
1657 [MASTER_GEM_NOC_SNOC
] = &qnm_gemnoc
,
1658 [MASTER_PIMEM
] = &qxm_pimem
,
1659 [MASTER_GIC
] = &xm_gic
,
1660 [SLAVE_APPSS
] = &qhs_apss
,
1661 [SNOC_CNOC_SLV
] = &qns_cnoc
,
1662 [SLAVE_SNOC_GEM_NOC_GC
] = &qns_gemnoc_gc
,
1663 [SLAVE_SNOC_GEM_NOC_SF
] = &qns_gemnoc_sf
,
1664 [SLAVE_OCIMEM
] = &qxs_imem
,
1665 [SLAVE_PIMEM
] = &qxs_pimem
,
1666 [SLAVE_SERVICE_SNOC
] = &srvc_snoc
,
1667 [SLAVE_QDSS_STM
] = &xs_qdss_stm
,
1668 [SLAVE_TCU
] = &xs_sys_tcu_cfg
,
1671 static const struct qcom_icc_desc sm6350_system_noc
= {
1672 .nodes
= system_noc_nodes
,
1673 .num_nodes
= ARRAY_SIZE(system_noc_nodes
),
1674 .bcms
= system_noc_bcms
,
1675 .num_bcms
= ARRAY_SIZE(system_noc_bcms
),
1678 static const struct of_device_id qnoc_of_match
[] = {
1679 { .compatible
= "qcom,sm6350-aggre1-noc",
1680 .data
= &sm6350_aggre1_noc
},
1681 { .compatible
= "qcom,sm6350-aggre2-noc",
1682 .data
= &sm6350_aggre2_noc
},
1683 { .compatible
= "qcom,sm6350-clk-virt",
1684 .data
= &sm6350_clk_virt
},
1685 { .compatible
= "qcom,sm6350-compute-noc",
1686 .data
= &sm6350_compute_noc
},
1687 { .compatible
= "qcom,sm6350-config-noc",
1688 .data
= &sm6350_config_noc
},
1689 { .compatible
= "qcom,sm6350-dc-noc",
1690 .data
= &sm6350_dc_noc
},
1691 { .compatible
= "qcom,sm6350-gem-noc",
1692 .data
= &sm6350_gem_noc
},
1693 { .compatible
= "qcom,sm6350-mmss-noc",
1694 .data
= &sm6350_mmss_noc
},
1695 { .compatible
= "qcom,sm6350-npu-noc",
1696 .data
= &sm6350_npu_noc
},
1697 { .compatible
= "qcom,sm6350-system-noc",
1698 .data
= &sm6350_system_noc
},
1701 MODULE_DEVICE_TABLE(of
, qnoc_of_match
);
1703 static struct platform_driver qnoc_driver
= {
1704 .probe
= qcom_icc_rpmh_probe
,
1705 .remove_new
= qcom_icc_rpmh_remove
,
1707 .name
= "qnoc-sm6350",
1708 .of_match_table
= qnoc_of_match
,
1709 .sync_state
= icc_sync_state
,
1712 module_platform_driver(qnoc_driver
);
1714 MODULE_DESCRIPTION("Qualcomm SM6350 NoC driver");
1715 MODULE_LICENSE("GPL v2");