Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
0004  * Copyright (c) 2022, Linaro Ltd
0005  */
0006 
0007 #include <linux/device.h>
0008 #include <linux/interconnect.h>
0009 #include <linux/interconnect-provider.h>
0010 #include <linux/module.h>
0011 #include <linux/of_platform.h>
0012 #include <dt-bindings/interconnect/qcom,sc8280xp.h>
0013 
0014 #include "bcm-voter.h"
0015 #include "icc-rpmh.h"
0016 #include "sc8280xp.h"
0017 
0018 static struct qcom_icc_node qhm_qspi = {
0019     .name = "qhm_qspi",
0020     .id = SC8280XP_MASTER_QSPI_0,
0021     .channels = 1,
0022     .buswidth = 4,
0023     .num_links = 1,
0024     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0025 };
0026 
0027 static struct qcom_icc_node qhm_qup1 = {
0028     .name = "qhm_qup1",
0029     .id = SC8280XP_MASTER_QUP_1,
0030     .channels = 1,
0031     .buswidth = 4,
0032     .num_links = 1,
0033     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0034 };
0035 
0036 static struct qcom_icc_node qhm_qup2 = {
0037     .name = "qhm_qup2",
0038     .id = SC8280XP_MASTER_QUP_2,
0039     .channels = 1,
0040     .buswidth = 4,
0041     .num_links = 1,
0042     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0043 };
0044 
0045 static struct qcom_icc_node qnm_a1noc_cfg = {
0046     .name = "qnm_a1noc_cfg",
0047     .id = SC8280XP_MASTER_A1NOC_CFG,
0048     .channels = 1,
0049     .buswidth = 4,
0050     .links = { SC8280XP_SLAVE_SERVICE_A1NOC },
0051 };
0052 
0053 static struct qcom_icc_node qxm_ipa = {
0054     .name = "qxm_ipa",
0055     .id = SC8280XP_MASTER_IPA,
0056     .channels = 1,
0057     .buswidth = 8,
0058     .num_links = 1,
0059     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0060 };
0061 
0062 static struct qcom_icc_node xm_emac_1 = {
0063     .name = "xm_emac_1",
0064     .id = SC8280XP_MASTER_EMAC_1,
0065     .channels = 1,
0066     .buswidth = 8,
0067     .num_links = 1,
0068     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0069 };
0070 
0071 static struct qcom_icc_node xm_sdc4 = {
0072     .name = "xm_sdc4",
0073     .id = SC8280XP_MASTER_SDCC_4,
0074     .channels = 1,
0075     .buswidth = 8,
0076     .num_links = 1,
0077     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0078 };
0079 
0080 static struct qcom_icc_node xm_ufs_mem = {
0081     .name = "xm_ufs_mem",
0082     .id = SC8280XP_MASTER_UFS_MEM,
0083     .channels = 1,
0084     .buswidth = 8,
0085     .num_links = 1,
0086     .links = { SC8280XP_SLAVE_A1NOC_SNOC },
0087 };
0088 
0089 static struct qcom_icc_node xm_usb3_0 = {
0090     .name = "xm_usb3_0",
0091     .id = SC8280XP_MASTER_USB3_0,
0092     .channels = 1,
0093     .buswidth = 8,
0094     .num_links = 1,
0095     .links = { SC8280XP_SLAVE_USB_NOC_SNOC },
0096 };
0097 
0098 static struct qcom_icc_node xm_usb3_1 = {
0099     .name = "xm_usb3_1",
0100     .id = SC8280XP_MASTER_USB3_1,
0101     .channels = 1,
0102     .buswidth = 8,
0103     .num_links = 1,
0104     .links = { SC8280XP_SLAVE_USB_NOC_SNOC },
0105 };
0106 
0107 static struct qcom_icc_node xm_usb3_mp = {
0108     .name = "xm_usb3_mp",
0109     .id = SC8280XP_MASTER_USB3_MP,
0110     .channels = 1,
0111     .buswidth = 16,
0112     .num_links = 1,
0113     .links = { SC8280XP_SLAVE_USB_NOC_SNOC },
0114 };
0115 
0116 static struct qcom_icc_node xm_usb4_host0 = {
0117     .name = "xm_usb4_host0",
0118     .id = SC8280XP_MASTER_USB4_0,
0119     .channels = 1,
0120     .buswidth = 16,
0121     .num_links = 1,
0122     .links = { SC8280XP_SLAVE_USB_NOC_SNOC },
0123 };
0124 
0125 static struct qcom_icc_node xm_usb4_host1 = {
0126     .name = "xm_usb4_host1",
0127     .id = SC8280XP_MASTER_USB4_1,
0128     .channels = 1,
0129     .buswidth = 16,
0130     .num_links = 1,
0131     .links = { SC8280XP_SLAVE_USB_NOC_SNOC },
0132 };
0133 
0134 static struct qcom_icc_node qhm_qdss_bam = {
0135     .name = "qhm_qdss_bam",
0136     .id = SC8280XP_MASTER_QDSS_BAM,
0137     .channels = 1,
0138     .buswidth = 4,
0139     .num_links = 1,
0140     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0141 };
0142 
0143 static struct qcom_icc_node qhm_qup0 = {
0144     .name = "qhm_qup0",
0145     .id = SC8280XP_MASTER_QUP_0,
0146     .channels = 1,
0147     .buswidth = 4,
0148     .num_links = 1,
0149     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0150 };
0151 
0152 static struct qcom_icc_node qnm_a2noc_cfg = {
0153     .name = "qnm_a2noc_cfg",
0154     .id = SC8280XP_MASTER_A2NOC_CFG,
0155     .channels = 1,
0156     .buswidth = 4,
0157     .num_links = 1,
0158     .links = { SC8280XP_SLAVE_SERVICE_A2NOC },
0159 };
0160 
0161 static struct qcom_icc_node qxm_crypto = {
0162     .name = "qxm_crypto",
0163     .id = SC8280XP_MASTER_CRYPTO,
0164     .channels = 1,
0165     .buswidth = 8,
0166     .num_links = 1,
0167     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0168 };
0169 
0170 static struct qcom_icc_node qxm_sensorss_q6 = {
0171     .name = "qxm_sensorss_q6",
0172     .id = SC8280XP_MASTER_SENSORS_PROC,
0173     .channels = 1,
0174     .buswidth = 8,
0175     .num_links = 1,
0176     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0177 };
0178 
0179 static struct qcom_icc_node qxm_sp = {
0180     .name = "qxm_sp",
0181     .id = SC8280XP_MASTER_SP,
0182     .channels = 1,
0183     .buswidth = 8,
0184     .num_links = 1,
0185     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0186 };
0187 
0188 static struct qcom_icc_node xm_emac_0 = {
0189     .name = "xm_emac_0",
0190     .id = SC8280XP_MASTER_EMAC,
0191     .channels = 1,
0192     .buswidth = 8,
0193     .num_links = 1,
0194     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0195 };
0196 
0197 static struct qcom_icc_node xm_pcie3_0 = {
0198     .name = "xm_pcie3_0",
0199     .id = SC8280XP_MASTER_PCIE_0,
0200     .channels = 1,
0201     .buswidth = 16,
0202     .num_links = 1,
0203     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0204 };
0205 
0206 static struct qcom_icc_node xm_pcie3_1 = {
0207     .name = "xm_pcie3_1",
0208     .id = SC8280XP_MASTER_PCIE_1,
0209     .channels = 1,
0210     .buswidth = 16,
0211     .num_links = 1,
0212     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0213 };
0214 
0215 static struct qcom_icc_node xm_pcie3_2a = {
0216     .name = "xm_pcie3_2a",
0217     .id = SC8280XP_MASTER_PCIE_2A,
0218     .channels = 1,
0219     .buswidth = 16,
0220     .num_links = 1,
0221     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0222 };
0223 
0224 static struct qcom_icc_node xm_pcie3_2b = {
0225     .name = "xm_pcie3_2b",
0226     .id = SC8280XP_MASTER_PCIE_2B,
0227     .channels = 1,
0228     .buswidth = 8,
0229     .num_links = 1,
0230     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0231 };
0232 
0233 static struct qcom_icc_node xm_pcie3_3a = {
0234     .name = "xm_pcie3_3a",
0235     .id = SC8280XP_MASTER_PCIE_3A,
0236     .channels = 1,
0237     .buswidth = 16,
0238     .num_links = 1,
0239     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0240 };
0241 
0242 static struct qcom_icc_node xm_pcie3_3b = {
0243     .name = "xm_pcie3_3b",
0244     .id = SC8280XP_MASTER_PCIE_3B,
0245     .channels = 1,
0246     .buswidth = 8,
0247     .num_links = 1,
0248     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0249 };
0250 
0251 static struct qcom_icc_node xm_pcie3_4 = {
0252     .name = "xm_pcie3_4",
0253     .id = SC8280XP_MASTER_PCIE_4,
0254     .channels = 1,
0255     .buswidth = 8,
0256     .num_links = 1,
0257     .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC },
0258 };
0259 
0260 static struct qcom_icc_node xm_qdss_etr = {
0261     .name = "xm_qdss_etr",
0262     .id = SC8280XP_MASTER_QDSS_ETR,
0263     .channels = 1,
0264     .buswidth = 8,
0265     .num_links = 1,
0266     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0267 };
0268 
0269 static struct qcom_icc_node xm_sdc2 = {
0270     .name = "xm_sdc2",
0271     .id = SC8280XP_MASTER_SDCC_2,
0272     .channels = 1,
0273     .buswidth = 8,
0274     .num_links = 1,
0275     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0276 };
0277 
0278 static struct qcom_icc_node xm_ufs_card = {
0279     .name = "xm_ufs_card",
0280     .id = SC8280XP_MASTER_UFS_CARD,
0281     .channels = 1,
0282     .buswidth = 8,
0283     .num_links = 1,
0284     .links = { SC8280XP_SLAVE_A2NOC_SNOC },
0285 };
0286 
0287 static struct qcom_icc_node ipa_core_master = {
0288     .name = "ipa_core_master",
0289     .id = SC8280XP_MASTER_IPA_CORE,
0290     .channels = 1,
0291     .buswidth = 8,
0292     .num_links = 1,
0293     .links = { SC8280XP_SLAVE_IPA_CORE },
0294 };
0295 
0296 static struct qcom_icc_node qup0_core_master = {
0297     .name = "qup0_core_master",
0298     .id = SC8280XP_MASTER_QUP_CORE_0,
0299     .channels = 1,
0300     .buswidth = 4,
0301     .num_links = 1,
0302     .links = { SC8280XP_SLAVE_QUP_CORE_0 },
0303 };
0304 
0305 static struct qcom_icc_node qup1_core_master = {
0306     .name = "qup1_core_master",
0307     .id = SC8280XP_MASTER_QUP_CORE_1,
0308     .channels = 1,
0309     .buswidth = 4,
0310     .num_links = 1,
0311     .links = { SC8280XP_SLAVE_QUP_CORE_1 },
0312 };
0313 
0314 static struct qcom_icc_node qup2_core_master = {
0315     .name = "qup2_core_master",
0316     .id = SC8280XP_MASTER_QUP_CORE_2,
0317     .channels = 1,
0318     .buswidth = 4,
0319     .num_links = 1,
0320     .links = { SC8280XP_SLAVE_QUP_CORE_2 },
0321 };
0322 
0323 static struct qcom_icc_node qnm_gemnoc_cnoc = {
0324     .name = "qnm_gemnoc_cnoc",
0325     .id = SC8280XP_MASTER_GEM_NOC_CNOC,
0326     .channels = 1,
0327     .buswidth = 16,
0328     .num_links = 76,
0329     .links = { SC8280XP_SLAVE_AHB2PHY_0,
0330            SC8280XP_SLAVE_AHB2PHY_1,
0331            SC8280XP_SLAVE_AHB2PHY_2,
0332            SC8280XP_SLAVE_AOSS,
0333            SC8280XP_SLAVE_APPSS,
0334            SC8280XP_SLAVE_CAMERA_CFG,
0335            SC8280XP_SLAVE_CLK_CTL,
0336            SC8280XP_SLAVE_CDSP_CFG,
0337            SC8280XP_SLAVE_CDSP1_CFG,
0338            SC8280XP_SLAVE_RBCPR_CX_CFG,
0339            SC8280XP_SLAVE_RBCPR_MMCX_CFG,
0340            SC8280XP_SLAVE_RBCPR_MX_CFG,
0341            SC8280XP_SLAVE_CPR_NSPCX,
0342            SC8280XP_SLAVE_CRYPTO_0_CFG,
0343            SC8280XP_SLAVE_CX_RDPM,
0344            SC8280XP_SLAVE_DCC_CFG,
0345            SC8280XP_SLAVE_DISPLAY_CFG,
0346            SC8280XP_SLAVE_DISPLAY1_CFG,
0347            SC8280XP_SLAVE_EMAC_CFG,
0348            SC8280XP_SLAVE_EMAC1_CFG,
0349            SC8280XP_SLAVE_GFX3D_CFG,
0350            SC8280XP_SLAVE_HWKM,
0351            SC8280XP_SLAVE_IMEM_CFG,
0352            SC8280XP_SLAVE_IPA_CFG,
0353            SC8280XP_SLAVE_IPC_ROUTER_CFG,
0354            SC8280XP_SLAVE_LPASS,
0355            SC8280XP_SLAVE_MX_RDPM,
0356            SC8280XP_SLAVE_MXC_RDPM,
0357            SC8280XP_SLAVE_PCIE_0_CFG,
0358            SC8280XP_SLAVE_PCIE_1_CFG,
0359            SC8280XP_SLAVE_PCIE_2A_CFG,
0360            SC8280XP_SLAVE_PCIE_2B_CFG,
0361            SC8280XP_SLAVE_PCIE_3A_CFG,
0362            SC8280XP_SLAVE_PCIE_3B_CFG,
0363            SC8280XP_SLAVE_PCIE_4_CFG,
0364            SC8280XP_SLAVE_PCIE_RSC_CFG,
0365            SC8280XP_SLAVE_PDM,
0366            SC8280XP_SLAVE_PIMEM_CFG,
0367            SC8280XP_SLAVE_PKA_WRAPPER_CFG,
0368            SC8280XP_SLAVE_PMU_WRAPPER_CFG,
0369            SC8280XP_SLAVE_QDSS_CFG,
0370            SC8280XP_SLAVE_QSPI_0,
0371            SC8280XP_SLAVE_QUP_0,
0372            SC8280XP_SLAVE_QUP_1,
0373            SC8280XP_SLAVE_QUP_2,
0374            SC8280XP_SLAVE_SDCC_2,
0375            SC8280XP_SLAVE_SDCC_4,
0376            SC8280XP_SLAVE_SECURITY,
0377            SC8280XP_SLAVE_SMMUV3_CFG,
0378            SC8280XP_SLAVE_SMSS_CFG,
0379            SC8280XP_SLAVE_SPSS_CFG,
0380            SC8280XP_SLAVE_TCSR,
0381            SC8280XP_SLAVE_TLMM,
0382            SC8280XP_SLAVE_UFS_CARD_CFG,
0383            SC8280XP_SLAVE_UFS_MEM_CFG,
0384            SC8280XP_SLAVE_USB3_0,
0385            SC8280XP_SLAVE_USB3_1,
0386            SC8280XP_SLAVE_USB3_MP,
0387            SC8280XP_SLAVE_USB4_0,
0388            SC8280XP_SLAVE_USB4_1,
0389            SC8280XP_SLAVE_VENUS_CFG,
0390            SC8280XP_SLAVE_VSENSE_CTRL_CFG,
0391            SC8280XP_SLAVE_VSENSE_CTRL_R_CFG,
0392            SC8280XP_SLAVE_A1NOC_CFG,
0393            SC8280XP_SLAVE_A2NOC_CFG,
0394            SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG,
0395            SC8280XP_SLAVE_DDRSS_CFG,
0396            SC8280XP_SLAVE_CNOC_MNOC_CFG,
0397            SC8280XP_SLAVE_SNOC_CFG,
0398            SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG,
0399            SC8280XP_SLAVE_IMEM,
0400            SC8280XP_SLAVE_PIMEM,
0401            SC8280XP_SLAVE_SERVICE_CNOC,
0402            SC8280XP_SLAVE_QDSS_STM,
0403            SC8280XP_SLAVE_SMSS,
0404            SC8280XP_SLAVE_TCU
0405     },
0406 };
0407 
0408 static struct qcom_icc_node qnm_gemnoc_pcie = {
0409     .name = "qnm_gemnoc_pcie",
0410     .id = SC8280XP_MASTER_GEM_NOC_PCIE_SNOC,
0411     .channels = 1,
0412     .buswidth = 16,
0413     .num_links = 7,
0414     .links = { SC8280XP_SLAVE_PCIE_0,
0415            SC8280XP_SLAVE_PCIE_1,
0416            SC8280XP_SLAVE_PCIE_2A,
0417            SC8280XP_SLAVE_PCIE_2B,
0418            SC8280XP_SLAVE_PCIE_3A,
0419            SC8280XP_SLAVE_PCIE_3B,
0420            SC8280XP_SLAVE_PCIE_4
0421     },
0422 };
0423 
0424 static struct qcom_icc_node qnm_cnoc_dc_noc = {
0425     .name = "qnm_cnoc_dc_noc",
0426     .id = SC8280XP_MASTER_CNOC_DC_NOC,
0427     .channels = 1,
0428     .buswidth = 4,
0429     .num_links = 2,
0430     .links = { SC8280XP_SLAVE_LLCC_CFG,
0431            SC8280XP_SLAVE_GEM_NOC_CFG
0432     },
0433 };
0434 
0435 static struct qcom_icc_node alm_gpu_tcu = {
0436     .name = "alm_gpu_tcu",
0437     .id = SC8280XP_MASTER_GPU_TCU,
0438     .channels = 1,
0439     .buswidth = 8,
0440     .num_links = 2,
0441     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0442            SC8280XP_SLAVE_LLCC
0443     },
0444 };
0445 
0446 static struct qcom_icc_node alm_pcie_tcu = {
0447     .name = "alm_pcie_tcu",
0448     .id = SC8280XP_MASTER_PCIE_TCU,
0449     .channels = 1,
0450     .buswidth = 8,
0451     .num_links = 2,
0452     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0453            SC8280XP_SLAVE_LLCC
0454     },
0455 };
0456 
0457 static struct qcom_icc_node alm_sys_tcu = {
0458     .name = "alm_sys_tcu",
0459     .id = SC8280XP_MASTER_SYS_TCU,
0460     .channels = 1,
0461     .buswidth = 8,
0462     .num_links = 2,
0463     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0464            SC8280XP_SLAVE_LLCC
0465     },
0466 };
0467 
0468 static struct qcom_icc_node chm_apps = {
0469     .name = "chm_apps",
0470     .id = SC8280XP_MASTER_APPSS_PROC,
0471     .channels = 2,
0472     .buswidth = 32,
0473     .num_links = 3,
0474     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0475            SC8280XP_SLAVE_LLCC,
0476            SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
0477     },
0478 };
0479 
0480 static struct qcom_icc_node qnm_cmpnoc0 = {
0481     .name = "qnm_cmpnoc0",
0482     .id = SC8280XP_MASTER_COMPUTE_NOC,
0483     .channels = 2,
0484     .buswidth = 32,
0485     .num_links = 2,
0486     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0487            SC8280XP_SLAVE_LLCC
0488     },
0489 };
0490 
0491 static struct qcom_icc_node qnm_cmpnoc1 = {
0492     .name = "qnm_cmpnoc1",
0493     .id = SC8280XP_MASTER_COMPUTE_NOC_1,
0494     .channels = 2,
0495     .buswidth = 32,
0496     .num_links = 2,
0497     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0498            SC8280XP_SLAVE_LLCC
0499     },
0500 };
0501 
0502 static struct qcom_icc_node qnm_gemnoc_cfg = {
0503     .name = "qnm_gemnoc_cfg",
0504     .id = SC8280XP_MASTER_GEM_NOC_CFG,
0505     .channels = 1,
0506     .buswidth = 4,
0507     .num_links = 3,
0508     .links = { SC8280XP_SLAVE_SERVICE_GEM_NOC_1,
0509            SC8280XP_SLAVE_SERVICE_GEM_NOC_2,
0510            SC8280XP_SLAVE_SERVICE_GEM_NOC
0511     },
0512 };
0513 
0514 static struct qcom_icc_node qnm_gpu = {
0515     .name = "qnm_gpu",
0516     .id = SC8280XP_MASTER_GFX3D,
0517     .channels = 4,
0518     .buswidth = 32,
0519     .num_links = 2,
0520     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0521            SC8280XP_SLAVE_LLCC
0522     },
0523 };
0524 
0525 static struct qcom_icc_node qnm_mnoc_hf = {
0526     .name = "qnm_mnoc_hf",
0527     .id = SC8280XP_MASTER_MNOC_HF_MEM_NOC,
0528     .channels = 2,
0529     .buswidth = 32,
0530     .num_links = 2,
0531     .links = { SC8280XP_SLAVE_LLCC,
0532            SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC
0533     },
0534 };
0535 
0536 static struct qcom_icc_node qnm_mnoc_sf = {
0537     .name = "qnm_mnoc_sf",
0538     .id = SC8280XP_MASTER_MNOC_SF_MEM_NOC,
0539     .channels = 2,
0540     .buswidth = 32,
0541     .num_links = 2,
0542     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0543            SC8280XP_SLAVE_LLCC
0544     },
0545 };
0546 
0547 static struct qcom_icc_node qnm_pcie = {
0548     .name = "qnm_pcie",
0549     .id = SC8280XP_MASTER_ANOC_PCIE_GEM_NOC,
0550     .channels = 1,
0551     .buswidth = 32,
0552     .num_links = 2,
0553     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0554            SC8280XP_SLAVE_LLCC
0555     },
0556 };
0557 
0558 static struct qcom_icc_node qnm_snoc_gc = {
0559     .name = "qnm_snoc_gc",
0560     .id = SC8280XP_MASTER_SNOC_GC_MEM_NOC,
0561     .channels = 1,
0562     .buswidth = 8,
0563     .num_links = 1,
0564     .links = { SC8280XP_SLAVE_LLCC },
0565 };
0566 
0567 static struct qcom_icc_node qnm_snoc_sf = {
0568     .name = "qnm_snoc_sf",
0569     .id = SC8280XP_MASTER_SNOC_SF_MEM_NOC,
0570     .channels = 1,
0571     .buswidth = 16,
0572     .num_links = 3,
0573     .links = { SC8280XP_SLAVE_GEM_NOC_CNOC,
0574            SC8280XP_SLAVE_LLCC,
0575            SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC },
0576 };
0577 
0578 static struct qcom_icc_node qhm_config_noc = {
0579     .name = "qhm_config_noc",
0580     .id = SC8280XP_MASTER_CNOC_LPASS_AG_NOC,
0581     .channels = 1,
0582     .buswidth = 4,
0583     .num_links = 6,
0584     .links = { SC8280XP_SLAVE_LPASS_CORE_CFG,
0585            SC8280XP_SLAVE_LPASS_LPI_CFG,
0586            SC8280XP_SLAVE_LPASS_MPU_CFG,
0587            SC8280XP_SLAVE_LPASS_TOP_CFG,
0588            SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC,
0589            SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC
0590     },
0591 };
0592 
0593 static struct qcom_icc_node qxm_lpass_dsp = {
0594     .name = "qxm_lpass_dsp",
0595     .id = SC8280XP_MASTER_LPASS_PROC,
0596     .channels = 1,
0597     .buswidth = 8,
0598     .num_links = 4,
0599     .links = { SC8280XP_SLAVE_LPASS_TOP_CFG,
0600            SC8280XP_SLAVE_LPASS_SNOC,
0601            SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC,
0602            SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC
0603     },
0604 };
0605 
0606 static struct qcom_icc_node llcc_mc = {
0607     .name = "llcc_mc",
0608     .id = SC8280XP_MASTER_LLCC,
0609     .channels = 8,
0610     .buswidth = 4,
0611     .num_links = 1,
0612     .links = { SC8280XP_SLAVE_EBI1 },
0613 };
0614 
0615 static struct qcom_icc_node qnm_camnoc_hf = {
0616     .name = "qnm_camnoc_hf",
0617     .id = SC8280XP_MASTER_CAMNOC_HF,
0618     .channels = 2,
0619     .buswidth = 32,
0620     .num_links = 1,
0621     .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC },
0622 };
0623 
0624 static struct qcom_icc_node qnm_mdp0_0 = {
0625     .name = "qnm_mdp0_0",
0626     .id = SC8280XP_MASTER_MDP0,
0627     .channels = 1,
0628     .buswidth = 32,
0629     .num_links = 1,
0630     .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC },
0631 };
0632 
0633 static struct qcom_icc_node qnm_mdp0_1 = {
0634     .name = "qnm_mdp0_1",
0635     .id = SC8280XP_MASTER_MDP1,
0636     .channels = 1,
0637     .buswidth = 32,
0638     .num_links = 1,
0639     .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC },
0640 };
0641 
0642 static struct qcom_icc_node qnm_mdp1_0 = {
0643     .name = "qnm_mdp1_0",
0644     .id = SC8280XP_MASTER_MDP_CORE1_0,
0645     .channels = 1,
0646     .buswidth = 32,
0647     .num_links = 1,
0648     .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC },
0649 };
0650 
0651 static struct qcom_icc_node qnm_mdp1_1 = {
0652     .name = "qnm_mdp1_1",
0653     .id = SC8280XP_MASTER_MDP_CORE1_1,
0654     .channels = 1,
0655     .buswidth = 32,
0656     .num_links = 1,
0657     .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC },
0658 };
0659 
0660 static struct qcom_icc_node qnm_mnoc_cfg = {
0661     .name = "qnm_mnoc_cfg",
0662     .id = SC8280XP_MASTER_CNOC_MNOC_CFG,
0663     .channels = 1,
0664     .buswidth = 4,
0665     .num_links = 1,
0666     .links = { SC8280XP_SLAVE_SERVICE_MNOC },
0667 };
0668 
0669 static struct qcom_icc_node qnm_rot_0 = {
0670     .name = "qnm_rot_0",
0671     .id = SC8280XP_MASTER_ROTATOR,
0672     .channels = 1,
0673     .buswidth = 32,
0674     .num_links = 1,
0675     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0676 };
0677 
0678 static struct qcom_icc_node qnm_rot_1 = {
0679     .name = "qnm_rot_1",
0680     .id = SC8280XP_MASTER_ROTATOR_1,
0681     .channels = 1,
0682     .buswidth = 32,
0683     .num_links = 1,
0684     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0685 };
0686 
0687 static struct qcom_icc_node qnm_video0 = {
0688     .name = "qnm_video0",
0689     .id = SC8280XP_MASTER_VIDEO_P0,
0690     .channels = 1,
0691     .buswidth = 32,
0692     .num_links = 1,
0693     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0694 };
0695 
0696 static struct qcom_icc_node qnm_video1 = {
0697     .name = "qnm_video1",
0698     .id = SC8280XP_MASTER_VIDEO_P1,
0699     .channels = 1,
0700     .buswidth = 32,
0701     .num_links = 1,
0702     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0703 };
0704 
0705 static struct qcom_icc_node qnm_video_cvp = {
0706     .name = "qnm_video_cvp",
0707     .id = SC8280XP_MASTER_VIDEO_PROC,
0708     .channels = 1,
0709     .buswidth = 32,
0710     .num_links = 1,
0711     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0712 };
0713 
0714 static struct qcom_icc_node qxm_camnoc_icp = {
0715     .name = "qxm_camnoc_icp",
0716     .id = SC8280XP_MASTER_CAMNOC_ICP,
0717     .channels = 1,
0718     .buswidth = 8,
0719     .num_links = 1,
0720     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0721 };
0722 
0723 static struct qcom_icc_node qxm_camnoc_sf = {
0724     .name = "qxm_camnoc_sf",
0725     .id = SC8280XP_MASTER_CAMNOC_SF,
0726     .channels = 1,
0727     .buswidth = 32,
0728     .num_links = 1,
0729     .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC },
0730 };
0731 
0732 static struct qcom_icc_node qhm_nsp_noc_config = {
0733     .name = "qhm_nsp_noc_config",
0734     .id = SC8280XP_MASTER_CDSP_NOC_CFG,
0735     .channels = 1,
0736     .buswidth = 4,
0737     .num_links = 1,
0738     .links = { SC8280XP_SLAVE_SERVICE_NSP_NOC },
0739 };
0740 
0741 static struct qcom_icc_node qxm_nsp = {
0742     .name = "qxm_nsp",
0743     .id = SC8280XP_MASTER_CDSP_PROC,
0744     .channels = 2,
0745     .buswidth = 32,
0746     .num_links = 2,
0747     .links = { SC8280XP_SLAVE_CDSP_MEM_NOC,
0748            SC8280XP_SLAVE_NSP_XFR
0749     },
0750 };
0751 
0752 static struct qcom_icc_node qhm_nspb_noc_config = {
0753     .name = "qhm_nspb_noc_config",
0754     .id = SC8280XP_MASTER_CDSPB_NOC_CFG,
0755     .channels = 1,
0756     .buswidth = 4,
0757     .num_links = 1,
0758     .links = { SC8280XP_SLAVE_SERVICE_NSPB_NOC },
0759 };
0760 
0761 static struct qcom_icc_node qxm_nspb = {
0762     .name = "qxm_nspb",
0763     .id = SC8280XP_MASTER_CDSP_PROC_B,
0764     .channels = 2,
0765     .buswidth = 32,
0766     .num_links = 2,
0767     .links = { SC8280XP_SLAVE_CDSPB_MEM_NOC,
0768            SC8280XP_SLAVE_NSPB_XFR
0769     },
0770 };
0771 
0772 static struct qcom_icc_node qnm_aggre1_noc = {
0773     .name = "qnm_aggre1_noc",
0774     .id = SC8280XP_MASTER_A1NOC_SNOC,
0775     .channels = 1,
0776     .buswidth = 16,
0777     .num_links = 1,
0778     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF },
0779 };
0780 
0781 static struct qcom_icc_node qnm_aggre2_noc = {
0782     .name = "qnm_aggre2_noc",
0783     .id = SC8280XP_MASTER_A2NOC_SNOC,
0784     .channels = 1,
0785     .buswidth = 16,
0786     .num_links = 1,
0787     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF },
0788 };
0789 
0790 static struct qcom_icc_node qnm_aggre_usb_noc = {
0791     .name = "qnm_aggre_usb_noc",
0792     .id = SC8280XP_MASTER_USB_NOC_SNOC,
0793     .channels = 1,
0794     .buswidth = 16,
0795     .num_links = 1,
0796     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF },
0797 };
0798 
0799 static struct qcom_icc_node qnm_lpass_noc = {
0800     .name = "qnm_lpass_noc",
0801     .id = SC8280XP_MASTER_LPASS_ANOC,
0802     .channels = 1,
0803     .buswidth = 16,
0804     .num_links = 1,
0805     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF },
0806 };
0807 
0808 static struct qcom_icc_node qnm_snoc_cfg = {
0809     .name = "qnm_snoc_cfg",
0810     .id = SC8280XP_MASTER_SNOC_CFG,
0811     .channels = 1,
0812     .buswidth = 4,
0813     .num_links = 1,
0814     .links = { SC8280XP_SLAVE_SERVICE_SNOC },
0815 };
0816 
0817 static struct qcom_icc_node qxm_pimem = {
0818     .name = "qxm_pimem",
0819     .id = SC8280XP_MASTER_PIMEM,
0820     .channels = 1,
0821     .buswidth = 8,
0822     .num_links = 1,
0823     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_GC },
0824 };
0825 
0826 static struct qcom_icc_node xm_gic = {
0827     .name = "xm_gic",
0828     .id = SC8280XP_MASTER_GIC,
0829     .channels = 1,
0830     .buswidth = 8,
0831     .num_links = 1,
0832     .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_GC },
0833 };
0834 
0835 static struct qcom_icc_node qns_a1noc_snoc = {
0836     .name = "qns_a1noc_snoc",
0837     .id = SC8280XP_SLAVE_A1NOC_SNOC,
0838     .channels = 1,
0839     .buswidth = 16,
0840     .num_links = 1,
0841     .links = { SC8280XP_MASTER_A1NOC_SNOC },
0842 };
0843 
0844 static struct qcom_icc_node qns_aggre_usb_snoc = {
0845     .name = "qns_aggre_usb_snoc",
0846     .id = SC8280XP_SLAVE_USB_NOC_SNOC,
0847     .channels = 1,
0848     .buswidth = 16,
0849     .num_links = 1,
0850     .links = { SC8280XP_MASTER_USB_NOC_SNOC },
0851 };
0852 
0853 static struct qcom_icc_node srvc_aggre1_noc = {
0854     .name = "srvc_aggre1_noc",
0855     .id = SC8280XP_SLAVE_SERVICE_A1NOC,
0856     .channels = 1,
0857     .buswidth = 4,
0858 };
0859 
0860 static struct qcom_icc_node qns_a2noc_snoc = {
0861     .name = "qns_a2noc_snoc",
0862     .id = SC8280XP_SLAVE_A2NOC_SNOC,
0863     .channels = 1,
0864     .buswidth = 16,
0865     .num_links = 1,
0866     .links = { SC8280XP_MASTER_A2NOC_SNOC },
0867 };
0868 
0869 static struct qcom_icc_node qns_pcie_gem_noc = {
0870     .name = "qns_pcie_gem_noc",
0871     .id = SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC,
0872     .channels = 1,
0873     .buswidth = 32,
0874     .num_links = 1,
0875     .links = { SC8280XP_MASTER_ANOC_PCIE_GEM_NOC },
0876 };
0877 
0878 static struct qcom_icc_node srvc_aggre2_noc = {
0879     .name = "srvc_aggre2_noc",
0880     .id = SC8280XP_SLAVE_SERVICE_A2NOC,
0881     .channels = 1,
0882     .buswidth = 4,
0883 };
0884 
0885 static struct qcom_icc_node ipa_core_slave = {
0886     .name = "ipa_core_slave",
0887     .id = SC8280XP_SLAVE_IPA_CORE,
0888     .channels = 1,
0889     .buswidth = 8,
0890 };
0891 
0892 static struct qcom_icc_node qup0_core_slave = {
0893     .name = "qup0_core_slave",
0894     .id = SC8280XP_SLAVE_QUP_CORE_0,
0895     .channels = 1,
0896     .buswidth = 4,
0897 };
0898 
0899 static struct qcom_icc_node qup1_core_slave = {
0900     .name = "qup1_core_slave",
0901     .id = SC8280XP_SLAVE_QUP_CORE_1,
0902     .channels = 1,
0903     .buswidth = 4,
0904 };
0905 
0906 static struct qcom_icc_node qup2_core_slave = {
0907     .name = "qup2_core_slave",
0908     .id = SC8280XP_SLAVE_QUP_CORE_2,
0909     .channels = 1,
0910     .buswidth = 4,
0911 };
0912 
0913 static struct qcom_icc_node qhs_ahb2phy0 = {
0914     .name = "qhs_ahb2phy0",
0915     .id = SC8280XP_SLAVE_AHB2PHY_0,
0916     .channels = 1,
0917     .buswidth = 4,
0918 };
0919 
0920 static struct qcom_icc_node qhs_ahb2phy1 = {
0921     .name = "qhs_ahb2phy1",
0922     .id = SC8280XP_SLAVE_AHB2PHY_1,
0923     .channels = 1,
0924     .buswidth = 4,
0925 };
0926 
0927 static struct qcom_icc_node qhs_ahb2phy2 = {
0928     .name = "qhs_ahb2phy2",
0929     .id = SC8280XP_SLAVE_AHB2PHY_2,
0930     .channels = 1,
0931     .buswidth = 4,
0932 };
0933 
0934 static struct qcom_icc_node qhs_aoss = {
0935     .name = "qhs_aoss",
0936     .id = SC8280XP_SLAVE_AOSS,
0937     .channels = 1,
0938     .buswidth = 4,
0939 };
0940 
0941 static struct qcom_icc_node qhs_apss = {
0942     .name = "qhs_apss",
0943     .id = SC8280XP_SLAVE_APPSS,
0944     .channels = 1,
0945     .buswidth = 8,
0946 };
0947 
0948 static struct qcom_icc_node qhs_camera_cfg = {
0949     .name = "qhs_camera_cfg",
0950     .id = SC8280XP_SLAVE_CAMERA_CFG,
0951     .channels = 1,
0952     .buswidth = 4,
0953 };
0954 
0955 static struct qcom_icc_node qhs_clk_ctl = {
0956     .name = "qhs_clk_ctl",
0957     .id = SC8280XP_SLAVE_CLK_CTL,
0958     .channels = 1,
0959     .buswidth = 4,
0960 };
0961 
0962 static struct qcom_icc_node qhs_compute0_cfg = {
0963     .name = "qhs_compute0_cfg",
0964     .id = SC8280XP_SLAVE_CDSP_CFG,
0965     .channels = 1,
0966     .buswidth = 4,
0967     .num_links = 1,
0968     .links = { SC8280XP_MASTER_CDSP_NOC_CFG },
0969 };
0970 
0971 static struct qcom_icc_node qhs_compute1_cfg = {
0972     .name = "qhs_compute1_cfg",
0973     .id = SC8280XP_SLAVE_CDSP1_CFG,
0974     .channels = 1,
0975     .buswidth = 4,
0976     .num_links = 1,
0977     .links = { SC8280XP_MASTER_CDSPB_NOC_CFG },
0978 };
0979 
0980 static struct qcom_icc_node qhs_cpr_cx = {
0981     .name = "qhs_cpr_cx",
0982     .id = SC8280XP_SLAVE_RBCPR_CX_CFG,
0983     .channels = 1,
0984     .buswidth = 4,
0985 };
0986 
0987 static struct qcom_icc_node qhs_cpr_mmcx = {
0988     .name = "qhs_cpr_mmcx",
0989     .id = SC8280XP_SLAVE_RBCPR_MMCX_CFG,
0990     .channels = 1,
0991     .buswidth = 4,
0992 };
0993 
0994 static struct qcom_icc_node qhs_cpr_mx = {
0995     .name = "qhs_cpr_mx",
0996     .id = SC8280XP_SLAVE_RBCPR_MX_CFG,
0997     .channels = 1,
0998     .buswidth = 4,
0999 };
1000 
1001 static struct qcom_icc_node qhs_cpr_nspcx = {
1002     .name = "qhs_cpr_nspcx",
1003     .id = SC8280XP_SLAVE_CPR_NSPCX,
1004     .channels = 1,
1005     .buswidth = 4,
1006 };
1007 
1008 static struct qcom_icc_node qhs_crypto0_cfg = {
1009     .name = "qhs_crypto0_cfg",
1010     .id = SC8280XP_SLAVE_CRYPTO_0_CFG,
1011     .channels = 1,
1012     .buswidth = 4,
1013 };
1014 
1015 static struct qcom_icc_node qhs_cx_rdpm = {
1016     .name = "qhs_cx_rdpm",
1017     .id = SC8280XP_SLAVE_CX_RDPM,
1018     .channels = 1,
1019     .buswidth = 4,
1020 };
1021 
1022 static struct qcom_icc_node qhs_dcc_cfg = {
1023     .name = "qhs_dcc_cfg",
1024     .id = SC8280XP_SLAVE_DCC_CFG,
1025     .channels = 1,
1026     .buswidth = 4,
1027 };
1028 
1029 static struct qcom_icc_node qhs_display0_cfg = {
1030     .name = "qhs_display0_cfg",
1031     .id = SC8280XP_SLAVE_DISPLAY_CFG,
1032     .channels = 1,
1033     .buswidth = 4,
1034 };
1035 
1036 static struct qcom_icc_node qhs_display1_cfg = {
1037     .name = "qhs_display1_cfg",
1038     .id = SC8280XP_SLAVE_DISPLAY1_CFG,
1039     .channels = 1,
1040     .buswidth = 4,
1041 };
1042 
1043 static struct qcom_icc_node qhs_emac0_cfg = {
1044     .name = "qhs_emac0_cfg",
1045     .id = SC8280XP_SLAVE_EMAC_CFG,
1046     .channels = 1,
1047     .buswidth = 4,
1048 };
1049 
1050 static struct qcom_icc_node qhs_emac1_cfg = {
1051     .name = "qhs_emac1_cfg",
1052     .id = SC8280XP_SLAVE_EMAC1_CFG,
1053     .channels = 1,
1054     .buswidth = 4,
1055 };
1056 
1057 static struct qcom_icc_node qhs_gpuss_cfg = {
1058     .name = "qhs_gpuss_cfg",
1059     .id = SC8280XP_SLAVE_GFX3D_CFG,
1060     .channels = 1,
1061     .buswidth = 8,
1062 };
1063 
1064 static struct qcom_icc_node qhs_hwkm = {
1065     .name = "qhs_hwkm",
1066     .id = SC8280XP_SLAVE_HWKM,
1067     .channels = 1,
1068     .buswidth = 4,
1069 };
1070 
1071 static struct qcom_icc_node qhs_imem_cfg = {
1072     .name = "qhs_imem_cfg",
1073     .id = SC8280XP_SLAVE_IMEM_CFG,
1074     .channels = 1,
1075     .buswidth = 4,
1076 };
1077 
1078 static struct qcom_icc_node qhs_ipa = {
1079     .name = "qhs_ipa",
1080     .id = SC8280XP_SLAVE_IPA_CFG,
1081     .channels = 1,
1082     .buswidth = 4,
1083 };
1084 
1085 static struct qcom_icc_node qhs_ipc_router = {
1086     .name = "qhs_ipc_router",
1087     .id = SC8280XP_SLAVE_IPC_ROUTER_CFG,
1088     .channels = 1,
1089     .buswidth = 4,
1090 };
1091 
1092 static struct qcom_icc_node qhs_lpass_cfg = {
1093     .name = "qhs_lpass_cfg",
1094     .id = SC8280XP_SLAVE_LPASS,
1095     .channels = 1,
1096     .buswidth = 4,
1097     .num_links = 1,
1098     .links = { SC8280XP_MASTER_CNOC_LPASS_AG_NOC },
1099 };
1100 
1101 static struct qcom_icc_node qhs_mx_rdpm = {
1102     .name = "qhs_mx_rdpm",
1103     .id = SC8280XP_SLAVE_MX_RDPM,
1104     .channels = 1,
1105     .buswidth = 4,
1106 };
1107 
1108 static struct qcom_icc_node qhs_mxc_rdpm = {
1109     .name = "qhs_mxc_rdpm",
1110     .id = SC8280XP_SLAVE_MXC_RDPM,
1111     .channels = 1,
1112     .buswidth = 4,
1113 };
1114 
1115 static struct qcom_icc_node qhs_pcie0_cfg = {
1116     .name = "qhs_pcie0_cfg",
1117     .id = SC8280XP_SLAVE_PCIE_0_CFG,
1118     .channels = 1,
1119     .buswidth = 4,
1120 };
1121 
1122 static struct qcom_icc_node qhs_pcie1_cfg = {
1123     .name = "qhs_pcie1_cfg",
1124     .id = SC8280XP_SLAVE_PCIE_1_CFG,
1125     .channels = 1,
1126     .buswidth = 4,
1127 };
1128 
1129 static struct qcom_icc_node qhs_pcie2a_cfg = {
1130     .name = "qhs_pcie2a_cfg",
1131     .id = SC8280XP_SLAVE_PCIE_2A_CFG,
1132     .channels = 1,
1133     .buswidth = 4,
1134 };
1135 
1136 static struct qcom_icc_node qhs_pcie2b_cfg = {
1137     .name = "qhs_pcie2b_cfg",
1138     .id = SC8280XP_SLAVE_PCIE_2B_CFG,
1139     .channels = 1,
1140     .buswidth = 4,
1141 };
1142 
1143 static struct qcom_icc_node qhs_pcie3a_cfg = {
1144     .name = "qhs_pcie3a_cfg",
1145     .id = SC8280XP_SLAVE_PCIE_3A_CFG,
1146     .channels = 1,
1147     .buswidth = 4,
1148 };
1149 
1150 static struct qcom_icc_node qhs_pcie3b_cfg = {
1151     .name = "qhs_pcie3b_cfg",
1152     .id = SC8280XP_SLAVE_PCIE_3B_CFG,
1153     .channels = 1,
1154     .buswidth = 4,
1155 };
1156 
1157 static struct qcom_icc_node qhs_pcie4_cfg = {
1158     .name = "qhs_pcie4_cfg",
1159     .id = SC8280XP_SLAVE_PCIE_4_CFG,
1160     .channels = 1,
1161     .buswidth = 4,
1162 };
1163 
1164 static struct qcom_icc_node qhs_pcie_rsc_cfg = {
1165     .name = "qhs_pcie_rsc_cfg",
1166     .id = SC8280XP_SLAVE_PCIE_RSC_CFG,
1167     .channels = 1,
1168     .buswidth = 4,
1169 };
1170 
1171 static struct qcom_icc_node qhs_pdm = {
1172     .name = "qhs_pdm",
1173     .id = SC8280XP_SLAVE_PDM,
1174     .channels = 1,
1175     .buswidth = 4,
1176 };
1177 
1178 static struct qcom_icc_node qhs_pimem_cfg = {
1179     .name = "qhs_pimem_cfg",
1180     .id = SC8280XP_SLAVE_PIMEM_CFG,
1181     .channels = 1,
1182     .buswidth = 4,
1183 };
1184 
1185 static struct qcom_icc_node qhs_pka_wrapper_cfg = {
1186     .name = "qhs_pka_wrapper_cfg",
1187     .id = SC8280XP_SLAVE_PKA_WRAPPER_CFG,
1188     .channels = 1,
1189     .buswidth = 4,
1190 };
1191 
1192 static struct qcom_icc_node qhs_pmu_wrapper_cfg = {
1193     .name = "qhs_pmu_wrapper_cfg",
1194     .id = SC8280XP_SLAVE_PMU_WRAPPER_CFG,
1195     .channels = 1,
1196     .buswidth = 4,
1197 };
1198 
1199 static struct qcom_icc_node qhs_qdss_cfg = {
1200     .name = "qhs_qdss_cfg",
1201     .id = SC8280XP_SLAVE_QDSS_CFG,
1202     .channels = 1,
1203     .buswidth = 4,
1204 };
1205 
1206 static struct qcom_icc_node qhs_qspi = {
1207     .name = "qhs_qspi",
1208     .id = SC8280XP_SLAVE_QSPI_0,
1209     .channels = 1,
1210     .buswidth = 4,
1211 };
1212 
1213 static struct qcom_icc_node qhs_qup0 = {
1214     .name = "qhs_qup0",
1215     .id = SC8280XP_SLAVE_QUP_0,
1216     .channels = 1,
1217     .buswidth = 4,
1218 };
1219 
1220 static struct qcom_icc_node qhs_qup1 = {
1221     .name = "qhs_qup1",
1222     .id = SC8280XP_SLAVE_QUP_1,
1223     .channels = 1,
1224     .buswidth = 4,
1225 };
1226 
1227 static struct qcom_icc_node qhs_qup2 = {
1228     .name = "qhs_qup2",
1229     .id = SC8280XP_SLAVE_QUP_2,
1230     .channels = 1,
1231     .buswidth = 4,
1232 };
1233 
1234 static struct qcom_icc_node qhs_sdc2 = {
1235     .name = "qhs_sdc2",
1236     .id = SC8280XP_SLAVE_SDCC_2,
1237     .channels = 1,
1238     .buswidth = 4,
1239 };
1240 
1241 static struct qcom_icc_node qhs_sdc4 = {
1242     .name = "qhs_sdc4",
1243     .id = SC8280XP_SLAVE_SDCC_4,
1244     .channels = 1,
1245     .buswidth = 4,
1246 };
1247 
1248 static struct qcom_icc_node qhs_security = {
1249     .name = "qhs_security",
1250     .id = SC8280XP_SLAVE_SECURITY,
1251     .channels = 1,
1252     .buswidth = 4,
1253 };
1254 
1255 static struct qcom_icc_node qhs_smmuv3_cfg = {
1256     .name = "qhs_smmuv3_cfg",
1257     .id = SC8280XP_SLAVE_SMMUV3_CFG,
1258     .channels = 1,
1259     .buswidth = 8,
1260 };
1261 
1262 static struct qcom_icc_node qhs_smss_cfg = {
1263     .name = "qhs_smss_cfg",
1264     .id = SC8280XP_SLAVE_SMSS_CFG,
1265     .channels = 1,
1266     .buswidth = 4,
1267 };
1268 
1269 static struct qcom_icc_node qhs_spss_cfg = {
1270     .name = "qhs_spss_cfg",
1271     .id = SC8280XP_SLAVE_SPSS_CFG,
1272     .channels = 1,
1273     .buswidth = 4,
1274 };
1275 
1276 static struct qcom_icc_node qhs_tcsr = {
1277     .name = "qhs_tcsr",
1278     .id = SC8280XP_SLAVE_TCSR,
1279     .channels = 1,
1280     .buswidth = 4,
1281 };
1282 
1283 static struct qcom_icc_node qhs_tlmm = {
1284     .name = "qhs_tlmm",
1285     .id = SC8280XP_SLAVE_TLMM,
1286     .channels = 1,
1287     .buswidth = 4,
1288 };
1289 
1290 static struct qcom_icc_node qhs_ufs_card_cfg = {
1291     .name = "qhs_ufs_card_cfg",
1292     .id = SC8280XP_SLAVE_UFS_CARD_CFG,
1293     .channels = 1,
1294     .buswidth = 4,
1295 };
1296 
1297 static struct qcom_icc_node qhs_ufs_mem_cfg = {
1298     .name = "qhs_ufs_mem_cfg",
1299     .id = SC8280XP_SLAVE_UFS_MEM_CFG,
1300     .channels = 1,
1301     .buswidth = 4,
1302 };
1303 
1304 static struct qcom_icc_node qhs_usb3_0 = {
1305     .name = "qhs_usb3_0",
1306     .id = SC8280XP_SLAVE_USB3_0,
1307     .channels = 1,
1308     .buswidth = 4,
1309 };
1310 
1311 static struct qcom_icc_node qhs_usb3_1 = {
1312     .name = "qhs_usb3_1",
1313     .id = SC8280XP_SLAVE_USB3_1,
1314     .channels = 1,
1315     .buswidth = 4,
1316 };
1317 
1318 static struct qcom_icc_node qhs_usb3_mp = {
1319     .name = "qhs_usb3_mp",
1320     .id = SC8280XP_SLAVE_USB3_MP,
1321     .channels = 1,
1322     .buswidth = 4,
1323 };
1324 
1325 static struct qcom_icc_node qhs_usb4_host_0 = {
1326     .name = "qhs_usb4_host_0",
1327     .id = SC8280XP_SLAVE_USB4_0,
1328     .channels = 1,
1329     .buswidth = 4,
1330 };
1331 
1332 static struct qcom_icc_node qhs_usb4_host_1 = {
1333     .name = "qhs_usb4_host_1",
1334     .id = SC8280XP_SLAVE_USB4_1,
1335     .channels = 1,
1336     .buswidth = 4,
1337 };
1338 
1339 static struct qcom_icc_node qhs_venus_cfg = {
1340     .name = "qhs_venus_cfg",
1341     .id = SC8280XP_SLAVE_VENUS_CFG,
1342     .channels = 1,
1343     .buswidth = 4,
1344 };
1345 
1346 static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
1347     .name = "qhs_vsense_ctrl_cfg",
1348     .id = SC8280XP_SLAVE_VSENSE_CTRL_CFG,
1349     .channels = 1,
1350     .buswidth = 4,
1351 };
1352 
1353 static struct qcom_icc_node qhs_vsense_ctrl_r_cfg = {
1354     .name = "qhs_vsense_ctrl_r_cfg",
1355     .id = SC8280XP_SLAVE_VSENSE_CTRL_R_CFG,
1356     .channels = 1,
1357     .buswidth = 4,
1358 };
1359 
1360 static struct qcom_icc_node qns_a1_noc_cfg = {
1361     .name = "qns_a1_noc_cfg",
1362     .id = SC8280XP_SLAVE_A1NOC_CFG,
1363     .channels = 1,
1364     .buswidth = 4,
1365     .num_links = 1,
1366     .links = { SC8280XP_MASTER_A1NOC_CFG },
1367 };
1368 
1369 static struct qcom_icc_node qns_a2_noc_cfg = {
1370     .name = "qns_a2_noc_cfg",
1371     .id = SC8280XP_SLAVE_A2NOC_CFG,
1372     .channels = 1,
1373     .buswidth = 4,
1374     .num_links = 1,
1375     .links = { SC8280XP_MASTER_A2NOC_CFG },
1376 };
1377 
1378 static struct qcom_icc_node qns_anoc_pcie_bridge_cfg = {
1379     .name = "qns_anoc_pcie_bridge_cfg",
1380     .id = SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG,
1381     .channels = 1,
1382     .buswidth = 4,
1383 };
1384 
1385 static struct qcom_icc_node qns_ddrss_cfg = {
1386     .name = "qns_ddrss_cfg",
1387     .id = SC8280XP_SLAVE_DDRSS_CFG,
1388     .channels = 1,
1389     .buswidth = 4,
1390     .num_links = 1,
1391     .links = { SC8280XP_MASTER_CNOC_DC_NOC },
1392 };
1393 
1394 static struct qcom_icc_node qns_mnoc_cfg = {
1395     .name = "qns_mnoc_cfg",
1396     .id = SC8280XP_SLAVE_CNOC_MNOC_CFG,
1397     .channels = 1,
1398     .buswidth = 4,
1399     .num_links = 1,
1400     .links = { SC8280XP_MASTER_CNOC_MNOC_CFG },
1401 };
1402 
1403 static struct qcom_icc_node qns_snoc_cfg = {
1404     .name = "qns_snoc_cfg",
1405     .id = SC8280XP_SLAVE_SNOC_CFG,
1406     .channels = 1,
1407     .buswidth = 4,
1408     .num_links = 1,
1409     .links = { SC8280XP_MASTER_SNOC_CFG },
1410 };
1411 
1412 static struct qcom_icc_node qns_snoc_sf_bridge_cfg = {
1413     .name = "qns_snoc_sf_bridge_cfg",
1414     .id = SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG,
1415     .channels = 1,
1416     .buswidth = 4,
1417 };
1418 
1419 static struct qcom_icc_node qxs_imem = {
1420     .name = "qxs_imem",
1421     .id = SC8280XP_SLAVE_IMEM,
1422     .channels = 1,
1423     .buswidth = 8,
1424 };
1425 
1426 static struct qcom_icc_node qxs_pimem = {
1427     .name = "qxs_pimem",
1428     .id = SC8280XP_SLAVE_PIMEM,
1429     .channels = 1,
1430     .buswidth = 8,
1431 };
1432 
1433 static struct qcom_icc_node srvc_cnoc = {
1434     .name = "srvc_cnoc",
1435     .id = SC8280XP_SLAVE_SERVICE_CNOC,
1436     .channels = 1,
1437     .buswidth = 4,
1438 };
1439 
1440 static struct qcom_icc_node xs_pcie_0 = {
1441     .name = "xs_pcie_0",
1442     .id = SC8280XP_SLAVE_PCIE_0,
1443     .channels = 1,
1444     .buswidth = 16,
1445 };
1446 
1447 static struct qcom_icc_node xs_pcie_1 = {
1448     .name = "xs_pcie_1",
1449     .id = SC8280XP_SLAVE_PCIE_1,
1450     .channels = 1,
1451     .buswidth = 16,
1452 };
1453 
1454 static struct qcom_icc_node xs_pcie_2a = {
1455     .name = "xs_pcie_2a",
1456     .id = SC8280XP_SLAVE_PCIE_2A,
1457     .channels = 1,
1458     .buswidth = 16,
1459 };
1460 
1461 static struct qcom_icc_node xs_pcie_2b = {
1462     .name = "xs_pcie_2b",
1463     .id = SC8280XP_SLAVE_PCIE_2B,
1464     .channels = 1,
1465     .buswidth = 8,
1466 };
1467 
1468 static struct qcom_icc_node xs_pcie_3a = {
1469     .name = "xs_pcie_3a",
1470     .id = SC8280XP_SLAVE_PCIE_3A,
1471     .channels = 1,
1472     .buswidth = 16,
1473 };
1474 
1475 static struct qcom_icc_node xs_pcie_3b = {
1476     .name = "xs_pcie_3b",
1477     .id = SC8280XP_SLAVE_PCIE_3B,
1478     .channels = 1,
1479     .buswidth = 8,
1480 };
1481 
1482 static struct qcom_icc_node xs_pcie_4 = {
1483     .name = "xs_pcie_4",
1484     .id = SC8280XP_SLAVE_PCIE_4,
1485     .channels = 1,
1486     .buswidth = 8,
1487 };
1488 
1489 static struct qcom_icc_node xs_qdss_stm = {
1490     .name = "xs_qdss_stm",
1491     .id = SC8280XP_SLAVE_QDSS_STM,
1492     .channels = 1,
1493     .buswidth = 4,
1494 };
1495 
1496 static struct qcom_icc_node xs_smss = {
1497     .name = "xs_smss",
1498     .id = SC8280XP_SLAVE_SMSS,
1499     .channels = 1,
1500     .buswidth = 8,
1501 };
1502 
1503 static struct qcom_icc_node xs_sys_tcu_cfg = {
1504     .name = "xs_sys_tcu_cfg",
1505     .id = SC8280XP_SLAVE_TCU,
1506     .channels = 1,
1507     .buswidth = 8,
1508 };
1509 
1510 static struct qcom_icc_node qhs_llcc = {
1511     .name = "qhs_llcc",
1512     .id = SC8280XP_SLAVE_LLCC_CFG,
1513     .channels = 1,
1514     .buswidth = 4,
1515 };
1516 
1517 static struct qcom_icc_node qns_gemnoc = {
1518     .name = "qns_gemnoc",
1519     .id = SC8280XP_SLAVE_GEM_NOC_CFG,
1520     .channels = 1,
1521     .buswidth = 4,
1522     .num_links = 1,
1523     .links = { SC8280XP_MASTER_GEM_NOC_CFG },
1524 };
1525 
1526 static struct qcom_icc_node qns_gem_noc_cnoc = {
1527     .name = "qns_gem_noc_cnoc",
1528     .id = SC8280XP_SLAVE_GEM_NOC_CNOC,
1529     .channels = 1,
1530     .buswidth = 16,
1531     .num_links = 1,
1532     .links = { SC8280XP_MASTER_GEM_NOC_CNOC },
1533 };
1534 
1535 static struct qcom_icc_node qns_llcc = {
1536     .name = "qns_llcc",
1537     .id = SC8280XP_SLAVE_LLCC,
1538     .channels = 8,
1539     .buswidth = 16,
1540     .num_links = 1,
1541     .links = { SC8280XP_MASTER_LLCC },
1542 };
1543 
1544 static struct qcom_icc_node qns_pcie = {
1545     .name = "qns_pcie",
1546     .id = SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC,
1547     .channels = 1,
1548     .buswidth = 16,
1549     .num_links = 1,
1550     .links = { SC8280XP_MASTER_GEM_NOC_PCIE_SNOC },
1551 };
1552 
1553 static struct qcom_icc_node srvc_even_gemnoc = {
1554     .name = "srvc_even_gemnoc",
1555     .id = SC8280XP_SLAVE_SERVICE_GEM_NOC_1,
1556     .channels = 1,
1557     .buswidth = 4,
1558 };
1559 
1560 static struct qcom_icc_node srvc_odd_gemnoc = {
1561     .name = "srvc_odd_gemnoc",
1562     .id = SC8280XP_SLAVE_SERVICE_GEM_NOC_2,
1563     .channels = 1,
1564     .buswidth = 4,
1565 };
1566 
1567 static struct qcom_icc_node srvc_sys_gemnoc = {
1568     .name = "srvc_sys_gemnoc",
1569     .id = SC8280XP_SLAVE_SERVICE_GEM_NOC,
1570     .channels = 1,
1571     .buswidth = 4,
1572 };
1573 
1574 static struct qcom_icc_node qhs_lpass_core = {
1575     .name = "qhs_lpass_core",
1576     .id = SC8280XP_SLAVE_LPASS_CORE_CFG,
1577     .channels = 1,
1578     .buswidth = 4,
1579 };
1580 
1581 static struct qcom_icc_node qhs_lpass_lpi = {
1582     .name = "qhs_lpass_lpi",
1583     .id = SC8280XP_SLAVE_LPASS_LPI_CFG,
1584     .channels = 1,
1585     .buswidth = 4,
1586 };
1587 
1588 static struct qcom_icc_node qhs_lpass_mpu = {
1589     .name = "qhs_lpass_mpu",
1590     .id = SC8280XP_SLAVE_LPASS_MPU_CFG,
1591     .channels = 1,
1592     .buswidth = 4,
1593 };
1594 
1595 static struct qcom_icc_node qhs_lpass_top = {
1596     .name = "qhs_lpass_top",
1597     .id = SC8280XP_SLAVE_LPASS_TOP_CFG,
1598     .channels = 1,
1599     .buswidth = 4,
1600 };
1601 
1602 static struct qcom_icc_node qns_sysnoc = {
1603     .name = "qns_sysnoc",
1604     .id = SC8280XP_SLAVE_LPASS_SNOC,
1605     .channels = 1,
1606     .buswidth = 16,
1607     .num_links = 1,
1608     .links = { SC8280XP_MASTER_LPASS_ANOC },
1609 };
1610 
1611 static struct qcom_icc_node srvc_niu_aml_noc = {
1612     .name = "srvc_niu_aml_noc",
1613     .id = SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC,
1614     .channels = 1,
1615     .buswidth = 4,
1616 };
1617 
1618 static struct qcom_icc_node srvc_niu_lpass_agnoc = {
1619     .name = "srvc_niu_lpass_agnoc",
1620     .id = SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC,
1621     .channels = 1,
1622     .buswidth = 4,
1623 };
1624 
1625 static struct qcom_icc_node ebi = {
1626     .name = "ebi",
1627     .id = SC8280XP_SLAVE_EBI1,
1628     .channels = 8,
1629     .buswidth = 4,
1630 };
1631 
1632 static struct qcom_icc_node qns_mem_noc_hf = {
1633     .name = "qns_mem_noc_hf",
1634     .id = SC8280XP_SLAVE_MNOC_HF_MEM_NOC,
1635     .channels = 2,
1636     .buswidth = 32,
1637     .num_links = 1,
1638     .links = { SC8280XP_MASTER_MNOC_HF_MEM_NOC },
1639 };
1640 
1641 static struct qcom_icc_node qns_mem_noc_sf = {
1642     .name = "qns_mem_noc_sf",
1643     .id = SC8280XP_SLAVE_MNOC_SF_MEM_NOC,
1644     .channels = 2,
1645     .buswidth = 32,
1646     .num_links = 1,
1647     .links = { SC8280XP_MASTER_MNOC_SF_MEM_NOC },
1648 };
1649 
1650 static struct qcom_icc_node srvc_mnoc = {
1651     .name = "srvc_mnoc",
1652     .id = SC8280XP_SLAVE_SERVICE_MNOC,
1653     .channels = 1,
1654     .buswidth = 4,
1655 };
1656 
1657 static struct qcom_icc_node qns_nsp_gemnoc = {
1658     .name = "qns_nsp_gemnoc",
1659     .id = SC8280XP_SLAVE_CDSP_MEM_NOC,
1660     .channels = 2,
1661     .buswidth = 32,
1662     .num_links = 1,
1663     .links = { SC8280XP_MASTER_COMPUTE_NOC },
1664 };
1665 
1666 static struct qcom_icc_node qxs_nsp_xfr = {
1667     .name = "qxs_nsp_xfr",
1668     .id = SC8280XP_SLAVE_NSP_XFR,
1669     .channels = 1,
1670     .buswidth = 32,
1671 };
1672 
1673 static struct qcom_icc_node service_nsp_noc = {
1674     .name = "service_nsp_noc",
1675     .id = SC8280XP_SLAVE_SERVICE_NSP_NOC,
1676     .channels = 1,
1677     .buswidth = 4,
1678 };
1679 
1680 static struct qcom_icc_node qns_nspb_gemnoc = {
1681     .name = "qns_nspb_gemnoc",
1682     .id = SC8280XP_SLAVE_CDSPB_MEM_NOC,
1683     .channels = 2,
1684     .buswidth = 32,
1685     .num_links = 1,
1686     .links = { SC8280XP_MASTER_COMPUTE_NOC_1 },
1687 };
1688 
1689 static struct qcom_icc_node qxs_nspb_xfr = {
1690     .name = "qxs_nspb_xfr",
1691     .id = SC8280XP_SLAVE_NSPB_XFR,
1692     .channels = 1,
1693     .buswidth = 32,
1694 };
1695 
1696 static struct qcom_icc_node service_nspb_noc = {
1697     .name = "service_nspb_noc",
1698     .id = SC8280XP_SLAVE_SERVICE_NSPB_NOC,
1699     .channels = 1,
1700     .buswidth = 4,
1701 };
1702 
1703 static struct qcom_icc_node qns_gemnoc_gc = {
1704     .name = "qns_gemnoc_gc",
1705     .id = SC8280XP_SLAVE_SNOC_GEM_NOC_GC,
1706     .channels = 1,
1707     .buswidth = 8,
1708     .num_links = 1,
1709     .links = { SC8280XP_MASTER_SNOC_GC_MEM_NOC },
1710 };
1711 
1712 static struct qcom_icc_node qns_gemnoc_sf = {
1713     .name = "qns_gemnoc_sf",
1714     .id = SC8280XP_SLAVE_SNOC_GEM_NOC_SF,
1715     .channels = 1,
1716     .buswidth = 16,
1717     .num_links = 1,
1718     .links = { SC8280XP_MASTER_SNOC_SF_MEM_NOC },
1719 };
1720 
1721 static struct qcom_icc_node srvc_snoc = {
1722     .name = "srvc_snoc",
1723     .id = SC8280XP_SLAVE_SERVICE_SNOC,
1724     .channels = 1,
1725     .buswidth = 4,
1726 };
1727 
1728 static struct qcom_icc_bcm bcm_acv = {
1729     .name = "ACV",
1730     .num_nodes = 1,
1731     .nodes = { &ebi },
1732 };
1733 
1734 static struct qcom_icc_bcm bcm_ce0 = {
1735     .name = "CE0",
1736     .num_nodes = 1,
1737     .nodes = { &qxm_crypto },
1738 };
1739 
1740 static struct qcom_icc_bcm bcm_cn0 = {
1741     .name = "CN0",
1742     .keepalive = true,
1743     .num_nodes = 9,
1744     .nodes = { &qnm_gemnoc_cnoc,
1745            &qnm_gemnoc_pcie,
1746            &xs_pcie_0,
1747            &xs_pcie_1,
1748            &xs_pcie_2a,
1749            &xs_pcie_2b,
1750            &xs_pcie_3a,
1751            &xs_pcie_3b,
1752            &xs_pcie_4
1753     },
1754 };
1755 
1756 static struct qcom_icc_bcm bcm_cn1 = {
1757     .name = "CN1",
1758     .num_nodes = 67,
1759     .nodes = { &qhs_ahb2phy0,
1760            &qhs_ahb2phy1,
1761            &qhs_ahb2phy2,
1762            &qhs_aoss,
1763            &qhs_apss,
1764            &qhs_camera_cfg,
1765            &qhs_clk_ctl,
1766            &qhs_compute0_cfg,
1767            &qhs_compute1_cfg,
1768            &qhs_cpr_cx,
1769            &qhs_cpr_mmcx,
1770            &qhs_cpr_mx,
1771            &qhs_cpr_nspcx,
1772            &qhs_crypto0_cfg,
1773            &qhs_cx_rdpm,
1774            &qhs_dcc_cfg,
1775            &qhs_display0_cfg,
1776            &qhs_display1_cfg,
1777            &qhs_emac0_cfg,
1778            &qhs_emac1_cfg,
1779            &qhs_gpuss_cfg,
1780            &qhs_hwkm,
1781            &qhs_imem_cfg,
1782            &qhs_ipa,
1783            &qhs_ipc_router,
1784            &qhs_lpass_cfg,
1785            &qhs_mx_rdpm,
1786            &qhs_mxc_rdpm,
1787            &qhs_pcie0_cfg,
1788            &qhs_pcie1_cfg,
1789            &qhs_pcie2a_cfg,
1790            &qhs_pcie2b_cfg,
1791            &qhs_pcie3a_cfg,
1792            &qhs_pcie3b_cfg,
1793            &qhs_pcie4_cfg,
1794            &qhs_pcie_rsc_cfg,
1795            &qhs_pdm,
1796            &qhs_pimem_cfg,
1797            &qhs_pka_wrapper_cfg,
1798            &qhs_pmu_wrapper_cfg,
1799            &qhs_qdss_cfg,
1800            &qhs_sdc2,
1801            &qhs_sdc4,
1802            &qhs_security,
1803            &qhs_smmuv3_cfg,
1804            &qhs_smss_cfg,
1805            &qhs_spss_cfg,
1806            &qhs_tcsr,
1807            &qhs_tlmm,
1808            &qhs_ufs_card_cfg,
1809            &qhs_ufs_mem_cfg,
1810            &qhs_usb3_0,
1811            &qhs_usb3_1,
1812            &qhs_usb3_mp,
1813            &qhs_usb4_host_0,
1814            &qhs_usb4_host_1,
1815            &qhs_venus_cfg,
1816            &qhs_vsense_ctrl_cfg,
1817            &qhs_vsense_ctrl_r_cfg,
1818            &qns_a1_noc_cfg,
1819            &qns_a2_noc_cfg,
1820            &qns_anoc_pcie_bridge_cfg,
1821            &qns_ddrss_cfg,
1822            &qns_mnoc_cfg,
1823            &qns_snoc_cfg,
1824            &qns_snoc_sf_bridge_cfg,
1825            &srvc_cnoc
1826     },
1827 };
1828 
1829 static struct qcom_icc_bcm bcm_cn2 = {
1830     .name = "CN2",
1831     .num_nodes = 4,
1832     .nodes = { &qhs_qspi,
1833            &qhs_qup0,
1834            &qhs_qup1,
1835            &qhs_qup2
1836     },
1837 };
1838 
1839 static struct qcom_icc_bcm bcm_cn3 = {
1840     .name = "CN3",
1841     .num_nodes = 3,
1842     .nodes = { &qxs_imem,
1843            &xs_smss,
1844            &xs_sys_tcu_cfg
1845     },
1846 };
1847 
1848 static struct qcom_icc_bcm bcm_ip0 = {
1849     .name = "IP0",
1850     .num_nodes = 1,
1851     .nodes = { &ipa_core_slave },
1852 };
1853 
1854 static struct qcom_icc_bcm bcm_mc0 = {
1855     .name = "MC0",
1856     .keepalive = true,
1857     .num_nodes = 1,
1858     .nodes = { &ebi },
1859 };
1860 
1861 static struct qcom_icc_bcm bcm_mm0 = {
1862     .name = "MM0",
1863     .keepalive = true,
1864     .num_nodes = 5,
1865     .nodes = { &qnm_camnoc_hf,
1866            &qnm_mdp0_0,
1867            &qnm_mdp0_1,
1868            &qnm_mdp1_0,
1869            &qns_mem_noc_hf
1870     },
1871 };
1872 
1873 static struct qcom_icc_bcm bcm_mm1 = {
1874     .name = "MM1",
1875     .num_nodes = 8,
1876     .nodes = { &qnm_rot_0,
1877            &qnm_rot_1,
1878            &qnm_video0,
1879            &qnm_video1,
1880            &qnm_video_cvp,
1881            &qxm_camnoc_icp,
1882            &qxm_camnoc_sf,
1883            &qns_mem_noc_sf
1884     },
1885 };
1886 
1887 static struct qcom_icc_bcm bcm_nsa0 = {
1888     .name = "NSA0",
1889     .num_nodes = 2,
1890     .nodes = { &qns_nsp_gemnoc,
1891            &qxs_nsp_xfr
1892     },
1893 };
1894 
1895 static struct qcom_icc_bcm bcm_nsa1 = {
1896     .name = "NSA1",
1897     .num_nodes = 1,
1898     .nodes = { &qxm_nsp },
1899 };
1900 
1901 static struct qcom_icc_bcm bcm_nsb0 = {
1902     .name = "NSB0",
1903     .num_nodes = 2,
1904     .nodes = { &qns_nspb_gemnoc,
1905            &qxs_nspb_xfr
1906     },
1907 };
1908 
1909 static struct qcom_icc_bcm bcm_nsb1 = {
1910     .name = "NSB1",
1911     .num_nodes = 1,
1912     .nodes = { &qxm_nspb },
1913 };
1914 
1915 static struct qcom_icc_bcm bcm_pci0 = {
1916     .name = "PCI0",
1917     .num_nodes = 1,
1918     .nodes = { &qns_pcie_gem_noc },
1919 };
1920 
1921 static struct qcom_icc_bcm bcm_qup0 = {
1922     .name = "QUP0",
1923     .vote_scale = 1,
1924     .num_nodes = 1,
1925     .nodes = { &qup0_core_slave },
1926 };
1927 
1928 static struct qcom_icc_bcm bcm_qup1 = {
1929     .name = "QUP1",
1930     .vote_scale = 1,
1931     .num_nodes = 1,
1932     .nodes = { &qup1_core_slave },
1933 };
1934 
1935 static struct qcom_icc_bcm bcm_qup2 = {
1936     .name = "QUP2",
1937     .vote_scale = 1,
1938     .num_nodes = 1,
1939     .nodes = { &qup2_core_slave },
1940 };
1941 
1942 static struct qcom_icc_bcm bcm_sh0 = {
1943     .name = "SH0",
1944     .keepalive = true,
1945     .num_nodes = 1,
1946     .nodes = { &qns_llcc },
1947 };
1948 
1949 static struct qcom_icc_bcm bcm_sh2 = {
1950     .name = "SH2",
1951     .num_nodes = 1,
1952     .nodes = { &chm_apps },
1953 };
1954 
1955 static struct qcom_icc_bcm bcm_sn0 = {
1956     .name = "SN0",
1957     .keepalive = true,
1958     .num_nodes = 1,
1959     .nodes = { &qns_gemnoc_sf },
1960 };
1961 
1962 static struct qcom_icc_bcm bcm_sn1 = {
1963     .name = "SN1",
1964     .num_nodes = 1,
1965     .nodes = { &qns_gemnoc_gc },
1966 };
1967 
1968 static struct qcom_icc_bcm bcm_sn2 = {
1969     .name = "SN2",
1970     .num_nodes = 1,
1971     .nodes = { &qxs_pimem },
1972 };
1973 
1974 static struct qcom_icc_bcm bcm_sn3 = {
1975     .name = "SN3",
1976     .num_nodes = 2,
1977     .nodes = { &qns_a1noc_snoc,
1978            &qnm_aggre1_noc
1979     },
1980 };
1981 
1982 static struct qcom_icc_bcm bcm_sn4 = {
1983     .name = "SN4",
1984     .num_nodes = 2,
1985     .nodes = { &qns_a2noc_snoc,
1986            &qnm_aggre2_noc
1987     },
1988 };
1989 
1990 static struct qcom_icc_bcm bcm_sn5 = {
1991     .name = "SN5",
1992     .num_nodes = 2,
1993     .nodes = { &qns_aggre_usb_snoc,
1994            &qnm_aggre_usb_noc
1995     },
1996 };
1997 
1998 static struct qcom_icc_bcm bcm_sn9 = {
1999     .name = "SN9",
2000     .num_nodes = 2,
2001     .nodes = { &qns_sysnoc,
2002            &qnm_lpass_noc
2003     },
2004 };
2005 
2006 static struct qcom_icc_bcm bcm_sn10 = {
2007     .name = "SN10",
2008     .num_nodes = 1,
2009     .nodes = { &xs_qdss_stm },
2010 };
2011 
2012 static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
2013     &bcm_sn3,
2014     &bcm_sn5,
2015 };
2016 
2017 static struct qcom_icc_node * const aggre1_noc_nodes[] = {
2018     [MASTER_QSPI_0] = &qhm_qspi,
2019     [MASTER_QUP_1] = &qhm_qup1,
2020     [MASTER_QUP_2] = &qhm_qup2,
2021     [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg,
2022     [MASTER_IPA] = &qxm_ipa,
2023     [MASTER_EMAC_1] = &xm_emac_1,
2024     [MASTER_SDCC_4] = &xm_sdc4,
2025     [MASTER_UFS_MEM] = &xm_ufs_mem,
2026     [MASTER_USB3_0] = &xm_usb3_0,
2027     [MASTER_USB3_1] = &xm_usb3_1,
2028     [MASTER_USB3_MP] = &xm_usb3_mp,
2029     [MASTER_USB4_0] = &xm_usb4_host0,
2030     [MASTER_USB4_1] = &xm_usb4_host1,
2031     [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
2032     [SLAVE_USB_NOC_SNOC] = &qns_aggre_usb_snoc,
2033     [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc,
2034 };
2035 
2036 static const struct qcom_icc_desc sc8280xp_aggre1_noc = {
2037     .nodes = aggre1_noc_nodes,
2038     .num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
2039     .bcms = aggre1_noc_bcms,
2040     .num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
2041 };
2042 
2043 static struct qcom_icc_bcm * const aggre2_noc_bcms[] = {
2044     &bcm_ce0,
2045     &bcm_pci0,
2046     &bcm_sn4,
2047 };
2048 
2049 static struct qcom_icc_node * const aggre2_noc_nodes[] = {
2050     [MASTER_QDSS_BAM] = &qhm_qdss_bam,
2051     [MASTER_QUP_0] = &qhm_qup0,
2052     [MASTER_A2NOC_CFG] = &qnm_a2noc_cfg,
2053     [MASTER_CRYPTO] = &qxm_crypto,
2054     [MASTER_SENSORS_PROC] = &qxm_sensorss_q6,
2055     [MASTER_SP] = &qxm_sp,
2056     [MASTER_EMAC] = &xm_emac_0,
2057     [MASTER_PCIE_0] = &xm_pcie3_0,
2058     [MASTER_PCIE_1] = &xm_pcie3_1,
2059     [MASTER_PCIE_2A] = &xm_pcie3_2a,
2060     [MASTER_PCIE_2B] = &xm_pcie3_2b,
2061     [MASTER_PCIE_3A] = &xm_pcie3_3a,
2062     [MASTER_PCIE_3B] = &xm_pcie3_3b,
2063     [MASTER_PCIE_4] = &xm_pcie3_4,
2064     [MASTER_QDSS_ETR] = &xm_qdss_etr,
2065     [MASTER_SDCC_2] = &xm_sdc2,
2066     [MASTER_UFS_CARD] = &xm_ufs_card,
2067     [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc,
2068     [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gem_noc,
2069     [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc,
2070 };
2071 
2072 static const struct qcom_icc_desc sc8280xp_aggre2_noc = {
2073     .nodes = aggre2_noc_nodes,
2074     .num_nodes = ARRAY_SIZE(aggre2_noc_nodes),
2075     .bcms = aggre2_noc_bcms,
2076     .num_bcms = ARRAY_SIZE(aggre2_noc_bcms),
2077 };
2078 
2079 static struct qcom_icc_bcm * const clk_virt_bcms[] = {
2080     &bcm_ip0,
2081     &bcm_qup0,
2082     &bcm_qup1,
2083     &bcm_qup2,
2084 };
2085 
2086 static struct qcom_icc_node * const clk_virt_nodes[] = {
2087     [MASTER_IPA_CORE] = &ipa_core_master,
2088     [MASTER_QUP_CORE_0] = &qup0_core_master,
2089     [MASTER_QUP_CORE_1] = &qup1_core_master,
2090     [MASTER_QUP_CORE_2] = &qup2_core_master,
2091     [SLAVE_IPA_CORE] = &ipa_core_slave,
2092     [SLAVE_QUP_CORE_0] = &qup0_core_slave,
2093     [SLAVE_QUP_CORE_1] = &qup1_core_slave,
2094     [SLAVE_QUP_CORE_2] = &qup2_core_slave,
2095 };
2096 
2097 static const struct qcom_icc_desc sc8280xp_clk_virt = {
2098     .nodes = clk_virt_nodes,
2099     .num_nodes = ARRAY_SIZE(clk_virt_nodes),
2100     .bcms = clk_virt_bcms,
2101     .num_bcms = ARRAY_SIZE(clk_virt_bcms),
2102 };
2103 
2104 static struct qcom_icc_bcm * const config_noc_bcms[] = {
2105     &bcm_cn0,
2106     &bcm_cn1,
2107     &bcm_cn2,
2108     &bcm_cn3,
2109     &bcm_sn2,
2110     &bcm_sn10,
2111 };
2112 
2113 static struct qcom_icc_node * const config_noc_nodes[] = {
2114     [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
2115     [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
2116     [SLAVE_AHB2PHY_0] = &qhs_ahb2phy0,
2117     [SLAVE_AHB2PHY_1] = &qhs_ahb2phy1,
2118     [SLAVE_AHB2PHY_2] = &qhs_ahb2phy2,
2119     [SLAVE_AOSS] = &qhs_aoss,
2120     [SLAVE_APPSS] = &qhs_apss,
2121     [SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
2122     [SLAVE_CLK_CTL] = &qhs_clk_ctl,
2123     [SLAVE_CDSP_CFG] = &qhs_compute0_cfg,
2124     [SLAVE_CDSP1_CFG] = &qhs_compute1_cfg,
2125     [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
2126     [SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx,
2127     [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx,
2128     [SLAVE_CPR_NSPCX] = &qhs_cpr_nspcx,
2129     [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg,
2130     [SLAVE_CX_RDPM] = &qhs_cx_rdpm,
2131     [SLAVE_DCC_CFG] = &qhs_dcc_cfg,
2132     [SLAVE_DISPLAY_CFG] = &qhs_display0_cfg,
2133     [SLAVE_DISPLAY1_CFG] = &qhs_display1_cfg,
2134     [SLAVE_EMAC_CFG] = &qhs_emac0_cfg,
2135     [SLAVE_EMAC1_CFG] = &qhs_emac1_cfg,
2136     [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg,
2137     [SLAVE_HWKM] = &qhs_hwkm,
2138     [SLAVE_IMEM_CFG] = &qhs_imem_cfg,
2139     [SLAVE_IPA_CFG] = &qhs_ipa,
2140     [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
2141     [SLAVE_LPASS] = &qhs_lpass_cfg,
2142     [SLAVE_MX_RDPM] = &qhs_mx_rdpm,
2143     [SLAVE_MXC_RDPM] = &qhs_mxc_rdpm,
2144     [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg,
2145     [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg,
2146     [SLAVE_PCIE_2A_CFG] = &qhs_pcie2a_cfg,
2147     [SLAVE_PCIE_2B_CFG] = &qhs_pcie2b_cfg,
2148     [SLAVE_PCIE_3A_CFG] = &qhs_pcie3a_cfg,
2149     [SLAVE_PCIE_3B_CFG] = &qhs_pcie3b_cfg,
2150     [SLAVE_PCIE_4_CFG] = &qhs_pcie4_cfg,
2151     [SLAVE_PCIE_RSC_CFG] = &qhs_pcie_rsc_cfg,
2152     [SLAVE_PDM] = &qhs_pdm,
2153     [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
2154     [SLAVE_PKA_WRAPPER_CFG] = &qhs_pka_wrapper_cfg,
2155     [SLAVE_PMU_WRAPPER_CFG] = &qhs_pmu_wrapper_cfg,
2156     [SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
2157     [SLAVE_QSPI_0] = &qhs_qspi,
2158     [SLAVE_QUP_0] = &qhs_qup0,
2159     [SLAVE_QUP_1] = &qhs_qup1,
2160     [SLAVE_QUP_2] = &qhs_qup2,
2161     [SLAVE_SDCC_2] = &qhs_sdc2,
2162     [SLAVE_SDCC_4] = &qhs_sdc4,
2163     [SLAVE_SECURITY] = &qhs_security,
2164     [SLAVE_SMMUV3_CFG] = &qhs_smmuv3_cfg,
2165     [SLAVE_SMSS_CFG] = &qhs_smss_cfg,
2166     [SLAVE_SPSS_CFG] = &qhs_spss_cfg,
2167     [SLAVE_TCSR] = &qhs_tcsr,
2168     [SLAVE_TLMM] = &qhs_tlmm,
2169     [SLAVE_UFS_CARD_CFG] = &qhs_ufs_card_cfg,
2170     [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
2171     [SLAVE_USB3_0] = &qhs_usb3_0,
2172     [SLAVE_USB3_1] = &qhs_usb3_1,
2173     [SLAVE_USB3_MP] = &qhs_usb3_mp,
2174     [SLAVE_USB4_0] = &qhs_usb4_host_0,
2175     [SLAVE_USB4_1] = &qhs_usb4_host_1,
2176     [SLAVE_VENUS_CFG] = &qhs_venus_cfg,
2177     [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
2178     [SLAVE_VSENSE_CTRL_R_CFG] = &qhs_vsense_ctrl_r_cfg,
2179     [SLAVE_A1NOC_CFG] = &qns_a1_noc_cfg,
2180     [SLAVE_A2NOC_CFG] = &qns_a2_noc_cfg,
2181     [SLAVE_ANOC_PCIE_BRIDGE_CFG] = &qns_anoc_pcie_bridge_cfg,
2182     [SLAVE_DDRSS_CFG] = &qns_ddrss_cfg,
2183     [SLAVE_CNOC_MNOC_CFG] = &qns_mnoc_cfg,
2184     [SLAVE_SNOC_CFG] = &qns_snoc_cfg,
2185     [SLAVE_SNOC_SF_BRIDGE_CFG] = &qns_snoc_sf_bridge_cfg,
2186     [SLAVE_IMEM] = &qxs_imem,
2187     [SLAVE_PIMEM] = &qxs_pimem,
2188     [SLAVE_SERVICE_CNOC] = &srvc_cnoc,
2189     [SLAVE_PCIE_0] = &xs_pcie_0,
2190     [SLAVE_PCIE_1] = &xs_pcie_1,
2191     [SLAVE_PCIE_2A] = &xs_pcie_2a,
2192     [SLAVE_PCIE_2B] = &xs_pcie_2b,
2193     [SLAVE_PCIE_3A] = &xs_pcie_3a,
2194     [SLAVE_PCIE_3B] = &xs_pcie_3b,
2195     [SLAVE_PCIE_4] = &xs_pcie_4,
2196     [SLAVE_QDSS_STM] = &xs_qdss_stm,
2197     [SLAVE_SMSS] = &xs_smss,
2198     [SLAVE_TCU] = &xs_sys_tcu_cfg,
2199 };
2200 
2201 static const struct qcom_icc_desc sc8280xp_config_noc = {
2202     .nodes = config_noc_nodes,
2203     .num_nodes = ARRAY_SIZE(config_noc_nodes),
2204     .bcms = config_noc_bcms,
2205     .num_bcms = ARRAY_SIZE(config_noc_bcms),
2206 };
2207 
2208 static struct qcom_icc_bcm * const dc_noc_bcms[] = {
2209 };
2210 
2211 static struct qcom_icc_node * const dc_noc_nodes[] = {
2212     [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc,
2213     [SLAVE_LLCC_CFG] = &qhs_llcc,
2214     [SLAVE_GEM_NOC_CFG] = &qns_gemnoc,
2215 };
2216 
2217 static const struct qcom_icc_desc sc8280xp_dc_noc = {
2218     .nodes = dc_noc_nodes,
2219     .num_nodes = ARRAY_SIZE(dc_noc_nodes),
2220     .bcms = dc_noc_bcms,
2221     .num_bcms = ARRAY_SIZE(dc_noc_bcms),
2222 };
2223 
2224 static struct qcom_icc_bcm * const gem_noc_bcms[] = {
2225     &bcm_sh0,
2226     &bcm_sh2,
2227 };
2228 
2229 static struct qcom_icc_node * const gem_noc_nodes[] = {
2230     [MASTER_GPU_TCU] = &alm_gpu_tcu,
2231     [MASTER_PCIE_TCU] = &alm_pcie_tcu,
2232     [MASTER_SYS_TCU] = &alm_sys_tcu,
2233     [MASTER_APPSS_PROC] = &chm_apps,
2234     [MASTER_COMPUTE_NOC] = &qnm_cmpnoc0,
2235     [MASTER_COMPUTE_NOC_1] = &qnm_cmpnoc1,
2236     [MASTER_GEM_NOC_CFG] = &qnm_gemnoc_cfg,
2237     [MASTER_GFX3D] = &qnm_gpu,
2238     [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
2239     [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
2240     [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
2241     [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
2242     [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
2243     [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
2244     [SLAVE_LLCC] = &qns_llcc,
2245     [SLAVE_GEM_NOC_PCIE_CNOC] = &qns_pcie,
2246     [SLAVE_SERVICE_GEM_NOC_1] = &srvc_even_gemnoc,
2247     [SLAVE_SERVICE_GEM_NOC_2] = &srvc_odd_gemnoc,
2248     [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc,
2249 };
2250 
2251 static const struct qcom_icc_desc sc8280xp_gem_noc = {
2252     .nodes = gem_noc_nodes,
2253     .num_nodes = ARRAY_SIZE(gem_noc_nodes),
2254     .bcms = gem_noc_bcms,
2255     .num_bcms = ARRAY_SIZE(gem_noc_bcms),
2256 };
2257 
2258 static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = {
2259     &bcm_sn9,
2260 };
2261 
2262 static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
2263     [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc,
2264     [MASTER_LPASS_PROC] = &qxm_lpass_dsp,
2265     [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core,
2266     [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi,
2267     [SLAVE_LPASS_MPU_CFG] = &qhs_lpass_mpu,
2268     [SLAVE_LPASS_TOP_CFG] = &qhs_lpass_top,
2269     [SLAVE_LPASS_SNOC] = &qns_sysnoc,
2270     [SLAVE_SERVICES_LPASS_AML_NOC] = &srvc_niu_aml_noc,
2271     [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc,
2272 };
2273 
2274 static const struct qcom_icc_desc sc8280xp_lpass_ag_noc = {
2275     .nodes = lpass_ag_noc_nodes,
2276     .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
2277     .bcms = lpass_ag_noc_bcms,
2278     .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms),
2279 };
2280 
2281 static struct qcom_icc_bcm * const mc_virt_bcms[] = {
2282     &bcm_acv,
2283     &bcm_mc0,
2284 };
2285 
2286 static struct qcom_icc_node * const mc_virt_nodes[] = {
2287     [MASTER_LLCC] = &llcc_mc,
2288     [SLAVE_EBI1] = &ebi,
2289 };
2290 
2291 static const struct qcom_icc_desc sc8280xp_mc_virt = {
2292     .nodes = mc_virt_nodes,
2293     .num_nodes = ARRAY_SIZE(mc_virt_nodes),
2294     .bcms = mc_virt_bcms,
2295     .num_bcms = ARRAY_SIZE(mc_virt_bcms),
2296 };
2297 
2298 static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
2299     &bcm_mm0,
2300     &bcm_mm1,
2301 };
2302 
2303 static struct qcom_icc_node * const mmss_noc_nodes[] = {
2304     [MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
2305     [MASTER_MDP0] = &qnm_mdp0_0,
2306     [MASTER_MDP1] = &qnm_mdp0_1,
2307     [MASTER_MDP_CORE1_0] = &qnm_mdp1_0,
2308     [MASTER_MDP_CORE1_1] = &qnm_mdp1_1,
2309     [MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg,
2310     [MASTER_ROTATOR] = &qnm_rot_0,
2311     [MASTER_ROTATOR_1] = &qnm_rot_1,
2312     [MASTER_VIDEO_P0] = &qnm_video0,
2313     [MASTER_VIDEO_P1] = &qnm_video1,
2314     [MASTER_VIDEO_PROC] = &qnm_video_cvp,
2315     [MASTER_CAMNOC_ICP] = &qxm_camnoc_icp,
2316     [MASTER_CAMNOC_SF] = &qxm_camnoc_sf,
2317     [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
2318     [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
2319     [SLAVE_SERVICE_MNOC] = &srvc_mnoc,
2320 };
2321 
2322 static const struct qcom_icc_desc sc8280xp_mmss_noc = {
2323     .nodes = mmss_noc_nodes,
2324     .num_nodes = ARRAY_SIZE(mmss_noc_nodes),
2325     .bcms = mmss_noc_bcms,
2326     .num_bcms = ARRAY_SIZE(mmss_noc_bcms),
2327 };
2328 
2329 static struct qcom_icc_bcm * const nspa_noc_bcms[] = {
2330     &bcm_nsa0,
2331     &bcm_nsa1,
2332 };
2333 
2334 static struct qcom_icc_node * const nspa_noc_nodes[] = {
2335     [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config,
2336     [MASTER_CDSP_PROC] = &qxm_nsp,
2337     [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc,
2338     [SLAVE_NSP_XFR] = &qxs_nsp_xfr,
2339     [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc,
2340 };
2341 
2342 static const struct qcom_icc_desc sc8280xp_nspa_noc = {
2343     .nodes = nspa_noc_nodes,
2344     .num_nodes = ARRAY_SIZE(nspa_noc_nodes),
2345     .bcms = nspa_noc_bcms,
2346     .num_bcms = ARRAY_SIZE(nspa_noc_bcms),
2347 };
2348 
2349 static struct qcom_icc_bcm * const nspb_noc_bcms[] = {
2350     &bcm_nsb0,
2351     &bcm_nsb1,
2352 };
2353 
2354 static struct qcom_icc_node * const nspb_noc_nodes[] = {
2355     [MASTER_CDSPB_NOC_CFG] = &qhm_nspb_noc_config,
2356     [MASTER_CDSP_PROC_B] = &qxm_nspb,
2357     [SLAVE_CDSPB_MEM_NOC] = &qns_nspb_gemnoc,
2358     [SLAVE_NSPB_XFR] = &qxs_nspb_xfr,
2359     [SLAVE_SERVICE_NSPB_NOC] = &service_nspb_noc,
2360 };
2361 
2362 static const struct qcom_icc_desc sc8280xp_nspb_noc = {
2363     .nodes = nspb_noc_nodes,
2364     .num_nodes = ARRAY_SIZE(nspb_noc_nodes),
2365     .bcms = nspb_noc_bcms,
2366     .num_bcms = ARRAY_SIZE(nspb_noc_bcms),
2367 };
2368 
2369 static struct qcom_icc_bcm * const system_noc_main_bcms[] = {
2370     &bcm_sn0,
2371     &bcm_sn1,
2372     &bcm_sn3,
2373     &bcm_sn4,
2374     &bcm_sn5,
2375     &bcm_sn9,
2376 };
2377 
2378 static struct qcom_icc_node * const system_noc_main_nodes[] = {
2379     [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc,
2380     [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc,
2381     [MASTER_USB_NOC_SNOC] = &qnm_aggre_usb_noc,
2382     [MASTER_LPASS_ANOC] = &qnm_lpass_noc,
2383     [MASTER_SNOC_CFG] = &qnm_snoc_cfg,
2384     [MASTER_PIMEM] = &qxm_pimem,
2385     [MASTER_GIC] = &xm_gic,
2386     [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
2387     [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
2388     [SLAVE_SERVICE_SNOC] = &srvc_snoc,
2389 };
2390 
2391 static const struct qcom_icc_desc sc8280xp_system_noc_main = {
2392     .nodes = system_noc_main_nodes,
2393     .num_nodes = ARRAY_SIZE(system_noc_main_nodes),
2394     .bcms = system_noc_main_bcms,
2395     .num_bcms = ARRAY_SIZE(system_noc_main_bcms),
2396 };
2397 
2398 static const struct of_device_id qnoc_of_match[] = {
2399     { .compatible = "qcom,sc8280xp-aggre1-noc", .data = &sc8280xp_aggre1_noc, },
2400     { .compatible = "qcom,sc8280xp-aggre2-noc", .data = &sc8280xp_aggre2_noc, },
2401     { .compatible = "qcom,sc8280xp-clk-virt", .data = &sc8280xp_clk_virt, },
2402     { .compatible = "qcom,sc8280xp-config-noc", .data = &sc8280xp_config_noc, },
2403     { .compatible = "qcom,sc8280xp-dc-noc", .data = &sc8280xp_dc_noc, },
2404     { .compatible = "qcom,sc8280xp-gem-noc", .data = &sc8280xp_gem_noc, },
2405     { .compatible = "qcom,sc8280xp-lpass-ag-noc", .data = &sc8280xp_lpass_ag_noc, },
2406     { .compatible = "qcom,sc8280xp-mc-virt", .data = &sc8280xp_mc_virt, },
2407     { .compatible = "qcom,sc8280xp-mmss-noc", .data = &sc8280xp_mmss_noc, },
2408     { .compatible = "qcom,sc8280xp-nspa-noc", .data = &sc8280xp_nspa_noc, },
2409     { .compatible = "qcom,sc8280xp-nspb-noc", .data = &sc8280xp_nspb_noc, },
2410     { .compatible = "qcom,sc8280xp-system-noc", .data = &sc8280xp_system_noc_main, },
2411     { }
2412 };
2413 MODULE_DEVICE_TABLE(of, qnoc_of_match);
2414 
2415 static struct platform_driver qnoc_driver = {
2416     .probe = qcom_icc_rpmh_probe,
2417     .remove = qcom_icc_rpmh_remove,
2418     .driver = {
2419         .name = "qnoc-sc8280xp",
2420         .of_match_table = qnoc_of_match,
2421         .sync_state = icc_sync_state,
2422     },
2423 };
2424 
2425 static int __init qnoc_driver_init(void)
2426 {
2427     return platform_driver_register(&qnoc_driver);
2428 }
2429 core_initcall(qnoc_driver_init);
2430 
2431 static void __exit qnoc_driver_exit(void)
2432 {
2433     platform_driver_unregister(&qnoc_driver);
2434 }
2435 module_exit(qnoc_driver_exit);
2436 
2437 MODULE_DESCRIPTION("Qualcomm SC8280XP NoC driver");
2438 MODULE_LICENSE("GPL");