139a53928SRohit Agarwal // SPDX-License-Identifier: GPL-2.0-only 239a53928SRohit Agarwal /* 339a53928SRohit Agarwal * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 439a53928SRohit Agarwal */ 539a53928SRohit Agarwal 639a53928SRohit Agarwal #include <linux/device.h> 739a53928SRohit Agarwal #include <linux/interconnect.h> 839a53928SRohit Agarwal #include <linux/interconnect-provider.h> 9cff66aceSRob Herring #include <linux/mod_devicetable.h> 1039a53928SRohit Agarwal #include <linux/module.h> 11cff66aceSRob Herring #include <linux/platform_device.h> 1239a53928SRohit Agarwal #include <dt-bindings/interconnect/qcom,sdx65.h> 1339a53928SRohit Agarwal 1439a53928SRohit Agarwal #include "bcm-voter.h" 1539a53928SRohit Agarwal #include "icc-rpmh.h" 1639a53928SRohit Agarwal #include "sdx65.h" 1739a53928SRohit Agarwal 18*a5403ec6SKonrad Dybcio static struct qcom_icc_node llcc_mc = { 19*a5403ec6SKonrad Dybcio .name = "llcc_mc", 20*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_LLCC, 21*a5403ec6SKonrad Dybcio .channels = 1, 22*a5403ec6SKonrad Dybcio .buswidth = 4, 23*a5403ec6SKonrad Dybcio .num_links = 1, 24*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_EBI1 }, 25*a5403ec6SKonrad Dybcio }; 26*a5403ec6SKonrad Dybcio 27*a5403ec6SKonrad Dybcio static struct qcom_icc_node acm_tcu = { 28*a5403ec6SKonrad Dybcio .name = "acm_tcu", 29*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_TCU_0, 30*a5403ec6SKonrad Dybcio .channels = 1, 31*a5403ec6SKonrad Dybcio .buswidth = 8, 32*a5403ec6SKonrad Dybcio .num_links = 3, 33*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_LLCC, 34*a5403ec6SKonrad Dybcio SDX65_SLAVE_MEM_NOC_SNOC, 35*a5403ec6SKonrad Dybcio SDX65_SLAVE_MEM_NOC_PCIE_SNOC 36*a5403ec6SKonrad Dybcio }, 37*a5403ec6SKonrad Dybcio }; 38*a5403ec6SKonrad Dybcio 39*a5403ec6SKonrad Dybcio static struct qcom_icc_node qnm_snoc_gc = { 40*a5403ec6SKonrad Dybcio .name = "qnm_snoc_gc", 41*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_SNOC_GC_MEM_NOC, 42*a5403ec6SKonrad Dybcio .channels = 1, 43*a5403ec6SKonrad Dybcio .buswidth = 16, 44*a5403ec6SKonrad Dybcio .num_links = 1, 45*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_LLCC }, 46*a5403ec6SKonrad Dybcio }; 47*a5403ec6SKonrad Dybcio 48*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_apps_rdwr = { 49*a5403ec6SKonrad Dybcio .name = "xm_apps_rdwr", 50*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_APPSS_PROC, 51*a5403ec6SKonrad Dybcio .channels = 1, 52*a5403ec6SKonrad Dybcio .buswidth = 16, 53*a5403ec6SKonrad Dybcio .num_links = 3, 54*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_LLCC, 55*a5403ec6SKonrad Dybcio SDX65_SLAVE_MEM_NOC_SNOC, 56*a5403ec6SKonrad Dybcio SDX65_SLAVE_MEM_NOC_PCIE_SNOC 57*a5403ec6SKonrad Dybcio }, 58*a5403ec6SKonrad Dybcio }; 59*a5403ec6SKonrad Dybcio 60*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_audio = { 61*a5403ec6SKonrad Dybcio .name = "qhm_audio", 62*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_AUDIO, 63*a5403ec6SKonrad Dybcio .channels = 1, 64*a5403ec6SKonrad Dybcio .buswidth = 4, 65*a5403ec6SKonrad Dybcio .num_links = 1, 66*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_ANOC_SNOC }, 67*a5403ec6SKonrad Dybcio }; 68*a5403ec6SKonrad Dybcio 69*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_blsp1 = { 70*a5403ec6SKonrad Dybcio .name = "qhm_blsp1", 71*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_BLSP_1, 72*a5403ec6SKonrad Dybcio .channels = 1, 73*a5403ec6SKonrad Dybcio .buswidth = 4, 74*a5403ec6SKonrad Dybcio .num_links = 1, 75*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_ANOC_SNOC }, 76*a5403ec6SKonrad Dybcio }; 77*a5403ec6SKonrad Dybcio 78*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_qdss_bam = { 79*a5403ec6SKonrad Dybcio .name = "qhm_qdss_bam", 80*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_QDSS_BAM, 81*a5403ec6SKonrad Dybcio .channels = 1, 82*a5403ec6SKonrad Dybcio .buswidth = 4, 83*a5403ec6SKonrad Dybcio .num_links = 26, 84*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 85*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 86*a5403ec6SKonrad Dybcio SDX65_SLAVE_BLSP_1, 87*a5403ec6SKonrad Dybcio SDX65_SLAVE_CLK_CTL, 88*a5403ec6SKonrad Dybcio SDX65_SLAVE_CRYPTO_0_CFG, 89*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_DDRSS, 90*a5403ec6SKonrad Dybcio SDX65_SLAVE_ECC_CFG, 91*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM_CFG, 92*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 93*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_MSS, 94*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_PARF, 95*a5403ec6SKonrad Dybcio SDX65_SLAVE_PDM, 96*a5403ec6SKonrad Dybcio SDX65_SLAVE_PRNG, 97*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_CFG, 98*a5403ec6SKonrad Dybcio SDX65_SLAVE_QPIC, 99*a5403ec6SKonrad Dybcio SDX65_SLAVE_SDCC_1, 100*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_CFG, 101*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_FETCHER, 102*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_VGI_COEX, 103*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCSR, 104*a5403ec6SKonrad Dybcio SDX65_SLAVE_TLMM, 105*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3, 106*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3_PHY_CFG, 107*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_MEM_NOC_GC, 108*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM, 109*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCU 110*a5403ec6SKonrad Dybcio }, 111*a5403ec6SKonrad Dybcio }; 112*a5403ec6SKonrad Dybcio 113*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_qpic = { 114*a5403ec6SKonrad Dybcio .name = "qhm_qpic", 115*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_QPIC, 116*a5403ec6SKonrad Dybcio .channels = 1, 117*a5403ec6SKonrad Dybcio .buswidth = 4, 118*a5403ec6SKonrad Dybcio .num_links = 4, 119*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 120*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 121*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 122*a5403ec6SKonrad Dybcio SDX65_SLAVE_ANOC_SNOC 123*a5403ec6SKonrad Dybcio }, 124*a5403ec6SKonrad Dybcio }; 125*a5403ec6SKonrad Dybcio 126*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_snoc_cfg = { 127*a5403ec6SKonrad Dybcio .name = "qhm_snoc_cfg", 128*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_SNOC_CFG, 129*a5403ec6SKonrad Dybcio .channels = 1, 130*a5403ec6SKonrad Dybcio .buswidth = 4, 131*a5403ec6SKonrad Dybcio .num_links = 1, 132*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_SERVICE_SNOC }, 133*a5403ec6SKonrad Dybcio }; 134*a5403ec6SKonrad Dybcio 135*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhm_spmi_fetcher1 = { 136*a5403ec6SKonrad Dybcio .name = "qhm_spmi_fetcher1", 137*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_SPMI_FETCHER, 138*a5403ec6SKonrad Dybcio .channels = 1, 139*a5403ec6SKonrad Dybcio .buswidth = 4, 140*a5403ec6SKonrad Dybcio .num_links = 2, 141*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 142*a5403ec6SKonrad Dybcio SDX65_SLAVE_ANOC_SNOC 143*a5403ec6SKonrad Dybcio }, 144*a5403ec6SKonrad Dybcio }; 145*a5403ec6SKonrad Dybcio 146*a5403ec6SKonrad Dybcio static struct qcom_icc_node qnm_aggre_noc = { 147*a5403ec6SKonrad Dybcio .name = "qnm_aggre_noc", 148*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_ANOC_SNOC, 149*a5403ec6SKonrad Dybcio .channels = 1, 150*a5403ec6SKonrad Dybcio .buswidth = 8, 151*a5403ec6SKonrad Dybcio .num_links = 29, 152*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 153*a5403ec6SKonrad Dybcio SDX65_SLAVE_APPSS, 154*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 155*a5403ec6SKonrad Dybcio SDX65_SLAVE_BLSP_1, 156*a5403ec6SKonrad Dybcio SDX65_SLAVE_CLK_CTL, 157*a5403ec6SKonrad Dybcio SDX65_SLAVE_CRYPTO_0_CFG, 158*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_DDRSS, 159*a5403ec6SKonrad Dybcio SDX65_SLAVE_ECC_CFG, 160*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM_CFG, 161*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 162*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_MSS, 163*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_PARF, 164*a5403ec6SKonrad Dybcio SDX65_SLAVE_PDM, 165*a5403ec6SKonrad Dybcio SDX65_SLAVE_PRNG, 166*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_CFG, 167*a5403ec6SKonrad Dybcio SDX65_SLAVE_QPIC, 168*a5403ec6SKonrad Dybcio SDX65_SLAVE_SDCC_1, 169*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_CFG, 170*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_FETCHER, 171*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_VGI_COEX, 172*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCSR, 173*a5403ec6SKonrad Dybcio SDX65_SLAVE_TLMM, 174*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3, 175*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3_PHY_CFG, 176*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_MEM_NOC_GC, 177*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM, 178*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_0, 179*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_STM, 180*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCU 181*a5403ec6SKonrad Dybcio }, 182*a5403ec6SKonrad Dybcio }; 183*a5403ec6SKonrad Dybcio 184*a5403ec6SKonrad Dybcio static struct qcom_icc_node qnm_ipa = { 185*a5403ec6SKonrad Dybcio .name = "qnm_ipa", 186*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_IPA, 187*a5403ec6SKonrad Dybcio .channels = 1, 188*a5403ec6SKonrad Dybcio .buswidth = 8, 189*a5403ec6SKonrad Dybcio .num_links = 26, 190*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 191*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 192*a5403ec6SKonrad Dybcio SDX65_SLAVE_BLSP_1, 193*a5403ec6SKonrad Dybcio SDX65_SLAVE_CLK_CTL, 194*a5403ec6SKonrad Dybcio SDX65_SLAVE_CRYPTO_0_CFG, 195*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_DDRSS, 196*a5403ec6SKonrad Dybcio SDX65_SLAVE_ECC_CFG, 197*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM_CFG, 198*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 199*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_MSS, 200*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_PARF, 201*a5403ec6SKonrad Dybcio SDX65_SLAVE_PDM, 202*a5403ec6SKonrad Dybcio SDX65_SLAVE_PRNG, 203*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_CFG, 204*a5403ec6SKonrad Dybcio SDX65_SLAVE_QPIC, 205*a5403ec6SKonrad Dybcio SDX65_SLAVE_SDCC_1, 206*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_CFG, 207*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_FETCHER, 208*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCSR, 209*a5403ec6SKonrad Dybcio SDX65_SLAVE_TLMM, 210*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3, 211*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3_PHY_CFG, 212*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_MEM_NOC_GC, 213*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM, 214*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_0, 215*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_STM 216*a5403ec6SKonrad Dybcio }, 217*a5403ec6SKonrad Dybcio }; 218*a5403ec6SKonrad Dybcio 219*a5403ec6SKonrad Dybcio static struct qcom_icc_node qnm_memnoc = { 220*a5403ec6SKonrad Dybcio .name = "qnm_memnoc", 221*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_MEM_NOC_SNOC, 222*a5403ec6SKonrad Dybcio .channels = 1, 223*a5403ec6SKonrad Dybcio .buswidth = 8, 224*a5403ec6SKonrad Dybcio .num_links = 27, 225*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 226*a5403ec6SKonrad Dybcio SDX65_SLAVE_APPSS, 227*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 228*a5403ec6SKonrad Dybcio SDX65_SLAVE_BLSP_1, 229*a5403ec6SKonrad Dybcio SDX65_SLAVE_CLK_CTL, 230*a5403ec6SKonrad Dybcio SDX65_SLAVE_CRYPTO_0_CFG, 231*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_DDRSS, 232*a5403ec6SKonrad Dybcio SDX65_SLAVE_ECC_CFG, 233*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM_CFG, 234*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 235*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_MSS, 236*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_PARF, 237*a5403ec6SKonrad Dybcio SDX65_SLAVE_PDM, 238*a5403ec6SKonrad Dybcio SDX65_SLAVE_PRNG, 239*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_CFG, 240*a5403ec6SKonrad Dybcio SDX65_SLAVE_QPIC, 241*a5403ec6SKonrad Dybcio SDX65_SLAVE_SDCC_1, 242*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_CFG, 243*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_FETCHER, 244*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_VGI_COEX, 245*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCSR, 246*a5403ec6SKonrad Dybcio SDX65_SLAVE_TLMM, 247*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3, 248*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3_PHY_CFG, 249*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM, 250*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_STM, 251*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCU 252*a5403ec6SKonrad Dybcio }, 253*a5403ec6SKonrad Dybcio }; 254*a5403ec6SKonrad Dybcio 255*a5403ec6SKonrad Dybcio static struct qcom_icc_node qnm_memnoc_pcie = { 256*a5403ec6SKonrad Dybcio .name = "qnm_memnoc_pcie", 257*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_MEM_NOC_PCIE_SNOC, 258*a5403ec6SKonrad Dybcio .channels = 1, 259*a5403ec6SKonrad Dybcio .buswidth = 8, 260*a5403ec6SKonrad Dybcio .num_links = 1, 261*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_PCIE_0 }, 262*a5403ec6SKonrad Dybcio }; 263*a5403ec6SKonrad Dybcio 264*a5403ec6SKonrad Dybcio static struct qcom_icc_node qxm_crypto = { 265*a5403ec6SKonrad Dybcio .name = "qxm_crypto", 266*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_CRYPTO, 267*a5403ec6SKonrad Dybcio .channels = 1, 268*a5403ec6SKonrad Dybcio .buswidth = 8, 269*a5403ec6SKonrad Dybcio .num_links = 2, 270*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 271*a5403ec6SKonrad Dybcio SDX65_SLAVE_ANOC_SNOC 272*a5403ec6SKonrad Dybcio }, 273*a5403ec6SKonrad Dybcio }; 274*a5403ec6SKonrad Dybcio 275*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_ipa2pcie_slv = { 276*a5403ec6SKonrad Dybcio .name = "xm_ipa2pcie_slv", 277*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_IPA_PCIE, 278*a5403ec6SKonrad Dybcio .channels = 1, 279*a5403ec6SKonrad Dybcio .buswidth = 8, 280*a5403ec6SKonrad Dybcio .num_links = 1, 281*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_PCIE_0 }, 282*a5403ec6SKonrad Dybcio }; 283*a5403ec6SKonrad Dybcio 284*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_pcie = { 285*a5403ec6SKonrad Dybcio .name = "xm_pcie", 286*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_PCIE_0, 287*a5403ec6SKonrad Dybcio .channels = 1, 288*a5403ec6SKonrad Dybcio .buswidth = 8, 289*a5403ec6SKonrad Dybcio .num_links = 1, 290*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_ANOC_SNOC }, 291*a5403ec6SKonrad Dybcio }; 292*a5403ec6SKonrad Dybcio 293*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_qdss_etr = { 294*a5403ec6SKonrad Dybcio .name = "xm_qdss_etr", 295*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_QDSS_ETR, 296*a5403ec6SKonrad Dybcio .channels = 1, 297*a5403ec6SKonrad Dybcio .buswidth = 8, 298*a5403ec6SKonrad Dybcio .num_links = 26, 299*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 300*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 301*a5403ec6SKonrad Dybcio SDX65_SLAVE_BLSP_1, 302*a5403ec6SKonrad Dybcio SDX65_SLAVE_CLK_CTL, 303*a5403ec6SKonrad Dybcio SDX65_SLAVE_CRYPTO_0_CFG, 304*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_DDRSS, 305*a5403ec6SKonrad Dybcio SDX65_SLAVE_ECC_CFG, 306*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM_CFG, 307*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 308*a5403ec6SKonrad Dybcio SDX65_SLAVE_CNOC_MSS, 309*a5403ec6SKonrad Dybcio SDX65_SLAVE_PCIE_PARF, 310*a5403ec6SKonrad Dybcio SDX65_SLAVE_PDM, 311*a5403ec6SKonrad Dybcio SDX65_SLAVE_PRNG, 312*a5403ec6SKonrad Dybcio SDX65_SLAVE_QDSS_CFG, 313*a5403ec6SKonrad Dybcio SDX65_SLAVE_QPIC, 314*a5403ec6SKonrad Dybcio SDX65_SLAVE_SDCC_1, 315*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_CFG, 316*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_FETCHER, 317*a5403ec6SKonrad Dybcio SDX65_SLAVE_SPMI_VGI_COEX, 318*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCSR, 319*a5403ec6SKonrad Dybcio SDX65_SLAVE_TLMM, 320*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3, 321*a5403ec6SKonrad Dybcio SDX65_SLAVE_USB3_PHY_CFG, 322*a5403ec6SKonrad Dybcio SDX65_SLAVE_SNOC_MEM_NOC_GC, 323*a5403ec6SKonrad Dybcio SDX65_SLAVE_IMEM, 324*a5403ec6SKonrad Dybcio SDX65_SLAVE_TCU 325*a5403ec6SKonrad Dybcio }, 326*a5403ec6SKonrad Dybcio }; 327*a5403ec6SKonrad Dybcio 328*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_sdc1 = { 329*a5403ec6SKonrad Dybcio .name = "xm_sdc1", 330*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_SDCC_1, 331*a5403ec6SKonrad Dybcio .channels = 1, 332*a5403ec6SKonrad Dybcio .buswidth = 8, 333*a5403ec6SKonrad Dybcio .num_links = 4, 334*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_AOSS, 335*a5403ec6SKonrad Dybcio SDX65_SLAVE_AUDIO, 336*a5403ec6SKonrad Dybcio SDX65_SLAVE_IPA_CFG, 337*a5403ec6SKonrad Dybcio SDX65_SLAVE_ANOC_SNOC 338*a5403ec6SKonrad Dybcio }, 339*a5403ec6SKonrad Dybcio }; 340*a5403ec6SKonrad Dybcio 341*a5403ec6SKonrad Dybcio static struct qcom_icc_node xm_usb3 = { 342*a5403ec6SKonrad Dybcio .name = "xm_usb3", 343*a5403ec6SKonrad Dybcio .id = SDX65_MASTER_USB3, 344*a5403ec6SKonrad Dybcio .channels = 1, 345*a5403ec6SKonrad Dybcio .buswidth = 8, 346*a5403ec6SKonrad Dybcio .num_links = 1, 347*a5403ec6SKonrad Dybcio .links = { SDX65_SLAVE_ANOC_SNOC }, 348*a5403ec6SKonrad Dybcio }; 349*a5403ec6SKonrad Dybcio 350*a5403ec6SKonrad Dybcio static struct qcom_icc_node ebi = { 351*a5403ec6SKonrad Dybcio .name = "ebi", 352*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_EBI1, 353*a5403ec6SKonrad Dybcio .channels = 1, 354*a5403ec6SKonrad Dybcio .buswidth = 4, 355*a5403ec6SKonrad Dybcio }; 356*a5403ec6SKonrad Dybcio 357*a5403ec6SKonrad Dybcio static struct qcom_icc_node qns_llcc = { 358*a5403ec6SKonrad Dybcio .name = "qns_llcc", 359*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_LLCC, 360*a5403ec6SKonrad Dybcio .channels = 1, 361*a5403ec6SKonrad Dybcio .buswidth = 16, 362*a5403ec6SKonrad Dybcio .num_links = 1, 363*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_LLCC }, 364*a5403ec6SKonrad Dybcio }; 365*a5403ec6SKonrad Dybcio 366*a5403ec6SKonrad Dybcio static struct qcom_icc_node qns_memnoc_snoc = { 367*a5403ec6SKonrad Dybcio .name = "qns_memnoc_snoc", 368*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_MEM_NOC_SNOC, 369*a5403ec6SKonrad Dybcio .channels = 1, 370*a5403ec6SKonrad Dybcio .buswidth = 8, 371*a5403ec6SKonrad Dybcio .num_links = 1, 372*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_MEM_NOC_SNOC }, 373*a5403ec6SKonrad Dybcio }; 374*a5403ec6SKonrad Dybcio 375*a5403ec6SKonrad Dybcio static struct qcom_icc_node qns_sys_pcie = { 376*a5403ec6SKonrad Dybcio .name = "qns_sys_pcie", 377*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_MEM_NOC_PCIE_SNOC, 378*a5403ec6SKonrad Dybcio .channels = 1, 379*a5403ec6SKonrad Dybcio .buswidth = 8, 380*a5403ec6SKonrad Dybcio .num_links = 1, 381*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_MEM_NOC_PCIE_SNOC }, 382*a5403ec6SKonrad Dybcio }; 383*a5403ec6SKonrad Dybcio 384*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_aoss = { 385*a5403ec6SKonrad Dybcio .name = "qhs_aoss", 386*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_AOSS, 387*a5403ec6SKonrad Dybcio .channels = 1, 388*a5403ec6SKonrad Dybcio .buswidth = 4, 389*a5403ec6SKonrad Dybcio }; 390*a5403ec6SKonrad Dybcio 391*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_apss = { 392*a5403ec6SKonrad Dybcio .name = "qhs_apss", 393*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_APPSS, 394*a5403ec6SKonrad Dybcio .channels = 1, 395*a5403ec6SKonrad Dybcio .buswidth = 4, 396*a5403ec6SKonrad Dybcio }; 397*a5403ec6SKonrad Dybcio 398*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_audio = { 399*a5403ec6SKonrad Dybcio .name = "qhs_audio", 400*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_AUDIO, 401*a5403ec6SKonrad Dybcio .channels = 1, 402*a5403ec6SKonrad Dybcio .buswidth = 4, 403*a5403ec6SKonrad Dybcio }; 404*a5403ec6SKonrad Dybcio 405*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_blsp1 = { 406*a5403ec6SKonrad Dybcio .name = "qhs_blsp1", 407*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_BLSP_1, 408*a5403ec6SKonrad Dybcio .channels = 1, 409*a5403ec6SKonrad Dybcio .buswidth = 4, 410*a5403ec6SKonrad Dybcio }; 411*a5403ec6SKonrad Dybcio 412*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_clk_ctl = { 413*a5403ec6SKonrad Dybcio .name = "qhs_clk_ctl", 414*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_CLK_CTL, 415*a5403ec6SKonrad Dybcio .channels = 1, 416*a5403ec6SKonrad Dybcio .buswidth = 4, 417*a5403ec6SKonrad Dybcio }; 418*a5403ec6SKonrad Dybcio 419*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_crypto0_cfg = { 420*a5403ec6SKonrad Dybcio .name = "qhs_crypto0_cfg", 421*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_CRYPTO_0_CFG, 422*a5403ec6SKonrad Dybcio .channels = 1, 423*a5403ec6SKonrad Dybcio .buswidth = 4, 424*a5403ec6SKonrad Dybcio }; 425*a5403ec6SKonrad Dybcio 426*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_ddrss_cfg = { 427*a5403ec6SKonrad Dybcio .name = "qhs_ddrss_cfg", 428*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_CNOC_DDRSS, 429*a5403ec6SKonrad Dybcio .channels = 1, 430*a5403ec6SKonrad Dybcio .buswidth = 4, 431*a5403ec6SKonrad Dybcio }; 432*a5403ec6SKonrad Dybcio 433*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_ecc_cfg = { 434*a5403ec6SKonrad Dybcio .name = "qhs_ecc_cfg", 435*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_ECC_CFG, 436*a5403ec6SKonrad Dybcio .channels = 1, 437*a5403ec6SKonrad Dybcio .buswidth = 4, 438*a5403ec6SKonrad Dybcio }; 439*a5403ec6SKonrad Dybcio 440*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_imem_cfg = { 441*a5403ec6SKonrad Dybcio .name = "qhs_imem_cfg", 442*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_IMEM_CFG, 443*a5403ec6SKonrad Dybcio .channels = 1, 444*a5403ec6SKonrad Dybcio .buswidth = 4, 445*a5403ec6SKonrad Dybcio }; 446*a5403ec6SKonrad Dybcio 447*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_ipa = { 448*a5403ec6SKonrad Dybcio .name = "qhs_ipa", 449*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_IPA_CFG, 450*a5403ec6SKonrad Dybcio .channels = 1, 451*a5403ec6SKonrad Dybcio .buswidth = 4, 452*a5403ec6SKonrad Dybcio }; 453*a5403ec6SKonrad Dybcio 454*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_mss_cfg = { 455*a5403ec6SKonrad Dybcio .name = "qhs_mss_cfg", 456*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_CNOC_MSS, 457*a5403ec6SKonrad Dybcio .channels = 1, 458*a5403ec6SKonrad Dybcio .buswidth = 4, 459*a5403ec6SKonrad Dybcio }; 460*a5403ec6SKonrad Dybcio 461*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_pcie_parf = { 462*a5403ec6SKonrad Dybcio .name = "qhs_pcie_parf", 463*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_PCIE_PARF, 464*a5403ec6SKonrad Dybcio .channels = 1, 465*a5403ec6SKonrad Dybcio .buswidth = 4, 466*a5403ec6SKonrad Dybcio }; 467*a5403ec6SKonrad Dybcio 468*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_pdm = { 469*a5403ec6SKonrad Dybcio .name = "qhs_pdm", 470*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_PDM, 471*a5403ec6SKonrad Dybcio .channels = 1, 472*a5403ec6SKonrad Dybcio .buswidth = 4, 473*a5403ec6SKonrad Dybcio }; 474*a5403ec6SKonrad Dybcio 475*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_prng = { 476*a5403ec6SKonrad Dybcio .name = "qhs_prng", 477*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_PRNG, 478*a5403ec6SKonrad Dybcio .channels = 1, 479*a5403ec6SKonrad Dybcio .buswidth = 4, 480*a5403ec6SKonrad Dybcio }; 481*a5403ec6SKonrad Dybcio 482*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_qdss_cfg = { 483*a5403ec6SKonrad Dybcio .name = "qhs_qdss_cfg", 484*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_QDSS_CFG, 485*a5403ec6SKonrad Dybcio .channels = 1, 486*a5403ec6SKonrad Dybcio .buswidth = 4, 487*a5403ec6SKonrad Dybcio }; 488*a5403ec6SKonrad Dybcio 489*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_qpic = { 490*a5403ec6SKonrad Dybcio .name = "qhs_qpic", 491*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_QPIC, 492*a5403ec6SKonrad Dybcio .channels = 1, 493*a5403ec6SKonrad Dybcio .buswidth = 4, 494*a5403ec6SKonrad Dybcio }; 495*a5403ec6SKonrad Dybcio 496*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_sdc1 = { 497*a5403ec6SKonrad Dybcio .name = "qhs_sdc1", 498*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SDCC_1, 499*a5403ec6SKonrad Dybcio .channels = 1, 500*a5403ec6SKonrad Dybcio .buswidth = 4, 501*a5403ec6SKonrad Dybcio }; 502*a5403ec6SKonrad Dybcio 503*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_snoc_cfg = { 504*a5403ec6SKonrad Dybcio .name = "qhs_snoc_cfg", 505*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SNOC_CFG, 506*a5403ec6SKonrad Dybcio .channels = 1, 507*a5403ec6SKonrad Dybcio .buswidth = 4, 508*a5403ec6SKonrad Dybcio .num_links = 1, 509*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_SNOC_CFG }, 510*a5403ec6SKonrad Dybcio }; 511*a5403ec6SKonrad Dybcio 512*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_spmi_fetcher = { 513*a5403ec6SKonrad Dybcio .name = "qhs_spmi_fetcher", 514*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SPMI_FETCHER, 515*a5403ec6SKonrad Dybcio .channels = 1, 516*a5403ec6SKonrad Dybcio .buswidth = 4, 517*a5403ec6SKonrad Dybcio }; 518*a5403ec6SKonrad Dybcio 519*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_spmi_vgi_coex = { 520*a5403ec6SKonrad Dybcio .name = "qhs_spmi_vgi_coex", 521*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SPMI_VGI_COEX, 522*a5403ec6SKonrad Dybcio .channels = 1, 523*a5403ec6SKonrad Dybcio .buswidth = 4, 524*a5403ec6SKonrad Dybcio }; 525*a5403ec6SKonrad Dybcio 526*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_tcsr = { 527*a5403ec6SKonrad Dybcio .name = "qhs_tcsr", 528*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_TCSR, 529*a5403ec6SKonrad Dybcio .channels = 1, 530*a5403ec6SKonrad Dybcio .buswidth = 4, 531*a5403ec6SKonrad Dybcio }; 532*a5403ec6SKonrad Dybcio 533*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_tlmm = { 534*a5403ec6SKonrad Dybcio .name = "qhs_tlmm", 535*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_TLMM, 536*a5403ec6SKonrad Dybcio .channels = 1, 537*a5403ec6SKonrad Dybcio .buswidth = 4, 538*a5403ec6SKonrad Dybcio }; 539*a5403ec6SKonrad Dybcio 540*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_usb3 = { 541*a5403ec6SKonrad Dybcio .name = "qhs_usb3", 542*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_USB3, 543*a5403ec6SKonrad Dybcio .channels = 1, 544*a5403ec6SKonrad Dybcio .buswidth = 4, 545*a5403ec6SKonrad Dybcio }; 546*a5403ec6SKonrad Dybcio 547*a5403ec6SKonrad Dybcio static struct qcom_icc_node qhs_usb3_phy = { 548*a5403ec6SKonrad Dybcio .name = "qhs_usb3_phy", 549*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_USB3_PHY_CFG, 550*a5403ec6SKonrad Dybcio .channels = 1, 551*a5403ec6SKonrad Dybcio .buswidth = 4, 552*a5403ec6SKonrad Dybcio }; 553*a5403ec6SKonrad Dybcio 554*a5403ec6SKonrad Dybcio static struct qcom_icc_node qns_aggre_noc = { 555*a5403ec6SKonrad Dybcio .name = "qns_aggre_noc", 556*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_ANOC_SNOC, 557*a5403ec6SKonrad Dybcio .channels = 1, 558*a5403ec6SKonrad Dybcio .buswidth = 8, 559*a5403ec6SKonrad Dybcio .num_links = 1, 560*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_ANOC_SNOC }, 561*a5403ec6SKonrad Dybcio }; 562*a5403ec6SKonrad Dybcio 563*a5403ec6SKonrad Dybcio static struct qcom_icc_node qns_snoc_memnoc = { 564*a5403ec6SKonrad Dybcio .name = "qns_snoc_memnoc", 565*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SNOC_MEM_NOC_GC, 566*a5403ec6SKonrad Dybcio .channels = 1, 567*a5403ec6SKonrad Dybcio .buswidth = 16, 568*a5403ec6SKonrad Dybcio .num_links = 1, 569*a5403ec6SKonrad Dybcio .links = { SDX65_MASTER_SNOC_GC_MEM_NOC }, 570*a5403ec6SKonrad Dybcio }; 571*a5403ec6SKonrad Dybcio 572*a5403ec6SKonrad Dybcio static struct qcom_icc_node qxs_imem = { 573*a5403ec6SKonrad Dybcio .name = "qxs_imem", 574*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_IMEM, 575*a5403ec6SKonrad Dybcio .channels = 1, 576*a5403ec6SKonrad Dybcio .buswidth = 8, 577*a5403ec6SKonrad Dybcio }; 578*a5403ec6SKonrad Dybcio 579*a5403ec6SKonrad Dybcio static struct qcom_icc_node srvc_snoc = { 580*a5403ec6SKonrad Dybcio .name = "srvc_snoc", 581*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_SERVICE_SNOC, 582*a5403ec6SKonrad Dybcio .channels = 1, 583*a5403ec6SKonrad Dybcio .buswidth = 4, 584*a5403ec6SKonrad Dybcio }; 585*a5403ec6SKonrad Dybcio 586*a5403ec6SKonrad Dybcio static struct qcom_icc_node xs_pcie = { 587*a5403ec6SKonrad Dybcio .name = "xs_pcie", 588*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_PCIE_0, 589*a5403ec6SKonrad Dybcio .channels = 1, 590*a5403ec6SKonrad Dybcio .buswidth = 8, 591*a5403ec6SKonrad Dybcio }; 592*a5403ec6SKonrad Dybcio 593*a5403ec6SKonrad Dybcio static struct qcom_icc_node xs_qdss_stm = { 594*a5403ec6SKonrad Dybcio .name = "xs_qdss_stm", 595*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_QDSS_STM, 596*a5403ec6SKonrad Dybcio .channels = 1, 597*a5403ec6SKonrad Dybcio .buswidth = 4, 598*a5403ec6SKonrad Dybcio }; 599*a5403ec6SKonrad Dybcio 600*a5403ec6SKonrad Dybcio static struct qcom_icc_node xs_sys_tcu_cfg = { 601*a5403ec6SKonrad Dybcio .name = "xs_sys_tcu_cfg", 602*a5403ec6SKonrad Dybcio .id = SDX65_SLAVE_TCU, 603*a5403ec6SKonrad Dybcio .channels = 1, 604*a5403ec6SKonrad Dybcio .buswidth = 8, 605*a5403ec6SKonrad Dybcio }; 60639a53928SRohit Agarwal 60739a53928SRohit Agarwal DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); 60839a53928SRohit Agarwal DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); 60939a53928SRohit Agarwal DEFINE_QBCM(bcm_pn0, "PN0", true, &qhm_snoc_cfg, &qhs_aoss, &qhs_apss, &qhs_audio, &qhs_blsp1, &qhs_clk_ctl, &qhs_crypto0_cfg, &qhs_ddrss_cfg, &qhs_ecc_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mss_cfg, &qhs_pcie_parf, &qhs_pdm, &qhs_prng, &qhs_qdss_cfg, &qhs_qpic, &qhs_sdc1, &qhs_snoc_cfg, &qhs_spmi_fetcher, &qhs_spmi_vgi_coex, &qhs_tcsr, &qhs_tlmm, &qhs_usb3, &qhs_usb3_phy, &srvc_snoc); 61039a53928SRohit Agarwal DEFINE_QBCM(bcm_pn1, "PN1", false, &xm_sdc1); 61139a53928SRohit Agarwal DEFINE_QBCM(bcm_pn2, "PN2", false, &qhm_audio, &qhm_spmi_fetcher1); 61239a53928SRohit Agarwal DEFINE_QBCM(bcm_pn3, "PN3", false, &qhm_blsp1, &qhm_qpic); 61339a53928SRohit Agarwal DEFINE_QBCM(bcm_pn4, "PN4", false, &qxm_crypto); 61439a53928SRohit Agarwal DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); 61539a53928SRohit Agarwal DEFINE_QBCM(bcm_sh1, "SH1", false, &qns_memnoc_snoc); 61639a53928SRohit Agarwal DEFINE_QBCM(bcm_sh3, "SH3", false, &xm_apps_rdwr); 61739a53928SRohit Agarwal DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_snoc_memnoc); 61839a53928SRohit Agarwal DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); 61939a53928SRohit Agarwal DEFINE_QBCM(bcm_sn2, "SN2", false, &xs_qdss_stm); 62039a53928SRohit Agarwal DEFINE_QBCM(bcm_sn3, "SN3", false, &xs_sys_tcu_cfg); 62139a53928SRohit Agarwal DEFINE_QBCM(bcm_sn5, "SN5", false, &xs_pcie); 62239a53928SRohit Agarwal DEFINE_QBCM(bcm_sn6, "SN6", false, &qhm_qdss_bam, &xm_qdss_etr); 62339a53928SRohit Agarwal DEFINE_QBCM(bcm_sn7, "SN7", false, &qnm_aggre_noc, &xm_pcie, &xm_usb3, &qns_aggre_noc); 62439a53928SRohit Agarwal DEFINE_QBCM(bcm_sn8, "SN8", false, &qnm_memnoc); 62539a53928SRohit Agarwal DEFINE_QBCM(bcm_sn9, "SN9", false, &qnm_memnoc_pcie); 62639a53928SRohit Agarwal DEFINE_QBCM(bcm_sn10, "SN10", false, &qnm_ipa, &xm_ipa2pcie_slv); 62739a53928SRohit Agarwal 62839a53928SRohit Agarwal static struct qcom_icc_bcm * const mc_virt_bcms[] = { 62939a53928SRohit Agarwal &bcm_mc0, 63039a53928SRohit Agarwal }; 63139a53928SRohit Agarwal 63239a53928SRohit Agarwal static struct qcom_icc_node * const mc_virt_nodes[] = { 63339a53928SRohit Agarwal [MASTER_LLCC] = &llcc_mc, 63439a53928SRohit Agarwal [SLAVE_EBI1] = &ebi, 63539a53928SRohit Agarwal }; 63639a53928SRohit Agarwal 63739a53928SRohit Agarwal static const struct qcom_icc_desc sdx65_mc_virt = { 63839a53928SRohit Agarwal .nodes = mc_virt_nodes, 63939a53928SRohit Agarwal .num_nodes = ARRAY_SIZE(mc_virt_nodes), 64039a53928SRohit Agarwal .bcms = mc_virt_bcms, 64139a53928SRohit Agarwal .num_bcms = ARRAY_SIZE(mc_virt_bcms), 64239a53928SRohit Agarwal }; 64339a53928SRohit Agarwal 64439a53928SRohit Agarwal static struct qcom_icc_bcm * const mem_noc_bcms[] = { 64539a53928SRohit Agarwal &bcm_sh0, 64639a53928SRohit Agarwal &bcm_sh1, 64739a53928SRohit Agarwal &bcm_sh3, 64839a53928SRohit Agarwal }; 64939a53928SRohit Agarwal 65039a53928SRohit Agarwal static struct qcom_icc_node * const mem_noc_nodes[] = { 65139a53928SRohit Agarwal [MASTER_TCU_0] = &acm_tcu, 65239a53928SRohit Agarwal [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 65339a53928SRohit Agarwal [MASTER_APPSS_PROC] = &xm_apps_rdwr, 65439a53928SRohit Agarwal [SLAVE_LLCC] = &qns_llcc, 65539a53928SRohit Agarwal [SLAVE_MEM_NOC_SNOC] = &qns_memnoc_snoc, 65639a53928SRohit Agarwal [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_sys_pcie, 65739a53928SRohit Agarwal }; 65839a53928SRohit Agarwal 65939a53928SRohit Agarwal static const struct qcom_icc_desc sdx65_mem_noc = { 66039a53928SRohit Agarwal .nodes = mem_noc_nodes, 66139a53928SRohit Agarwal .num_nodes = ARRAY_SIZE(mem_noc_nodes), 66239a53928SRohit Agarwal .bcms = mem_noc_bcms, 66339a53928SRohit Agarwal .num_bcms = ARRAY_SIZE(mem_noc_bcms), 66439a53928SRohit Agarwal }; 66539a53928SRohit Agarwal 66639a53928SRohit Agarwal static struct qcom_icc_bcm * const system_noc_bcms[] = { 66739a53928SRohit Agarwal &bcm_ce0, 66839a53928SRohit Agarwal &bcm_pn0, 66939a53928SRohit Agarwal &bcm_pn1, 67039a53928SRohit Agarwal &bcm_pn2, 67139a53928SRohit Agarwal &bcm_pn3, 67239a53928SRohit Agarwal &bcm_pn4, 67339a53928SRohit Agarwal &bcm_sn0, 67439a53928SRohit Agarwal &bcm_sn1, 67539a53928SRohit Agarwal &bcm_sn2, 67639a53928SRohit Agarwal &bcm_sn3, 67739a53928SRohit Agarwal &bcm_sn5, 67839a53928SRohit Agarwal &bcm_sn6, 67939a53928SRohit Agarwal &bcm_sn7, 68039a53928SRohit Agarwal &bcm_sn8, 68139a53928SRohit Agarwal &bcm_sn9, 68239a53928SRohit Agarwal &bcm_sn10, 68339a53928SRohit Agarwal }; 68439a53928SRohit Agarwal 68539a53928SRohit Agarwal static struct qcom_icc_node * const system_noc_nodes[] = { 68639a53928SRohit Agarwal [MASTER_AUDIO] = &qhm_audio, 68739a53928SRohit Agarwal [MASTER_BLSP_1] = &qhm_blsp1, 68839a53928SRohit Agarwal [MASTER_QDSS_BAM] = &qhm_qdss_bam, 68939a53928SRohit Agarwal [MASTER_QPIC] = &qhm_qpic, 69039a53928SRohit Agarwal [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 69139a53928SRohit Agarwal [MASTER_SPMI_FETCHER] = &qhm_spmi_fetcher1, 69239a53928SRohit Agarwal [MASTER_ANOC_SNOC] = &qnm_aggre_noc, 69339a53928SRohit Agarwal [MASTER_IPA] = &qnm_ipa, 69439a53928SRohit Agarwal [MASTER_MEM_NOC_SNOC] = &qnm_memnoc, 69539a53928SRohit Agarwal [MASTER_MEM_NOC_PCIE_SNOC] = &qnm_memnoc_pcie, 69639a53928SRohit Agarwal [MASTER_CRYPTO] = &qxm_crypto, 69739a53928SRohit Agarwal [MASTER_IPA_PCIE] = &xm_ipa2pcie_slv, 69839a53928SRohit Agarwal [MASTER_PCIE_0] = &xm_pcie, 69939a53928SRohit Agarwal [MASTER_QDSS_ETR] = &xm_qdss_etr, 70039a53928SRohit Agarwal [MASTER_SDCC_1] = &xm_sdc1, 70139a53928SRohit Agarwal [MASTER_USB3] = &xm_usb3, 70239a53928SRohit Agarwal [SLAVE_AOSS] = &qhs_aoss, 70339a53928SRohit Agarwal [SLAVE_APPSS] = &qhs_apss, 70439a53928SRohit Agarwal [SLAVE_AUDIO] = &qhs_audio, 70539a53928SRohit Agarwal [SLAVE_BLSP_1] = &qhs_blsp1, 70639a53928SRohit Agarwal [SLAVE_CLK_CTL] = &qhs_clk_ctl, 70739a53928SRohit Agarwal [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 70839a53928SRohit Agarwal [SLAVE_CNOC_DDRSS] = &qhs_ddrss_cfg, 70939a53928SRohit Agarwal [SLAVE_ECC_CFG] = &qhs_ecc_cfg, 71039a53928SRohit Agarwal [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 71139a53928SRohit Agarwal [SLAVE_IPA_CFG] = &qhs_ipa, 71239a53928SRohit Agarwal [SLAVE_CNOC_MSS] = &qhs_mss_cfg, 71339a53928SRohit Agarwal [SLAVE_PCIE_PARF] = &qhs_pcie_parf, 71439a53928SRohit Agarwal [SLAVE_PDM] = &qhs_pdm, 71539a53928SRohit Agarwal [SLAVE_PRNG] = &qhs_prng, 71639a53928SRohit Agarwal [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 71739a53928SRohit Agarwal [SLAVE_QPIC] = &qhs_qpic, 71839a53928SRohit Agarwal [SLAVE_SDCC_1] = &qhs_sdc1, 71939a53928SRohit Agarwal [SLAVE_SNOC_CFG] = &qhs_snoc_cfg, 72039a53928SRohit Agarwal [SLAVE_SPMI_FETCHER] = &qhs_spmi_fetcher, 72139a53928SRohit Agarwal [SLAVE_SPMI_VGI_COEX] = &qhs_spmi_vgi_coex, 72239a53928SRohit Agarwal [SLAVE_TCSR] = &qhs_tcsr, 72339a53928SRohit Agarwal [SLAVE_TLMM] = &qhs_tlmm, 72439a53928SRohit Agarwal [SLAVE_USB3] = &qhs_usb3, 72539a53928SRohit Agarwal [SLAVE_USB3_PHY_CFG] = &qhs_usb3_phy, 72639a53928SRohit Agarwal [SLAVE_ANOC_SNOC] = &qns_aggre_noc, 72739a53928SRohit Agarwal [SLAVE_SNOC_MEM_NOC_GC] = &qns_snoc_memnoc, 72839a53928SRohit Agarwal [SLAVE_IMEM] = &qxs_imem, 72939a53928SRohit Agarwal [SLAVE_SERVICE_SNOC] = &srvc_snoc, 73039a53928SRohit Agarwal [SLAVE_PCIE_0] = &xs_pcie, 73139a53928SRohit Agarwal [SLAVE_QDSS_STM] = &xs_qdss_stm, 73239a53928SRohit Agarwal [SLAVE_TCU] = &xs_sys_tcu_cfg, 73339a53928SRohit Agarwal }; 73439a53928SRohit Agarwal 73539a53928SRohit Agarwal static const struct qcom_icc_desc sdx65_system_noc = { 73639a53928SRohit Agarwal .nodes = system_noc_nodes, 73739a53928SRohit Agarwal .num_nodes = ARRAY_SIZE(system_noc_nodes), 73839a53928SRohit Agarwal .bcms = system_noc_bcms, 73939a53928SRohit Agarwal .num_bcms = ARRAY_SIZE(system_noc_bcms), 74039a53928SRohit Agarwal }; 74139a53928SRohit Agarwal 74239a53928SRohit Agarwal static const struct of_device_id qnoc_of_match[] = { 74339a53928SRohit Agarwal { .compatible = "qcom,sdx65-mc-virt", 74439a53928SRohit Agarwal .data = &sdx65_mc_virt}, 74539a53928SRohit Agarwal { .compatible = "qcom,sdx65-mem-noc", 74639a53928SRohit Agarwal .data = &sdx65_mem_noc}, 74739a53928SRohit Agarwal { .compatible = "qcom,sdx65-system-noc", 74839a53928SRohit Agarwal .data = &sdx65_system_noc}, 74939a53928SRohit Agarwal { } 75039a53928SRohit Agarwal }; 75139a53928SRohit Agarwal MODULE_DEVICE_TABLE(of, qnoc_of_match); 75239a53928SRohit Agarwal 75339a53928SRohit Agarwal static struct platform_driver qnoc_driver = { 75439a53928SRohit Agarwal .probe = qcom_icc_rpmh_probe, 75539a53928SRohit Agarwal .remove = qcom_icc_rpmh_remove, 75639a53928SRohit Agarwal .driver = { 75739a53928SRohit Agarwal .name = "qnoc-sdx65", 75839a53928SRohit Agarwal .of_match_table = qnoc_of_match, 75939a53928SRohit Agarwal .sync_state = icc_sync_state, 76039a53928SRohit Agarwal }, 76139a53928SRohit Agarwal }; 76239a53928SRohit Agarwal module_platform_driver(qnoc_driver); 76339a53928SRohit Agarwal 76439a53928SRohit Agarwal MODULE_DESCRIPTION("Qualcomm SDX65 NoC driver"); 76539a53928SRohit Agarwal MODULE_LICENSE("GPL v2"); 766