1*46bdcac5SOdelu Kukatla // SPDX-License-Identifier: GPL-2.0 2*46bdcac5SOdelu Kukatla /* 3*46bdcac5SOdelu Kukatla * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4*46bdcac5SOdelu Kukatla * 5*46bdcac5SOdelu Kukatla */ 6*46bdcac5SOdelu Kukatla 7*46bdcac5SOdelu Kukatla #include <linux/device.h> 8*46bdcac5SOdelu Kukatla #include <linux/interconnect.h> 9*46bdcac5SOdelu Kukatla #include <linux/interconnect-provider.h> 10*46bdcac5SOdelu Kukatla #include <linux/module.h> 11*46bdcac5SOdelu Kukatla #include <linux/of_platform.h> 12*46bdcac5SOdelu Kukatla #include <dt-bindings/interconnect/qcom,sc7280.h> 13*46bdcac5SOdelu Kukatla 14*46bdcac5SOdelu Kukatla #include "bcm-voter.h" 15*46bdcac5SOdelu Kukatla #include "icc-rpmh.h" 16*46bdcac5SOdelu Kukatla #include "sc7280.h" 17*46bdcac5SOdelu Kukatla 18*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_qspi = { 19*46bdcac5SOdelu Kukatla .name = "qhm_qspi", 20*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QSPI_0, 21*46bdcac5SOdelu Kukatla .channels = 1, 22*46bdcac5SOdelu Kukatla .buswidth = 4, 23*46bdcac5SOdelu Kukatla .num_links = 1, 24*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 25*46bdcac5SOdelu Kukatla }; 26*46bdcac5SOdelu Kukatla 27*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_qup0 = { 28*46bdcac5SOdelu Kukatla .name = "qhm_qup0", 29*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QUP_0, 30*46bdcac5SOdelu Kukatla .channels = 1, 31*46bdcac5SOdelu Kukatla .buswidth = 4, 32*46bdcac5SOdelu Kukatla .num_links = 1, 33*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 34*46bdcac5SOdelu Kukatla }; 35*46bdcac5SOdelu Kukatla 36*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_qup1 = { 37*46bdcac5SOdelu Kukatla .name = "qhm_qup1", 38*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QUP_1, 39*46bdcac5SOdelu Kukatla .channels = 1, 40*46bdcac5SOdelu Kukatla .buswidth = 4, 41*46bdcac5SOdelu Kukatla .num_links = 1, 42*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 43*46bdcac5SOdelu Kukatla }; 44*46bdcac5SOdelu Kukatla 45*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_a1noc_cfg = { 46*46bdcac5SOdelu Kukatla .name = "qnm_a1noc_cfg", 47*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_A1NOC_CFG, 48*46bdcac5SOdelu Kukatla .channels = 1, 49*46bdcac5SOdelu Kukatla .buswidth = 4, 50*46bdcac5SOdelu Kukatla .num_links = 1, 51*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SERVICE_A1NOC }, 52*46bdcac5SOdelu Kukatla }; 53*46bdcac5SOdelu Kukatla 54*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_sdc1 = { 55*46bdcac5SOdelu Kukatla .name = "xm_sdc1", 56*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SDCC_1, 57*46bdcac5SOdelu Kukatla .channels = 1, 58*46bdcac5SOdelu Kukatla .buswidth = 8, 59*46bdcac5SOdelu Kukatla .num_links = 1, 60*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 61*46bdcac5SOdelu Kukatla }; 62*46bdcac5SOdelu Kukatla 63*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_sdc2 = { 64*46bdcac5SOdelu Kukatla .name = "xm_sdc2", 65*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SDCC_2, 66*46bdcac5SOdelu Kukatla .channels = 1, 67*46bdcac5SOdelu Kukatla .buswidth = 8, 68*46bdcac5SOdelu Kukatla .num_links = 1, 69*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 70*46bdcac5SOdelu Kukatla }; 71*46bdcac5SOdelu Kukatla 72*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_sdc4 = { 73*46bdcac5SOdelu Kukatla .name = "xm_sdc4", 74*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SDCC_4, 75*46bdcac5SOdelu Kukatla .channels = 1, 76*46bdcac5SOdelu Kukatla .buswidth = 8, 77*46bdcac5SOdelu Kukatla .num_links = 1, 78*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 79*46bdcac5SOdelu Kukatla }; 80*46bdcac5SOdelu Kukatla 81*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_ufs_mem = { 82*46bdcac5SOdelu Kukatla .name = "xm_ufs_mem", 83*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_UFS_MEM, 84*46bdcac5SOdelu Kukatla .channels = 1, 85*46bdcac5SOdelu Kukatla .buswidth = 8, 86*46bdcac5SOdelu Kukatla .num_links = 1, 87*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 88*46bdcac5SOdelu Kukatla }; 89*46bdcac5SOdelu Kukatla 90*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_usb2 = { 91*46bdcac5SOdelu Kukatla .name = "xm_usb2", 92*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_USB2, 93*46bdcac5SOdelu Kukatla .channels = 1, 94*46bdcac5SOdelu Kukatla .buswidth = 8, 95*46bdcac5SOdelu Kukatla .num_links = 1, 96*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 97*46bdcac5SOdelu Kukatla }; 98*46bdcac5SOdelu Kukatla 99*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_usb3_0 = { 100*46bdcac5SOdelu Kukatla .name = "xm_usb3_0", 101*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_USB3_0, 102*46bdcac5SOdelu Kukatla .channels = 1, 103*46bdcac5SOdelu Kukatla .buswidth = 8, 104*46bdcac5SOdelu Kukatla .num_links = 1, 105*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A1NOC_SNOC }, 106*46bdcac5SOdelu Kukatla }; 107*46bdcac5SOdelu Kukatla 108*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_qdss_bam = { 109*46bdcac5SOdelu Kukatla .name = "qhm_qdss_bam", 110*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QDSS_BAM, 111*46bdcac5SOdelu Kukatla .channels = 1, 112*46bdcac5SOdelu Kukatla .buswidth = 4, 113*46bdcac5SOdelu Kukatla .num_links = 1, 114*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A2NOC_SNOC }, 115*46bdcac5SOdelu Kukatla }; 116*46bdcac5SOdelu Kukatla 117*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_a2noc_cfg = { 118*46bdcac5SOdelu Kukatla .name = "qnm_a2noc_cfg", 119*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_A2NOC_CFG, 120*46bdcac5SOdelu Kukatla .channels = 1, 121*46bdcac5SOdelu Kukatla .buswidth = 4, 122*46bdcac5SOdelu Kukatla .num_links = 1, 123*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SERVICE_A2NOC }, 124*46bdcac5SOdelu Kukatla }; 125*46bdcac5SOdelu Kukatla 126*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_cnoc_datapath = { 127*46bdcac5SOdelu Kukatla .name = "qnm_cnoc_datapath", 128*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC_A2NOC, 129*46bdcac5SOdelu Kukatla .channels = 1, 130*46bdcac5SOdelu Kukatla .buswidth = 8, 131*46bdcac5SOdelu Kukatla .num_links = 1, 132*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A2NOC_SNOC }, 133*46bdcac5SOdelu Kukatla }; 134*46bdcac5SOdelu Kukatla 135*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_crypto = { 136*46bdcac5SOdelu Kukatla .name = "qxm_crypto", 137*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CRYPTO, 138*46bdcac5SOdelu Kukatla .channels = 1, 139*46bdcac5SOdelu Kukatla .buswidth = 8, 140*46bdcac5SOdelu Kukatla .num_links = 1, 141*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A2NOC_SNOC }, 142*46bdcac5SOdelu Kukatla }; 143*46bdcac5SOdelu Kukatla 144*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_ipa = { 145*46bdcac5SOdelu Kukatla .name = "qxm_ipa", 146*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_IPA, 147*46bdcac5SOdelu Kukatla .channels = 1, 148*46bdcac5SOdelu Kukatla .buswidth = 8, 149*46bdcac5SOdelu Kukatla .num_links = 1, 150*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A2NOC_SNOC }, 151*46bdcac5SOdelu Kukatla }; 152*46bdcac5SOdelu Kukatla 153*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_pcie3_0 = { 154*46bdcac5SOdelu Kukatla .name = "xm_pcie3_0", 155*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_PCIE_0, 156*46bdcac5SOdelu Kukatla .channels = 1, 157*46bdcac5SOdelu Kukatla .buswidth = 8, 158*46bdcac5SOdelu Kukatla .num_links = 1, 159*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_ANOC_PCIE_GEM_NOC }, 160*46bdcac5SOdelu Kukatla }; 161*46bdcac5SOdelu Kukatla 162*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_pcie3_1 = { 163*46bdcac5SOdelu Kukatla .name = "xm_pcie3_1", 164*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_PCIE_1, 165*46bdcac5SOdelu Kukatla .channels = 1, 166*46bdcac5SOdelu Kukatla .buswidth = 8, 167*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_ANOC_PCIE_GEM_NOC }, 168*46bdcac5SOdelu Kukatla }; 169*46bdcac5SOdelu Kukatla 170*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_qdss_etr = { 171*46bdcac5SOdelu Kukatla .name = "xm_qdss_etr", 172*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QDSS_ETR, 173*46bdcac5SOdelu Kukatla .channels = 1, 174*46bdcac5SOdelu Kukatla .buswidth = 8, 175*46bdcac5SOdelu Kukatla .num_links = 1, 176*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_A2NOC_SNOC }, 177*46bdcac5SOdelu Kukatla }; 178*46bdcac5SOdelu Kukatla 179*46bdcac5SOdelu Kukatla static struct qcom_icc_node qup0_core_master = { 180*46bdcac5SOdelu Kukatla .name = "qup0_core_master", 181*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QUP_CORE_0, 182*46bdcac5SOdelu Kukatla .channels = 1, 183*46bdcac5SOdelu Kukatla .buswidth = 4, 184*46bdcac5SOdelu Kukatla .num_links = 1, 185*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_QUP_CORE_0 }, 186*46bdcac5SOdelu Kukatla }; 187*46bdcac5SOdelu Kukatla 188*46bdcac5SOdelu Kukatla static struct qcom_icc_node qup1_core_master = { 189*46bdcac5SOdelu Kukatla .name = "qup1_core_master", 190*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QUP_CORE_1, 191*46bdcac5SOdelu Kukatla .channels = 1, 192*46bdcac5SOdelu Kukatla .buswidth = 4, 193*46bdcac5SOdelu Kukatla .num_links = 1, 194*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_QUP_CORE_1 }, 195*46bdcac5SOdelu Kukatla }; 196*46bdcac5SOdelu Kukatla 197*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_cnoc3_cnoc2 = { 198*46bdcac5SOdelu Kukatla .name = "qnm_cnoc3_cnoc2", 199*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC3_CNOC2, 200*46bdcac5SOdelu Kukatla .channels = 1, 201*46bdcac5SOdelu Kukatla .buswidth = 8, 202*46bdcac5SOdelu Kukatla .num_links = 44, 203*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_AHB2PHY_SOUTH, SC7280_SLAVE_AHB2PHY_NORTH, 204*46bdcac5SOdelu Kukatla SC7280_SLAVE_CAMERA_CFG, SC7280_SLAVE_CLK_CTL, 205*46bdcac5SOdelu Kukatla SC7280_SLAVE_CDSP_CFG, SC7280_SLAVE_RBCPR_CX_CFG, 206*46bdcac5SOdelu Kukatla SC7280_SLAVE_RBCPR_MX_CFG, SC7280_SLAVE_CRYPTO_0_CFG, 207*46bdcac5SOdelu Kukatla SC7280_SLAVE_CX_RDPM, SC7280_SLAVE_DCC_CFG, 208*46bdcac5SOdelu Kukatla SC7280_SLAVE_DISPLAY_CFG, SC7280_SLAVE_GFX3D_CFG, 209*46bdcac5SOdelu Kukatla SC7280_SLAVE_HWKM, SC7280_SLAVE_IMEM_CFG, 210*46bdcac5SOdelu Kukatla SC7280_SLAVE_IPA_CFG, SC7280_SLAVE_IPC_ROUTER_CFG, 211*46bdcac5SOdelu Kukatla SC7280_SLAVE_LPASS, SC7280_SLAVE_CNOC_MSS, 212*46bdcac5SOdelu Kukatla SC7280_SLAVE_MX_RDPM, SC7280_SLAVE_PCIE_0_CFG, 213*46bdcac5SOdelu Kukatla SC7280_SLAVE_PCIE_1_CFG, SC7280_SLAVE_PDM, 214*46bdcac5SOdelu Kukatla SC7280_SLAVE_PIMEM_CFG, SC7280_SLAVE_PKA_WRAPPER_CFG, 215*46bdcac5SOdelu Kukatla SC7280_SLAVE_PMU_WRAPPER_CFG, SC7280_SLAVE_QDSS_CFG, 216*46bdcac5SOdelu Kukatla SC7280_SLAVE_QSPI_0, SC7280_SLAVE_QUP_0, 217*46bdcac5SOdelu Kukatla SC7280_SLAVE_QUP_1, SC7280_SLAVE_SDCC_1, 218*46bdcac5SOdelu Kukatla SC7280_SLAVE_SDCC_2, SC7280_SLAVE_SDCC_4, 219*46bdcac5SOdelu Kukatla SC7280_SLAVE_SECURITY, SC7280_SLAVE_TCSR, 220*46bdcac5SOdelu Kukatla SC7280_SLAVE_TLMM, SC7280_SLAVE_UFS_MEM_CFG, 221*46bdcac5SOdelu Kukatla SC7280_SLAVE_USB2, SC7280_SLAVE_USB3_0, 222*46bdcac5SOdelu Kukatla SC7280_SLAVE_VENUS_CFG, SC7280_SLAVE_VSENSE_CTRL_CFG, 223*46bdcac5SOdelu Kukatla SC7280_SLAVE_A1NOC_CFG, SC7280_SLAVE_A2NOC_CFG, 224*46bdcac5SOdelu Kukatla SC7280_SLAVE_CNOC_MNOC_CFG, SC7280_SLAVE_SNOC_CFG }, 225*46bdcac5SOdelu Kukatla }; 226*46bdcac5SOdelu Kukatla 227*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_qdss_dap = { 228*46bdcac5SOdelu Kukatla .name = "xm_qdss_dap", 229*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_QDSS_DAP, 230*46bdcac5SOdelu Kukatla .channels = 1, 231*46bdcac5SOdelu Kukatla .buswidth = 8, 232*46bdcac5SOdelu Kukatla .num_links = 45, 233*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_AHB2PHY_SOUTH, SC7280_SLAVE_AHB2PHY_NORTH, 234*46bdcac5SOdelu Kukatla SC7280_SLAVE_CAMERA_CFG, SC7280_SLAVE_CLK_CTL, 235*46bdcac5SOdelu Kukatla SC7280_SLAVE_CDSP_CFG, SC7280_SLAVE_RBCPR_CX_CFG, 236*46bdcac5SOdelu Kukatla SC7280_SLAVE_RBCPR_MX_CFG, SC7280_SLAVE_CRYPTO_0_CFG, 237*46bdcac5SOdelu Kukatla SC7280_SLAVE_CX_RDPM, SC7280_SLAVE_DCC_CFG, 238*46bdcac5SOdelu Kukatla SC7280_SLAVE_DISPLAY_CFG, SC7280_SLAVE_GFX3D_CFG, 239*46bdcac5SOdelu Kukatla SC7280_SLAVE_HWKM, SC7280_SLAVE_IMEM_CFG, 240*46bdcac5SOdelu Kukatla SC7280_SLAVE_IPA_CFG, SC7280_SLAVE_IPC_ROUTER_CFG, 241*46bdcac5SOdelu Kukatla SC7280_SLAVE_LPASS, SC7280_SLAVE_CNOC_MSS, 242*46bdcac5SOdelu Kukatla SC7280_SLAVE_MX_RDPM, SC7280_SLAVE_PCIE_0_CFG, 243*46bdcac5SOdelu Kukatla SC7280_SLAVE_PCIE_1_CFG, SC7280_SLAVE_PDM, 244*46bdcac5SOdelu Kukatla SC7280_SLAVE_PIMEM_CFG, SC7280_SLAVE_PKA_WRAPPER_CFG, 245*46bdcac5SOdelu Kukatla SC7280_SLAVE_PMU_WRAPPER_CFG, SC7280_SLAVE_QDSS_CFG, 246*46bdcac5SOdelu Kukatla SC7280_SLAVE_QSPI_0, SC7280_SLAVE_QUP_0, 247*46bdcac5SOdelu Kukatla SC7280_SLAVE_QUP_1, SC7280_SLAVE_SDCC_1, 248*46bdcac5SOdelu Kukatla SC7280_SLAVE_SDCC_2, SC7280_SLAVE_SDCC_4, 249*46bdcac5SOdelu Kukatla SC7280_SLAVE_SECURITY, SC7280_SLAVE_TCSR, 250*46bdcac5SOdelu Kukatla SC7280_SLAVE_TLMM, SC7280_SLAVE_UFS_MEM_CFG, 251*46bdcac5SOdelu Kukatla SC7280_SLAVE_USB2, SC7280_SLAVE_USB3_0, 252*46bdcac5SOdelu Kukatla SC7280_SLAVE_VENUS_CFG, SC7280_SLAVE_VSENSE_CTRL_CFG, 253*46bdcac5SOdelu Kukatla SC7280_SLAVE_A1NOC_CFG, SC7280_SLAVE_A2NOC_CFG, 254*46bdcac5SOdelu Kukatla SC7280_SLAVE_CNOC2_CNOC3, SC7280_SLAVE_CNOC_MNOC_CFG, 255*46bdcac5SOdelu Kukatla SC7280_SLAVE_SNOC_CFG }, 256*46bdcac5SOdelu Kukatla }; 257*46bdcac5SOdelu Kukatla 258*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_cnoc2_cnoc3 = { 259*46bdcac5SOdelu Kukatla .name = "qnm_cnoc2_cnoc3", 260*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC2_CNOC3, 261*46bdcac5SOdelu Kukatla .channels = 1, 262*46bdcac5SOdelu Kukatla .buswidth = 8, 263*46bdcac5SOdelu Kukatla .num_links = 9, 264*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_AOSS, SC7280_SLAVE_APPSS, 265*46bdcac5SOdelu Kukatla SC7280_SLAVE_CNOC_A2NOC, SC7280_SLAVE_DDRSS_CFG, 266*46bdcac5SOdelu Kukatla SC7280_SLAVE_BOOT_IMEM, SC7280_SLAVE_IMEM, 267*46bdcac5SOdelu Kukatla SC7280_SLAVE_PIMEM, SC7280_SLAVE_QDSS_STM, 268*46bdcac5SOdelu Kukatla SC7280_SLAVE_TCU }, 269*46bdcac5SOdelu Kukatla }; 270*46bdcac5SOdelu Kukatla 271*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_gemnoc_cnoc = { 272*46bdcac5SOdelu Kukatla .name = "qnm_gemnoc_cnoc", 273*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GEM_NOC_CNOC, 274*46bdcac5SOdelu Kukatla .channels = 1, 275*46bdcac5SOdelu Kukatla .buswidth = 16, 276*46bdcac5SOdelu Kukatla .num_links = 9, 277*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_AOSS, SC7280_SLAVE_APPSS, 278*46bdcac5SOdelu Kukatla SC7280_SLAVE_CNOC3_CNOC2, SC7280_SLAVE_DDRSS_CFG, 279*46bdcac5SOdelu Kukatla SC7280_SLAVE_BOOT_IMEM, SC7280_SLAVE_IMEM, 280*46bdcac5SOdelu Kukatla SC7280_SLAVE_PIMEM, SC7280_SLAVE_QDSS_STM, 281*46bdcac5SOdelu Kukatla SC7280_SLAVE_TCU }, 282*46bdcac5SOdelu Kukatla }; 283*46bdcac5SOdelu Kukatla 284*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_gemnoc_pcie = { 285*46bdcac5SOdelu Kukatla .name = "qnm_gemnoc_pcie", 286*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GEM_NOC_PCIE_SNOC, 287*46bdcac5SOdelu Kukatla .channels = 1, 288*46bdcac5SOdelu Kukatla .buswidth = 8, 289*46bdcac5SOdelu Kukatla .num_links = 2, 290*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_PCIE_0, SC7280_SLAVE_PCIE_1 }, 291*46bdcac5SOdelu Kukatla }; 292*46bdcac5SOdelu Kukatla 293*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_cnoc_dc_noc = { 294*46bdcac5SOdelu Kukatla .name = "qnm_cnoc_dc_noc", 295*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC_DC_NOC, 296*46bdcac5SOdelu Kukatla .channels = 1, 297*46bdcac5SOdelu Kukatla .buswidth = 4, 298*46bdcac5SOdelu Kukatla .num_links = 2, 299*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_LLCC_CFG, SC7280_SLAVE_GEM_NOC_CFG }, 300*46bdcac5SOdelu Kukatla }; 301*46bdcac5SOdelu Kukatla 302*46bdcac5SOdelu Kukatla static struct qcom_icc_node alm_gpu_tcu = { 303*46bdcac5SOdelu Kukatla .name = "alm_gpu_tcu", 304*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GPU_TCU, 305*46bdcac5SOdelu Kukatla .channels = 1, 306*46bdcac5SOdelu Kukatla .buswidth = 8, 307*46bdcac5SOdelu Kukatla .num_links = 2, 308*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 309*46bdcac5SOdelu Kukatla }; 310*46bdcac5SOdelu Kukatla 311*46bdcac5SOdelu Kukatla static struct qcom_icc_node alm_sys_tcu = { 312*46bdcac5SOdelu Kukatla .name = "alm_sys_tcu", 313*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SYS_TCU, 314*46bdcac5SOdelu Kukatla .channels = 1, 315*46bdcac5SOdelu Kukatla .buswidth = 8, 316*46bdcac5SOdelu Kukatla .num_links = 2, 317*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 318*46bdcac5SOdelu Kukatla }; 319*46bdcac5SOdelu Kukatla 320*46bdcac5SOdelu Kukatla static struct qcom_icc_node chm_apps = { 321*46bdcac5SOdelu Kukatla .name = "chm_apps", 322*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_APPSS_PROC, 323*46bdcac5SOdelu Kukatla .channels = 1, 324*46bdcac5SOdelu Kukatla .buswidth = 32, 325*46bdcac5SOdelu Kukatla .num_links = 3, 326*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC, 327*46bdcac5SOdelu Kukatla SC7280_SLAVE_MEM_NOC_PCIE_SNOC }, 328*46bdcac5SOdelu Kukatla }; 329*46bdcac5SOdelu Kukatla 330*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_cmpnoc = { 331*46bdcac5SOdelu Kukatla .name = "qnm_cmpnoc", 332*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_COMPUTE_NOC, 333*46bdcac5SOdelu Kukatla .channels = 2, 334*46bdcac5SOdelu Kukatla .buswidth = 32, 335*46bdcac5SOdelu Kukatla .num_links = 2, 336*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 337*46bdcac5SOdelu Kukatla }; 338*46bdcac5SOdelu Kukatla 339*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_gemnoc_cfg = { 340*46bdcac5SOdelu Kukatla .name = "qnm_gemnoc_cfg", 341*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GEM_NOC_CFG, 342*46bdcac5SOdelu Kukatla .channels = 1, 343*46bdcac5SOdelu Kukatla .buswidth = 4, 344*46bdcac5SOdelu Kukatla .num_links = 5, 345*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MSS_PROC_MS_MPU_CFG, SC7280_SLAVE_MCDMA_MS_MPU_CFG, 346*46bdcac5SOdelu Kukatla SC7280_SLAVE_SERVICE_GEM_NOC_1, SC7280_SLAVE_SERVICE_GEM_NOC_2, 347*46bdcac5SOdelu Kukatla SC7280_SLAVE_SERVICE_GEM_NOC }, 348*46bdcac5SOdelu Kukatla }; 349*46bdcac5SOdelu Kukatla 350*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_gpu = { 351*46bdcac5SOdelu Kukatla .name = "qnm_gpu", 352*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GFX3D, 353*46bdcac5SOdelu Kukatla .channels = 2, 354*46bdcac5SOdelu Kukatla .buswidth = 32, 355*46bdcac5SOdelu Kukatla .num_links = 2, 356*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 357*46bdcac5SOdelu Kukatla }; 358*46bdcac5SOdelu Kukatla 359*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_mnoc_hf = { 360*46bdcac5SOdelu Kukatla .name = "qnm_mnoc_hf", 361*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_MNOC_HF_MEM_NOC, 362*46bdcac5SOdelu Kukatla .channels = 2, 363*46bdcac5SOdelu Kukatla .buswidth = 32, 364*46bdcac5SOdelu Kukatla .num_links = 1, 365*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_LLCC }, 366*46bdcac5SOdelu Kukatla }; 367*46bdcac5SOdelu Kukatla 368*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_mnoc_sf = { 369*46bdcac5SOdelu Kukatla .name = "qnm_mnoc_sf", 370*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_MNOC_SF_MEM_NOC, 371*46bdcac5SOdelu Kukatla .channels = 1, 372*46bdcac5SOdelu Kukatla .buswidth = 32, 373*46bdcac5SOdelu Kukatla .num_links = 2, 374*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 375*46bdcac5SOdelu Kukatla }; 376*46bdcac5SOdelu Kukatla 377*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_pcie = { 378*46bdcac5SOdelu Kukatla .name = "qnm_pcie", 379*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_ANOC_PCIE_GEM_NOC, 380*46bdcac5SOdelu Kukatla .channels = 1, 381*46bdcac5SOdelu Kukatla .buswidth = 16, 382*46bdcac5SOdelu Kukatla .num_links = 2, 383*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC }, 384*46bdcac5SOdelu Kukatla }; 385*46bdcac5SOdelu Kukatla 386*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_snoc_gc = { 387*46bdcac5SOdelu Kukatla .name = "qnm_snoc_gc", 388*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SNOC_GC_MEM_NOC, 389*46bdcac5SOdelu Kukatla .channels = 1, 390*46bdcac5SOdelu Kukatla .buswidth = 8, 391*46bdcac5SOdelu Kukatla .num_links = 1, 392*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_LLCC }, 393*46bdcac5SOdelu Kukatla }; 394*46bdcac5SOdelu Kukatla 395*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_snoc_sf = { 396*46bdcac5SOdelu Kukatla .name = "qnm_snoc_sf", 397*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SNOC_SF_MEM_NOC, 398*46bdcac5SOdelu Kukatla .channels = 1, 399*46bdcac5SOdelu Kukatla .buswidth = 16, 400*46bdcac5SOdelu Kukatla .num_links = 3, 401*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_GEM_NOC_CNOC, SC7280_SLAVE_LLCC, 402*46bdcac5SOdelu Kukatla SC7280_SLAVE_MEM_NOC_PCIE_SNOC }, 403*46bdcac5SOdelu Kukatla }; 404*46bdcac5SOdelu Kukatla 405*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_config_noc = { 406*46bdcac5SOdelu Kukatla .name = "qhm_config_noc", 407*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC_LPASS_AG_NOC, 408*46bdcac5SOdelu Kukatla .channels = 1, 409*46bdcac5SOdelu Kukatla .buswidth = 4, 410*46bdcac5SOdelu Kukatla .num_links = 6, 411*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_LPASS_CORE_CFG, SC7280_SLAVE_LPASS_LPI_CFG, 412*46bdcac5SOdelu Kukatla SC7280_SLAVE_LPASS_MPU_CFG, SC7280_SLAVE_LPASS_TOP_CFG, 413*46bdcac5SOdelu Kukatla SC7280_SLAVE_SERVICES_LPASS_AML_NOC, SC7280_SLAVE_SERVICE_LPASS_AG_NOC }, 414*46bdcac5SOdelu Kukatla }; 415*46bdcac5SOdelu Kukatla 416*46bdcac5SOdelu Kukatla static struct qcom_icc_node llcc_mc = { 417*46bdcac5SOdelu Kukatla .name = "llcc_mc", 418*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_LLCC, 419*46bdcac5SOdelu Kukatla .channels = 2, 420*46bdcac5SOdelu Kukatla .buswidth = 4, 421*46bdcac5SOdelu Kukatla .num_links = 1, 422*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_EBI1 }, 423*46bdcac5SOdelu Kukatla }; 424*46bdcac5SOdelu Kukatla 425*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_mnoc_cfg = { 426*46bdcac5SOdelu Kukatla .name = "qnm_mnoc_cfg", 427*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CNOC_MNOC_CFG, 428*46bdcac5SOdelu Kukatla .channels = 1, 429*46bdcac5SOdelu Kukatla .buswidth = 4, 430*46bdcac5SOdelu Kukatla .num_links = 1, 431*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SERVICE_MNOC }, 432*46bdcac5SOdelu Kukatla }; 433*46bdcac5SOdelu Kukatla 434*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_video0 = { 435*46bdcac5SOdelu Kukatla .name = "qnm_video0", 436*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_VIDEO_P0, 437*46bdcac5SOdelu Kukatla .channels = 1, 438*46bdcac5SOdelu Kukatla .buswidth = 32, 439*46bdcac5SOdelu Kukatla .num_links = 1, 440*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_SF_MEM_NOC }, 441*46bdcac5SOdelu Kukatla }; 442*46bdcac5SOdelu Kukatla 443*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_video_cpu = { 444*46bdcac5SOdelu Kukatla .name = "qnm_video_cpu", 445*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_VIDEO_PROC, 446*46bdcac5SOdelu Kukatla .channels = 1, 447*46bdcac5SOdelu Kukatla .buswidth = 8, 448*46bdcac5SOdelu Kukatla .num_links = 1, 449*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_SF_MEM_NOC }, 450*46bdcac5SOdelu Kukatla }; 451*46bdcac5SOdelu Kukatla 452*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_camnoc_hf = { 453*46bdcac5SOdelu Kukatla .name = "qxm_camnoc_hf", 454*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CAMNOC_HF, 455*46bdcac5SOdelu Kukatla .channels = 2, 456*46bdcac5SOdelu Kukatla .buswidth = 32, 457*46bdcac5SOdelu Kukatla .num_links = 1, 458*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_HF_MEM_NOC }, 459*46bdcac5SOdelu Kukatla }; 460*46bdcac5SOdelu Kukatla 461*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_camnoc_icp = { 462*46bdcac5SOdelu Kukatla .name = "qxm_camnoc_icp", 463*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CAMNOC_ICP, 464*46bdcac5SOdelu Kukatla .channels = 1, 465*46bdcac5SOdelu Kukatla .buswidth = 8, 466*46bdcac5SOdelu Kukatla .num_links = 1, 467*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_SF_MEM_NOC }, 468*46bdcac5SOdelu Kukatla }; 469*46bdcac5SOdelu Kukatla 470*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_camnoc_sf = { 471*46bdcac5SOdelu Kukatla .name = "qxm_camnoc_sf", 472*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CAMNOC_SF, 473*46bdcac5SOdelu Kukatla .channels = 1, 474*46bdcac5SOdelu Kukatla .buswidth = 32, 475*46bdcac5SOdelu Kukatla .num_links = 1, 476*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_SF_MEM_NOC }, 477*46bdcac5SOdelu Kukatla }; 478*46bdcac5SOdelu Kukatla 479*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_mdp0 = { 480*46bdcac5SOdelu Kukatla .name = "qxm_mdp0", 481*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_MDP0, 482*46bdcac5SOdelu Kukatla .channels = 1, 483*46bdcac5SOdelu Kukatla .buswidth = 32, 484*46bdcac5SOdelu Kukatla .num_links = 1, 485*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_MNOC_HF_MEM_NOC }, 486*46bdcac5SOdelu Kukatla }; 487*46bdcac5SOdelu Kukatla 488*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhm_nsp_noc_config = { 489*46bdcac5SOdelu Kukatla .name = "qhm_nsp_noc_config", 490*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CDSP_NOC_CFG, 491*46bdcac5SOdelu Kukatla .channels = 1, 492*46bdcac5SOdelu Kukatla .buswidth = 4, 493*46bdcac5SOdelu Kukatla .num_links = 1, 494*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SERVICE_NSP_NOC }, 495*46bdcac5SOdelu Kukatla }; 496*46bdcac5SOdelu Kukatla 497*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_nsp = { 498*46bdcac5SOdelu Kukatla .name = "qxm_nsp", 499*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_CDSP_PROC, 500*46bdcac5SOdelu Kukatla .channels = 2, 501*46bdcac5SOdelu Kukatla .buswidth = 32, 502*46bdcac5SOdelu Kukatla .num_links = 1, 503*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_CDSP_MEM_NOC }, 504*46bdcac5SOdelu Kukatla }; 505*46bdcac5SOdelu Kukatla 506*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_aggre1_noc = { 507*46bdcac5SOdelu Kukatla .name = "qnm_aggre1_noc", 508*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_A1NOC_SNOC, 509*46bdcac5SOdelu Kukatla .channels = 1, 510*46bdcac5SOdelu Kukatla .buswidth = 16, 511*46bdcac5SOdelu Kukatla .num_links = 1, 512*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SNOC_GEM_NOC_SF }, 513*46bdcac5SOdelu Kukatla }; 514*46bdcac5SOdelu Kukatla 515*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_aggre2_noc = { 516*46bdcac5SOdelu Kukatla .name = "qnm_aggre2_noc", 517*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_A2NOC_SNOC, 518*46bdcac5SOdelu Kukatla .channels = 1, 519*46bdcac5SOdelu Kukatla .buswidth = 16, 520*46bdcac5SOdelu Kukatla .num_links = 1, 521*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SNOC_GEM_NOC_SF }, 522*46bdcac5SOdelu Kukatla }; 523*46bdcac5SOdelu Kukatla 524*46bdcac5SOdelu Kukatla static struct qcom_icc_node qnm_snoc_cfg = { 525*46bdcac5SOdelu Kukatla .name = "qnm_snoc_cfg", 526*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_SNOC_CFG, 527*46bdcac5SOdelu Kukatla .channels = 1, 528*46bdcac5SOdelu Kukatla .buswidth = 4, 529*46bdcac5SOdelu Kukatla .num_links = 1, 530*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SERVICE_SNOC }, 531*46bdcac5SOdelu Kukatla }; 532*46bdcac5SOdelu Kukatla 533*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxm_pimem = { 534*46bdcac5SOdelu Kukatla .name = "qxm_pimem", 535*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_PIMEM, 536*46bdcac5SOdelu Kukatla .channels = 1, 537*46bdcac5SOdelu Kukatla .buswidth = 8, 538*46bdcac5SOdelu Kukatla .num_links = 1, 539*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SNOC_GEM_NOC_GC }, 540*46bdcac5SOdelu Kukatla }; 541*46bdcac5SOdelu Kukatla 542*46bdcac5SOdelu Kukatla static struct qcom_icc_node xm_gic = { 543*46bdcac5SOdelu Kukatla .name = "xm_gic", 544*46bdcac5SOdelu Kukatla .id = SC7280_MASTER_GIC, 545*46bdcac5SOdelu Kukatla .channels = 1, 546*46bdcac5SOdelu Kukatla .buswidth = 8, 547*46bdcac5SOdelu Kukatla .num_links = 1, 548*46bdcac5SOdelu Kukatla .links = { SC7280_SLAVE_SNOC_GEM_NOC_GC }, 549*46bdcac5SOdelu Kukatla }; 550*46bdcac5SOdelu Kukatla 551*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_a1noc_snoc = { 552*46bdcac5SOdelu Kukatla .name = "qns_a1noc_snoc", 553*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_A1NOC_SNOC, 554*46bdcac5SOdelu Kukatla .channels = 1, 555*46bdcac5SOdelu Kukatla .buswidth = 16, 556*46bdcac5SOdelu Kukatla .num_links = 1, 557*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_A1NOC_SNOC }, 558*46bdcac5SOdelu Kukatla }; 559*46bdcac5SOdelu Kukatla 560*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_aggre1_noc = { 561*46bdcac5SOdelu Kukatla .name = "srvc_aggre1_noc", 562*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_A1NOC, 563*46bdcac5SOdelu Kukatla .channels = 1, 564*46bdcac5SOdelu Kukatla .buswidth = 4, 565*46bdcac5SOdelu Kukatla .num_links = 0, 566*46bdcac5SOdelu Kukatla }; 567*46bdcac5SOdelu Kukatla 568*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_a2noc_snoc = { 569*46bdcac5SOdelu Kukatla .name = "qns_a2noc_snoc", 570*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_A2NOC_SNOC, 571*46bdcac5SOdelu Kukatla .channels = 1, 572*46bdcac5SOdelu Kukatla .buswidth = 16, 573*46bdcac5SOdelu Kukatla .num_links = 1, 574*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_A2NOC_SNOC }, 575*46bdcac5SOdelu Kukatla }; 576*46bdcac5SOdelu Kukatla 577*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_pcie_mem_noc = { 578*46bdcac5SOdelu Kukatla .name = "qns_pcie_mem_noc", 579*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_ANOC_PCIE_GEM_NOC, 580*46bdcac5SOdelu Kukatla .channels = 1, 581*46bdcac5SOdelu Kukatla .buswidth = 16, 582*46bdcac5SOdelu Kukatla .num_links = 1, 583*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_ANOC_PCIE_GEM_NOC }, 584*46bdcac5SOdelu Kukatla }; 585*46bdcac5SOdelu Kukatla 586*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_aggre2_noc = { 587*46bdcac5SOdelu Kukatla .name = "srvc_aggre2_noc", 588*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_A2NOC, 589*46bdcac5SOdelu Kukatla .channels = 1, 590*46bdcac5SOdelu Kukatla .buswidth = 4, 591*46bdcac5SOdelu Kukatla .num_links = 0, 592*46bdcac5SOdelu Kukatla }; 593*46bdcac5SOdelu Kukatla 594*46bdcac5SOdelu Kukatla static struct qcom_icc_node qup0_core_slave = { 595*46bdcac5SOdelu Kukatla .name = "qup0_core_slave", 596*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QUP_CORE_0, 597*46bdcac5SOdelu Kukatla .channels = 1, 598*46bdcac5SOdelu Kukatla .buswidth = 4, 599*46bdcac5SOdelu Kukatla .num_links = 0, 600*46bdcac5SOdelu Kukatla }; 601*46bdcac5SOdelu Kukatla 602*46bdcac5SOdelu Kukatla static struct qcom_icc_node qup1_core_slave = { 603*46bdcac5SOdelu Kukatla .name = "qup1_core_slave", 604*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QUP_CORE_1, 605*46bdcac5SOdelu Kukatla .channels = 1, 606*46bdcac5SOdelu Kukatla .buswidth = 4, 607*46bdcac5SOdelu Kukatla .num_links = 0, 608*46bdcac5SOdelu Kukatla }; 609*46bdcac5SOdelu Kukatla 610*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_ahb2phy0 = { 611*46bdcac5SOdelu Kukatla .name = "qhs_ahb2phy0", 612*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_AHB2PHY_SOUTH, 613*46bdcac5SOdelu Kukatla .channels = 1, 614*46bdcac5SOdelu Kukatla .buswidth = 4, 615*46bdcac5SOdelu Kukatla .num_links = 0, 616*46bdcac5SOdelu Kukatla }; 617*46bdcac5SOdelu Kukatla 618*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_ahb2phy1 = { 619*46bdcac5SOdelu Kukatla .name = "qhs_ahb2phy1", 620*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_AHB2PHY_NORTH, 621*46bdcac5SOdelu Kukatla .channels = 1, 622*46bdcac5SOdelu Kukatla .buswidth = 4, 623*46bdcac5SOdelu Kukatla .num_links = 0, 624*46bdcac5SOdelu Kukatla }; 625*46bdcac5SOdelu Kukatla 626*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_camera_cfg = { 627*46bdcac5SOdelu Kukatla .name = "qhs_camera_cfg", 628*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CAMERA_CFG, 629*46bdcac5SOdelu Kukatla .channels = 1, 630*46bdcac5SOdelu Kukatla .buswidth = 4, 631*46bdcac5SOdelu Kukatla .num_links = 0, 632*46bdcac5SOdelu Kukatla }; 633*46bdcac5SOdelu Kukatla 634*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_clk_ctl = { 635*46bdcac5SOdelu Kukatla .name = "qhs_clk_ctl", 636*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CLK_CTL, 637*46bdcac5SOdelu Kukatla .channels = 1, 638*46bdcac5SOdelu Kukatla .buswidth = 4, 639*46bdcac5SOdelu Kukatla .num_links = 0, 640*46bdcac5SOdelu Kukatla }; 641*46bdcac5SOdelu Kukatla 642*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_compute_cfg = { 643*46bdcac5SOdelu Kukatla .name = "qhs_compute_cfg", 644*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CDSP_CFG, 645*46bdcac5SOdelu Kukatla .channels = 1, 646*46bdcac5SOdelu Kukatla .buswidth = 4, 647*46bdcac5SOdelu Kukatla .num_links = 1, 648*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CDSP_NOC_CFG }, 649*46bdcac5SOdelu Kukatla }; 650*46bdcac5SOdelu Kukatla 651*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_cpr_cx = { 652*46bdcac5SOdelu Kukatla .name = "qhs_cpr_cx", 653*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_RBCPR_CX_CFG, 654*46bdcac5SOdelu Kukatla .channels = 1, 655*46bdcac5SOdelu Kukatla .buswidth = 4, 656*46bdcac5SOdelu Kukatla .num_links = 0, 657*46bdcac5SOdelu Kukatla }; 658*46bdcac5SOdelu Kukatla 659*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_cpr_mx = { 660*46bdcac5SOdelu Kukatla .name = "qhs_cpr_mx", 661*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_RBCPR_MX_CFG, 662*46bdcac5SOdelu Kukatla .channels = 1, 663*46bdcac5SOdelu Kukatla .buswidth = 4, 664*46bdcac5SOdelu Kukatla .num_links = 0, 665*46bdcac5SOdelu Kukatla }; 666*46bdcac5SOdelu Kukatla 667*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_crypto0_cfg = { 668*46bdcac5SOdelu Kukatla .name = "qhs_crypto0_cfg", 669*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CRYPTO_0_CFG, 670*46bdcac5SOdelu Kukatla .channels = 1, 671*46bdcac5SOdelu Kukatla .buswidth = 4, 672*46bdcac5SOdelu Kukatla .num_links = 0, 673*46bdcac5SOdelu Kukatla }; 674*46bdcac5SOdelu Kukatla 675*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_cx_rdpm = { 676*46bdcac5SOdelu Kukatla .name = "qhs_cx_rdpm", 677*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CX_RDPM, 678*46bdcac5SOdelu Kukatla .channels = 1, 679*46bdcac5SOdelu Kukatla .buswidth = 4, 680*46bdcac5SOdelu Kukatla .num_links = 0, 681*46bdcac5SOdelu Kukatla }; 682*46bdcac5SOdelu Kukatla 683*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_dcc_cfg = { 684*46bdcac5SOdelu Kukatla .name = "qhs_dcc_cfg", 685*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_DCC_CFG, 686*46bdcac5SOdelu Kukatla .channels = 1, 687*46bdcac5SOdelu Kukatla .buswidth = 4, 688*46bdcac5SOdelu Kukatla .num_links = 0, 689*46bdcac5SOdelu Kukatla }; 690*46bdcac5SOdelu Kukatla 691*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_display_cfg = { 692*46bdcac5SOdelu Kukatla .name = "qhs_display_cfg", 693*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_DISPLAY_CFG, 694*46bdcac5SOdelu Kukatla .channels = 1, 695*46bdcac5SOdelu Kukatla .buswidth = 4, 696*46bdcac5SOdelu Kukatla .num_links = 0, 697*46bdcac5SOdelu Kukatla }; 698*46bdcac5SOdelu Kukatla 699*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_gpuss_cfg = { 700*46bdcac5SOdelu Kukatla .name = "qhs_gpuss_cfg", 701*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_GFX3D_CFG, 702*46bdcac5SOdelu Kukatla .channels = 1, 703*46bdcac5SOdelu Kukatla .buswidth = 8, 704*46bdcac5SOdelu Kukatla .num_links = 0, 705*46bdcac5SOdelu Kukatla }; 706*46bdcac5SOdelu Kukatla 707*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_hwkm = { 708*46bdcac5SOdelu Kukatla .name = "qhs_hwkm", 709*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_HWKM, 710*46bdcac5SOdelu Kukatla .channels = 1, 711*46bdcac5SOdelu Kukatla .buswidth = 4, 712*46bdcac5SOdelu Kukatla .num_links = 0, 713*46bdcac5SOdelu Kukatla }; 714*46bdcac5SOdelu Kukatla 715*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_imem_cfg = { 716*46bdcac5SOdelu Kukatla .name = "qhs_imem_cfg", 717*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_IMEM_CFG, 718*46bdcac5SOdelu Kukatla .channels = 1, 719*46bdcac5SOdelu Kukatla .buswidth = 4, 720*46bdcac5SOdelu Kukatla .num_links = 0, 721*46bdcac5SOdelu Kukatla }; 722*46bdcac5SOdelu Kukatla 723*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_ipa = { 724*46bdcac5SOdelu Kukatla .name = "qhs_ipa", 725*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_IPA_CFG, 726*46bdcac5SOdelu Kukatla .channels = 1, 727*46bdcac5SOdelu Kukatla .buswidth = 4, 728*46bdcac5SOdelu Kukatla .num_links = 0, 729*46bdcac5SOdelu Kukatla }; 730*46bdcac5SOdelu Kukatla 731*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_ipc_router = { 732*46bdcac5SOdelu Kukatla .name = "qhs_ipc_router", 733*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_IPC_ROUTER_CFG, 734*46bdcac5SOdelu Kukatla .channels = 1, 735*46bdcac5SOdelu Kukatla .buswidth = 4, 736*46bdcac5SOdelu Kukatla .num_links = 0, 737*46bdcac5SOdelu Kukatla }; 738*46bdcac5SOdelu Kukatla 739*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_lpass_cfg = { 740*46bdcac5SOdelu Kukatla .name = "qhs_lpass_cfg", 741*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LPASS, 742*46bdcac5SOdelu Kukatla .channels = 1, 743*46bdcac5SOdelu Kukatla .buswidth = 4, 744*46bdcac5SOdelu Kukatla .num_links = 1, 745*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC_LPASS_AG_NOC }, 746*46bdcac5SOdelu Kukatla }; 747*46bdcac5SOdelu Kukatla 748*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_mss_cfg = { 749*46bdcac5SOdelu Kukatla .name = "qhs_mss_cfg", 750*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CNOC_MSS, 751*46bdcac5SOdelu Kukatla .channels = 1, 752*46bdcac5SOdelu Kukatla .buswidth = 4, 753*46bdcac5SOdelu Kukatla .num_links = 0, 754*46bdcac5SOdelu Kukatla }; 755*46bdcac5SOdelu Kukatla 756*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_mx_rdpm = { 757*46bdcac5SOdelu Kukatla .name = "qhs_mx_rdpm", 758*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MX_RDPM, 759*46bdcac5SOdelu Kukatla .channels = 1, 760*46bdcac5SOdelu Kukatla .buswidth = 4, 761*46bdcac5SOdelu Kukatla .num_links = 0, 762*46bdcac5SOdelu Kukatla }; 763*46bdcac5SOdelu Kukatla 764*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pcie0_cfg = { 765*46bdcac5SOdelu Kukatla .name = "qhs_pcie0_cfg", 766*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PCIE_0_CFG, 767*46bdcac5SOdelu Kukatla .channels = 1, 768*46bdcac5SOdelu Kukatla .buswidth = 4, 769*46bdcac5SOdelu Kukatla .num_links = 0, 770*46bdcac5SOdelu Kukatla }; 771*46bdcac5SOdelu Kukatla 772*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pcie1_cfg = { 773*46bdcac5SOdelu Kukatla .name = "qhs_pcie1_cfg", 774*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PCIE_1_CFG, 775*46bdcac5SOdelu Kukatla .channels = 1, 776*46bdcac5SOdelu Kukatla .buswidth = 4, 777*46bdcac5SOdelu Kukatla .num_links = 0, 778*46bdcac5SOdelu Kukatla }; 779*46bdcac5SOdelu Kukatla 780*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pdm = { 781*46bdcac5SOdelu Kukatla .name = "qhs_pdm", 782*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PDM, 783*46bdcac5SOdelu Kukatla .channels = 1, 784*46bdcac5SOdelu Kukatla .buswidth = 4, 785*46bdcac5SOdelu Kukatla .num_links = 0, 786*46bdcac5SOdelu Kukatla }; 787*46bdcac5SOdelu Kukatla 788*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pimem_cfg = { 789*46bdcac5SOdelu Kukatla .name = "qhs_pimem_cfg", 790*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PIMEM_CFG, 791*46bdcac5SOdelu Kukatla .channels = 1, 792*46bdcac5SOdelu Kukatla .buswidth = 4, 793*46bdcac5SOdelu Kukatla .num_links = 0, 794*46bdcac5SOdelu Kukatla }; 795*46bdcac5SOdelu Kukatla 796*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pka_wrapper_cfg = { 797*46bdcac5SOdelu Kukatla .name = "qhs_pka_wrapper_cfg", 798*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PKA_WRAPPER_CFG, 799*46bdcac5SOdelu Kukatla .channels = 1, 800*46bdcac5SOdelu Kukatla .buswidth = 4, 801*46bdcac5SOdelu Kukatla .num_links = 0, 802*46bdcac5SOdelu Kukatla }; 803*46bdcac5SOdelu Kukatla 804*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_pmu_wrapper_cfg = { 805*46bdcac5SOdelu Kukatla .name = "qhs_pmu_wrapper_cfg", 806*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PMU_WRAPPER_CFG, 807*46bdcac5SOdelu Kukatla .channels = 1, 808*46bdcac5SOdelu Kukatla .buswidth = 4, 809*46bdcac5SOdelu Kukatla .num_links = 0, 810*46bdcac5SOdelu Kukatla }; 811*46bdcac5SOdelu Kukatla 812*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_qdss_cfg = { 813*46bdcac5SOdelu Kukatla .name = "qhs_qdss_cfg", 814*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QDSS_CFG, 815*46bdcac5SOdelu Kukatla .channels = 1, 816*46bdcac5SOdelu Kukatla .buswidth = 4, 817*46bdcac5SOdelu Kukatla .num_links = 0, 818*46bdcac5SOdelu Kukatla }; 819*46bdcac5SOdelu Kukatla 820*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_qspi = { 821*46bdcac5SOdelu Kukatla .name = "qhs_qspi", 822*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QSPI_0, 823*46bdcac5SOdelu Kukatla .channels = 1, 824*46bdcac5SOdelu Kukatla .buswidth = 4, 825*46bdcac5SOdelu Kukatla .num_links = 0, 826*46bdcac5SOdelu Kukatla }; 827*46bdcac5SOdelu Kukatla 828*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_qup0 = { 829*46bdcac5SOdelu Kukatla .name = "qhs_qup0", 830*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QUP_0, 831*46bdcac5SOdelu Kukatla .channels = 1, 832*46bdcac5SOdelu Kukatla .buswidth = 4, 833*46bdcac5SOdelu Kukatla .num_links = 0, 834*46bdcac5SOdelu Kukatla }; 835*46bdcac5SOdelu Kukatla 836*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_qup1 = { 837*46bdcac5SOdelu Kukatla .name = "qhs_qup1", 838*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QUP_1, 839*46bdcac5SOdelu Kukatla .channels = 1, 840*46bdcac5SOdelu Kukatla .buswidth = 4, 841*46bdcac5SOdelu Kukatla .num_links = 0, 842*46bdcac5SOdelu Kukatla }; 843*46bdcac5SOdelu Kukatla 844*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_sdc1 = { 845*46bdcac5SOdelu Kukatla .name = "qhs_sdc1", 846*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SDCC_1, 847*46bdcac5SOdelu Kukatla .channels = 1, 848*46bdcac5SOdelu Kukatla .buswidth = 4, 849*46bdcac5SOdelu Kukatla .num_links = 0, 850*46bdcac5SOdelu Kukatla }; 851*46bdcac5SOdelu Kukatla 852*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_sdc2 = { 853*46bdcac5SOdelu Kukatla .name = "qhs_sdc2", 854*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SDCC_2, 855*46bdcac5SOdelu Kukatla .channels = 1, 856*46bdcac5SOdelu Kukatla .buswidth = 4, 857*46bdcac5SOdelu Kukatla .num_links = 0, 858*46bdcac5SOdelu Kukatla }; 859*46bdcac5SOdelu Kukatla 860*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_sdc4 = { 861*46bdcac5SOdelu Kukatla .name = "qhs_sdc4", 862*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SDCC_4, 863*46bdcac5SOdelu Kukatla .channels = 1, 864*46bdcac5SOdelu Kukatla .buswidth = 4, 865*46bdcac5SOdelu Kukatla .num_links = 0, 866*46bdcac5SOdelu Kukatla }; 867*46bdcac5SOdelu Kukatla 868*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_security = { 869*46bdcac5SOdelu Kukatla .name = "qhs_security", 870*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SECURITY, 871*46bdcac5SOdelu Kukatla .channels = 1, 872*46bdcac5SOdelu Kukatla .buswidth = 4, 873*46bdcac5SOdelu Kukatla .num_links = 0, 874*46bdcac5SOdelu Kukatla }; 875*46bdcac5SOdelu Kukatla 876*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_tcsr = { 877*46bdcac5SOdelu Kukatla .name = "qhs_tcsr", 878*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_TCSR, 879*46bdcac5SOdelu Kukatla .channels = 1, 880*46bdcac5SOdelu Kukatla .buswidth = 4, 881*46bdcac5SOdelu Kukatla .num_links = 0, 882*46bdcac5SOdelu Kukatla }; 883*46bdcac5SOdelu Kukatla 884*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_tlmm = { 885*46bdcac5SOdelu Kukatla .name = "qhs_tlmm", 886*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_TLMM, 887*46bdcac5SOdelu Kukatla .channels = 1, 888*46bdcac5SOdelu Kukatla .buswidth = 4, 889*46bdcac5SOdelu Kukatla .num_links = 0, 890*46bdcac5SOdelu Kukatla }; 891*46bdcac5SOdelu Kukatla 892*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_ufs_mem_cfg = { 893*46bdcac5SOdelu Kukatla .name = "qhs_ufs_mem_cfg", 894*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_UFS_MEM_CFG, 895*46bdcac5SOdelu Kukatla .channels = 1, 896*46bdcac5SOdelu Kukatla .buswidth = 4, 897*46bdcac5SOdelu Kukatla .num_links = 0, 898*46bdcac5SOdelu Kukatla }; 899*46bdcac5SOdelu Kukatla 900*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_usb2 = { 901*46bdcac5SOdelu Kukatla .name = "qhs_usb2", 902*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_USB2, 903*46bdcac5SOdelu Kukatla .channels = 1, 904*46bdcac5SOdelu Kukatla .buswidth = 4, 905*46bdcac5SOdelu Kukatla .num_links = 0, 906*46bdcac5SOdelu Kukatla }; 907*46bdcac5SOdelu Kukatla 908*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_usb3_0 = { 909*46bdcac5SOdelu Kukatla .name = "qhs_usb3_0", 910*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_USB3_0, 911*46bdcac5SOdelu Kukatla .channels = 1, 912*46bdcac5SOdelu Kukatla .buswidth = 4, 913*46bdcac5SOdelu Kukatla .num_links = 0, 914*46bdcac5SOdelu Kukatla }; 915*46bdcac5SOdelu Kukatla 916*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_venus_cfg = { 917*46bdcac5SOdelu Kukatla .name = "qhs_venus_cfg", 918*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_VENUS_CFG, 919*46bdcac5SOdelu Kukatla .channels = 1, 920*46bdcac5SOdelu Kukatla .buswidth = 4, 921*46bdcac5SOdelu Kukatla .num_links = 0, 922*46bdcac5SOdelu Kukatla }; 923*46bdcac5SOdelu Kukatla 924*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_vsense_ctrl_cfg = { 925*46bdcac5SOdelu Kukatla .name = "qhs_vsense_ctrl_cfg", 926*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_VSENSE_CTRL_CFG, 927*46bdcac5SOdelu Kukatla .channels = 1, 928*46bdcac5SOdelu Kukatla .buswidth = 4, 929*46bdcac5SOdelu Kukatla .num_links = 0, 930*46bdcac5SOdelu Kukatla }; 931*46bdcac5SOdelu Kukatla 932*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_a1_noc_cfg = { 933*46bdcac5SOdelu Kukatla .name = "qns_a1_noc_cfg", 934*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_A1NOC_CFG, 935*46bdcac5SOdelu Kukatla .channels = 1, 936*46bdcac5SOdelu Kukatla .buswidth = 4, 937*46bdcac5SOdelu Kukatla .num_links = 1, 938*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_A1NOC_CFG }, 939*46bdcac5SOdelu Kukatla }; 940*46bdcac5SOdelu Kukatla 941*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_a2_noc_cfg = { 942*46bdcac5SOdelu Kukatla .name = "qns_a2_noc_cfg", 943*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_A2NOC_CFG, 944*46bdcac5SOdelu Kukatla .channels = 1, 945*46bdcac5SOdelu Kukatla .buswidth = 4, 946*46bdcac5SOdelu Kukatla .num_links = 1, 947*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_A2NOC_CFG }, 948*46bdcac5SOdelu Kukatla }; 949*46bdcac5SOdelu Kukatla 950*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_cnoc2_cnoc3 = { 951*46bdcac5SOdelu Kukatla .name = "qns_cnoc2_cnoc3", 952*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CNOC2_CNOC3, 953*46bdcac5SOdelu Kukatla .channels = 1, 954*46bdcac5SOdelu Kukatla .buswidth = 8, 955*46bdcac5SOdelu Kukatla .num_links = 1, 956*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC2_CNOC3 }, 957*46bdcac5SOdelu Kukatla }; 958*46bdcac5SOdelu Kukatla 959*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_mnoc_cfg = { 960*46bdcac5SOdelu Kukatla .name = "qns_mnoc_cfg", 961*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CNOC_MNOC_CFG, 962*46bdcac5SOdelu Kukatla .channels = 1, 963*46bdcac5SOdelu Kukatla .buswidth = 4, 964*46bdcac5SOdelu Kukatla .num_links = 1, 965*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC_MNOC_CFG }, 966*46bdcac5SOdelu Kukatla }; 967*46bdcac5SOdelu Kukatla 968*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_snoc_cfg = { 969*46bdcac5SOdelu Kukatla .name = "qns_snoc_cfg", 970*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SNOC_CFG, 971*46bdcac5SOdelu Kukatla .channels = 1, 972*46bdcac5SOdelu Kukatla .buswidth = 4, 973*46bdcac5SOdelu Kukatla .num_links = 1, 974*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_SNOC_CFG }, 975*46bdcac5SOdelu Kukatla }; 976*46bdcac5SOdelu Kukatla 977*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_aoss = { 978*46bdcac5SOdelu Kukatla .name = "qhs_aoss", 979*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_AOSS, 980*46bdcac5SOdelu Kukatla .channels = 1, 981*46bdcac5SOdelu Kukatla .buswidth = 4, 982*46bdcac5SOdelu Kukatla .num_links = 0, 983*46bdcac5SOdelu Kukatla }; 984*46bdcac5SOdelu Kukatla 985*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_apss = { 986*46bdcac5SOdelu Kukatla .name = "qhs_apss", 987*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_APPSS, 988*46bdcac5SOdelu Kukatla .channels = 1, 989*46bdcac5SOdelu Kukatla .buswidth = 8, 990*46bdcac5SOdelu Kukatla .num_links = 0, 991*46bdcac5SOdelu Kukatla }; 992*46bdcac5SOdelu Kukatla 993*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_cnoc3_cnoc2 = { 994*46bdcac5SOdelu Kukatla .name = "qns_cnoc3_cnoc2", 995*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CNOC3_CNOC2, 996*46bdcac5SOdelu Kukatla .channels = 1, 997*46bdcac5SOdelu Kukatla .buswidth = 8, 998*46bdcac5SOdelu Kukatla .num_links = 1, 999*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC3_CNOC2 }, 1000*46bdcac5SOdelu Kukatla }; 1001*46bdcac5SOdelu Kukatla 1002*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_cnoc_a2noc = { 1003*46bdcac5SOdelu Kukatla .name = "qns_cnoc_a2noc", 1004*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CNOC_A2NOC, 1005*46bdcac5SOdelu Kukatla .channels = 1, 1006*46bdcac5SOdelu Kukatla .buswidth = 8, 1007*46bdcac5SOdelu Kukatla .num_links = 1, 1008*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC_A2NOC }, 1009*46bdcac5SOdelu Kukatla }; 1010*46bdcac5SOdelu Kukatla 1011*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_ddrss_cfg = { 1012*46bdcac5SOdelu Kukatla .name = "qns_ddrss_cfg", 1013*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_DDRSS_CFG, 1014*46bdcac5SOdelu Kukatla .channels = 1, 1015*46bdcac5SOdelu Kukatla .buswidth = 4, 1016*46bdcac5SOdelu Kukatla .num_links = 1, 1017*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_CNOC_DC_NOC }, 1018*46bdcac5SOdelu Kukatla }; 1019*46bdcac5SOdelu Kukatla 1020*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxs_boot_imem = { 1021*46bdcac5SOdelu Kukatla .name = "qxs_boot_imem", 1022*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_BOOT_IMEM, 1023*46bdcac5SOdelu Kukatla .channels = 1, 1024*46bdcac5SOdelu Kukatla .buswidth = 8, 1025*46bdcac5SOdelu Kukatla .num_links = 0, 1026*46bdcac5SOdelu Kukatla }; 1027*46bdcac5SOdelu Kukatla 1028*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxs_imem = { 1029*46bdcac5SOdelu Kukatla .name = "qxs_imem", 1030*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_IMEM, 1031*46bdcac5SOdelu Kukatla .channels = 1, 1032*46bdcac5SOdelu Kukatla .buswidth = 8, 1033*46bdcac5SOdelu Kukatla .num_links = 0, 1034*46bdcac5SOdelu Kukatla }; 1035*46bdcac5SOdelu Kukatla 1036*46bdcac5SOdelu Kukatla static struct qcom_icc_node qxs_pimem = { 1037*46bdcac5SOdelu Kukatla .name = "qxs_pimem", 1038*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PIMEM, 1039*46bdcac5SOdelu Kukatla .channels = 1, 1040*46bdcac5SOdelu Kukatla .buswidth = 8, 1041*46bdcac5SOdelu Kukatla .num_links = 0, 1042*46bdcac5SOdelu Kukatla }; 1043*46bdcac5SOdelu Kukatla 1044*46bdcac5SOdelu Kukatla static struct qcom_icc_node xs_pcie_0 = { 1045*46bdcac5SOdelu Kukatla .name = "xs_pcie_0", 1046*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PCIE_0, 1047*46bdcac5SOdelu Kukatla .channels = 1, 1048*46bdcac5SOdelu Kukatla .buswidth = 8, 1049*46bdcac5SOdelu Kukatla .num_links = 0, 1050*46bdcac5SOdelu Kukatla }; 1051*46bdcac5SOdelu Kukatla 1052*46bdcac5SOdelu Kukatla static struct qcom_icc_node xs_pcie_1 = { 1053*46bdcac5SOdelu Kukatla .name = "xs_pcie_1", 1054*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_PCIE_1, 1055*46bdcac5SOdelu Kukatla .channels = 1, 1056*46bdcac5SOdelu Kukatla .buswidth = 8, 1057*46bdcac5SOdelu Kukatla .num_links = 0, 1058*46bdcac5SOdelu Kukatla }; 1059*46bdcac5SOdelu Kukatla 1060*46bdcac5SOdelu Kukatla static struct qcom_icc_node xs_qdss_stm = { 1061*46bdcac5SOdelu Kukatla .name = "xs_qdss_stm", 1062*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_QDSS_STM, 1063*46bdcac5SOdelu Kukatla .channels = 1, 1064*46bdcac5SOdelu Kukatla .buswidth = 4, 1065*46bdcac5SOdelu Kukatla .num_links = 0, 1066*46bdcac5SOdelu Kukatla }; 1067*46bdcac5SOdelu Kukatla 1068*46bdcac5SOdelu Kukatla static struct qcom_icc_node xs_sys_tcu_cfg = { 1069*46bdcac5SOdelu Kukatla .name = "xs_sys_tcu_cfg", 1070*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_TCU, 1071*46bdcac5SOdelu Kukatla .channels = 1, 1072*46bdcac5SOdelu Kukatla .buswidth = 8, 1073*46bdcac5SOdelu Kukatla .num_links = 0, 1074*46bdcac5SOdelu Kukatla }; 1075*46bdcac5SOdelu Kukatla 1076*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_llcc = { 1077*46bdcac5SOdelu Kukatla .name = "qhs_llcc", 1078*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LLCC_CFG, 1079*46bdcac5SOdelu Kukatla .channels = 1, 1080*46bdcac5SOdelu Kukatla .buswidth = 4, 1081*46bdcac5SOdelu Kukatla .num_links = 0, 1082*46bdcac5SOdelu Kukatla }; 1083*46bdcac5SOdelu Kukatla 1084*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_gemnoc = { 1085*46bdcac5SOdelu Kukatla .name = "qns_gemnoc", 1086*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_GEM_NOC_CFG, 1087*46bdcac5SOdelu Kukatla .channels = 1, 1088*46bdcac5SOdelu Kukatla .buswidth = 4, 1089*46bdcac5SOdelu Kukatla .num_links = 1, 1090*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_GEM_NOC_CFG }, 1091*46bdcac5SOdelu Kukatla }; 1092*46bdcac5SOdelu Kukatla 1093*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_mdsp_ms_mpu_cfg = { 1094*46bdcac5SOdelu Kukatla .name = "qhs_mdsp_ms_mpu_cfg", 1095*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MSS_PROC_MS_MPU_CFG, 1096*46bdcac5SOdelu Kukatla .channels = 1, 1097*46bdcac5SOdelu Kukatla .buswidth = 4, 1098*46bdcac5SOdelu Kukatla .num_links = 0, 1099*46bdcac5SOdelu Kukatla }; 1100*46bdcac5SOdelu Kukatla 1101*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_modem_ms_mpu_cfg = { 1102*46bdcac5SOdelu Kukatla .name = "qhs_modem_ms_mpu_cfg", 1103*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MCDMA_MS_MPU_CFG, 1104*46bdcac5SOdelu Kukatla .channels = 1, 1105*46bdcac5SOdelu Kukatla .buswidth = 4, 1106*46bdcac5SOdelu Kukatla .num_links = 0, 1107*46bdcac5SOdelu Kukatla }; 1108*46bdcac5SOdelu Kukatla 1109*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_gem_noc_cnoc = { 1110*46bdcac5SOdelu Kukatla .name = "qns_gem_noc_cnoc", 1111*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_GEM_NOC_CNOC, 1112*46bdcac5SOdelu Kukatla .channels = 1, 1113*46bdcac5SOdelu Kukatla .buswidth = 16, 1114*46bdcac5SOdelu Kukatla .num_links = 1, 1115*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_GEM_NOC_CNOC }, 1116*46bdcac5SOdelu Kukatla }; 1117*46bdcac5SOdelu Kukatla 1118*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_llcc = { 1119*46bdcac5SOdelu Kukatla .name = "qns_llcc", 1120*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LLCC, 1121*46bdcac5SOdelu Kukatla .channels = 2, 1122*46bdcac5SOdelu Kukatla .buswidth = 16, 1123*46bdcac5SOdelu Kukatla .num_links = 1, 1124*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_LLCC }, 1125*46bdcac5SOdelu Kukatla }; 1126*46bdcac5SOdelu Kukatla 1127*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_pcie = { 1128*46bdcac5SOdelu Kukatla .name = "qns_pcie", 1129*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MEM_NOC_PCIE_SNOC, 1130*46bdcac5SOdelu Kukatla .channels = 1, 1131*46bdcac5SOdelu Kukatla .buswidth = 8, 1132*46bdcac5SOdelu Kukatla .num_links = 1, 1133*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_GEM_NOC_PCIE_SNOC }, 1134*46bdcac5SOdelu Kukatla }; 1135*46bdcac5SOdelu Kukatla 1136*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_even_gemnoc = { 1137*46bdcac5SOdelu Kukatla .name = "srvc_even_gemnoc", 1138*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_GEM_NOC_1, 1139*46bdcac5SOdelu Kukatla .channels = 1, 1140*46bdcac5SOdelu Kukatla .buswidth = 4, 1141*46bdcac5SOdelu Kukatla .num_links = 0, 1142*46bdcac5SOdelu Kukatla }; 1143*46bdcac5SOdelu Kukatla 1144*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_odd_gemnoc = { 1145*46bdcac5SOdelu Kukatla .name = "srvc_odd_gemnoc", 1146*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_GEM_NOC_2, 1147*46bdcac5SOdelu Kukatla .channels = 1, 1148*46bdcac5SOdelu Kukatla .buswidth = 4, 1149*46bdcac5SOdelu Kukatla .num_links = 0, 1150*46bdcac5SOdelu Kukatla }; 1151*46bdcac5SOdelu Kukatla 1152*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_sys_gemnoc = { 1153*46bdcac5SOdelu Kukatla .name = "srvc_sys_gemnoc", 1154*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_GEM_NOC, 1155*46bdcac5SOdelu Kukatla .channels = 1, 1156*46bdcac5SOdelu Kukatla .buswidth = 4, 1157*46bdcac5SOdelu Kukatla .num_links = 0, 1158*46bdcac5SOdelu Kukatla }; 1159*46bdcac5SOdelu Kukatla 1160*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_lpass_core = { 1161*46bdcac5SOdelu Kukatla .name = "qhs_lpass_core", 1162*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LPASS_CORE_CFG, 1163*46bdcac5SOdelu Kukatla .channels = 1, 1164*46bdcac5SOdelu Kukatla .buswidth = 4, 1165*46bdcac5SOdelu Kukatla .num_links = 0, 1166*46bdcac5SOdelu Kukatla }; 1167*46bdcac5SOdelu Kukatla 1168*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_lpass_lpi = { 1169*46bdcac5SOdelu Kukatla .name = "qhs_lpass_lpi", 1170*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LPASS_LPI_CFG, 1171*46bdcac5SOdelu Kukatla .channels = 1, 1172*46bdcac5SOdelu Kukatla .buswidth = 4, 1173*46bdcac5SOdelu Kukatla .num_links = 0, 1174*46bdcac5SOdelu Kukatla }; 1175*46bdcac5SOdelu Kukatla 1176*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_lpass_mpu = { 1177*46bdcac5SOdelu Kukatla .name = "qhs_lpass_mpu", 1178*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LPASS_MPU_CFG, 1179*46bdcac5SOdelu Kukatla .channels = 1, 1180*46bdcac5SOdelu Kukatla .buswidth = 4, 1181*46bdcac5SOdelu Kukatla .num_links = 0, 1182*46bdcac5SOdelu Kukatla }; 1183*46bdcac5SOdelu Kukatla 1184*46bdcac5SOdelu Kukatla static struct qcom_icc_node qhs_lpass_top = { 1185*46bdcac5SOdelu Kukatla .name = "qhs_lpass_top", 1186*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_LPASS_TOP_CFG, 1187*46bdcac5SOdelu Kukatla .channels = 1, 1188*46bdcac5SOdelu Kukatla .buswidth = 4, 1189*46bdcac5SOdelu Kukatla .num_links = 0, 1190*46bdcac5SOdelu Kukatla }; 1191*46bdcac5SOdelu Kukatla 1192*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_niu_aml_noc = { 1193*46bdcac5SOdelu Kukatla .name = "srvc_niu_aml_noc", 1194*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICES_LPASS_AML_NOC, 1195*46bdcac5SOdelu Kukatla .channels = 1, 1196*46bdcac5SOdelu Kukatla .buswidth = 4, 1197*46bdcac5SOdelu Kukatla .num_links = 0, 1198*46bdcac5SOdelu Kukatla }; 1199*46bdcac5SOdelu Kukatla 1200*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_niu_lpass_agnoc = { 1201*46bdcac5SOdelu Kukatla .name = "srvc_niu_lpass_agnoc", 1202*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_LPASS_AG_NOC, 1203*46bdcac5SOdelu Kukatla .channels = 1, 1204*46bdcac5SOdelu Kukatla .buswidth = 4, 1205*46bdcac5SOdelu Kukatla .num_links = 0, 1206*46bdcac5SOdelu Kukatla }; 1207*46bdcac5SOdelu Kukatla 1208*46bdcac5SOdelu Kukatla static struct qcom_icc_node ebi = { 1209*46bdcac5SOdelu Kukatla .name = "ebi", 1210*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_EBI1, 1211*46bdcac5SOdelu Kukatla .channels = 2, 1212*46bdcac5SOdelu Kukatla .buswidth = 4, 1213*46bdcac5SOdelu Kukatla .num_links = 0, 1214*46bdcac5SOdelu Kukatla }; 1215*46bdcac5SOdelu Kukatla 1216*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_mem_noc_hf = { 1217*46bdcac5SOdelu Kukatla .name = "qns_mem_noc_hf", 1218*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MNOC_HF_MEM_NOC, 1219*46bdcac5SOdelu Kukatla .channels = 2, 1220*46bdcac5SOdelu Kukatla .buswidth = 32, 1221*46bdcac5SOdelu Kukatla .num_links = 1, 1222*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_MNOC_HF_MEM_NOC }, 1223*46bdcac5SOdelu Kukatla }; 1224*46bdcac5SOdelu Kukatla 1225*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_mem_noc_sf = { 1226*46bdcac5SOdelu Kukatla .name = "qns_mem_noc_sf", 1227*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_MNOC_SF_MEM_NOC, 1228*46bdcac5SOdelu Kukatla .channels = 1, 1229*46bdcac5SOdelu Kukatla .buswidth = 32, 1230*46bdcac5SOdelu Kukatla .num_links = 1, 1231*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_MNOC_SF_MEM_NOC }, 1232*46bdcac5SOdelu Kukatla }; 1233*46bdcac5SOdelu Kukatla 1234*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_mnoc = { 1235*46bdcac5SOdelu Kukatla .name = "srvc_mnoc", 1236*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_MNOC, 1237*46bdcac5SOdelu Kukatla .channels = 1, 1238*46bdcac5SOdelu Kukatla .buswidth = 4, 1239*46bdcac5SOdelu Kukatla .num_links = 0, 1240*46bdcac5SOdelu Kukatla }; 1241*46bdcac5SOdelu Kukatla 1242*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_nsp_gemnoc = { 1243*46bdcac5SOdelu Kukatla .name = "qns_nsp_gemnoc", 1244*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_CDSP_MEM_NOC, 1245*46bdcac5SOdelu Kukatla .channels = 2, 1246*46bdcac5SOdelu Kukatla .buswidth = 32, 1247*46bdcac5SOdelu Kukatla .num_links = 1, 1248*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_COMPUTE_NOC }, 1249*46bdcac5SOdelu Kukatla }; 1250*46bdcac5SOdelu Kukatla 1251*46bdcac5SOdelu Kukatla static struct qcom_icc_node service_nsp_noc = { 1252*46bdcac5SOdelu Kukatla .name = "service_nsp_noc", 1253*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_NSP_NOC, 1254*46bdcac5SOdelu Kukatla .channels = 1, 1255*46bdcac5SOdelu Kukatla .buswidth = 4, 1256*46bdcac5SOdelu Kukatla .num_links = 0, 1257*46bdcac5SOdelu Kukatla }; 1258*46bdcac5SOdelu Kukatla 1259*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_gemnoc_gc = { 1260*46bdcac5SOdelu Kukatla .name = "qns_gemnoc_gc", 1261*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SNOC_GEM_NOC_GC, 1262*46bdcac5SOdelu Kukatla .channels = 1, 1263*46bdcac5SOdelu Kukatla .buswidth = 8, 1264*46bdcac5SOdelu Kukatla .num_links = 1, 1265*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_SNOC_GC_MEM_NOC }, 1266*46bdcac5SOdelu Kukatla }; 1267*46bdcac5SOdelu Kukatla 1268*46bdcac5SOdelu Kukatla static struct qcom_icc_node qns_gemnoc_sf = { 1269*46bdcac5SOdelu Kukatla .name = "qns_gemnoc_sf", 1270*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SNOC_GEM_NOC_SF, 1271*46bdcac5SOdelu Kukatla .channels = 1, 1272*46bdcac5SOdelu Kukatla .buswidth = 16, 1273*46bdcac5SOdelu Kukatla .num_links = 1, 1274*46bdcac5SOdelu Kukatla .links = { SC7280_MASTER_SNOC_SF_MEM_NOC }, 1275*46bdcac5SOdelu Kukatla }; 1276*46bdcac5SOdelu Kukatla 1277*46bdcac5SOdelu Kukatla static struct qcom_icc_node srvc_snoc = { 1278*46bdcac5SOdelu Kukatla .name = "srvc_snoc", 1279*46bdcac5SOdelu Kukatla .id = SC7280_SLAVE_SERVICE_SNOC, 1280*46bdcac5SOdelu Kukatla .channels = 1, 1281*46bdcac5SOdelu Kukatla .buswidth = 4, 1282*46bdcac5SOdelu Kukatla .num_links = 0, 1283*46bdcac5SOdelu Kukatla }; 1284*46bdcac5SOdelu Kukatla 1285*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_acv = { 1286*46bdcac5SOdelu Kukatla .name = "ACV", 1287*46bdcac5SOdelu Kukatla .num_nodes = 1, 1288*46bdcac5SOdelu Kukatla .nodes = { &ebi }, 1289*46bdcac5SOdelu Kukatla }; 1290*46bdcac5SOdelu Kukatla 1291*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_ce0 = { 1292*46bdcac5SOdelu Kukatla .name = "CE0", 1293*46bdcac5SOdelu Kukatla .num_nodes = 1, 1294*46bdcac5SOdelu Kukatla .nodes = { &qxm_crypto }, 1295*46bdcac5SOdelu Kukatla }; 1296*46bdcac5SOdelu Kukatla 1297*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_cn0 = { 1298*46bdcac5SOdelu Kukatla .name = "CN0", 1299*46bdcac5SOdelu Kukatla .keepalive = true, 1300*46bdcac5SOdelu Kukatla .num_nodes = 2, 1301*46bdcac5SOdelu Kukatla .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie }, 1302*46bdcac5SOdelu Kukatla }; 1303*46bdcac5SOdelu Kukatla 1304*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_cn1 = { 1305*46bdcac5SOdelu Kukatla .name = "CN1", 1306*46bdcac5SOdelu Kukatla .num_nodes = 47, 1307*46bdcac5SOdelu Kukatla .nodes = { &qnm_cnoc3_cnoc2, &xm_qdss_dap, 1308*46bdcac5SOdelu Kukatla &qhs_ahb2phy0, &qhs_ahb2phy1, 1309*46bdcac5SOdelu Kukatla &qhs_camera_cfg, &qhs_clk_ctl, 1310*46bdcac5SOdelu Kukatla &qhs_compute_cfg, &qhs_cpr_cx, 1311*46bdcac5SOdelu Kukatla &qhs_cpr_mx, &qhs_crypto0_cfg, 1312*46bdcac5SOdelu Kukatla &qhs_cx_rdpm, &qhs_dcc_cfg, 1313*46bdcac5SOdelu Kukatla &qhs_display_cfg, &qhs_gpuss_cfg, 1314*46bdcac5SOdelu Kukatla &qhs_hwkm, &qhs_imem_cfg, 1315*46bdcac5SOdelu Kukatla &qhs_ipa, &qhs_ipc_router, 1316*46bdcac5SOdelu Kukatla &qhs_mss_cfg, &qhs_mx_rdpm, 1317*46bdcac5SOdelu Kukatla &qhs_pcie0_cfg, &qhs_pcie1_cfg, 1318*46bdcac5SOdelu Kukatla &qhs_pimem_cfg, &qhs_pka_wrapper_cfg, 1319*46bdcac5SOdelu Kukatla &qhs_pmu_wrapper_cfg, &qhs_qdss_cfg, 1320*46bdcac5SOdelu Kukatla &qhs_qup0, &qhs_qup1, 1321*46bdcac5SOdelu Kukatla &qhs_security, &qhs_tcsr, 1322*46bdcac5SOdelu Kukatla &qhs_tlmm, &qhs_ufs_mem_cfg, &qhs_usb2, 1323*46bdcac5SOdelu Kukatla &qhs_usb3_0, &qhs_venus_cfg, 1324*46bdcac5SOdelu Kukatla &qhs_vsense_ctrl_cfg, &qns_a1_noc_cfg, 1325*46bdcac5SOdelu Kukatla &qns_a2_noc_cfg, &qns_cnoc2_cnoc3, 1326*46bdcac5SOdelu Kukatla &qns_mnoc_cfg, &qns_snoc_cfg, 1327*46bdcac5SOdelu Kukatla &qnm_cnoc2_cnoc3, &qhs_aoss, 1328*46bdcac5SOdelu Kukatla &qhs_apss, &qns_cnoc3_cnoc2, 1329*46bdcac5SOdelu Kukatla &qns_cnoc_a2noc, &qns_ddrss_cfg }, 1330*46bdcac5SOdelu Kukatla }; 1331*46bdcac5SOdelu Kukatla 1332*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_cn2 = { 1333*46bdcac5SOdelu Kukatla .name = "CN2", 1334*46bdcac5SOdelu Kukatla .num_nodes = 6, 1335*46bdcac5SOdelu Kukatla .nodes = { &qhs_lpass_cfg, &qhs_pdm, 1336*46bdcac5SOdelu Kukatla &qhs_qspi, &qhs_sdc1, 1337*46bdcac5SOdelu Kukatla &qhs_sdc2, &qhs_sdc4 }, 1338*46bdcac5SOdelu Kukatla }; 1339*46bdcac5SOdelu Kukatla 1340*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_co0 = { 1341*46bdcac5SOdelu Kukatla .name = "CO0", 1342*46bdcac5SOdelu Kukatla .num_nodes = 1, 1343*46bdcac5SOdelu Kukatla .nodes = { &qns_nsp_gemnoc }, 1344*46bdcac5SOdelu Kukatla }; 1345*46bdcac5SOdelu Kukatla 1346*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_co3 = { 1347*46bdcac5SOdelu Kukatla .name = "CO3", 1348*46bdcac5SOdelu Kukatla .num_nodes = 1, 1349*46bdcac5SOdelu Kukatla .nodes = { &qxm_nsp }, 1350*46bdcac5SOdelu Kukatla }; 1351*46bdcac5SOdelu Kukatla 1352*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_mc0 = { 1353*46bdcac5SOdelu Kukatla .name = "MC0", 1354*46bdcac5SOdelu Kukatla .keepalive = true, 1355*46bdcac5SOdelu Kukatla .num_nodes = 1, 1356*46bdcac5SOdelu Kukatla .nodes = { &ebi }, 1357*46bdcac5SOdelu Kukatla }; 1358*46bdcac5SOdelu Kukatla 1359*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_mm0 = { 1360*46bdcac5SOdelu Kukatla .name = "MM0", 1361*46bdcac5SOdelu Kukatla .keepalive = true, 1362*46bdcac5SOdelu Kukatla .num_nodes = 1, 1363*46bdcac5SOdelu Kukatla .nodes = { &qns_mem_noc_hf }, 1364*46bdcac5SOdelu Kukatla }; 1365*46bdcac5SOdelu Kukatla 1366*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_mm1 = { 1367*46bdcac5SOdelu Kukatla .name = "MM1", 1368*46bdcac5SOdelu Kukatla .num_nodes = 2, 1369*46bdcac5SOdelu Kukatla .nodes = { &qxm_camnoc_hf, &qxm_mdp0 }, 1370*46bdcac5SOdelu Kukatla }; 1371*46bdcac5SOdelu Kukatla 1372*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_mm4 = { 1373*46bdcac5SOdelu Kukatla .name = "MM4", 1374*46bdcac5SOdelu Kukatla .num_nodes = 1, 1375*46bdcac5SOdelu Kukatla .nodes = { &qns_mem_noc_sf }, 1376*46bdcac5SOdelu Kukatla }; 1377*46bdcac5SOdelu Kukatla 1378*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_mm5 = { 1379*46bdcac5SOdelu Kukatla .name = "MM5", 1380*46bdcac5SOdelu Kukatla .num_nodes = 3, 1381*46bdcac5SOdelu Kukatla .nodes = { &qnm_video0, &qxm_camnoc_icp, 1382*46bdcac5SOdelu Kukatla &qxm_camnoc_sf }, 1383*46bdcac5SOdelu Kukatla }; 1384*46bdcac5SOdelu Kukatla 1385*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_qup0 = { 1386*46bdcac5SOdelu Kukatla .name = "QUP0", 1387*46bdcac5SOdelu Kukatla .vote_scale = 1, 1388*46bdcac5SOdelu Kukatla .num_nodes = 1, 1389*46bdcac5SOdelu Kukatla .nodes = { &qup0_core_slave }, 1390*46bdcac5SOdelu Kukatla }; 1391*46bdcac5SOdelu Kukatla 1392*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_qup1 = { 1393*46bdcac5SOdelu Kukatla .name = "QUP1", 1394*46bdcac5SOdelu Kukatla .vote_scale = 1, 1395*46bdcac5SOdelu Kukatla .num_nodes = 1, 1396*46bdcac5SOdelu Kukatla .nodes = { &qup1_core_slave }, 1397*46bdcac5SOdelu Kukatla }; 1398*46bdcac5SOdelu Kukatla 1399*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sh0 = { 1400*46bdcac5SOdelu Kukatla .name = "SH0", 1401*46bdcac5SOdelu Kukatla .keepalive = true, 1402*46bdcac5SOdelu Kukatla .num_nodes = 1, 1403*46bdcac5SOdelu Kukatla .nodes = { &qns_llcc }, 1404*46bdcac5SOdelu Kukatla }; 1405*46bdcac5SOdelu Kukatla 1406*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sh2 = { 1407*46bdcac5SOdelu Kukatla .name = "SH2", 1408*46bdcac5SOdelu Kukatla .num_nodes = 2, 1409*46bdcac5SOdelu Kukatla .nodes = { &alm_gpu_tcu, &alm_sys_tcu }, 1410*46bdcac5SOdelu Kukatla }; 1411*46bdcac5SOdelu Kukatla 1412*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sh3 = { 1413*46bdcac5SOdelu Kukatla .name = "SH3", 1414*46bdcac5SOdelu Kukatla .num_nodes = 1, 1415*46bdcac5SOdelu Kukatla .nodes = { &qnm_cmpnoc }, 1416*46bdcac5SOdelu Kukatla }; 1417*46bdcac5SOdelu Kukatla 1418*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sh4 = { 1419*46bdcac5SOdelu Kukatla .name = "SH4", 1420*46bdcac5SOdelu Kukatla .num_nodes = 1, 1421*46bdcac5SOdelu Kukatla .nodes = { &chm_apps }, 1422*46bdcac5SOdelu Kukatla }; 1423*46bdcac5SOdelu Kukatla 1424*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn0 = { 1425*46bdcac5SOdelu Kukatla .name = "SN0", 1426*46bdcac5SOdelu Kukatla .keepalive = true, 1427*46bdcac5SOdelu Kukatla .num_nodes = 1, 1428*46bdcac5SOdelu Kukatla .nodes = { &qns_gemnoc_sf }, 1429*46bdcac5SOdelu Kukatla }; 1430*46bdcac5SOdelu Kukatla 1431*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn2 = { 1432*46bdcac5SOdelu Kukatla .name = "SN2", 1433*46bdcac5SOdelu Kukatla .num_nodes = 1, 1434*46bdcac5SOdelu Kukatla .nodes = { &qns_gemnoc_gc }, 1435*46bdcac5SOdelu Kukatla }; 1436*46bdcac5SOdelu Kukatla 1437*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn3 = { 1438*46bdcac5SOdelu Kukatla .name = "SN3", 1439*46bdcac5SOdelu Kukatla .num_nodes = 1, 1440*46bdcac5SOdelu Kukatla .nodes = { &qxs_pimem }, 1441*46bdcac5SOdelu Kukatla }; 1442*46bdcac5SOdelu Kukatla 1443*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn4 = { 1444*46bdcac5SOdelu Kukatla .name = "SN4", 1445*46bdcac5SOdelu Kukatla .num_nodes = 1, 1446*46bdcac5SOdelu Kukatla .nodes = { &xs_qdss_stm }, 1447*46bdcac5SOdelu Kukatla }; 1448*46bdcac5SOdelu Kukatla 1449*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn5 = { 1450*46bdcac5SOdelu Kukatla .name = "SN5", 1451*46bdcac5SOdelu Kukatla .num_nodes = 1, 1452*46bdcac5SOdelu Kukatla .nodes = { &xm_pcie3_0 }, 1453*46bdcac5SOdelu Kukatla }; 1454*46bdcac5SOdelu Kukatla 1455*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn6 = { 1456*46bdcac5SOdelu Kukatla .name = "SN6", 1457*46bdcac5SOdelu Kukatla .num_nodes = 1, 1458*46bdcac5SOdelu Kukatla .nodes = { &xm_pcie3_1 }, 1459*46bdcac5SOdelu Kukatla }; 1460*46bdcac5SOdelu Kukatla 1461*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn7 = { 1462*46bdcac5SOdelu Kukatla .name = "SN7", 1463*46bdcac5SOdelu Kukatla .num_nodes = 1, 1464*46bdcac5SOdelu Kukatla .nodes = { &qnm_aggre1_noc }, 1465*46bdcac5SOdelu Kukatla }; 1466*46bdcac5SOdelu Kukatla 1467*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn8 = { 1468*46bdcac5SOdelu Kukatla .name = "SN8", 1469*46bdcac5SOdelu Kukatla .num_nodes = 1, 1470*46bdcac5SOdelu Kukatla .nodes = { &qnm_aggre2_noc }, 1471*46bdcac5SOdelu Kukatla }; 1472*46bdcac5SOdelu Kukatla 1473*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm bcm_sn14 = { 1474*46bdcac5SOdelu Kukatla .name = "SN14", 1475*46bdcac5SOdelu Kukatla .num_nodes = 1, 1476*46bdcac5SOdelu Kukatla .nodes = { &qns_pcie_mem_noc }, 1477*46bdcac5SOdelu Kukatla }; 1478*46bdcac5SOdelu Kukatla 1479*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 1480*46bdcac5SOdelu Kukatla &bcm_sn5, 1481*46bdcac5SOdelu Kukatla &bcm_sn6, 1482*46bdcac5SOdelu Kukatla &bcm_sn14, 1483*46bdcac5SOdelu Kukatla }; 1484*46bdcac5SOdelu Kukatla 1485*46bdcac5SOdelu Kukatla static struct qcom_icc_node *aggre1_noc_nodes[] = { 1486*46bdcac5SOdelu Kukatla [MASTER_QSPI_0] = &qhm_qspi, 1487*46bdcac5SOdelu Kukatla [MASTER_QUP_0] = &qhm_qup0, 1488*46bdcac5SOdelu Kukatla [MASTER_QUP_1] = &qhm_qup1, 1489*46bdcac5SOdelu Kukatla [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg, 1490*46bdcac5SOdelu Kukatla [MASTER_PCIE_0] = &xm_pcie3_0, 1491*46bdcac5SOdelu Kukatla [MASTER_PCIE_1] = &xm_pcie3_1, 1492*46bdcac5SOdelu Kukatla [MASTER_SDCC_1] = &xm_sdc1, 1493*46bdcac5SOdelu Kukatla [MASTER_SDCC_2] = &xm_sdc2, 1494*46bdcac5SOdelu Kukatla [MASTER_SDCC_4] = &xm_sdc4, 1495*46bdcac5SOdelu Kukatla [MASTER_UFS_MEM] = &xm_ufs_mem, 1496*46bdcac5SOdelu Kukatla [MASTER_USB2] = &xm_usb2, 1497*46bdcac5SOdelu Kukatla [MASTER_USB3_0] = &xm_usb3_0, 1498*46bdcac5SOdelu Kukatla [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 1499*46bdcac5SOdelu Kukatla [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc, 1500*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 1501*46bdcac5SOdelu Kukatla }; 1502*46bdcac5SOdelu Kukatla 1503*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_aggre1_noc = { 1504*46bdcac5SOdelu Kukatla .nodes = aggre1_noc_nodes, 1505*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1506*46bdcac5SOdelu Kukatla .bcms = aggre1_noc_bcms, 1507*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1508*46bdcac5SOdelu Kukatla }; 1509*46bdcac5SOdelu Kukatla 1510*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 1511*46bdcac5SOdelu Kukatla &bcm_ce0, 1512*46bdcac5SOdelu Kukatla }; 1513*46bdcac5SOdelu Kukatla 1514*46bdcac5SOdelu Kukatla static struct qcom_icc_node *aggre2_noc_nodes[] = { 1515*46bdcac5SOdelu Kukatla [MASTER_QDSS_BAM] = &qhm_qdss_bam, 1516*46bdcac5SOdelu Kukatla [MASTER_A2NOC_CFG] = &qnm_a2noc_cfg, 1517*46bdcac5SOdelu Kukatla [MASTER_CNOC_A2NOC] = &qnm_cnoc_datapath, 1518*46bdcac5SOdelu Kukatla [MASTER_CRYPTO] = &qxm_crypto, 1519*46bdcac5SOdelu Kukatla [MASTER_IPA] = &qxm_ipa, 1520*46bdcac5SOdelu Kukatla [MASTER_QDSS_ETR] = &xm_qdss_etr, 1521*46bdcac5SOdelu Kukatla [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc, 1522*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 1523*46bdcac5SOdelu Kukatla }; 1524*46bdcac5SOdelu Kukatla 1525*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_aggre2_noc = { 1526*46bdcac5SOdelu Kukatla .nodes = aggre2_noc_nodes, 1527*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1528*46bdcac5SOdelu Kukatla .bcms = aggre2_noc_bcms, 1529*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1530*46bdcac5SOdelu Kukatla }; 1531*46bdcac5SOdelu Kukatla 1532*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *clk_virt_bcms[] = { 1533*46bdcac5SOdelu Kukatla &bcm_qup0, 1534*46bdcac5SOdelu Kukatla &bcm_qup1, 1535*46bdcac5SOdelu Kukatla }; 1536*46bdcac5SOdelu Kukatla 1537*46bdcac5SOdelu Kukatla static struct qcom_icc_node *clk_virt_nodes[] = { 1538*46bdcac5SOdelu Kukatla [MASTER_QUP_CORE_0] = &qup0_core_master, 1539*46bdcac5SOdelu Kukatla [MASTER_QUP_CORE_1] = &qup1_core_master, 1540*46bdcac5SOdelu Kukatla [SLAVE_QUP_CORE_0] = &qup0_core_slave, 1541*46bdcac5SOdelu Kukatla [SLAVE_QUP_CORE_1] = &qup1_core_slave, 1542*46bdcac5SOdelu Kukatla }; 1543*46bdcac5SOdelu Kukatla 1544*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_clk_virt = { 1545*46bdcac5SOdelu Kukatla .nodes = clk_virt_nodes, 1546*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(clk_virt_nodes), 1547*46bdcac5SOdelu Kukatla .bcms = clk_virt_bcms, 1548*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(clk_virt_bcms), 1549*46bdcac5SOdelu Kukatla }; 1550*46bdcac5SOdelu Kukatla 1551*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *cnoc2_bcms[] = { 1552*46bdcac5SOdelu Kukatla &bcm_cn1, 1553*46bdcac5SOdelu Kukatla &bcm_cn2, 1554*46bdcac5SOdelu Kukatla }; 1555*46bdcac5SOdelu Kukatla 1556*46bdcac5SOdelu Kukatla static struct qcom_icc_node *cnoc2_nodes[] = { 1557*46bdcac5SOdelu Kukatla [MASTER_CNOC3_CNOC2] = &qnm_cnoc3_cnoc2, 1558*46bdcac5SOdelu Kukatla [MASTER_QDSS_DAP] = &xm_qdss_dap, 1559*46bdcac5SOdelu Kukatla [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, 1560*46bdcac5SOdelu Kukatla [SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1, 1561*46bdcac5SOdelu Kukatla [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 1562*46bdcac5SOdelu Kukatla [SLAVE_CLK_CTL] = &qhs_clk_ctl, 1563*46bdcac5SOdelu Kukatla [SLAVE_CDSP_CFG] = &qhs_compute_cfg, 1564*46bdcac5SOdelu Kukatla [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx, 1565*46bdcac5SOdelu Kukatla [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx, 1566*46bdcac5SOdelu Kukatla [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 1567*46bdcac5SOdelu Kukatla [SLAVE_CX_RDPM] = &qhs_cx_rdpm, 1568*46bdcac5SOdelu Kukatla [SLAVE_DCC_CFG] = &qhs_dcc_cfg, 1569*46bdcac5SOdelu Kukatla [SLAVE_DISPLAY_CFG] = &qhs_display_cfg, 1570*46bdcac5SOdelu Kukatla [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg, 1571*46bdcac5SOdelu Kukatla [SLAVE_HWKM] = &qhs_hwkm, 1572*46bdcac5SOdelu Kukatla [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 1573*46bdcac5SOdelu Kukatla [SLAVE_IPA_CFG] = &qhs_ipa, 1574*46bdcac5SOdelu Kukatla [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router, 1575*46bdcac5SOdelu Kukatla [SLAVE_LPASS] = &qhs_lpass_cfg, 1576*46bdcac5SOdelu Kukatla [SLAVE_CNOC_MSS] = &qhs_mss_cfg, 1577*46bdcac5SOdelu Kukatla [SLAVE_MX_RDPM] = &qhs_mx_rdpm, 1578*46bdcac5SOdelu Kukatla [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg, 1579*46bdcac5SOdelu Kukatla [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg, 1580*46bdcac5SOdelu Kukatla [SLAVE_PDM] = &qhs_pdm, 1581*46bdcac5SOdelu Kukatla [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg, 1582*46bdcac5SOdelu Kukatla [SLAVE_PKA_WRAPPER_CFG] = &qhs_pka_wrapper_cfg, 1583*46bdcac5SOdelu Kukatla [SLAVE_PMU_WRAPPER_CFG] = &qhs_pmu_wrapper_cfg, 1584*46bdcac5SOdelu Kukatla [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 1585*46bdcac5SOdelu Kukatla [SLAVE_QSPI_0] = &qhs_qspi, 1586*46bdcac5SOdelu Kukatla [SLAVE_QUP_0] = &qhs_qup0, 1587*46bdcac5SOdelu Kukatla [SLAVE_QUP_1] = &qhs_qup1, 1588*46bdcac5SOdelu Kukatla [SLAVE_SDCC_1] = &qhs_sdc1, 1589*46bdcac5SOdelu Kukatla [SLAVE_SDCC_2] = &qhs_sdc2, 1590*46bdcac5SOdelu Kukatla [SLAVE_SDCC_4] = &qhs_sdc4, 1591*46bdcac5SOdelu Kukatla [SLAVE_SECURITY] = &qhs_security, 1592*46bdcac5SOdelu Kukatla [SLAVE_TCSR] = &qhs_tcsr, 1593*46bdcac5SOdelu Kukatla [SLAVE_TLMM] = &qhs_tlmm, 1594*46bdcac5SOdelu Kukatla [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 1595*46bdcac5SOdelu Kukatla [SLAVE_USB2] = &qhs_usb2, 1596*46bdcac5SOdelu Kukatla [SLAVE_USB3_0] = &qhs_usb3_0, 1597*46bdcac5SOdelu Kukatla [SLAVE_VENUS_CFG] = &qhs_venus_cfg, 1598*46bdcac5SOdelu Kukatla [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg, 1599*46bdcac5SOdelu Kukatla [SLAVE_A1NOC_CFG] = &qns_a1_noc_cfg, 1600*46bdcac5SOdelu Kukatla [SLAVE_A2NOC_CFG] = &qns_a2_noc_cfg, 1601*46bdcac5SOdelu Kukatla [SLAVE_CNOC2_CNOC3] = &qns_cnoc2_cnoc3, 1602*46bdcac5SOdelu Kukatla [SLAVE_CNOC_MNOC_CFG] = &qns_mnoc_cfg, 1603*46bdcac5SOdelu Kukatla [SLAVE_SNOC_CFG] = &qns_snoc_cfg, 1604*46bdcac5SOdelu Kukatla }; 1605*46bdcac5SOdelu Kukatla 1606*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_cnoc2 = { 1607*46bdcac5SOdelu Kukatla .nodes = cnoc2_nodes, 1608*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(cnoc2_nodes), 1609*46bdcac5SOdelu Kukatla .bcms = cnoc2_bcms, 1610*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(cnoc2_bcms), 1611*46bdcac5SOdelu Kukatla }; 1612*46bdcac5SOdelu Kukatla 1613*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *cnoc3_bcms[] = { 1614*46bdcac5SOdelu Kukatla &bcm_cn0, 1615*46bdcac5SOdelu Kukatla &bcm_cn1, 1616*46bdcac5SOdelu Kukatla &bcm_sn3, 1617*46bdcac5SOdelu Kukatla &bcm_sn4, 1618*46bdcac5SOdelu Kukatla }; 1619*46bdcac5SOdelu Kukatla 1620*46bdcac5SOdelu Kukatla static struct qcom_icc_node *cnoc3_nodes[] = { 1621*46bdcac5SOdelu Kukatla [MASTER_CNOC2_CNOC3] = &qnm_cnoc2_cnoc3, 1622*46bdcac5SOdelu Kukatla [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1623*46bdcac5SOdelu Kukatla [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 1624*46bdcac5SOdelu Kukatla [SLAVE_AOSS] = &qhs_aoss, 1625*46bdcac5SOdelu Kukatla [SLAVE_APPSS] = &qhs_apss, 1626*46bdcac5SOdelu Kukatla [SLAVE_CNOC3_CNOC2] = &qns_cnoc3_cnoc2, 1627*46bdcac5SOdelu Kukatla [SLAVE_CNOC_A2NOC] = &qns_cnoc_a2noc, 1628*46bdcac5SOdelu Kukatla [SLAVE_DDRSS_CFG] = &qns_ddrss_cfg, 1629*46bdcac5SOdelu Kukatla [SLAVE_BOOT_IMEM] = &qxs_boot_imem, 1630*46bdcac5SOdelu Kukatla [SLAVE_IMEM] = &qxs_imem, 1631*46bdcac5SOdelu Kukatla [SLAVE_PIMEM] = &qxs_pimem, 1632*46bdcac5SOdelu Kukatla [SLAVE_PCIE_0] = &xs_pcie_0, 1633*46bdcac5SOdelu Kukatla [SLAVE_PCIE_1] = &xs_pcie_1, 1634*46bdcac5SOdelu Kukatla [SLAVE_QDSS_STM] = &xs_qdss_stm, 1635*46bdcac5SOdelu Kukatla [SLAVE_TCU] = &xs_sys_tcu_cfg, 1636*46bdcac5SOdelu Kukatla }; 1637*46bdcac5SOdelu Kukatla 1638*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_cnoc3 = { 1639*46bdcac5SOdelu Kukatla .nodes = cnoc3_nodes, 1640*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(cnoc3_nodes), 1641*46bdcac5SOdelu Kukatla .bcms = cnoc3_bcms, 1642*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(cnoc3_bcms), 1643*46bdcac5SOdelu Kukatla }; 1644*46bdcac5SOdelu Kukatla 1645*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *dc_noc_bcms[] = { 1646*46bdcac5SOdelu Kukatla }; 1647*46bdcac5SOdelu Kukatla 1648*46bdcac5SOdelu Kukatla static struct qcom_icc_node *dc_noc_nodes[] = { 1649*46bdcac5SOdelu Kukatla [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc, 1650*46bdcac5SOdelu Kukatla [SLAVE_LLCC_CFG] = &qhs_llcc, 1651*46bdcac5SOdelu Kukatla [SLAVE_GEM_NOC_CFG] = &qns_gemnoc, 1652*46bdcac5SOdelu Kukatla }; 1653*46bdcac5SOdelu Kukatla 1654*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_dc_noc = { 1655*46bdcac5SOdelu Kukatla .nodes = dc_noc_nodes, 1656*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(dc_noc_nodes), 1657*46bdcac5SOdelu Kukatla .bcms = dc_noc_bcms, 1658*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(dc_noc_bcms), 1659*46bdcac5SOdelu Kukatla }; 1660*46bdcac5SOdelu Kukatla 1661*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *gem_noc_bcms[] = { 1662*46bdcac5SOdelu Kukatla &bcm_sh0, 1663*46bdcac5SOdelu Kukatla &bcm_sh2, 1664*46bdcac5SOdelu Kukatla &bcm_sh3, 1665*46bdcac5SOdelu Kukatla &bcm_sh4, 1666*46bdcac5SOdelu Kukatla }; 1667*46bdcac5SOdelu Kukatla 1668*46bdcac5SOdelu Kukatla static struct qcom_icc_node *gem_noc_nodes[] = { 1669*46bdcac5SOdelu Kukatla [MASTER_GPU_TCU] = &alm_gpu_tcu, 1670*46bdcac5SOdelu Kukatla [MASTER_SYS_TCU] = &alm_sys_tcu, 1671*46bdcac5SOdelu Kukatla [MASTER_APPSS_PROC] = &chm_apps, 1672*46bdcac5SOdelu Kukatla [MASTER_COMPUTE_NOC] = &qnm_cmpnoc, 1673*46bdcac5SOdelu Kukatla [MASTER_GEM_NOC_CFG] = &qnm_gemnoc_cfg, 1674*46bdcac5SOdelu Kukatla [MASTER_GFX3D] = &qnm_gpu, 1675*46bdcac5SOdelu Kukatla [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 1676*46bdcac5SOdelu Kukatla [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 1677*46bdcac5SOdelu Kukatla [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie, 1678*46bdcac5SOdelu Kukatla [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 1679*46bdcac5SOdelu Kukatla [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 1680*46bdcac5SOdelu Kukatla [SLAVE_MSS_PROC_MS_MPU_CFG] = &qhs_mdsp_ms_mpu_cfg, 1681*46bdcac5SOdelu Kukatla [SLAVE_MCDMA_MS_MPU_CFG] = &qhs_modem_ms_mpu_cfg, 1682*46bdcac5SOdelu Kukatla [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc, 1683*46bdcac5SOdelu Kukatla [SLAVE_LLCC] = &qns_llcc, 1684*46bdcac5SOdelu Kukatla [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie, 1685*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_GEM_NOC_1] = &srvc_even_gemnoc, 1686*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_GEM_NOC_2] = &srvc_odd_gemnoc, 1687*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc, 1688*46bdcac5SOdelu Kukatla }; 1689*46bdcac5SOdelu Kukatla 1690*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_gem_noc = { 1691*46bdcac5SOdelu Kukatla .nodes = gem_noc_nodes, 1692*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1693*46bdcac5SOdelu Kukatla .bcms = gem_noc_bcms, 1694*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1695*46bdcac5SOdelu Kukatla }; 1696*46bdcac5SOdelu Kukatla 1697*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *lpass_ag_noc_bcms[] = { 1698*46bdcac5SOdelu Kukatla }; 1699*46bdcac5SOdelu Kukatla 1700*46bdcac5SOdelu Kukatla static struct qcom_icc_node *lpass_ag_noc_nodes[] = { 1701*46bdcac5SOdelu Kukatla [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 1702*46bdcac5SOdelu Kukatla [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, 1703*46bdcac5SOdelu Kukatla [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi, 1704*46bdcac5SOdelu Kukatla [SLAVE_LPASS_MPU_CFG] = &qhs_lpass_mpu, 1705*46bdcac5SOdelu Kukatla [SLAVE_LPASS_TOP_CFG] = &qhs_lpass_top, 1706*46bdcac5SOdelu Kukatla [SLAVE_SERVICES_LPASS_AML_NOC] = &srvc_niu_aml_noc, 1707*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 1708*46bdcac5SOdelu Kukatla }; 1709*46bdcac5SOdelu Kukatla 1710*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_lpass_ag_noc = { 1711*46bdcac5SOdelu Kukatla .nodes = lpass_ag_noc_nodes, 1712*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 1713*46bdcac5SOdelu Kukatla .bcms = lpass_ag_noc_bcms, 1714*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 1715*46bdcac5SOdelu Kukatla }; 1716*46bdcac5SOdelu Kukatla 1717*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *mc_virt_bcms[] = { 1718*46bdcac5SOdelu Kukatla &bcm_acv, 1719*46bdcac5SOdelu Kukatla &bcm_mc0, 1720*46bdcac5SOdelu Kukatla }; 1721*46bdcac5SOdelu Kukatla 1722*46bdcac5SOdelu Kukatla static struct qcom_icc_node *mc_virt_nodes[] = { 1723*46bdcac5SOdelu Kukatla [MASTER_LLCC] = &llcc_mc, 1724*46bdcac5SOdelu Kukatla [SLAVE_EBI1] = &ebi, 1725*46bdcac5SOdelu Kukatla }; 1726*46bdcac5SOdelu Kukatla 1727*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_mc_virt = { 1728*46bdcac5SOdelu Kukatla .nodes = mc_virt_nodes, 1729*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1730*46bdcac5SOdelu Kukatla .bcms = mc_virt_bcms, 1731*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1732*46bdcac5SOdelu Kukatla }; 1733*46bdcac5SOdelu Kukatla 1734*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *mmss_noc_bcms[] = { 1735*46bdcac5SOdelu Kukatla &bcm_mm0, 1736*46bdcac5SOdelu Kukatla &bcm_mm1, 1737*46bdcac5SOdelu Kukatla &bcm_mm4, 1738*46bdcac5SOdelu Kukatla &bcm_mm5, 1739*46bdcac5SOdelu Kukatla }; 1740*46bdcac5SOdelu Kukatla 1741*46bdcac5SOdelu Kukatla static struct qcom_icc_node *mmss_noc_nodes[] = { 1742*46bdcac5SOdelu Kukatla [MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg, 1743*46bdcac5SOdelu Kukatla [MASTER_VIDEO_P0] = &qnm_video0, 1744*46bdcac5SOdelu Kukatla [MASTER_VIDEO_PROC] = &qnm_video_cpu, 1745*46bdcac5SOdelu Kukatla [MASTER_CAMNOC_HF] = &qxm_camnoc_hf, 1746*46bdcac5SOdelu Kukatla [MASTER_CAMNOC_ICP] = &qxm_camnoc_icp, 1747*46bdcac5SOdelu Kukatla [MASTER_CAMNOC_SF] = &qxm_camnoc_sf, 1748*46bdcac5SOdelu Kukatla [MASTER_MDP0] = &qxm_mdp0, 1749*46bdcac5SOdelu Kukatla [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 1750*46bdcac5SOdelu Kukatla [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf, 1751*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 1752*46bdcac5SOdelu Kukatla }; 1753*46bdcac5SOdelu Kukatla 1754*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_mmss_noc = { 1755*46bdcac5SOdelu Kukatla .nodes = mmss_noc_nodes, 1756*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1757*46bdcac5SOdelu Kukatla .bcms = mmss_noc_bcms, 1758*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1759*46bdcac5SOdelu Kukatla }; 1760*46bdcac5SOdelu Kukatla 1761*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *nsp_noc_bcms[] = { 1762*46bdcac5SOdelu Kukatla &bcm_co0, 1763*46bdcac5SOdelu Kukatla &bcm_co3, 1764*46bdcac5SOdelu Kukatla }; 1765*46bdcac5SOdelu Kukatla 1766*46bdcac5SOdelu Kukatla static struct qcom_icc_node *nsp_noc_nodes[] = { 1767*46bdcac5SOdelu Kukatla [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 1768*46bdcac5SOdelu Kukatla [MASTER_CDSP_PROC] = &qxm_nsp, 1769*46bdcac5SOdelu Kukatla [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 1770*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 1771*46bdcac5SOdelu Kukatla }; 1772*46bdcac5SOdelu Kukatla 1773*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_nsp_noc = { 1774*46bdcac5SOdelu Kukatla .nodes = nsp_noc_nodes, 1775*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 1776*46bdcac5SOdelu Kukatla .bcms = nsp_noc_bcms, 1777*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 1778*46bdcac5SOdelu Kukatla }; 1779*46bdcac5SOdelu Kukatla 1780*46bdcac5SOdelu Kukatla static struct qcom_icc_bcm *system_noc_bcms[] = { 1781*46bdcac5SOdelu Kukatla &bcm_sn0, 1782*46bdcac5SOdelu Kukatla &bcm_sn2, 1783*46bdcac5SOdelu Kukatla &bcm_sn7, 1784*46bdcac5SOdelu Kukatla &bcm_sn8, 1785*46bdcac5SOdelu Kukatla }; 1786*46bdcac5SOdelu Kukatla 1787*46bdcac5SOdelu Kukatla static struct qcom_icc_node *system_noc_nodes[] = { 1788*46bdcac5SOdelu Kukatla [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 1789*46bdcac5SOdelu Kukatla [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 1790*46bdcac5SOdelu Kukatla [MASTER_SNOC_CFG] = &qnm_snoc_cfg, 1791*46bdcac5SOdelu Kukatla [MASTER_PIMEM] = &qxm_pimem, 1792*46bdcac5SOdelu Kukatla [MASTER_GIC] = &xm_gic, 1793*46bdcac5SOdelu Kukatla [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc, 1794*46bdcac5SOdelu Kukatla [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf, 1795*46bdcac5SOdelu Kukatla [SLAVE_SERVICE_SNOC] = &srvc_snoc, 1796*46bdcac5SOdelu Kukatla }; 1797*46bdcac5SOdelu Kukatla 1798*46bdcac5SOdelu Kukatla static struct qcom_icc_desc sc7280_system_noc = { 1799*46bdcac5SOdelu Kukatla .nodes = system_noc_nodes, 1800*46bdcac5SOdelu Kukatla .num_nodes = ARRAY_SIZE(system_noc_nodes), 1801*46bdcac5SOdelu Kukatla .bcms = system_noc_bcms, 1802*46bdcac5SOdelu Kukatla .num_bcms = ARRAY_SIZE(system_noc_bcms), 1803*46bdcac5SOdelu Kukatla }; 1804*46bdcac5SOdelu Kukatla 1805*46bdcac5SOdelu Kukatla static int qnoc_probe(struct platform_device *pdev) 1806*46bdcac5SOdelu Kukatla { 1807*46bdcac5SOdelu Kukatla const struct qcom_icc_desc *desc; 1808*46bdcac5SOdelu Kukatla struct icc_onecell_data *data; 1809*46bdcac5SOdelu Kukatla struct icc_provider *provider; 1810*46bdcac5SOdelu Kukatla struct qcom_icc_node **qnodes; 1811*46bdcac5SOdelu Kukatla struct qcom_icc_provider *qp; 1812*46bdcac5SOdelu Kukatla struct icc_node *node; 1813*46bdcac5SOdelu Kukatla size_t num_nodes, i; 1814*46bdcac5SOdelu Kukatla int ret; 1815*46bdcac5SOdelu Kukatla 1816*46bdcac5SOdelu Kukatla desc = device_get_match_data(&pdev->dev); 1817*46bdcac5SOdelu Kukatla if (!desc) 1818*46bdcac5SOdelu Kukatla return -EINVAL; 1819*46bdcac5SOdelu Kukatla 1820*46bdcac5SOdelu Kukatla qnodes = desc->nodes; 1821*46bdcac5SOdelu Kukatla num_nodes = desc->num_nodes; 1822*46bdcac5SOdelu Kukatla 1823*46bdcac5SOdelu Kukatla qp = devm_kzalloc(&pdev->dev, sizeof(*qp), GFP_KERNEL); 1824*46bdcac5SOdelu Kukatla if (!qp) 1825*46bdcac5SOdelu Kukatla return -ENOMEM; 1826*46bdcac5SOdelu Kukatla 1827*46bdcac5SOdelu Kukatla data = devm_kcalloc(&pdev->dev, num_nodes, sizeof(*node), GFP_KERNEL); 1828*46bdcac5SOdelu Kukatla if (!data) 1829*46bdcac5SOdelu Kukatla return -ENOMEM; 1830*46bdcac5SOdelu Kukatla 1831*46bdcac5SOdelu Kukatla provider = &qp->provider; 1832*46bdcac5SOdelu Kukatla provider->dev = &pdev->dev; 1833*46bdcac5SOdelu Kukatla provider->set = qcom_icc_set; 1834*46bdcac5SOdelu Kukatla provider->pre_aggregate = qcom_icc_pre_aggregate; 1835*46bdcac5SOdelu Kukatla provider->aggregate = qcom_icc_aggregate; 1836*46bdcac5SOdelu Kukatla provider->xlate_extended = qcom_icc_xlate_extended; 1837*46bdcac5SOdelu Kukatla INIT_LIST_HEAD(&provider->nodes); 1838*46bdcac5SOdelu Kukatla provider->data = data; 1839*46bdcac5SOdelu Kukatla 1840*46bdcac5SOdelu Kukatla qp->dev = &pdev->dev; 1841*46bdcac5SOdelu Kukatla qp->bcms = desc->bcms; 1842*46bdcac5SOdelu Kukatla qp->num_bcms = desc->num_bcms; 1843*46bdcac5SOdelu Kukatla 1844*46bdcac5SOdelu Kukatla qp->voter = of_bcm_voter_get(qp->dev, NULL); 1845*46bdcac5SOdelu Kukatla if (IS_ERR(qp->voter)) 1846*46bdcac5SOdelu Kukatla return PTR_ERR(qp->voter); 1847*46bdcac5SOdelu Kukatla 1848*46bdcac5SOdelu Kukatla ret = icc_provider_add(provider); 1849*46bdcac5SOdelu Kukatla if (ret) { 1850*46bdcac5SOdelu Kukatla dev_err(&pdev->dev, "error adding interconnect provider\n"); 1851*46bdcac5SOdelu Kukatla return ret; 1852*46bdcac5SOdelu Kukatla } 1853*46bdcac5SOdelu Kukatla 1854*46bdcac5SOdelu Kukatla for (i = 0; i < qp->num_bcms; i++) 1855*46bdcac5SOdelu Kukatla qcom_icc_bcm_init(qp->bcms[i], &pdev->dev); 1856*46bdcac5SOdelu Kukatla 1857*46bdcac5SOdelu Kukatla for (i = 0; i < num_nodes; i++) { 1858*46bdcac5SOdelu Kukatla size_t j; 1859*46bdcac5SOdelu Kukatla 1860*46bdcac5SOdelu Kukatla if (!qnodes[i]) 1861*46bdcac5SOdelu Kukatla continue; 1862*46bdcac5SOdelu Kukatla 1863*46bdcac5SOdelu Kukatla node = icc_node_create(qnodes[i]->id); 1864*46bdcac5SOdelu Kukatla if (IS_ERR(node)) { 1865*46bdcac5SOdelu Kukatla ret = PTR_ERR(node); 1866*46bdcac5SOdelu Kukatla goto err; 1867*46bdcac5SOdelu Kukatla } 1868*46bdcac5SOdelu Kukatla 1869*46bdcac5SOdelu Kukatla node->name = qnodes[i]->name; 1870*46bdcac5SOdelu Kukatla node->data = qnodes[i]; 1871*46bdcac5SOdelu Kukatla icc_node_add(node, provider); 1872*46bdcac5SOdelu Kukatla 1873*46bdcac5SOdelu Kukatla for (j = 0; j < qnodes[i]->num_links; j++) 1874*46bdcac5SOdelu Kukatla icc_link_create(node, qnodes[i]->links[j]); 1875*46bdcac5SOdelu Kukatla 1876*46bdcac5SOdelu Kukatla data->nodes[i] = node; 1877*46bdcac5SOdelu Kukatla } 1878*46bdcac5SOdelu Kukatla data->num_nodes = num_nodes; 1879*46bdcac5SOdelu Kukatla 1880*46bdcac5SOdelu Kukatla platform_set_drvdata(pdev, qp); 1881*46bdcac5SOdelu Kukatla 1882*46bdcac5SOdelu Kukatla return 0; 1883*46bdcac5SOdelu Kukatla err: 1884*46bdcac5SOdelu Kukatla icc_nodes_remove(provider); 1885*46bdcac5SOdelu Kukatla icc_provider_del(provider); 1886*46bdcac5SOdelu Kukatla return ret; 1887*46bdcac5SOdelu Kukatla } 1888*46bdcac5SOdelu Kukatla 1889*46bdcac5SOdelu Kukatla static int qnoc_remove(struct platform_device *pdev) 1890*46bdcac5SOdelu Kukatla { 1891*46bdcac5SOdelu Kukatla struct qcom_icc_provider *qp = platform_get_drvdata(pdev); 1892*46bdcac5SOdelu Kukatla 1893*46bdcac5SOdelu Kukatla icc_nodes_remove(&qp->provider); 1894*46bdcac5SOdelu Kukatla return icc_provider_del(&qp->provider); 1895*46bdcac5SOdelu Kukatla } 1896*46bdcac5SOdelu Kukatla 1897*46bdcac5SOdelu Kukatla static const struct of_device_id qnoc_of_match[] = { 1898*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-aggre1-noc", 1899*46bdcac5SOdelu Kukatla .data = &sc7280_aggre1_noc}, 1900*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-aggre2-noc", 1901*46bdcac5SOdelu Kukatla .data = &sc7280_aggre2_noc}, 1902*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-clk-virt", 1903*46bdcac5SOdelu Kukatla .data = &sc7280_clk_virt}, 1904*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-cnoc2", 1905*46bdcac5SOdelu Kukatla .data = &sc7280_cnoc2}, 1906*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-cnoc3", 1907*46bdcac5SOdelu Kukatla .data = &sc7280_cnoc3}, 1908*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-dc-noc", 1909*46bdcac5SOdelu Kukatla .data = &sc7280_dc_noc}, 1910*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-gem-noc", 1911*46bdcac5SOdelu Kukatla .data = &sc7280_gem_noc}, 1912*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-lpass-ag-noc", 1913*46bdcac5SOdelu Kukatla .data = &sc7280_lpass_ag_noc}, 1914*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-mc-virt", 1915*46bdcac5SOdelu Kukatla .data = &sc7280_mc_virt}, 1916*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-mmss-noc", 1917*46bdcac5SOdelu Kukatla .data = &sc7280_mmss_noc}, 1918*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-nsp-noc", 1919*46bdcac5SOdelu Kukatla .data = &sc7280_nsp_noc}, 1920*46bdcac5SOdelu Kukatla { .compatible = "qcom,sc7280-system-noc", 1921*46bdcac5SOdelu Kukatla .data = &sc7280_system_noc}, 1922*46bdcac5SOdelu Kukatla { } 1923*46bdcac5SOdelu Kukatla }; 1924*46bdcac5SOdelu Kukatla MODULE_DEVICE_TABLE(of, qnoc_of_match); 1925*46bdcac5SOdelu Kukatla 1926*46bdcac5SOdelu Kukatla static struct platform_driver qnoc_driver = { 1927*46bdcac5SOdelu Kukatla .probe = qnoc_probe, 1928*46bdcac5SOdelu Kukatla .remove = qnoc_remove, 1929*46bdcac5SOdelu Kukatla .driver = { 1930*46bdcac5SOdelu Kukatla .name = "qnoc-sc7280", 1931*46bdcac5SOdelu Kukatla .of_match_table = qnoc_of_match, 1932*46bdcac5SOdelu Kukatla .sync_state = icc_sync_state, 1933*46bdcac5SOdelu Kukatla }, 1934*46bdcac5SOdelu Kukatla }; 1935*46bdcac5SOdelu Kukatla module_platform_driver(qnoc_driver); 1936*46bdcac5SOdelu Kukatla 1937*46bdcac5SOdelu Kukatla MODULE_DESCRIPTION("SC7280 NoC driver"); 1938*46bdcac5SOdelu Kukatla MODULE_LICENSE("GPL v2"); 1939