1*ffaa88a0SVivek Aknurwar // SPDX-License-Identifier: GPL-2.0-only 2*ffaa88a0SVivek Aknurwar /* 3*ffaa88a0SVivek Aknurwar * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4*ffaa88a0SVivek Aknurwar * 5*ffaa88a0SVivek Aknurwar */ 6*ffaa88a0SVivek Aknurwar 7*ffaa88a0SVivek Aknurwar #include <linux/device.h> 8*ffaa88a0SVivek Aknurwar #include <linux/interconnect.h> 9*ffaa88a0SVivek Aknurwar #include <linux/interconnect-provider.h> 10*ffaa88a0SVivek Aknurwar #include <linux/module.h> 11*ffaa88a0SVivek Aknurwar #include <linux/of_platform.h> 12*ffaa88a0SVivek Aknurwar #include <dt-bindings/interconnect/qcom,hawi-rpmh.h> 13*ffaa88a0SVivek Aknurwar 14*ffaa88a0SVivek Aknurwar #include "bcm-voter.h" 15*ffaa88a0SVivek Aknurwar #include "icc-rpmh.h" 16*ffaa88a0SVivek Aknurwar 17*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_eff_veto_slave = { 18*ffaa88a0SVivek Aknurwar .name = "ddr_eff_veto_slave", 19*ffaa88a0SVivek Aknurwar .channels = 1, 20*ffaa88a0SVivek Aknurwar .buswidth = 4, 21*ffaa88a0SVivek Aknurwar }; 22*ffaa88a0SVivek Aknurwar 23*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup0_core_slave = { 24*ffaa88a0SVivek Aknurwar .name = "qup0_core_slave", 25*ffaa88a0SVivek Aknurwar .channels = 1, 26*ffaa88a0SVivek Aknurwar .buswidth = 4, 27*ffaa88a0SVivek Aknurwar }; 28*ffaa88a0SVivek Aknurwar 29*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup1_core_slave = { 30*ffaa88a0SVivek Aknurwar .name = "qup1_core_slave", 31*ffaa88a0SVivek Aknurwar .channels = 1, 32*ffaa88a0SVivek Aknurwar .buswidth = 4, 33*ffaa88a0SVivek Aknurwar }; 34*ffaa88a0SVivek Aknurwar 35*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup2_core_slave = { 36*ffaa88a0SVivek Aknurwar .name = "qup2_core_slave", 37*ffaa88a0SVivek Aknurwar .channels = 1, 38*ffaa88a0SVivek Aknurwar .buswidth = 4, 39*ffaa88a0SVivek Aknurwar }; 40*ffaa88a0SVivek Aknurwar 41*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup3_core_slave = { 42*ffaa88a0SVivek Aknurwar .name = "qup3_core_slave", 43*ffaa88a0SVivek Aknurwar .channels = 1, 44*ffaa88a0SVivek Aknurwar .buswidth = 4, 45*ffaa88a0SVivek Aknurwar }; 46*ffaa88a0SVivek Aknurwar 47*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup4_core_slave = { 48*ffaa88a0SVivek Aknurwar .name = "qup4_core_slave", 49*ffaa88a0SVivek Aknurwar .channels = 1, 50*ffaa88a0SVivek Aknurwar .buswidth = 4, 51*ffaa88a0SVivek Aknurwar }; 52*ffaa88a0SVivek Aknurwar 53*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_aoss = { 54*ffaa88a0SVivek Aknurwar .name = "qhs_aoss", 55*ffaa88a0SVivek Aknurwar .channels = 1, 56*ffaa88a0SVivek Aknurwar .buswidth = 4, 57*ffaa88a0SVivek Aknurwar }; 58*ffaa88a0SVivek Aknurwar 59*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipa = { 60*ffaa88a0SVivek Aknurwar .name = "qhs_ipa", 61*ffaa88a0SVivek Aknurwar .channels = 1, 62*ffaa88a0SVivek Aknurwar .buswidth = 4, 63*ffaa88a0SVivek Aknurwar }; 64*ffaa88a0SVivek Aknurwar 65*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipc_router_fence = { 66*ffaa88a0SVivek Aknurwar .name = "qhs_ipc_router_fence", 67*ffaa88a0SVivek Aknurwar .channels = 1, 68*ffaa88a0SVivek Aknurwar .buswidth = 4, 69*ffaa88a0SVivek Aknurwar }; 70*ffaa88a0SVivek Aknurwar 71*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_soccp = { 72*ffaa88a0SVivek Aknurwar .name = "qhs_soccp", 73*ffaa88a0SVivek Aknurwar .channels = 1, 74*ffaa88a0SVivek Aknurwar .buswidth = 4, 75*ffaa88a0SVivek Aknurwar }; 76*ffaa88a0SVivek Aknurwar 77*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_tme_cfg = { 78*ffaa88a0SVivek Aknurwar .name = "qhs_tme_cfg", 79*ffaa88a0SVivek Aknurwar .channels = 1, 80*ffaa88a0SVivek Aknurwar .buswidth = 4, 81*ffaa88a0SVivek Aknurwar }; 82*ffaa88a0SVivek Aknurwar 83*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_ddrss_cfg = { 84*ffaa88a0SVivek Aknurwar .name = "qss_ddrss_cfg", 85*ffaa88a0SVivek Aknurwar .channels = 1, 86*ffaa88a0SVivek Aknurwar .buswidth = 4, 87*ffaa88a0SVivek Aknurwar }; 88*ffaa88a0SVivek Aknurwar 89*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxs_imem = { 90*ffaa88a0SVivek Aknurwar .name = "qxs_imem", 91*ffaa88a0SVivek Aknurwar .channels = 1, 92*ffaa88a0SVivek Aknurwar .buswidth = 8, 93*ffaa88a0SVivek Aknurwar }; 94*ffaa88a0SVivek Aknurwar 95*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_pcie = { 96*ffaa88a0SVivek Aknurwar .name = "xs_pcie", 97*ffaa88a0SVivek Aknurwar .channels = 1, 98*ffaa88a0SVivek Aknurwar .buswidth = 8, 99*ffaa88a0SVivek Aknurwar }; 100*ffaa88a0SVivek Aknurwar 101*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_pcie_g4x1 = { 102*ffaa88a0SVivek Aknurwar .name = "xs_pcie_g4x1", 103*ffaa88a0SVivek Aknurwar .channels = 1, 104*ffaa88a0SVivek Aknurwar .buswidth = 8, 105*ffaa88a0SVivek Aknurwar }; 106*ffaa88a0SVivek Aknurwar 107*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_lpi_cc = { 108*ffaa88a0SVivek Aknurwar .name = "qhs_lpi_cc", 109*ffaa88a0SVivek Aknurwar .channels = 1, 110*ffaa88a0SVivek Aknurwar .buswidth = 4, 111*ffaa88a0SVivek Aknurwar }; 112*ffaa88a0SVivek Aknurwar 113*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lb = { 114*ffaa88a0SVivek Aknurwar .name = "qns_lb", 115*ffaa88a0SVivek Aknurwar .channels = 4, 116*ffaa88a0SVivek Aknurwar .buswidth = 32, 117*ffaa88a0SVivek Aknurwar }; 118*ffaa88a0SVivek Aknurwar 119*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_llclpi_noc = { 120*ffaa88a0SVivek Aknurwar .name = "srvc_llclpi_noc", 121*ffaa88a0SVivek Aknurwar .channels = 1, 122*ffaa88a0SVivek Aknurwar .buswidth = 4, 123*ffaa88a0SVivek Aknurwar }; 124*ffaa88a0SVivek Aknurwar 125*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_llclpi_noc_chipcx = { 126*ffaa88a0SVivek Aknurwar .name = "srvc_llclpi_noc_chipcx", 127*ffaa88a0SVivek Aknurwar .channels = 1, 128*ffaa88a0SVivek Aknurwar .buswidth = 4, 129*ffaa88a0SVivek Aknurwar }; 130*ffaa88a0SVivek Aknurwar 131*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ebi = { 132*ffaa88a0SVivek Aknurwar .name = "ebi", 133*ffaa88a0SVivek Aknurwar .channels = 4, 134*ffaa88a0SVivek Aknurwar .buswidth = 4, 135*ffaa88a0SVivek Aknurwar }; 136*ffaa88a0SVivek Aknurwar 137*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_rt_slave = { 138*ffaa88a0SVivek Aknurwar .name = "ddr_rt_slave", 139*ffaa88a0SVivek Aknurwar .channels = 4, 140*ffaa88a0SVivek Aknurwar .buswidth = 4, 141*ffaa88a0SVivek Aknurwar }; 142*ffaa88a0SVivek Aknurwar 143*ffaa88a0SVivek Aknurwar static struct qcom_icc_node srvc_pcie_aggre_noc = { 144*ffaa88a0SVivek Aknurwar .name = "srvc_pcie_aggre_noc", 145*ffaa88a0SVivek Aknurwar .channels = 1, 146*ffaa88a0SVivek Aknurwar .buswidth = 4, 147*ffaa88a0SVivek Aknurwar }; 148*ffaa88a0SVivek Aknurwar 149*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ahb2phy0 = { 150*ffaa88a0SVivek Aknurwar .name = "qhs_ahb2phy0", 151*ffaa88a0SVivek Aknurwar .channels = 1, 152*ffaa88a0SVivek Aknurwar .buswidth = 4, 153*ffaa88a0SVivek Aknurwar }; 154*ffaa88a0SVivek Aknurwar 155*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_boot_rom = { 156*ffaa88a0SVivek Aknurwar .name = "qhs_boot_rom", 157*ffaa88a0SVivek Aknurwar .channels = 1, 158*ffaa88a0SVivek Aknurwar .buswidth = 4, 159*ffaa88a0SVivek Aknurwar }; 160*ffaa88a0SVivek Aknurwar 161*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_camera_cfg = { 162*ffaa88a0SVivek Aknurwar .name = "qhs_camera_cfg", 163*ffaa88a0SVivek Aknurwar .channels = 1, 164*ffaa88a0SVivek Aknurwar .buswidth = 4, 165*ffaa88a0SVivek Aknurwar }; 166*ffaa88a0SVivek Aknurwar 167*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_clk_ctl = { 168*ffaa88a0SVivek Aknurwar .name = "qhs_clk_ctl", 169*ffaa88a0SVivek Aknurwar .channels = 1, 170*ffaa88a0SVivek Aknurwar .buswidth = 4, 171*ffaa88a0SVivek Aknurwar }; 172*ffaa88a0SVivek Aknurwar 173*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_crypto_cfg = { 174*ffaa88a0SVivek Aknurwar .name = "qhs_crypto_cfg", 175*ffaa88a0SVivek Aknurwar .channels = 1, 176*ffaa88a0SVivek Aknurwar .buswidth = 4, 177*ffaa88a0SVivek Aknurwar }; 178*ffaa88a0SVivek Aknurwar 179*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_display_cfg = { 180*ffaa88a0SVivek Aknurwar .name = "qhs_display_cfg", 181*ffaa88a0SVivek Aknurwar .channels = 1, 182*ffaa88a0SVivek Aknurwar .buswidth = 4, 183*ffaa88a0SVivek Aknurwar }; 184*ffaa88a0SVivek Aknurwar 185*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_eva_cfg = { 186*ffaa88a0SVivek Aknurwar .name = "qhs_eva_cfg", 187*ffaa88a0SVivek Aknurwar .channels = 1, 188*ffaa88a0SVivek Aknurwar .buswidth = 4, 189*ffaa88a0SVivek Aknurwar }; 190*ffaa88a0SVivek Aknurwar 191*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_gpuss_cfg = { 192*ffaa88a0SVivek Aknurwar .name = "qhs_gpuss_cfg", 193*ffaa88a0SVivek Aknurwar .channels = 1, 194*ffaa88a0SVivek Aknurwar .buswidth = 8, 195*ffaa88a0SVivek Aknurwar }; 196*ffaa88a0SVivek Aknurwar 197*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_i2c = { 198*ffaa88a0SVivek Aknurwar .name = "qhs_i2c", 199*ffaa88a0SVivek Aknurwar .channels = 1, 200*ffaa88a0SVivek Aknurwar .buswidth = 4, 201*ffaa88a0SVivek Aknurwar }; 202*ffaa88a0SVivek Aknurwar 203*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_imem_cfg = { 204*ffaa88a0SVivek Aknurwar .name = "qhs_imem_cfg", 205*ffaa88a0SVivek Aknurwar .channels = 1, 206*ffaa88a0SVivek Aknurwar .buswidth = 4, 207*ffaa88a0SVivek Aknurwar }; 208*ffaa88a0SVivek Aknurwar 209*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ipc_router = { 210*ffaa88a0SVivek Aknurwar .name = "qhs_ipc_router", 211*ffaa88a0SVivek Aknurwar .channels = 4, 212*ffaa88a0SVivek Aknurwar .buswidth = 4, 213*ffaa88a0SVivek Aknurwar }; 214*ffaa88a0SVivek Aknurwar 215*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_iris_cfg = { 216*ffaa88a0SVivek Aknurwar .name = "qhs_iris_cfg", 217*ffaa88a0SVivek Aknurwar .channels = 1, 218*ffaa88a0SVivek Aknurwar .buswidth = 4, 219*ffaa88a0SVivek Aknurwar }; 220*ffaa88a0SVivek Aknurwar 221*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_mss_cfg = { 222*ffaa88a0SVivek Aknurwar .name = "qhs_mss_cfg", 223*ffaa88a0SVivek Aknurwar .channels = 1, 224*ffaa88a0SVivek Aknurwar .buswidth = 4, 225*ffaa88a0SVivek Aknurwar }; 226*ffaa88a0SVivek Aknurwar 227*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_pcie_cfg = { 228*ffaa88a0SVivek Aknurwar .name = "qhs_pcie_cfg", 229*ffaa88a0SVivek Aknurwar .channels = 1, 230*ffaa88a0SVivek Aknurwar .buswidth = 4, 231*ffaa88a0SVivek Aknurwar }; 232*ffaa88a0SVivek Aknurwar 233*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_pcie_g4x1_cfg = { 234*ffaa88a0SVivek Aknurwar .name = "qhs_pcie_g4x1_cfg", 235*ffaa88a0SVivek Aknurwar .channels = 1, 236*ffaa88a0SVivek Aknurwar .buswidth = 4, 237*ffaa88a0SVivek Aknurwar }; 238*ffaa88a0SVivek Aknurwar 239*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_prng = { 240*ffaa88a0SVivek Aknurwar .name = "qhs_prng", 241*ffaa88a0SVivek Aknurwar .channels = 1, 242*ffaa88a0SVivek Aknurwar .buswidth = 4, 243*ffaa88a0SVivek Aknurwar }; 244*ffaa88a0SVivek Aknurwar 245*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qspi = { 246*ffaa88a0SVivek Aknurwar .name = "qhs_qspi", 247*ffaa88a0SVivek Aknurwar .channels = 1, 248*ffaa88a0SVivek Aknurwar .buswidth = 4, 249*ffaa88a0SVivek Aknurwar }; 250*ffaa88a0SVivek Aknurwar 251*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup1 = { 252*ffaa88a0SVivek Aknurwar .name = "qhs_qup1", 253*ffaa88a0SVivek Aknurwar .channels = 1, 254*ffaa88a0SVivek Aknurwar .buswidth = 4, 255*ffaa88a0SVivek Aknurwar }; 256*ffaa88a0SVivek Aknurwar 257*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup2 = { 258*ffaa88a0SVivek Aknurwar .name = "qhs_qup2", 259*ffaa88a0SVivek Aknurwar .channels = 1, 260*ffaa88a0SVivek Aknurwar .buswidth = 4, 261*ffaa88a0SVivek Aknurwar }; 262*ffaa88a0SVivek Aknurwar 263*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup3 = { 264*ffaa88a0SVivek Aknurwar .name = "qhs_qup3", 265*ffaa88a0SVivek Aknurwar .channels = 1, 266*ffaa88a0SVivek Aknurwar .buswidth = 4, 267*ffaa88a0SVivek Aknurwar }; 268*ffaa88a0SVivek Aknurwar 269*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_qup4 = { 270*ffaa88a0SVivek Aknurwar .name = "qhs_qup4", 271*ffaa88a0SVivek Aknurwar .channels = 1, 272*ffaa88a0SVivek Aknurwar .buswidth = 4, 273*ffaa88a0SVivek Aknurwar }; 274*ffaa88a0SVivek Aknurwar 275*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_sdc2 = { 276*ffaa88a0SVivek Aknurwar .name = "qhs_sdc2", 277*ffaa88a0SVivek Aknurwar .channels = 1, 278*ffaa88a0SVivek Aknurwar .buswidth = 4, 279*ffaa88a0SVivek Aknurwar }; 280*ffaa88a0SVivek Aknurwar 281*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_sdc4 = { 282*ffaa88a0SVivek Aknurwar .name = "qhs_sdc4", 283*ffaa88a0SVivek Aknurwar .channels = 1, 284*ffaa88a0SVivek Aknurwar .buswidth = 4, 285*ffaa88a0SVivek Aknurwar }; 286*ffaa88a0SVivek Aknurwar 287*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_tlmm = { 288*ffaa88a0SVivek Aknurwar .name = "qhs_tlmm", 289*ffaa88a0SVivek Aknurwar .channels = 1, 290*ffaa88a0SVivek Aknurwar .buswidth = 4, 291*ffaa88a0SVivek Aknurwar }; 292*ffaa88a0SVivek Aknurwar 293*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_ufs_mem_cfg = { 294*ffaa88a0SVivek Aknurwar .name = "qhs_ufs_mem_cfg", 295*ffaa88a0SVivek Aknurwar .channels = 1, 296*ffaa88a0SVivek Aknurwar .buswidth = 4, 297*ffaa88a0SVivek Aknurwar }; 298*ffaa88a0SVivek Aknurwar 299*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_usb3 = { 300*ffaa88a0SVivek Aknurwar .name = "qhs_usb3", 301*ffaa88a0SVivek Aknurwar .channels = 1, 302*ffaa88a0SVivek Aknurwar .buswidth = 4, 303*ffaa88a0SVivek Aknurwar }; 304*ffaa88a0SVivek Aknurwar 305*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhs_vsense_ctrl_cfg = { 306*ffaa88a0SVivek Aknurwar .name = "qhs_vsense_ctrl_cfg", 307*ffaa88a0SVivek Aknurwar .channels = 1, 308*ffaa88a0SVivek Aknurwar .buswidth = 4, 309*ffaa88a0SVivek Aknurwar }; 310*ffaa88a0SVivek Aknurwar 311*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_qdss_cfg = { 312*ffaa88a0SVivek Aknurwar .name = "qss_qdss_cfg", 313*ffaa88a0SVivek Aknurwar .channels = 1, 314*ffaa88a0SVivek Aknurwar .buswidth = 4, 315*ffaa88a0SVivek Aknurwar }; 316*ffaa88a0SVivek Aknurwar 317*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_qdss_stm = { 318*ffaa88a0SVivek Aknurwar .name = "qss_qdss_stm", 319*ffaa88a0SVivek Aknurwar .channels = 1, 320*ffaa88a0SVivek Aknurwar .buswidth = 4, 321*ffaa88a0SVivek Aknurwar }; 322*ffaa88a0SVivek Aknurwar 323*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_tcsr = { 324*ffaa88a0SVivek Aknurwar .name = "qss_tcsr", 325*ffaa88a0SVivek Aknurwar .channels = 1, 326*ffaa88a0SVivek Aknurwar .buswidth = 4, 327*ffaa88a0SVivek Aknurwar }; 328*ffaa88a0SVivek Aknurwar 329*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xs_sys_tcu_cfg = { 330*ffaa88a0SVivek Aknurwar .name = "xs_sys_tcu_cfg", 331*ffaa88a0SVivek Aknurwar .channels = 1, 332*ffaa88a0SVivek Aknurwar .buswidth = 8, 333*ffaa88a0SVivek Aknurwar }; 334*ffaa88a0SVivek Aknurwar 335*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_eff_veto_master = { 336*ffaa88a0SVivek Aknurwar .name = "ddr_eff_veto_master", 337*ffaa88a0SVivek Aknurwar .channels = 1, 338*ffaa88a0SVivek Aknurwar .buswidth = 4, 339*ffaa88a0SVivek Aknurwar .num_links = 1, 340*ffaa88a0SVivek Aknurwar .link_nodes = { &ddr_eff_veto_slave }, 341*ffaa88a0SVivek Aknurwar }; 342*ffaa88a0SVivek Aknurwar 343*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup0_core_master = { 344*ffaa88a0SVivek Aknurwar .name = "qup0_core_master", 345*ffaa88a0SVivek Aknurwar .channels = 1, 346*ffaa88a0SVivek Aknurwar .buswidth = 4, 347*ffaa88a0SVivek Aknurwar .num_links = 1, 348*ffaa88a0SVivek Aknurwar .link_nodes = { &qup0_core_slave }, 349*ffaa88a0SVivek Aknurwar }; 350*ffaa88a0SVivek Aknurwar 351*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup1_core_master = { 352*ffaa88a0SVivek Aknurwar .name = "qup1_core_master", 353*ffaa88a0SVivek Aknurwar .channels = 1, 354*ffaa88a0SVivek Aknurwar .buswidth = 4, 355*ffaa88a0SVivek Aknurwar .num_links = 1, 356*ffaa88a0SVivek Aknurwar .link_nodes = { &qup1_core_slave }, 357*ffaa88a0SVivek Aknurwar }; 358*ffaa88a0SVivek Aknurwar 359*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup2_core_master = { 360*ffaa88a0SVivek Aknurwar .name = "qup2_core_master", 361*ffaa88a0SVivek Aknurwar .channels = 1, 362*ffaa88a0SVivek Aknurwar .buswidth = 4, 363*ffaa88a0SVivek Aknurwar .num_links = 1, 364*ffaa88a0SVivek Aknurwar .link_nodes = { &qup2_core_slave }, 365*ffaa88a0SVivek Aknurwar }; 366*ffaa88a0SVivek Aknurwar 367*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup3_core_master = { 368*ffaa88a0SVivek Aknurwar .name = "qup3_core_master", 369*ffaa88a0SVivek Aknurwar .channels = 1, 370*ffaa88a0SVivek Aknurwar .buswidth = 4, 371*ffaa88a0SVivek Aknurwar .num_links = 1, 372*ffaa88a0SVivek Aknurwar .link_nodes = { &qup3_core_slave }, 373*ffaa88a0SVivek Aknurwar }; 374*ffaa88a0SVivek Aknurwar 375*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qup4_core_master = { 376*ffaa88a0SVivek Aknurwar .name = "qup4_core_master", 377*ffaa88a0SVivek Aknurwar .channels = 1, 378*ffaa88a0SVivek Aknurwar .buswidth = 4, 379*ffaa88a0SVivek Aknurwar .num_links = 1, 380*ffaa88a0SVivek Aknurwar .link_nodes = { &qup4_core_slave }, 381*ffaa88a0SVivek Aknurwar }; 382*ffaa88a0SVivek Aknurwar 383*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gemnoc_pcie = { 384*ffaa88a0SVivek Aknurwar .name = "qnm_gemnoc_pcie", 385*ffaa88a0SVivek Aknurwar .channels = 1, 386*ffaa88a0SVivek Aknurwar .buswidth = 8, 387*ffaa88a0SVivek Aknurwar .num_links = 2, 388*ffaa88a0SVivek Aknurwar .link_nodes = { &xs_pcie, &xs_pcie_g4x1 }, 389*ffaa88a0SVivek Aknurwar }; 390*ffaa88a0SVivek Aknurwar 391*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpiaon_noc_llclpi_noc = { 392*ffaa88a0SVivek Aknurwar .name = "qnm_lpiaon_noc_llclpi_noc", 393*ffaa88a0SVivek Aknurwar .channels = 1, 394*ffaa88a0SVivek Aknurwar .buswidth = 16, 395*ffaa88a0SVivek Aknurwar .num_links = 4, 396*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_lpi_cc, &qns_lb, 397*ffaa88a0SVivek Aknurwar &srvc_llclpi_noc, &srvc_llclpi_noc_chipcx }, 398*ffaa88a0SVivek Aknurwar }; 399*ffaa88a0SVivek Aknurwar 400*ffaa88a0SVivek Aknurwar static struct qcom_icc_node llcc_mc = { 401*ffaa88a0SVivek Aknurwar .name = "llcc_mc", 402*ffaa88a0SVivek Aknurwar .channels = 4, 403*ffaa88a0SVivek Aknurwar .buswidth = 4, 404*ffaa88a0SVivek Aknurwar .num_links = 1, 405*ffaa88a0SVivek Aknurwar .link_nodes = { &ebi }, 406*ffaa88a0SVivek Aknurwar }; 407*ffaa88a0SVivek Aknurwar 408*ffaa88a0SVivek Aknurwar static struct qcom_icc_node ddr_rt_mc = { 409*ffaa88a0SVivek Aknurwar .name = "ddr_rt_mc", 410*ffaa88a0SVivek Aknurwar .channels = 4, 411*ffaa88a0SVivek Aknurwar .buswidth = 4, 412*ffaa88a0SVivek Aknurwar .num_links = 1, 413*ffaa88a0SVivek Aknurwar .link_nodes = { &ddr_rt_slave }, 414*ffaa88a0SVivek Aknurwar }; 415*ffaa88a0SVivek Aknurwar 416*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_pcie_anoc_cfg = { 417*ffaa88a0SVivek Aknurwar .name = "qsm_pcie_anoc_cfg", 418*ffaa88a0SVivek Aknurwar .channels = 1, 419*ffaa88a0SVivek Aknurwar .buswidth = 4, 420*ffaa88a0SVivek Aknurwar .num_links = 1, 421*ffaa88a0SVivek Aknurwar .link_nodes = { &srvc_pcie_aggre_noc }, 422*ffaa88a0SVivek Aknurwar }; 423*ffaa88a0SVivek Aknurwar 424*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_east = { 425*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_east", 426*ffaa88a0SVivek Aknurwar .channels = 1, 427*ffaa88a0SVivek Aknurwar .buswidth = 4, 428*ffaa88a0SVivek Aknurwar .num_links = 4, 429*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_crypto_cfg, &qhs_gpuss_cfg, 430*ffaa88a0SVivek Aknurwar &qhs_qup2, &qhs_vsense_ctrl_cfg }, 431*ffaa88a0SVivek Aknurwar }; 432*ffaa88a0SVivek Aknurwar 433*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_mm = { 434*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_mm", 435*ffaa88a0SVivek Aknurwar .channels = 1, 436*ffaa88a0SVivek Aknurwar .buswidth = 4, 437*ffaa88a0SVivek Aknurwar .num_links = 5, 438*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_boot_rom, &qhs_camera_cfg, 439*ffaa88a0SVivek Aknurwar &qhs_display_cfg, &qhs_eva_cfg, 440*ffaa88a0SVivek Aknurwar &qhs_iris_cfg }, 441*ffaa88a0SVivek Aknurwar }; 442*ffaa88a0SVivek Aknurwar 443*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_north = { 444*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_north", 445*ffaa88a0SVivek Aknurwar .channels = 1, 446*ffaa88a0SVivek Aknurwar .buswidth = 4, 447*ffaa88a0SVivek Aknurwar .num_links = 5, 448*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_pcie_cfg, &qhs_pcie_g4x1_cfg, 449*ffaa88a0SVivek Aknurwar &qhs_qup3, &qhs_qup4, 450*ffaa88a0SVivek Aknurwar &qhs_sdc2 }, 451*ffaa88a0SVivek Aknurwar }; 452*ffaa88a0SVivek Aknurwar 453*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_south = { 454*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_south", 455*ffaa88a0SVivek Aknurwar .channels = 1, 456*ffaa88a0SVivek Aknurwar .buswidth = 4, 457*ffaa88a0SVivek Aknurwar .num_links = 6, 458*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_ahb2phy0, &qhs_qspi, 459*ffaa88a0SVivek Aknurwar &qhs_qup1, &qhs_sdc4, 460*ffaa88a0SVivek Aknurwar &qhs_ufs_mem_cfg, &qhs_usb3 }, 461*ffaa88a0SVivek Aknurwar }; 462*ffaa88a0SVivek Aknurwar 463*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_southwest = { 464*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_southwest", 465*ffaa88a0SVivek Aknurwar .channels = 1, 466*ffaa88a0SVivek Aknurwar .buswidth = 4, 467*ffaa88a0SVivek Aknurwar .num_links = 2, 468*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_ipc_router, &qhs_mss_cfg }, 469*ffaa88a0SVivek Aknurwar }; 470*ffaa88a0SVivek Aknurwar 471*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_llcc = { 472*ffaa88a0SVivek Aknurwar .name = "qns_llcc", 473*ffaa88a0SVivek Aknurwar .channels = 4, 474*ffaa88a0SVivek Aknurwar .buswidth = 32, 475*ffaa88a0SVivek Aknurwar .num_links = 1, 476*ffaa88a0SVivek Aknurwar .link_nodes = { &llcc_mc }, 477*ffaa88a0SVivek Aknurwar }; 478*ffaa88a0SVivek Aknurwar 479*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_pcie = { 480*ffaa88a0SVivek Aknurwar .name = "qns_pcie", 481*ffaa88a0SVivek Aknurwar .channels = 1, 482*ffaa88a0SVivek Aknurwar .buswidth = 8, 483*ffaa88a0SVivek Aknurwar .num_links = 1, 484*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_gemnoc_pcie }, 485*ffaa88a0SVivek Aknurwar }; 486*ffaa88a0SVivek Aknurwar 487*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_llc_lpinoc = { 488*ffaa88a0SVivek Aknurwar .name = "qns_llc_lpinoc", 489*ffaa88a0SVivek Aknurwar .channels = 1, 490*ffaa88a0SVivek Aknurwar .buswidth = 16, 491*ffaa88a0SVivek Aknurwar .num_links = 1, 492*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_lpiaon_noc_llclpi_noc }, 493*ffaa88a0SVivek Aknurwar }; 494*ffaa88a0SVivek Aknurwar 495*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_pcie_anoc_cfg = { 496*ffaa88a0SVivek Aknurwar .name = "qss_pcie_anoc_cfg", 497*ffaa88a0SVivek Aknurwar .channels = 1, 498*ffaa88a0SVivek Aknurwar .buswidth = 4, 499*ffaa88a0SVivek Aknurwar .num_links = 1, 500*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_pcie_anoc_cfg }, 501*ffaa88a0SVivek Aknurwar }; 502*ffaa88a0SVivek Aknurwar 503*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_east_cfg = { 504*ffaa88a0SVivek Aknurwar .name = "qss_stdst_east_cfg", 505*ffaa88a0SVivek Aknurwar .channels = 1, 506*ffaa88a0SVivek Aknurwar .buswidth = 4, 507*ffaa88a0SVivek Aknurwar .num_links = 1, 508*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_east }, 509*ffaa88a0SVivek Aknurwar }; 510*ffaa88a0SVivek Aknurwar 511*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_mm_cfg = { 512*ffaa88a0SVivek Aknurwar .name = "qss_stdst_mm_cfg", 513*ffaa88a0SVivek Aknurwar .channels = 1, 514*ffaa88a0SVivek Aknurwar .buswidth = 4, 515*ffaa88a0SVivek Aknurwar .num_links = 1, 516*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_mm }, 517*ffaa88a0SVivek Aknurwar }; 518*ffaa88a0SVivek Aknurwar 519*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_north_cfg = { 520*ffaa88a0SVivek Aknurwar .name = "qss_stdst_north_cfg", 521*ffaa88a0SVivek Aknurwar .channels = 1, 522*ffaa88a0SVivek Aknurwar .buswidth = 4, 523*ffaa88a0SVivek Aknurwar .num_links = 1, 524*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_north }, 525*ffaa88a0SVivek Aknurwar }; 526*ffaa88a0SVivek Aknurwar 527*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_south_cfg = { 528*ffaa88a0SVivek Aknurwar .name = "qss_stdst_south_cfg", 529*ffaa88a0SVivek Aknurwar .channels = 1, 530*ffaa88a0SVivek Aknurwar .buswidth = 4, 531*ffaa88a0SVivek Aknurwar .num_links = 1, 532*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_south }, 533*ffaa88a0SVivek Aknurwar }; 534*ffaa88a0SVivek Aknurwar 535*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_southwest_cfg = { 536*ffaa88a0SVivek Aknurwar .name = "qss_stdst_southwest_cfg", 537*ffaa88a0SVivek Aknurwar .channels = 1, 538*ffaa88a0SVivek Aknurwar .buswidth = 4, 539*ffaa88a0SVivek Aknurwar .num_links = 1, 540*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_southwest }, 541*ffaa88a0SVivek Aknurwar }; 542*ffaa88a0SVivek Aknurwar 543*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_gic = { 544*ffaa88a0SVivek Aknurwar .name = "alm_gic", 545*ffaa88a0SVivek Aknurwar .channels = 1, 546*ffaa88a0SVivek Aknurwar .buswidth = 8, 547*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 548*ffaa88a0SVivek Aknurwar .num_ports = 1, 549*ffaa88a0SVivek Aknurwar .port_offsets = { 0x14d000 }, 550*ffaa88a0SVivek Aknurwar .prio = 4, 551*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 552*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 553*ffaa88a0SVivek Aknurwar }, 554*ffaa88a0SVivek Aknurwar .num_links = 1, 555*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_llcc }, 556*ffaa88a0SVivek Aknurwar }; 557*ffaa88a0SVivek Aknurwar 558*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_qpace = { 559*ffaa88a0SVivek Aknurwar .name = "qnm_qpace", 560*ffaa88a0SVivek Aknurwar .channels = 1, 561*ffaa88a0SVivek Aknurwar .buswidth = 32, 562*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 563*ffaa88a0SVivek Aknurwar .num_ports = 1, 564*ffaa88a0SVivek Aknurwar .port_offsets = { 0x153000 }, 565*ffaa88a0SVivek Aknurwar .prio = 0, 566*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 567*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 568*ffaa88a0SVivek Aknurwar }, 569*ffaa88a0SVivek Aknurwar .num_links = 1, 570*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_llcc }, 571*ffaa88a0SVivek Aknurwar }; 572*ffaa88a0SVivek Aknurwar 573*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cfg_center = { 574*ffaa88a0SVivek Aknurwar .name = "qsm_cfg_center", 575*ffaa88a0SVivek Aknurwar .channels = 1, 576*ffaa88a0SVivek Aknurwar .buswidth = 4, 577*ffaa88a0SVivek Aknurwar .num_links = 10, 578*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_clk_ctl, &qhs_i2c, 579*ffaa88a0SVivek Aknurwar &qhs_imem_cfg, &qhs_prng, 580*ffaa88a0SVivek Aknurwar &qhs_tlmm, &qss_pcie_anoc_cfg, 581*ffaa88a0SVivek Aknurwar &qss_qdss_cfg, &qss_qdss_stm, 582*ffaa88a0SVivek Aknurwar &qss_tcsr, &xs_sys_tcu_cfg }, 583*ffaa88a0SVivek Aknurwar }; 584*ffaa88a0SVivek Aknurwar 585*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_stdst_center_cfg = { 586*ffaa88a0SVivek Aknurwar .name = "qss_stdst_center_cfg", 587*ffaa88a0SVivek Aknurwar .channels = 1, 588*ffaa88a0SVivek Aknurwar .buswidth = 4, 589*ffaa88a0SVivek Aknurwar .num_links = 1, 590*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cfg_center }, 591*ffaa88a0SVivek Aknurwar }; 592*ffaa88a0SVivek Aknurwar 593*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qsm_cnoc_main = { 594*ffaa88a0SVivek Aknurwar .name = "qsm_cnoc_main", 595*ffaa88a0SVivek Aknurwar .channels = 1, 596*ffaa88a0SVivek Aknurwar .buswidth = 4, 597*ffaa88a0SVivek Aknurwar .num_links = 6, 598*ffaa88a0SVivek Aknurwar .link_nodes = { &qss_stdst_center_cfg, &qss_stdst_east_cfg, 599*ffaa88a0SVivek Aknurwar &qss_stdst_mm_cfg, &qss_stdst_north_cfg, 600*ffaa88a0SVivek Aknurwar &qss_stdst_south_cfg, &qss_stdst_southwest_cfg }, 601*ffaa88a0SVivek Aknurwar }; 602*ffaa88a0SVivek Aknurwar 603*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qss_cfg = { 604*ffaa88a0SVivek Aknurwar .name = "qss_cfg", 605*ffaa88a0SVivek Aknurwar .channels = 1, 606*ffaa88a0SVivek Aknurwar .buswidth = 4, 607*ffaa88a0SVivek Aknurwar .num_links = 1, 608*ffaa88a0SVivek Aknurwar .link_nodes = { &qsm_cnoc_main }, 609*ffaa88a0SVivek Aknurwar }; 610*ffaa88a0SVivek Aknurwar 611*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gemnoc_cnoc = { 612*ffaa88a0SVivek Aknurwar .name = "qnm_gemnoc_cnoc", 613*ffaa88a0SVivek Aknurwar .channels = 1, 614*ffaa88a0SVivek Aknurwar .buswidth = 16, 615*ffaa88a0SVivek Aknurwar .num_links = 8, 616*ffaa88a0SVivek Aknurwar .link_nodes = { &qhs_aoss, &qhs_ipa, 617*ffaa88a0SVivek Aknurwar &qhs_ipc_router_fence, &qhs_soccp, 618*ffaa88a0SVivek Aknurwar &qhs_tme_cfg, &qss_cfg, 619*ffaa88a0SVivek Aknurwar &qss_ddrss_cfg, &qxs_imem }, 620*ffaa88a0SVivek Aknurwar }; 621*ffaa88a0SVivek Aknurwar 622*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_gem_noc_cnoc = { 623*ffaa88a0SVivek Aknurwar .name = "qns_gem_noc_cnoc", 624*ffaa88a0SVivek Aknurwar .channels = 1, 625*ffaa88a0SVivek Aknurwar .buswidth = 16, 626*ffaa88a0SVivek Aknurwar .num_links = 1, 627*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_gemnoc_cnoc }, 628*ffaa88a0SVivek Aknurwar }; 629*ffaa88a0SVivek Aknurwar 630*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_gpu_tcu = { 631*ffaa88a0SVivek Aknurwar .name = "alm_gpu_tcu", 632*ffaa88a0SVivek Aknurwar .channels = 1, 633*ffaa88a0SVivek Aknurwar .buswidth = 8, 634*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 635*ffaa88a0SVivek Aknurwar .num_ports = 1, 636*ffaa88a0SVivek Aknurwar .port_offsets = { 0x145000 }, 637*ffaa88a0SVivek Aknurwar .prio = 1, 638*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 639*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 640*ffaa88a0SVivek Aknurwar }, 641*ffaa88a0SVivek Aknurwar .num_links = 2, 642*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc }, 643*ffaa88a0SVivek Aknurwar }; 644*ffaa88a0SVivek Aknurwar 645*ffaa88a0SVivek Aknurwar static struct qcom_icc_node alm_sys_tcu = { 646*ffaa88a0SVivek Aknurwar .name = "alm_sys_tcu", 647*ffaa88a0SVivek Aknurwar .channels = 1, 648*ffaa88a0SVivek Aknurwar .buswidth = 8, 649*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 650*ffaa88a0SVivek Aknurwar .num_ports = 1, 651*ffaa88a0SVivek Aknurwar .port_offsets = { 0x147000 }, 652*ffaa88a0SVivek Aknurwar .prio = 6, 653*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 654*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 655*ffaa88a0SVivek Aknurwar }, 656*ffaa88a0SVivek Aknurwar .num_links = 2, 657*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc }, 658*ffaa88a0SVivek Aknurwar }; 659*ffaa88a0SVivek Aknurwar 660*ffaa88a0SVivek Aknurwar static struct qcom_icc_node chm_apps = { 661*ffaa88a0SVivek Aknurwar .name = "chm_apps", 662*ffaa88a0SVivek Aknurwar .channels = 4, 663*ffaa88a0SVivek Aknurwar .buswidth = 32, 664*ffaa88a0SVivek Aknurwar .num_links = 3, 665*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 666*ffaa88a0SVivek Aknurwar &qns_pcie }, 667*ffaa88a0SVivek Aknurwar }; 668*ffaa88a0SVivek Aknurwar 669*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_gpu = { 670*ffaa88a0SVivek Aknurwar .name = "qnm_gpu", 671*ffaa88a0SVivek Aknurwar .channels = 4, 672*ffaa88a0SVivek Aknurwar .buswidth = 32, 673*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 674*ffaa88a0SVivek Aknurwar .num_ports = 4, 675*ffaa88a0SVivek Aknurwar .port_offsets = { 0x51000, 0x53000, 0xd1000, 0xd3000 }, 676*ffaa88a0SVivek Aknurwar .prio = 0, 677*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 678*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 679*ffaa88a0SVivek Aknurwar }, 680*ffaa88a0SVivek Aknurwar .num_links = 3, 681*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 682*ffaa88a0SVivek Aknurwar &qns_pcie }, 683*ffaa88a0SVivek Aknurwar }; 684*ffaa88a0SVivek Aknurwar 685*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpass_gemnoc = { 686*ffaa88a0SVivek Aknurwar .name = "qnm_lpass_gemnoc", 687*ffaa88a0SVivek Aknurwar .channels = 1, 688*ffaa88a0SVivek Aknurwar .buswidth = 32, 689*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 690*ffaa88a0SVivek Aknurwar .num_ports = 1, 691*ffaa88a0SVivek Aknurwar .port_offsets = { 0x149000 }, 692*ffaa88a0SVivek Aknurwar .prio = 0, 693*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 694*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 695*ffaa88a0SVivek Aknurwar }, 696*ffaa88a0SVivek Aknurwar .num_links = 3, 697*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 698*ffaa88a0SVivek Aknurwar &qns_pcie }, 699*ffaa88a0SVivek Aknurwar }; 700*ffaa88a0SVivek Aknurwar 701*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdsp = { 702*ffaa88a0SVivek Aknurwar .name = "qnm_mdsp", 703*ffaa88a0SVivek Aknurwar .channels = 1, 704*ffaa88a0SVivek Aknurwar .buswidth = 16, 705*ffaa88a0SVivek Aknurwar .num_links = 3, 706*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 707*ffaa88a0SVivek Aknurwar &qns_pcie }, 708*ffaa88a0SVivek Aknurwar }; 709*ffaa88a0SVivek Aknurwar 710*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mnoc_hf = { 711*ffaa88a0SVivek Aknurwar .name = "qnm_mnoc_hf", 712*ffaa88a0SVivek Aknurwar .channels = 2, 713*ffaa88a0SVivek Aknurwar .buswidth = 32, 714*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 715*ffaa88a0SVivek Aknurwar .num_ports = 2, 716*ffaa88a0SVivek Aknurwar .port_offsets = { 0x55000, 0xd5000 }, 717*ffaa88a0SVivek Aknurwar .prio = 0, 718*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 719*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 720*ffaa88a0SVivek Aknurwar }, 721*ffaa88a0SVivek Aknurwar .num_links = 3, 722*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 723*ffaa88a0SVivek Aknurwar &qns_pcie }, 724*ffaa88a0SVivek Aknurwar }; 725*ffaa88a0SVivek Aknurwar 726*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mnoc_sf = { 727*ffaa88a0SVivek Aknurwar .name = "qnm_mnoc_sf", 728*ffaa88a0SVivek Aknurwar .channels = 2, 729*ffaa88a0SVivek Aknurwar .buswidth = 32, 730*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 731*ffaa88a0SVivek Aknurwar .num_ports = 2, 732*ffaa88a0SVivek Aknurwar .port_offsets = { 0x57000, 0xd7000 }, 733*ffaa88a0SVivek Aknurwar .prio = 0, 734*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 735*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 736*ffaa88a0SVivek Aknurwar }, 737*ffaa88a0SVivek Aknurwar .num_links = 3, 738*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 739*ffaa88a0SVivek Aknurwar &qns_pcie }, 740*ffaa88a0SVivek Aknurwar }; 741*ffaa88a0SVivek Aknurwar 742*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_nsp_gemnoc = { 743*ffaa88a0SVivek Aknurwar .name = "qnm_nsp_gemnoc", 744*ffaa88a0SVivek Aknurwar .channels = 4, 745*ffaa88a0SVivek Aknurwar .buswidth = 32, 746*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 747*ffaa88a0SVivek Aknurwar .num_ports = 4, 748*ffaa88a0SVivek Aknurwar .port_offsets = { 0x59000, 0x5b000, 0xd9000, 0xdb000 }, 749*ffaa88a0SVivek Aknurwar .prio = 0, 750*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 751*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 752*ffaa88a0SVivek Aknurwar }, 753*ffaa88a0SVivek Aknurwar .num_links = 3, 754*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 755*ffaa88a0SVivek Aknurwar &qns_pcie }, 756*ffaa88a0SVivek Aknurwar }; 757*ffaa88a0SVivek Aknurwar 758*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_pcie = { 759*ffaa88a0SVivek Aknurwar .name = "qnm_pcie", 760*ffaa88a0SVivek Aknurwar .channels = 1, 761*ffaa88a0SVivek Aknurwar .buswidth = 8, 762*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 763*ffaa88a0SVivek Aknurwar .num_ports = 1, 764*ffaa88a0SVivek Aknurwar .port_offsets = { 0x14b000 }, 765*ffaa88a0SVivek Aknurwar .prio = 2, 766*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 767*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 768*ffaa88a0SVivek Aknurwar }, 769*ffaa88a0SVivek Aknurwar .num_links = 2, 770*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc }, 771*ffaa88a0SVivek Aknurwar }; 772*ffaa88a0SVivek Aknurwar 773*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_snoc_sf = { 774*ffaa88a0SVivek Aknurwar .name = "qnm_snoc_sf", 775*ffaa88a0SVivek Aknurwar .channels = 1, 776*ffaa88a0SVivek Aknurwar .buswidth = 32, 777*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 778*ffaa88a0SVivek Aknurwar .num_ports = 1, 779*ffaa88a0SVivek Aknurwar .port_offsets = { 0x14f000 }, 780*ffaa88a0SVivek Aknurwar .prio = 0, 781*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 782*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 783*ffaa88a0SVivek Aknurwar }, 784*ffaa88a0SVivek Aknurwar .num_links = 3, 785*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 786*ffaa88a0SVivek Aknurwar &qns_pcie }, 787*ffaa88a0SVivek Aknurwar }; 788*ffaa88a0SVivek Aknurwar 789*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_wlan_q6 = { 790*ffaa88a0SVivek Aknurwar .name = "qnm_wlan_q6", 791*ffaa88a0SVivek Aknurwar .channels = 1, 792*ffaa88a0SVivek Aknurwar .buswidth = 8, 793*ffaa88a0SVivek Aknurwar .num_links = 3, 794*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc, 795*ffaa88a0SVivek Aknurwar &qns_pcie }, 796*ffaa88a0SVivek Aknurwar }; 797*ffaa88a0SVivek Aknurwar 798*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpass_ag_noc_gemnoc = { 799*ffaa88a0SVivek Aknurwar .name = "qns_lpass_ag_noc_gemnoc", 800*ffaa88a0SVivek Aknurwar .channels = 1, 801*ffaa88a0SVivek Aknurwar .buswidth = 32, 802*ffaa88a0SVivek Aknurwar .num_links = 1, 803*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_lpass_gemnoc }, 804*ffaa88a0SVivek Aknurwar }; 805*ffaa88a0SVivek Aknurwar 806*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_mem_noc_hf = { 807*ffaa88a0SVivek Aknurwar .name = "qns_mem_noc_hf", 808*ffaa88a0SVivek Aknurwar .channels = 2, 809*ffaa88a0SVivek Aknurwar .buswidth = 32, 810*ffaa88a0SVivek Aknurwar .num_links = 1, 811*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_mnoc_hf }, 812*ffaa88a0SVivek Aknurwar }; 813*ffaa88a0SVivek Aknurwar 814*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_mem_noc_sf = { 815*ffaa88a0SVivek Aknurwar .name = "qns_mem_noc_sf", 816*ffaa88a0SVivek Aknurwar .channels = 2, 817*ffaa88a0SVivek Aknurwar .buswidth = 32, 818*ffaa88a0SVivek Aknurwar .num_links = 1, 819*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_mnoc_sf }, 820*ffaa88a0SVivek Aknurwar }; 821*ffaa88a0SVivek Aknurwar 822*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_nsp_gemnoc = { 823*ffaa88a0SVivek Aknurwar .name = "qns_nsp_gemnoc", 824*ffaa88a0SVivek Aknurwar .channels = 4, 825*ffaa88a0SVivek Aknurwar .buswidth = 32, 826*ffaa88a0SVivek Aknurwar .num_links = 1, 827*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_nsp_gemnoc }, 828*ffaa88a0SVivek Aknurwar }; 829*ffaa88a0SVivek Aknurwar 830*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_pcie_gemnoc = { 831*ffaa88a0SVivek Aknurwar .name = "qns_pcie_gemnoc", 832*ffaa88a0SVivek Aknurwar .channels = 1, 833*ffaa88a0SVivek Aknurwar .buswidth = 8, 834*ffaa88a0SVivek Aknurwar .num_links = 1, 835*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_pcie }, 836*ffaa88a0SVivek Aknurwar }; 837*ffaa88a0SVivek Aknurwar 838*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_gemnoc_sf = { 839*ffaa88a0SVivek Aknurwar .name = "qns_gemnoc_sf", 840*ffaa88a0SVivek Aknurwar .channels = 1, 841*ffaa88a0SVivek Aknurwar .buswidth = 32, 842*ffaa88a0SVivek Aknurwar .num_links = 1, 843*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_snoc_sf }, 844*ffaa88a0SVivek Aknurwar }; 845*ffaa88a0SVivek Aknurwar 846*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpiaon_noc = { 847*ffaa88a0SVivek Aknurwar .name = "qnm_lpiaon_noc", 848*ffaa88a0SVivek Aknurwar .channels = 1, 849*ffaa88a0SVivek Aknurwar .buswidth = 32, 850*ffaa88a0SVivek Aknurwar .num_links = 1, 851*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_lpass_ag_noc_gemnoc }, 852*ffaa88a0SVivek Aknurwar }; 853*ffaa88a0SVivek Aknurwar 854*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_hf = { 855*ffaa88a0SVivek Aknurwar .name = "qnm_camnoc_hf", 856*ffaa88a0SVivek Aknurwar .channels = 2, 857*ffaa88a0SVivek Aknurwar .buswidth = 32, 858*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 859*ffaa88a0SVivek Aknurwar .num_ports = 2, 860*ffaa88a0SVivek Aknurwar .port_offsets = { 0x2a000, 0x2b000 }, 861*ffaa88a0SVivek Aknurwar .prio = 0, 862*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 863*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 864*ffaa88a0SVivek Aknurwar }, 865*ffaa88a0SVivek Aknurwar .num_links = 1, 866*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_hf }, 867*ffaa88a0SVivek Aknurwar }; 868*ffaa88a0SVivek Aknurwar 869*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_nrt_icp_sf = { 870*ffaa88a0SVivek Aknurwar .name = "qnm_camnoc_nrt_icp_sf", 871*ffaa88a0SVivek Aknurwar .channels = 1, 872*ffaa88a0SVivek Aknurwar .buswidth = 8, 873*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 874*ffaa88a0SVivek Aknurwar .num_ports = 1, 875*ffaa88a0SVivek Aknurwar .port_offsets = { 0x2c000 }, 876*ffaa88a0SVivek Aknurwar .prio = 4, 877*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 878*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 879*ffaa88a0SVivek Aknurwar }, 880*ffaa88a0SVivek Aknurwar .num_links = 1, 881*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 882*ffaa88a0SVivek Aknurwar }; 883*ffaa88a0SVivek Aknurwar 884*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_rt_cdm_sf = { 885*ffaa88a0SVivek Aknurwar .name = "qnm_camnoc_rt_cdm_sf", 886*ffaa88a0SVivek Aknurwar .channels = 1, 887*ffaa88a0SVivek Aknurwar .buswidth = 8, 888*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 889*ffaa88a0SVivek Aknurwar .num_ports = 1, 890*ffaa88a0SVivek Aknurwar .port_offsets = { 0x38000 }, 891*ffaa88a0SVivek Aknurwar .prio = 2, 892*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 893*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 894*ffaa88a0SVivek Aknurwar }, 895*ffaa88a0SVivek Aknurwar .num_links = 1, 896*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 897*ffaa88a0SVivek Aknurwar }; 898*ffaa88a0SVivek Aknurwar 899*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_camnoc_sf = { 900*ffaa88a0SVivek Aknurwar .name = "qnm_camnoc_sf", 901*ffaa88a0SVivek Aknurwar .channels = 2, 902*ffaa88a0SVivek Aknurwar .buswidth = 32, 903*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 904*ffaa88a0SVivek Aknurwar .num_ports = 2, 905*ffaa88a0SVivek Aknurwar .port_offsets = { 0x2d000, 0x2e000 }, 906*ffaa88a0SVivek Aknurwar .prio = 0, 907*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 908*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 909*ffaa88a0SVivek Aknurwar }, 910*ffaa88a0SVivek Aknurwar .num_links = 1, 911*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 912*ffaa88a0SVivek Aknurwar }; 913*ffaa88a0SVivek Aknurwar 914*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdp = { 915*ffaa88a0SVivek Aknurwar .name = "qnm_mdp", 916*ffaa88a0SVivek Aknurwar .channels = 2, 917*ffaa88a0SVivek Aknurwar .buswidth = 32, 918*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 919*ffaa88a0SVivek Aknurwar .num_ports = 2, 920*ffaa88a0SVivek Aknurwar .port_offsets = { 0x2f000, 0x30000 }, 921*ffaa88a0SVivek Aknurwar .prio = 0, 922*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 923*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 924*ffaa88a0SVivek Aknurwar }, 925*ffaa88a0SVivek Aknurwar .num_links = 1, 926*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_hf }, 927*ffaa88a0SVivek Aknurwar }; 928*ffaa88a0SVivek Aknurwar 929*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_mdss_dcp = { 930*ffaa88a0SVivek Aknurwar .name = "qnm_mdss_dcp", 931*ffaa88a0SVivek Aknurwar .channels = 1, 932*ffaa88a0SVivek Aknurwar .buswidth = 8, 933*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 934*ffaa88a0SVivek Aknurwar .num_ports = 1, 935*ffaa88a0SVivek Aknurwar .port_offsets = { 0x39000 }, 936*ffaa88a0SVivek Aknurwar .prio = 0, 937*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 938*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 939*ffaa88a0SVivek Aknurwar }, 940*ffaa88a0SVivek Aknurwar .num_links = 1, 941*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 942*ffaa88a0SVivek Aknurwar }; 943*ffaa88a0SVivek Aknurwar 944*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_vapss_hcp = { 945*ffaa88a0SVivek Aknurwar .name = "qnm_vapss_hcp", 946*ffaa88a0SVivek Aknurwar .channels = 1, 947*ffaa88a0SVivek Aknurwar .buswidth = 32, 948*ffaa88a0SVivek Aknurwar .num_links = 1, 949*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 950*ffaa88a0SVivek Aknurwar }; 951*ffaa88a0SVivek Aknurwar 952*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_cv_cpu = { 953*ffaa88a0SVivek Aknurwar .name = "qnm_video_cv_cpu", 954*ffaa88a0SVivek Aknurwar .channels = 1, 955*ffaa88a0SVivek Aknurwar .buswidth = 8, 956*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 957*ffaa88a0SVivek Aknurwar .num_ports = 1, 958*ffaa88a0SVivek Aknurwar .port_offsets = { 0x34000 }, 959*ffaa88a0SVivek Aknurwar .prio = 4, 960*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 961*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 962*ffaa88a0SVivek Aknurwar }, 963*ffaa88a0SVivek Aknurwar .num_links = 1, 964*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 965*ffaa88a0SVivek Aknurwar }; 966*ffaa88a0SVivek Aknurwar 967*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_eva = { 968*ffaa88a0SVivek Aknurwar .name = "qnm_video_eva", 969*ffaa88a0SVivek Aknurwar .channels = 2, 970*ffaa88a0SVivek Aknurwar .buswidth = 32, 971*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 972*ffaa88a0SVivek Aknurwar .num_ports = 2, 973*ffaa88a0SVivek Aknurwar .port_offsets = { 0x35000, 0x36000 }, 974*ffaa88a0SVivek Aknurwar .prio = 0, 975*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 976*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 977*ffaa88a0SVivek Aknurwar }, 978*ffaa88a0SVivek Aknurwar .num_links = 1, 979*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 980*ffaa88a0SVivek Aknurwar }; 981*ffaa88a0SVivek Aknurwar 982*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_mvp = { 983*ffaa88a0SVivek Aknurwar .name = "qnm_video_mvp", 984*ffaa88a0SVivek Aknurwar .channels = 2, 985*ffaa88a0SVivek Aknurwar .buswidth = 32, 986*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 987*ffaa88a0SVivek Aknurwar .num_ports = 2, 988*ffaa88a0SVivek Aknurwar .port_offsets = { 0x32000, 0x33000 }, 989*ffaa88a0SVivek Aknurwar .prio = 0, 990*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 991*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 992*ffaa88a0SVivek Aknurwar }, 993*ffaa88a0SVivek Aknurwar .num_links = 1, 994*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 995*ffaa88a0SVivek Aknurwar }; 996*ffaa88a0SVivek Aknurwar 997*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_video_v_cpu = { 998*ffaa88a0SVivek Aknurwar .name = "qnm_video_v_cpu", 999*ffaa88a0SVivek Aknurwar .channels = 1, 1000*ffaa88a0SVivek Aknurwar .buswidth = 8, 1001*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1002*ffaa88a0SVivek Aknurwar .num_ports = 1, 1003*ffaa88a0SVivek Aknurwar .port_offsets = { 0x37000 }, 1004*ffaa88a0SVivek Aknurwar .prio = 4, 1005*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1006*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1007*ffaa88a0SVivek Aknurwar }, 1008*ffaa88a0SVivek Aknurwar .num_links = 1, 1009*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_mem_noc_sf }, 1010*ffaa88a0SVivek Aknurwar }; 1011*ffaa88a0SVivek Aknurwar 1012*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_nsp = { 1013*ffaa88a0SVivek Aknurwar .name = "qnm_nsp", 1014*ffaa88a0SVivek Aknurwar .channels = 4, 1015*ffaa88a0SVivek Aknurwar .buswidth = 32, 1016*ffaa88a0SVivek Aknurwar .num_links = 1, 1017*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_nsp_gemnoc }, 1018*ffaa88a0SVivek Aknurwar }; 1019*ffaa88a0SVivek Aknurwar 1020*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_pcie = { 1021*ffaa88a0SVivek Aknurwar .name = "xm_pcie", 1022*ffaa88a0SVivek Aknurwar .channels = 1, 1023*ffaa88a0SVivek Aknurwar .buswidth = 8, 1024*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1025*ffaa88a0SVivek Aknurwar .num_ports = 1, 1026*ffaa88a0SVivek Aknurwar .port_offsets = { 0xc000 }, 1027*ffaa88a0SVivek Aknurwar .prio = 3, 1028*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1029*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1030*ffaa88a0SVivek Aknurwar }, 1031*ffaa88a0SVivek Aknurwar .num_links = 1, 1032*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_pcie_gemnoc }, 1033*ffaa88a0SVivek Aknurwar }; 1034*ffaa88a0SVivek Aknurwar 1035*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_pcie_g4x1 = { 1036*ffaa88a0SVivek Aknurwar .name = "xm_pcie_g4x1", 1037*ffaa88a0SVivek Aknurwar .channels = 1, 1038*ffaa88a0SVivek Aknurwar .buswidth = 8, 1039*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1040*ffaa88a0SVivek Aknurwar .num_ports = 1, 1041*ffaa88a0SVivek Aknurwar .port_offsets = { 0xd000 }, 1042*ffaa88a0SVivek Aknurwar .prio = 2, 1043*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1044*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1045*ffaa88a0SVivek Aknurwar }, 1046*ffaa88a0SVivek Aknurwar .num_links = 1, 1047*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_pcie_gemnoc }, 1048*ffaa88a0SVivek Aknurwar }; 1049*ffaa88a0SVivek Aknurwar 1050*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_aggre_noc = { 1051*ffaa88a0SVivek Aknurwar .name = "qnm_aggre_noc", 1052*ffaa88a0SVivek Aknurwar .channels = 1, 1053*ffaa88a0SVivek Aknurwar .buswidth = 32, 1054*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1055*ffaa88a0SVivek Aknurwar .num_ports = 1, 1056*ffaa88a0SVivek Aknurwar .port_offsets = { 0x20000 }, 1057*ffaa88a0SVivek Aknurwar .prio = 2, 1058*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1059*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 0, 1060*ffaa88a0SVivek Aknurwar }, 1061*ffaa88a0SVivek Aknurwar .num_links = 1, 1062*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gemnoc_sf }, 1063*ffaa88a0SVivek Aknurwar }; 1064*ffaa88a0SVivek Aknurwar 1065*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_apss_noc = { 1066*ffaa88a0SVivek Aknurwar .name = "qnm_apss_noc", 1067*ffaa88a0SVivek Aknurwar .channels = 1, 1068*ffaa88a0SVivek Aknurwar .buswidth = 8, 1069*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1070*ffaa88a0SVivek Aknurwar .num_ports = 1, 1071*ffaa88a0SVivek Aknurwar .port_offsets = { 0x1e000 }, 1072*ffaa88a0SVivek Aknurwar .prio = 2, 1073*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1074*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1075*ffaa88a0SVivek Aknurwar }, 1076*ffaa88a0SVivek Aknurwar .num_links = 1, 1077*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gemnoc_sf }, 1078*ffaa88a0SVivek Aknurwar }; 1079*ffaa88a0SVivek Aknurwar 1080*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_cnoc_data = { 1081*ffaa88a0SVivek Aknurwar .name = "qnm_cnoc_data", 1082*ffaa88a0SVivek Aknurwar .channels = 1, 1083*ffaa88a0SVivek Aknurwar .buswidth = 8, 1084*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1085*ffaa88a0SVivek Aknurwar .num_ports = 1, 1086*ffaa88a0SVivek Aknurwar .port_offsets = { 0x1f000 }, 1087*ffaa88a0SVivek Aknurwar .prio = 2, 1088*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1089*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1090*ffaa88a0SVivek Aknurwar }, 1091*ffaa88a0SVivek Aknurwar .num_links = 1, 1092*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_gemnoc_sf }, 1093*ffaa88a0SVivek Aknurwar }; 1094*ffaa88a0SVivek Aknurwar 1095*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_a1noc_snoc = { 1096*ffaa88a0SVivek Aknurwar .name = "qns_a1noc_snoc", 1097*ffaa88a0SVivek Aknurwar .channels = 1, 1098*ffaa88a0SVivek Aknurwar .buswidth = 32, 1099*ffaa88a0SVivek Aknurwar .num_links = 1, 1100*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_aggre_noc }, 1101*ffaa88a0SVivek Aknurwar }; 1102*ffaa88a0SVivek Aknurwar 1103*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpass_aggnoc = { 1104*ffaa88a0SVivek Aknurwar .name = "qns_lpass_aggnoc", 1105*ffaa88a0SVivek Aknurwar .channels = 1, 1106*ffaa88a0SVivek Aknurwar .buswidth = 32, 1107*ffaa88a0SVivek Aknurwar .num_links = 1, 1108*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_lpiaon_noc }, 1109*ffaa88a0SVivek Aknurwar }; 1110*ffaa88a0SVivek Aknurwar 1111*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qspi = { 1112*ffaa88a0SVivek Aknurwar .name = "qhm_qspi", 1113*ffaa88a0SVivek Aknurwar .channels = 1, 1114*ffaa88a0SVivek Aknurwar .buswidth = 4, 1115*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1116*ffaa88a0SVivek Aknurwar .num_ports = 1, 1117*ffaa88a0SVivek Aknurwar .port_offsets = { 0x49000 }, 1118*ffaa88a0SVivek Aknurwar .prio = 2, 1119*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1120*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1121*ffaa88a0SVivek Aknurwar }, 1122*ffaa88a0SVivek Aknurwar .num_links = 1, 1123*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1124*ffaa88a0SVivek Aknurwar }; 1125*ffaa88a0SVivek Aknurwar 1126*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup2 = { 1127*ffaa88a0SVivek Aknurwar .name = "qhm_qup2", 1128*ffaa88a0SVivek Aknurwar .channels = 1, 1129*ffaa88a0SVivek Aknurwar .buswidth = 4, 1130*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1131*ffaa88a0SVivek Aknurwar .num_ports = 1, 1132*ffaa88a0SVivek Aknurwar .port_offsets = { 0x48000 }, 1133*ffaa88a0SVivek Aknurwar .prio = 2, 1134*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1135*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1136*ffaa88a0SVivek Aknurwar }, 1137*ffaa88a0SVivek Aknurwar .num_links = 1, 1138*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1139*ffaa88a0SVivek Aknurwar }; 1140*ffaa88a0SVivek Aknurwar 1141*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup3 = { 1142*ffaa88a0SVivek Aknurwar .name = "qhm_qup3", 1143*ffaa88a0SVivek Aknurwar .channels = 1, 1144*ffaa88a0SVivek Aknurwar .buswidth = 4, 1145*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1146*ffaa88a0SVivek Aknurwar .num_ports = 1, 1147*ffaa88a0SVivek Aknurwar .port_offsets = { 0x46000 }, 1148*ffaa88a0SVivek Aknurwar .prio = 2, 1149*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1150*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1151*ffaa88a0SVivek Aknurwar }, 1152*ffaa88a0SVivek Aknurwar .num_links = 1, 1153*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1154*ffaa88a0SVivek Aknurwar }; 1155*ffaa88a0SVivek Aknurwar 1156*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qhm_qup4 = { 1157*ffaa88a0SVivek Aknurwar .name = "qhm_qup4", 1158*ffaa88a0SVivek Aknurwar .channels = 1, 1159*ffaa88a0SVivek Aknurwar .buswidth = 4, 1160*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1161*ffaa88a0SVivek Aknurwar .num_ports = 1, 1162*ffaa88a0SVivek Aknurwar .port_offsets = { 0x47000 }, 1163*ffaa88a0SVivek Aknurwar .prio = 2, 1164*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1165*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1166*ffaa88a0SVivek Aknurwar }, 1167*ffaa88a0SVivek Aknurwar .num_links = 1, 1168*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1169*ffaa88a0SVivek Aknurwar }; 1170*ffaa88a0SVivek Aknurwar 1171*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_crypto = { 1172*ffaa88a0SVivek Aknurwar .name = "qxm_crypto", 1173*ffaa88a0SVivek Aknurwar .channels = 1, 1174*ffaa88a0SVivek Aknurwar .buswidth = 32, 1175*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1176*ffaa88a0SVivek Aknurwar .num_ports = 1, 1177*ffaa88a0SVivek Aknurwar .port_offsets = { 0x40000 }, 1178*ffaa88a0SVivek Aknurwar .prio = 2, 1179*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1180*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1181*ffaa88a0SVivek Aknurwar }, 1182*ffaa88a0SVivek Aknurwar .num_links = 1, 1183*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1184*ffaa88a0SVivek Aknurwar }; 1185*ffaa88a0SVivek Aknurwar 1186*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_ipa = { 1187*ffaa88a0SVivek Aknurwar .name = "qxm_ipa", 1188*ffaa88a0SVivek Aknurwar .channels = 1, 1189*ffaa88a0SVivek Aknurwar .buswidth = 16, 1190*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1191*ffaa88a0SVivek Aknurwar .num_ports = 1, 1192*ffaa88a0SVivek Aknurwar .port_offsets = { 0x41000 }, 1193*ffaa88a0SVivek Aknurwar .prio = 2, 1194*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1195*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1196*ffaa88a0SVivek Aknurwar }, 1197*ffaa88a0SVivek Aknurwar .num_links = 1, 1198*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1199*ffaa88a0SVivek Aknurwar }; 1200*ffaa88a0SVivek Aknurwar 1201*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_qup1 = { 1202*ffaa88a0SVivek Aknurwar .name = "qxm_qup1", 1203*ffaa88a0SVivek Aknurwar .channels = 1, 1204*ffaa88a0SVivek Aknurwar .buswidth = 8, 1205*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1206*ffaa88a0SVivek Aknurwar .num_ports = 1, 1207*ffaa88a0SVivek Aknurwar .port_offsets = { 0x4d000 }, 1208*ffaa88a0SVivek Aknurwar .prio = 2, 1209*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1210*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1211*ffaa88a0SVivek Aknurwar }, 1212*ffaa88a0SVivek Aknurwar .num_links = 1, 1213*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1214*ffaa88a0SVivek Aknurwar }; 1215*ffaa88a0SVivek Aknurwar 1216*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qxm_soccp = { 1217*ffaa88a0SVivek Aknurwar .name = "qxm_soccp", 1218*ffaa88a0SVivek Aknurwar .channels = 1, 1219*ffaa88a0SVivek Aknurwar .buswidth = 8, 1220*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1221*ffaa88a0SVivek Aknurwar .num_ports = 1, 1222*ffaa88a0SVivek Aknurwar .port_offsets = { 0x45000 }, 1223*ffaa88a0SVivek Aknurwar .prio = 2, 1224*ffaa88a0SVivek Aknurwar .urg_fwd = 1, 1225*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1226*ffaa88a0SVivek Aknurwar }, 1227*ffaa88a0SVivek Aknurwar .num_links = 1, 1228*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1229*ffaa88a0SVivek Aknurwar }; 1230*ffaa88a0SVivek Aknurwar 1231*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_qdss_etr_0 = { 1232*ffaa88a0SVivek Aknurwar .name = "xm_qdss_etr_0", 1233*ffaa88a0SVivek Aknurwar .channels = 1, 1234*ffaa88a0SVivek Aknurwar .buswidth = 8, 1235*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1236*ffaa88a0SVivek Aknurwar .num_ports = 1, 1237*ffaa88a0SVivek Aknurwar .port_offsets = { 0x42000 }, 1238*ffaa88a0SVivek Aknurwar .prio = 2, 1239*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1240*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1241*ffaa88a0SVivek Aknurwar }, 1242*ffaa88a0SVivek Aknurwar .num_links = 1, 1243*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1244*ffaa88a0SVivek Aknurwar }; 1245*ffaa88a0SVivek Aknurwar 1246*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_qdss_etr_1 = { 1247*ffaa88a0SVivek Aknurwar .name = "xm_qdss_etr_1", 1248*ffaa88a0SVivek Aknurwar .channels = 1, 1249*ffaa88a0SVivek Aknurwar .buswidth = 8, 1250*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1251*ffaa88a0SVivek Aknurwar .num_ports = 1, 1252*ffaa88a0SVivek Aknurwar .port_offsets = { 0x43000 }, 1253*ffaa88a0SVivek Aknurwar .prio = 2, 1254*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1255*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1256*ffaa88a0SVivek Aknurwar }, 1257*ffaa88a0SVivek Aknurwar .num_links = 1, 1258*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1259*ffaa88a0SVivek Aknurwar }; 1260*ffaa88a0SVivek Aknurwar 1261*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_sdc2 = { 1262*ffaa88a0SVivek Aknurwar .name = "xm_sdc2", 1263*ffaa88a0SVivek Aknurwar .channels = 1, 1264*ffaa88a0SVivek Aknurwar .buswidth = 8, 1265*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1266*ffaa88a0SVivek Aknurwar .num_ports = 1, 1267*ffaa88a0SVivek Aknurwar .port_offsets = { 0x44000 }, 1268*ffaa88a0SVivek Aknurwar .prio = 2, 1269*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1270*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1271*ffaa88a0SVivek Aknurwar }, 1272*ffaa88a0SVivek Aknurwar .num_links = 1, 1273*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1274*ffaa88a0SVivek Aknurwar }; 1275*ffaa88a0SVivek Aknurwar 1276*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_sdc4 = { 1277*ffaa88a0SVivek Aknurwar .name = "xm_sdc4", 1278*ffaa88a0SVivek Aknurwar .channels = 1, 1279*ffaa88a0SVivek Aknurwar .buswidth = 8, 1280*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1281*ffaa88a0SVivek Aknurwar .num_ports = 1, 1282*ffaa88a0SVivek Aknurwar .port_offsets = { 0x4a000 }, 1283*ffaa88a0SVivek Aknurwar .prio = 2, 1284*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1285*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1286*ffaa88a0SVivek Aknurwar }, 1287*ffaa88a0SVivek Aknurwar .num_links = 1, 1288*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1289*ffaa88a0SVivek Aknurwar }; 1290*ffaa88a0SVivek Aknurwar 1291*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_ufs_mem = { 1292*ffaa88a0SVivek Aknurwar .name = "xm_ufs_mem", 1293*ffaa88a0SVivek Aknurwar .channels = 1, 1294*ffaa88a0SVivek Aknurwar .buswidth = 32, 1295*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1296*ffaa88a0SVivek Aknurwar .num_ports = 1, 1297*ffaa88a0SVivek Aknurwar .port_offsets = { 0x4b000 }, 1298*ffaa88a0SVivek Aknurwar .prio = 2, 1299*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1300*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1301*ffaa88a0SVivek Aknurwar }, 1302*ffaa88a0SVivek Aknurwar .num_links = 1, 1303*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1304*ffaa88a0SVivek Aknurwar }; 1305*ffaa88a0SVivek Aknurwar 1306*ffaa88a0SVivek Aknurwar static struct qcom_icc_node xm_usb3 = { 1307*ffaa88a0SVivek Aknurwar .name = "xm_usb3", 1308*ffaa88a0SVivek Aknurwar .channels = 1, 1309*ffaa88a0SVivek Aknurwar .buswidth = 8, 1310*ffaa88a0SVivek Aknurwar .qosbox = &(const struct qcom_icc_qosbox) { 1311*ffaa88a0SVivek Aknurwar .num_ports = 1, 1312*ffaa88a0SVivek Aknurwar .port_offsets = { 0x4c000 }, 1313*ffaa88a0SVivek Aknurwar .prio = 2, 1314*ffaa88a0SVivek Aknurwar .urg_fwd = 0, 1315*ffaa88a0SVivek Aknurwar .prio_fwd_disable = 1, 1316*ffaa88a0SVivek Aknurwar }, 1317*ffaa88a0SVivek Aknurwar .num_links = 1, 1318*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_a1noc_snoc }, 1319*ffaa88a0SVivek Aknurwar }; 1320*ffaa88a0SVivek Aknurwar 1321*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpass_lpinoc = { 1322*ffaa88a0SVivek Aknurwar .name = "qnm_lpass_lpinoc", 1323*ffaa88a0SVivek Aknurwar .channels = 1, 1324*ffaa88a0SVivek Aknurwar .buswidth = 32, 1325*ffaa88a0SVivek Aknurwar .num_links = 2, 1326*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_llc_lpinoc, &qns_lpass_aggnoc }, 1327*ffaa88a0SVivek Aknurwar }; 1328*ffaa88a0SVivek Aknurwar 1329*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qns_lpi_aon_noc = { 1330*ffaa88a0SVivek Aknurwar .name = "qns_lpi_aon_noc", 1331*ffaa88a0SVivek Aknurwar .channels = 1, 1332*ffaa88a0SVivek Aknurwar .buswidth = 32, 1333*ffaa88a0SVivek Aknurwar .num_links = 1, 1334*ffaa88a0SVivek Aknurwar .link_nodes = { &qnm_lpass_lpinoc }, 1335*ffaa88a0SVivek Aknurwar }; 1336*ffaa88a0SVivek Aknurwar 1337*ffaa88a0SVivek Aknurwar static struct qcom_icc_node qnm_lpinoc_dsp_qns4m = { 1338*ffaa88a0SVivek Aknurwar .name = "qnm_lpinoc_dsp_qns4m", 1339*ffaa88a0SVivek Aknurwar .channels = 1, 1340*ffaa88a0SVivek Aknurwar .buswidth = 32, 1341*ffaa88a0SVivek Aknurwar .num_links = 1, 1342*ffaa88a0SVivek Aknurwar .link_nodes = { &qns_lpi_aon_noc }, 1343*ffaa88a0SVivek Aknurwar }; 1344*ffaa88a0SVivek Aknurwar 1345*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_acv = { 1346*ffaa88a0SVivek Aknurwar .name = "ACV", 1347*ffaa88a0SVivek Aknurwar .enable_mask = BIT(3), 1348*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1349*ffaa88a0SVivek Aknurwar .nodes = { &ebi }, 1350*ffaa88a0SVivek Aknurwar }; 1351*ffaa88a0SVivek Aknurwar 1352*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_ce0 = { 1353*ffaa88a0SVivek Aknurwar .name = "CE0", 1354*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1355*ffaa88a0SVivek Aknurwar .nodes = { &qxm_crypto }, 1356*ffaa88a0SVivek Aknurwar }; 1357*ffaa88a0SVivek Aknurwar 1358*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_cn0 = { 1359*ffaa88a0SVivek Aknurwar .name = "CN0", 1360*ffaa88a0SVivek Aknurwar .enable_mask = BIT(0), 1361*ffaa88a0SVivek Aknurwar .keepalive = true, 1362*ffaa88a0SVivek Aknurwar .num_nodes = 24, 1363*ffaa88a0SVivek Aknurwar .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie, 1364*ffaa88a0SVivek Aknurwar &qhs_aoss, &qhs_ipa, 1365*ffaa88a0SVivek Aknurwar &qhs_ipc_router_fence, &qhs_soccp, 1366*ffaa88a0SVivek Aknurwar &qhs_tme_cfg, &qss_cfg, 1367*ffaa88a0SVivek Aknurwar &qss_ddrss_cfg, &qxs_imem, 1368*ffaa88a0SVivek Aknurwar &xs_pcie, &xs_pcie_g4x1, 1369*ffaa88a0SVivek Aknurwar &qsm_cfg_center, &qsm_cfg_east, 1370*ffaa88a0SVivek Aknurwar &qsm_cfg_mm, &qsm_cfg_north, 1371*ffaa88a0SVivek Aknurwar &qsm_cfg_south, &qsm_cfg_southwest, 1372*ffaa88a0SVivek Aknurwar &qhs_ahb2phy0, &qhs_boot_rom, 1373*ffaa88a0SVivek Aknurwar &qhs_camera_cfg, &qhs_clk_ctl, 1374*ffaa88a0SVivek Aknurwar &qhs_crypto_cfg, &qhs_eva_cfg }, 1375*ffaa88a0SVivek Aknurwar }; 1376*ffaa88a0SVivek Aknurwar 1377*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_cn1 = { 1378*ffaa88a0SVivek Aknurwar .name = "CN1", 1379*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1380*ffaa88a0SVivek Aknurwar .nodes = { &qhs_display_cfg }, 1381*ffaa88a0SVivek Aknurwar }; 1382*ffaa88a0SVivek Aknurwar 1383*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_co0 = { 1384*ffaa88a0SVivek Aknurwar .name = "CO0", 1385*ffaa88a0SVivek Aknurwar .enable_mask = BIT(0), 1386*ffaa88a0SVivek Aknurwar .num_nodes = 2, 1387*ffaa88a0SVivek Aknurwar .nodes = { &qnm_nsp, &qns_nsp_gemnoc }, 1388*ffaa88a0SVivek Aknurwar }; 1389*ffaa88a0SVivek Aknurwar 1390*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_de0 = { 1391*ffaa88a0SVivek Aknurwar .name = "DE0", 1392*ffaa88a0SVivek Aknurwar .enable_mask = BIT(0), 1393*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1394*ffaa88a0SVivek Aknurwar .nodes = { &ddr_eff_veto_slave }, 1395*ffaa88a0SVivek Aknurwar }; 1396*ffaa88a0SVivek Aknurwar 1397*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_lp0 = { 1398*ffaa88a0SVivek Aknurwar .name = "LP0", 1399*ffaa88a0SVivek Aknurwar .num_nodes = 5, 1400*ffaa88a0SVivek Aknurwar .nodes = { &qnm_lpiaon_noc_llclpi_noc, &qns_lb, 1401*ffaa88a0SVivek Aknurwar &qnm_lpass_lpinoc, &qns_llc_lpinoc, 1402*ffaa88a0SVivek Aknurwar &qns_lpass_aggnoc }, 1403*ffaa88a0SVivek Aknurwar }; 1404*ffaa88a0SVivek Aknurwar 1405*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mc0 = { 1406*ffaa88a0SVivek Aknurwar .name = "MC0", 1407*ffaa88a0SVivek Aknurwar .keepalive = true, 1408*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1409*ffaa88a0SVivek Aknurwar .nodes = { &ebi }, 1410*ffaa88a0SVivek Aknurwar }; 1411*ffaa88a0SVivek Aknurwar 1412*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mc5 = { 1413*ffaa88a0SVivek Aknurwar .name = "MC5", 1414*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1415*ffaa88a0SVivek Aknurwar .nodes = { &ddr_rt_slave }, 1416*ffaa88a0SVivek Aknurwar }; 1417*ffaa88a0SVivek Aknurwar 1418*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mm0 = { 1419*ffaa88a0SVivek Aknurwar .name = "MM0", 1420*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1421*ffaa88a0SVivek Aknurwar .nodes = { &qns_mem_noc_hf }, 1422*ffaa88a0SVivek Aknurwar }; 1423*ffaa88a0SVivek Aknurwar 1424*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_mm1 = { 1425*ffaa88a0SVivek Aknurwar .name = "MM1", 1426*ffaa88a0SVivek Aknurwar .enable_mask = BIT(0), 1427*ffaa88a0SVivek Aknurwar .num_nodes = 9, 1428*ffaa88a0SVivek Aknurwar .nodes = { &qnm_camnoc_hf, &qnm_camnoc_nrt_icp_sf, 1429*ffaa88a0SVivek Aknurwar &qnm_camnoc_rt_cdm_sf, &qnm_camnoc_sf, 1430*ffaa88a0SVivek Aknurwar &qnm_vapss_hcp, &qnm_video_cv_cpu, 1431*ffaa88a0SVivek Aknurwar &qnm_video_mvp, &qnm_video_v_cpu, 1432*ffaa88a0SVivek Aknurwar &qns_mem_noc_sf }, 1433*ffaa88a0SVivek Aknurwar }; 1434*ffaa88a0SVivek Aknurwar 1435*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qpc0 = { 1436*ffaa88a0SVivek Aknurwar .name = "QPC0", 1437*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1438*ffaa88a0SVivek Aknurwar .nodes = { &qnm_qpace }, 1439*ffaa88a0SVivek Aknurwar }; 1440*ffaa88a0SVivek Aknurwar 1441*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup0 = { 1442*ffaa88a0SVivek Aknurwar .name = "QUP0", 1443*ffaa88a0SVivek Aknurwar .keepalive = true, 1444*ffaa88a0SVivek Aknurwar .vote_scale = 1, 1445*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1446*ffaa88a0SVivek Aknurwar .nodes = { &qup0_core_slave }, 1447*ffaa88a0SVivek Aknurwar }; 1448*ffaa88a0SVivek Aknurwar 1449*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup1 = { 1450*ffaa88a0SVivek Aknurwar .name = "QUP1", 1451*ffaa88a0SVivek Aknurwar .keepalive = true, 1452*ffaa88a0SVivek Aknurwar .vote_scale = 1, 1453*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1454*ffaa88a0SVivek Aknurwar .nodes = { &qup1_core_slave }, 1455*ffaa88a0SVivek Aknurwar }; 1456*ffaa88a0SVivek Aknurwar 1457*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup2 = { 1458*ffaa88a0SVivek Aknurwar .name = "QUP2", 1459*ffaa88a0SVivek Aknurwar .keepalive = true, 1460*ffaa88a0SVivek Aknurwar .vote_scale = 1, 1461*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1462*ffaa88a0SVivek Aknurwar .nodes = { &qup2_core_slave }, 1463*ffaa88a0SVivek Aknurwar }; 1464*ffaa88a0SVivek Aknurwar 1465*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup3 = { 1466*ffaa88a0SVivek Aknurwar .name = "QUP3", 1467*ffaa88a0SVivek Aknurwar .keepalive = true, 1468*ffaa88a0SVivek Aknurwar .vote_scale = 1, 1469*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1470*ffaa88a0SVivek Aknurwar .nodes = { &qup3_core_slave }, 1471*ffaa88a0SVivek Aknurwar }; 1472*ffaa88a0SVivek Aknurwar 1473*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_qup4 = { 1474*ffaa88a0SVivek Aknurwar .name = "QUP4", 1475*ffaa88a0SVivek Aknurwar .keepalive = true, 1476*ffaa88a0SVivek Aknurwar .vote_scale = 1, 1477*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1478*ffaa88a0SVivek Aknurwar .nodes = { &qup4_core_slave }, 1479*ffaa88a0SVivek Aknurwar }; 1480*ffaa88a0SVivek Aknurwar 1481*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sh0 = { 1482*ffaa88a0SVivek Aknurwar .name = "SH0", 1483*ffaa88a0SVivek Aknurwar .keepalive = true, 1484*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1485*ffaa88a0SVivek Aknurwar .nodes = { &qns_llcc }, 1486*ffaa88a0SVivek Aknurwar }; 1487*ffaa88a0SVivek Aknurwar 1488*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sh1 = { 1489*ffaa88a0SVivek Aknurwar .name = "SH1", 1490*ffaa88a0SVivek Aknurwar .enable_mask = BIT(0), 1491*ffaa88a0SVivek Aknurwar .num_nodes = 15, 1492*ffaa88a0SVivek Aknurwar .nodes = { &alm_gic, &alm_gpu_tcu, 1493*ffaa88a0SVivek Aknurwar &alm_sys_tcu, &chm_apps, 1494*ffaa88a0SVivek Aknurwar &qnm_gpu, &qnm_lpass_gemnoc, 1495*ffaa88a0SVivek Aknurwar &qnm_mdsp, &qnm_mnoc_hf, 1496*ffaa88a0SVivek Aknurwar &qnm_mnoc_sf, &qnm_nsp_gemnoc, 1497*ffaa88a0SVivek Aknurwar &qnm_pcie, &qnm_snoc_sf, 1498*ffaa88a0SVivek Aknurwar &qnm_wlan_q6, &qns_gem_noc_cnoc, 1499*ffaa88a0SVivek Aknurwar &qns_pcie }, 1500*ffaa88a0SVivek Aknurwar }; 1501*ffaa88a0SVivek Aknurwar 1502*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn0 = { 1503*ffaa88a0SVivek Aknurwar .name = "SN0", 1504*ffaa88a0SVivek Aknurwar .keepalive = true, 1505*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1506*ffaa88a0SVivek Aknurwar .nodes = { &qns_gemnoc_sf }, 1507*ffaa88a0SVivek Aknurwar }; 1508*ffaa88a0SVivek Aknurwar 1509*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn2 = { 1510*ffaa88a0SVivek Aknurwar .name = "SN2", 1511*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1512*ffaa88a0SVivek Aknurwar .nodes = { &qnm_aggre_noc }, 1513*ffaa88a0SVivek Aknurwar }; 1514*ffaa88a0SVivek Aknurwar 1515*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm bcm_sn3 = { 1516*ffaa88a0SVivek Aknurwar .name = "SN3", 1517*ffaa88a0SVivek Aknurwar .num_nodes = 1, 1518*ffaa88a0SVivek Aknurwar .nodes = { &qns_pcie_gemnoc }, 1519*ffaa88a0SVivek Aknurwar }; 1520*ffaa88a0SVivek Aknurwar 1521*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 1522*ffaa88a0SVivek Aknurwar &bcm_ce0, 1523*ffaa88a0SVivek Aknurwar }; 1524*ffaa88a0SVivek Aknurwar 1525*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1526*ffaa88a0SVivek Aknurwar [MASTER_QSPI_0] = &qhm_qspi, 1527*ffaa88a0SVivek Aknurwar [MASTER_QUP_2] = &qhm_qup2, 1528*ffaa88a0SVivek Aknurwar [MASTER_QUP_3] = &qhm_qup3, 1529*ffaa88a0SVivek Aknurwar [MASTER_QUP_4] = &qhm_qup4, 1530*ffaa88a0SVivek Aknurwar [MASTER_CRYPTO] = &qxm_crypto, 1531*ffaa88a0SVivek Aknurwar [MASTER_IPA] = &qxm_ipa, 1532*ffaa88a0SVivek Aknurwar [MASTER_QUP_1] = &qxm_qup1, 1533*ffaa88a0SVivek Aknurwar [MASTER_SOCCP_PROC] = &qxm_soccp, 1534*ffaa88a0SVivek Aknurwar [MASTER_QDSS_ETR] = &xm_qdss_etr_0, 1535*ffaa88a0SVivek Aknurwar [MASTER_QDSS_ETR_1] = &xm_qdss_etr_1, 1536*ffaa88a0SVivek Aknurwar [MASTER_SDCC_2] = &xm_sdc2, 1537*ffaa88a0SVivek Aknurwar [MASTER_SDCC_4] = &xm_sdc4, 1538*ffaa88a0SVivek Aknurwar [MASTER_UFS_MEM] = &xm_ufs_mem, 1539*ffaa88a0SVivek Aknurwar [MASTER_USB3] = &xm_usb3, 1540*ffaa88a0SVivek Aknurwar [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 1541*ffaa88a0SVivek Aknurwar }; 1542*ffaa88a0SVivek Aknurwar 1543*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_aggre1_noc_regmap_config = { 1544*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1545*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1546*ffaa88a0SVivek Aknurwar .val_bits = 32, 1547*ffaa88a0SVivek Aknurwar .max_register = 0x54400, 1548*ffaa88a0SVivek Aknurwar .fast_io = true, 1549*ffaa88a0SVivek Aknurwar }; 1550*ffaa88a0SVivek Aknurwar 1551*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_aggre1_noc = { 1552*ffaa88a0SVivek Aknurwar .config = &hawi_aggre1_noc_regmap_config, 1553*ffaa88a0SVivek Aknurwar .nodes = aggre1_noc_nodes, 1554*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1555*ffaa88a0SVivek Aknurwar .bcms = aggre1_noc_bcms, 1556*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1557*ffaa88a0SVivek Aknurwar .qos_requires_clocks = true, 1558*ffaa88a0SVivek Aknurwar }; 1559*ffaa88a0SVivek Aknurwar 1560*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const clk_virt_bcms[] = { 1561*ffaa88a0SVivek Aknurwar &bcm_de0, 1562*ffaa88a0SVivek Aknurwar &bcm_qup0, 1563*ffaa88a0SVivek Aknurwar &bcm_qup1, 1564*ffaa88a0SVivek Aknurwar &bcm_qup2, 1565*ffaa88a0SVivek Aknurwar &bcm_qup3, 1566*ffaa88a0SVivek Aknurwar &bcm_qup4, 1567*ffaa88a0SVivek Aknurwar }; 1568*ffaa88a0SVivek Aknurwar 1569*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const clk_virt_nodes[] = { 1570*ffaa88a0SVivek Aknurwar [MASTER_DDR_EFF_VETO] = &ddr_eff_veto_master, 1571*ffaa88a0SVivek Aknurwar [MASTER_QUP_CORE_0] = &qup0_core_master, 1572*ffaa88a0SVivek Aknurwar [MASTER_QUP_CORE_1] = &qup1_core_master, 1573*ffaa88a0SVivek Aknurwar [MASTER_QUP_CORE_2] = &qup2_core_master, 1574*ffaa88a0SVivek Aknurwar [MASTER_QUP_CORE_3] = &qup3_core_master, 1575*ffaa88a0SVivek Aknurwar [MASTER_QUP_CORE_4] = &qup4_core_master, 1576*ffaa88a0SVivek Aknurwar [SLAVE_DDR_EFF_VETO] = &ddr_eff_veto_slave, 1577*ffaa88a0SVivek Aknurwar [SLAVE_QUP_CORE_0] = &qup0_core_slave, 1578*ffaa88a0SVivek Aknurwar [SLAVE_QUP_CORE_1] = &qup1_core_slave, 1579*ffaa88a0SVivek Aknurwar [SLAVE_QUP_CORE_2] = &qup2_core_slave, 1580*ffaa88a0SVivek Aknurwar [SLAVE_QUP_CORE_3] = &qup3_core_slave, 1581*ffaa88a0SVivek Aknurwar [SLAVE_QUP_CORE_4] = &qup4_core_slave, 1582*ffaa88a0SVivek Aknurwar }; 1583*ffaa88a0SVivek Aknurwar 1584*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_clk_virt = { 1585*ffaa88a0SVivek Aknurwar .nodes = clk_virt_nodes, 1586*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(clk_virt_nodes), 1587*ffaa88a0SVivek Aknurwar .bcms = clk_virt_bcms, 1588*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(clk_virt_bcms), 1589*ffaa88a0SVivek Aknurwar }; 1590*ffaa88a0SVivek Aknurwar 1591*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const cnoc_main_bcms[] = { 1592*ffaa88a0SVivek Aknurwar &bcm_cn0, 1593*ffaa88a0SVivek Aknurwar }; 1594*ffaa88a0SVivek Aknurwar 1595*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const cnoc_main_nodes[] = { 1596*ffaa88a0SVivek Aknurwar [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1597*ffaa88a0SVivek Aknurwar [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 1598*ffaa88a0SVivek Aknurwar [SLAVE_AOSS] = &qhs_aoss, 1599*ffaa88a0SVivek Aknurwar [SLAVE_IPA_CFG] = &qhs_ipa, 1600*ffaa88a0SVivek Aknurwar [SLAVE_IPC_ROUTER_FENCE] = &qhs_ipc_router_fence, 1601*ffaa88a0SVivek Aknurwar [SLAVE_SOCCP] = &qhs_soccp, 1602*ffaa88a0SVivek Aknurwar [SLAVE_TME_CFG] = &qhs_tme_cfg, 1603*ffaa88a0SVivek Aknurwar [SLAVE_CNOC_CFG] = &qss_cfg, 1604*ffaa88a0SVivek Aknurwar [SLAVE_DDRSS_CFG] = &qss_ddrss_cfg, 1605*ffaa88a0SVivek Aknurwar [SLAVE_IMEM] = &qxs_imem, 1606*ffaa88a0SVivek Aknurwar [SLAVE_PCIE_0] = &xs_pcie, 1607*ffaa88a0SVivek Aknurwar [SLAVE_PCIE_1] = &xs_pcie_g4x1, 1608*ffaa88a0SVivek Aknurwar }; 1609*ffaa88a0SVivek Aknurwar 1610*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_cnoc_main_regmap_config = { 1611*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1612*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1613*ffaa88a0SVivek Aknurwar .val_bits = 32, 1614*ffaa88a0SVivek Aknurwar .max_register = 0x20000, 1615*ffaa88a0SVivek Aknurwar .fast_io = true, 1616*ffaa88a0SVivek Aknurwar }; 1617*ffaa88a0SVivek Aknurwar 1618*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_cnoc_main = { 1619*ffaa88a0SVivek Aknurwar .config = &hawi_cnoc_main_regmap_config, 1620*ffaa88a0SVivek Aknurwar .nodes = cnoc_main_nodes, 1621*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(cnoc_main_nodes), 1622*ffaa88a0SVivek Aknurwar .bcms = cnoc_main_bcms, 1623*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(cnoc_main_bcms), 1624*ffaa88a0SVivek Aknurwar }; 1625*ffaa88a0SVivek Aknurwar 1626*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1627*ffaa88a0SVivek Aknurwar &bcm_qpc0, 1628*ffaa88a0SVivek Aknurwar &bcm_sh0, 1629*ffaa88a0SVivek Aknurwar &bcm_sh1, 1630*ffaa88a0SVivek Aknurwar }; 1631*ffaa88a0SVivek Aknurwar 1632*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const gem_noc_nodes[] = { 1633*ffaa88a0SVivek Aknurwar [MASTER_GIC] = &alm_gic, 1634*ffaa88a0SVivek Aknurwar [MASTER_GPU_TCU] = &alm_gpu_tcu, 1635*ffaa88a0SVivek Aknurwar [MASTER_SYS_TCU] = &alm_sys_tcu, 1636*ffaa88a0SVivek Aknurwar [MASTER_APPSS_PROC] = &chm_apps, 1637*ffaa88a0SVivek Aknurwar [MASTER_GFX3D] = &qnm_gpu, 1638*ffaa88a0SVivek Aknurwar [MASTER_LPASS_GEM_NOC] = &qnm_lpass_gemnoc, 1639*ffaa88a0SVivek Aknurwar [MASTER_MSS_PROC] = &qnm_mdsp, 1640*ffaa88a0SVivek Aknurwar [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 1641*ffaa88a0SVivek Aknurwar [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 1642*ffaa88a0SVivek Aknurwar [MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc, 1643*ffaa88a0SVivek Aknurwar [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie, 1644*ffaa88a0SVivek Aknurwar [MASTER_QPACE] = &qnm_qpace, 1645*ffaa88a0SVivek Aknurwar [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 1646*ffaa88a0SVivek Aknurwar [MASTER_WLAN_Q6] = &qnm_wlan_q6, 1647*ffaa88a0SVivek Aknurwar [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc, 1648*ffaa88a0SVivek Aknurwar [SLAVE_LLCC] = &qns_llcc, 1649*ffaa88a0SVivek Aknurwar [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie, 1650*ffaa88a0SVivek Aknurwar }; 1651*ffaa88a0SVivek Aknurwar 1652*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_gem_noc_regmap_config = { 1653*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1654*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1655*ffaa88a0SVivek Aknurwar .val_bits = 32, 1656*ffaa88a0SVivek Aknurwar .max_register = 0x160200, 1657*ffaa88a0SVivek Aknurwar .fast_io = true, 1658*ffaa88a0SVivek Aknurwar }; 1659*ffaa88a0SVivek Aknurwar 1660*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_gem_noc = { 1661*ffaa88a0SVivek Aknurwar .config = &hawi_gem_noc_regmap_config, 1662*ffaa88a0SVivek Aknurwar .nodes = gem_noc_nodes, 1663*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1664*ffaa88a0SVivek Aknurwar .bcms = gem_noc_bcms, 1665*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1666*ffaa88a0SVivek Aknurwar }; 1667*ffaa88a0SVivek Aknurwar 1668*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const llclpi_noc_bcms[] = { 1669*ffaa88a0SVivek Aknurwar &bcm_lp0, 1670*ffaa88a0SVivek Aknurwar }; 1671*ffaa88a0SVivek Aknurwar 1672*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const llclpi_noc_nodes[] = { 1673*ffaa88a0SVivek Aknurwar [MASTER_LPIAON_NOC_LLCLPI_NOC] = &qnm_lpiaon_noc_llclpi_noc, 1674*ffaa88a0SVivek Aknurwar [SLAVE_LPASS_LPI_CC] = &qhs_lpi_cc, 1675*ffaa88a0SVivek Aknurwar [SLAVE_LLCC_ISLAND] = &qns_lb, 1676*ffaa88a0SVivek Aknurwar [SLAVE_SERVICE_LLCLPI_NOC] = &srvc_llclpi_noc, 1677*ffaa88a0SVivek Aknurwar [SLAVE_SERVICE_LLCLPI_NOC_CHIPCX] = &srvc_llclpi_noc_chipcx, 1678*ffaa88a0SVivek Aknurwar }; 1679*ffaa88a0SVivek Aknurwar 1680*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_llclpi_noc_regmap_config = { 1681*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1682*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1683*ffaa88a0SVivek Aknurwar .val_bits = 32, 1684*ffaa88a0SVivek Aknurwar .max_register = 0x17200, 1685*ffaa88a0SVivek Aknurwar .fast_io = true, 1686*ffaa88a0SVivek Aknurwar }; 1687*ffaa88a0SVivek Aknurwar 1688*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_llclpi_noc = { 1689*ffaa88a0SVivek Aknurwar .config = &hawi_llclpi_noc_regmap_config, 1690*ffaa88a0SVivek Aknurwar .nodes = llclpi_noc_nodes, 1691*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(llclpi_noc_nodes), 1692*ffaa88a0SVivek Aknurwar .bcms = llclpi_noc_bcms, 1693*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(llclpi_noc_bcms), 1694*ffaa88a0SVivek Aknurwar }; 1695*ffaa88a0SVivek Aknurwar 1696*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 1697*ffaa88a0SVivek Aknurwar [MASTER_LPIAON_NOC] = &qnm_lpiaon_noc, 1698*ffaa88a0SVivek Aknurwar [SLAVE_LPASS_GEM_NOC] = &qns_lpass_ag_noc_gemnoc, 1699*ffaa88a0SVivek Aknurwar }; 1700*ffaa88a0SVivek Aknurwar 1701*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_ag_noc_regmap_config = { 1702*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1703*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1704*ffaa88a0SVivek Aknurwar .val_bits = 32, 1705*ffaa88a0SVivek Aknurwar .max_register = 0xc080, 1706*ffaa88a0SVivek Aknurwar .fast_io = true, 1707*ffaa88a0SVivek Aknurwar }; 1708*ffaa88a0SVivek Aknurwar 1709*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_ag_noc = { 1710*ffaa88a0SVivek Aknurwar .config = &hawi_lpass_ag_noc_regmap_config, 1711*ffaa88a0SVivek Aknurwar .nodes = lpass_ag_noc_nodes, 1712*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 1713*ffaa88a0SVivek Aknurwar }; 1714*ffaa88a0SVivek Aknurwar 1715*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const lpass_lpiaon_noc_bcms[] = { 1716*ffaa88a0SVivek Aknurwar &bcm_lp0, 1717*ffaa88a0SVivek Aknurwar }; 1718*ffaa88a0SVivek Aknurwar 1719*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_lpiaon_noc_nodes[] = { 1720*ffaa88a0SVivek Aknurwar [MASTER_LPASS_LPINOC] = &qnm_lpass_lpinoc, 1721*ffaa88a0SVivek Aknurwar [SLAVE_LPIAON_NOC_LLCLPI_NOC] = &qns_llc_lpinoc, 1722*ffaa88a0SVivek Aknurwar [SLAVE_LPIAON_NOC_LPASS_AG_NOC] = &qns_lpass_aggnoc, 1723*ffaa88a0SVivek Aknurwar }; 1724*ffaa88a0SVivek Aknurwar 1725*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_lpiaon_noc_regmap_config = { 1726*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1727*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1728*ffaa88a0SVivek Aknurwar .val_bits = 32, 1729*ffaa88a0SVivek Aknurwar .max_register = 0x19080, 1730*ffaa88a0SVivek Aknurwar .fast_io = true, 1731*ffaa88a0SVivek Aknurwar }; 1732*ffaa88a0SVivek Aknurwar 1733*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_lpiaon_noc = { 1734*ffaa88a0SVivek Aknurwar .config = &hawi_lpass_lpiaon_noc_regmap_config, 1735*ffaa88a0SVivek Aknurwar .nodes = lpass_lpiaon_noc_nodes, 1736*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(lpass_lpiaon_noc_nodes), 1737*ffaa88a0SVivek Aknurwar .bcms = lpass_lpiaon_noc_bcms, 1738*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(lpass_lpiaon_noc_bcms), 1739*ffaa88a0SVivek Aknurwar }; 1740*ffaa88a0SVivek Aknurwar 1741*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const lpass_lpicx_noc_nodes[] = { 1742*ffaa88a0SVivek Aknurwar [MASTER_LPASS_PROC] = &qnm_lpinoc_dsp_qns4m, 1743*ffaa88a0SVivek Aknurwar [SLAVE_LPICX_NOC_LPIAON_NOC] = &qns_lpi_aon_noc, 1744*ffaa88a0SVivek Aknurwar }; 1745*ffaa88a0SVivek Aknurwar 1746*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_lpass_lpicx_noc_regmap_config = { 1747*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1748*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1749*ffaa88a0SVivek Aknurwar .val_bits = 32, 1750*ffaa88a0SVivek Aknurwar .max_register = 0x46080, 1751*ffaa88a0SVivek Aknurwar .fast_io = true, 1752*ffaa88a0SVivek Aknurwar }; 1753*ffaa88a0SVivek Aknurwar 1754*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_lpass_lpicx_noc = { 1755*ffaa88a0SVivek Aknurwar .config = &hawi_lpass_lpicx_noc_regmap_config, 1756*ffaa88a0SVivek Aknurwar .nodes = lpass_lpicx_noc_nodes, 1757*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(lpass_lpicx_noc_nodes), 1758*ffaa88a0SVivek Aknurwar }; 1759*ffaa88a0SVivek Aknurwar 1760*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const mc_virt_bcms[] = { 1761*ffaa88a0SVivek Aknurwar &bcm_acv, 1762*ffaa88a0SVivek Aknurwar &bcm_mc0, 1763*ffaa88a0SVivek Aknurwar &bcm_mc5, 1764*ffaa88a0SVivek Aknurwar }; 1765*ffaa88a0SVivek Aknurwar 1766*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const mc_virt_nodes[] = { 1767*ffaa88a0SVivek Aknurwar [MASTER_LLCC] = &llcc_mc, 1768*ffaa88a0SVivek Aknurwar [MASTER_DDR_RT] = &ddr_rt_mc, 1769*ffaa88a0SVivek Aknurwar [SLAVE_EBI1] = &ebi, 1770*ffaa88a0SVivek Aknurwar [SLAVE_DDR_RT] = &ddr_rt_slave, 1771*ffaa88a0SVivek Aknurwar }; 1772*ffaa88a0SVivek Aknurwar 1773*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_mc_virt = { 1774*ffaa88a0SVivek Aknurwar .nodes = mc_virt_nodes, 1775*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1776*ffaa88a0SVivek Aknurwar .bcms = mc_virt_bcms, 1777*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1778*ffaa88a0SVivek Aknurwar }; 1779*ffaa88a0SVivek Aknurwar 1780*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 1781*ffaa88a0SVivek Aknurwar &bcm_mm0, 1782*ffaa88a0SVivek Aknurwar &bcm_mm1, 1783*ffaa88a0SVivek Aknurwar }; 1784*ffaa88a0SVivek Aknurwar 1785*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const mmss_noc_nodes[] = { 1786*ffaa88a0SVivek Aknurwar [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 1787*ffaa88a0SVivek Aknurwar [MASTER_CAMNOC_NRT_ICP_SF] = &qnm_camnoc_nrt_icp_sf, 1788*ffaa88a0SVivek Aknurwar [MASTER_CAMNOC_RT_CDM_SF] = &qnm_camnoc_rt_cdm_sf, 1789*ffaa88a0SVivek Aknurwar [MASTER_CAMNOC_SF] = &qnm_camnoc_sf, 1790*ffaa88a0SVivek Aknurwar [MASTER_MDP] = &qnm_mdp, 1791*ffaa88a0SVivek Aknurwar [MASTER_MDSS_DCP] = &qnm_mdss_dcp, 1792*ffaa88a0SVivek Aknurwar [MASTER_CDSP_HCP] = &qnm_vapss_hcp, 1793*ffaa88a0SVivek Aknurwar [MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu, 1794*ffaa88a0SVivek Aknurwar [MASTER_VIDEO_EVA] = &qnm_video_eva, 1795*ffaa88a0SVivek Aknurwar [MASTER_VIDEO_MVP] = &qnm_video_mvp, 1796*ffaa88a0SVivek Aknurwar [MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu, 1797*ffaa88a0SVivek Aknurwar [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 1798*ffaa88a0SVivek Aknurwar [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf, 1799*ffaa88a0SVivek Aknurwar }; 1800*ffaa88a0SVivek Aknurwar 1801*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_mmss_noc_regmap_config = { 1802*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1803*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1804*ffaa88a0SVivek Aknurwar .val_bits = 32, 1805*ffaa88a0SVivek Aknurwar .max_register = 0x5f800, 1806*ffaa88a0SVivek Aknurwar .fast_io = true, 1807*ffaa88a0SVivek Aknurwar }; 1808*ffaa88a0SVivek Aknurwar 1809*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_mmss_noc = { 1810*ffaa88a0SVivek Aknurwar .config = &hawi_mmss_noc_regmap_config, 1811*ffaa88a0SVivek Aknurwar .nodes = mmss_noc_nodes, 1812*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1813*ffaa88a0SVivek Aknurwar .bcms = mmss_noc_bcms, 1814*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1815*ffaa88a0SVivek Aknurwar }; 1816*ffaa88a0SVivek Aknurwar 1817*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 1818*ffaa88a0SVivek Aknurwar &bcm_co0, 1819*ffaa88a0SVivek Aknurwar }; 1820*ffaa88a0SVivek Aknurwar 1821*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const nsp_noc_nodes[] = { 1822*ffaa88a0SVivek Aknurwar [MASTER_CDSP_PROC] = &qnm_nsp, 1823*ffaa88a0SVivek Aknurwar [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 1824*ffaa88a0SVivek Aknurwar }; 1825*ffaa88a0SVivek Aknurwar 1826*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_nsp_noc_regmap_config = { 1827*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1828*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1829*ffaa88a0SVivek Aknurwar .val_bits = 32, 1830*ffaa88a0SVivek Aknurwar .max_register = 0x21280, 1831*ffaa88a0SVivek Aknurwar .fast_io = true, 1832*ffaa88a0SVivek Aknurwar }; 1833*ffaa88a0SVivek Aknurwar 1834*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_nsp_noc = { 1835*ffaa88a0SVivek Aknurwar .config = &hawi_nsp_noc_regmap_config, 1836*ffaa88a0SVivek Aknurwar .nodes = nsp_noc_nodes, 1837*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 1838*ffaa88a0SVivek Aknurwar .bcms = nsp_noc_bcms, 1839*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 1840*ffaa88a0SVivek Aknurwar }; 1841*ffaa88a0SVivek Aknurwar 1842*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const pcie_anoc_bcms[] = { 1843*ffaa88a0SVivek Aknurwar &bcm_sn3, 1844*ffaa88a0SVivek Aknurwar }; 1845*ffaa88a0SVivek Aknurwar 1846*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const pcie_anoc_nodes[] = { 1847*ffaa88a0SVivek Aknurwar [MASTER_PCIE_ANOC_CFG] = &qsm_pcie_anoc_cfg, 1848*ffaa88a0SVivek Aknurwar [MASTER_PCIE_0] = &xm_pcie, 1849*ffaa88a0SVivek Aknurwar [MASTER_PCIE_1] = &xm_pcie_g4x1, 1850*ffaa88a0SVivek Aknurwar [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc, 1851*ffaa88a0SVivek Aknurwar [SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc, 1852*ffaa88a0SVivek Aknurwar }; 1853*ffaa88a0SVivek Aknurwar 1854*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_pcie_anoc_regmap_config = { 1855*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1856*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1857*ffaa88a0SVivek Aknurwar .val_bits = 32, 1858*ffaa88a0SVivek Aknurwar .max_register = 0x12400, 1859*ffaa88a0SVivek Aknurwar .fast_io = true, 1860*ffaa88a0SVivek Aknurwar }; 1861*ffaa88a0SVivek Aknurwar 1862*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_pcie_anoc = { 1863*ffaa88a0SVivek Aknurwar .config = &hawi_pcie_anoc_regmap_config, 1864*ffaa88a0SVivek Aknurwar .nodes = pcie_anoc_nodes, 1865*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(pcie_anoc_nodes), 1866*ffaa88a0SVivek Aknurwar .bcms = pcie_anoc_bcms, 1867*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(pcie_anoc_bcms), 1868*ffaa88a0SVivek Aknurwar .qos_requires_clocks = true, 1869*ffaa88a0SVivek Aknurwar }; 1870*ffaa88a0SVivek Aknurwar 1871*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const stdst_cfg_bcms[] = { 1872*ffaa88a0SVivek Aknurwar &bcm_cn0, 1873*ffaa88a0SVivek Aknurwar &bcm_cn1, 1874*ffaa88a0SVivek Aknurwar }; 1875*ffaa88a0SVivek Aknurwar 1876*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const stdst_cfg_nodes[] = { 1877*ffaa88a0SVivek Aknurwar [MASTER_CFG_CENTER] = &qsm_cfg_center, 1878*ffaa88a0SVivek Aknurwar [MASTER_CFG_EAST] = &qsm_cfg_east, 1879*ffaa88a0SVivek Aknurwar [MASTER_CFG_MM] = &qsm_cfg_mm, 1880*ffaa88a0SVivek Aknurwar [MASTER_CFG_NORTH] = &qsm_cfg_north, 1881*ffaa88a0SVivek Aknurwar [MASTER_CFG_SOUTH] = &qsm_cfg_south, 1882*ffaa88a0SVivek Aknurwar [MASTER_CFG_SOUTHWEST] = &qsm_cfg_southwest, 1883*ffaa88a0SVivek Aknurwar [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, 1884*ffaa88a0SVivek Aknurwar [SLAVE_BOOT_ROM] = &qhs_boot_rom, 1885*ffaa88a0SVivek Aknurwar [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 1886*ffaa88a0SVivek Aknurwar [SLAVE_CLK_CTL] = &qhs_clk_ctl, 1887*ffaa88a0SVivek Aknurwar [SLAVE_CRYPTO_CFG] = &qhs_crypto_cfg, 1888*ffaa88a0SVivek Aknurwar [SLAVE_DISPLAY_CFG] = &qhs_display_cfg, 1889*ffaa88a0SVivek Aknurwar [SLAVE_EVA_CFG] = &qhs_eva_cfg, 1890*ffaa88a0SVivek Aknurwar [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg, 1891*ffaa88a0SVivek Aknurwar [SLAVE_I2C] = &qhs_i2c, 1892*ffaa88a0SVivek Aknurwar [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 1893*ffaa88a0SVivek Aknurwar [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router, 1894*ffaa88a0SVivek Aknurwar [SLAVE_IRIS_CFG] = &qhs_iris_cfg, 1895*ffaa88a0SVivek Aknurwar [SLAVE_CNOC_MSS] = &qhs_mss_cfg, 1896*ffaa88a0SVivek Aknurwar [SLAVE_PCIE_0_CFG] = &qhs_pcie_cfg, 1897*ffaa88a0SVivek Aknurwar [SLAVE_PCIE_1_CFG] = &qhs_pcie_g4x1_cfg, 1898*ffaa88a0SVivek Aknurwar [SLAVE_PRNG] = &qhs_prng, 1899*ffaa88a0SVivek Aknurwar [SLAVE_QSPI_0] = &qhs_qspi, 1900*ffaa88a0SVivek Aknurwar [SLAVE_QUP_1] = &qhs_qup1, 1901*ffaa88a0SVivek Aknurwar [SLAVE_QUP_2] = &qhs_qup2, 1902*ffaa88a0SVivek Aknurwar [SLAVE_QUP_3] = &qhs_qup3, 1903*ffaa88a0SVivek Aknurwar [SLAVE_QUP_4] = &qhs_qup4, 1904*ffaa88a0SVivek Aknurwar [SLAVE_SDCC_2] = &qhs_sdc2, 1905*ffaa88a0SVivek Aknurwar [SLAVE_SDCC_4] = &qhs_sdc4, 1906*ffaa88a0SVivek Aknurwar [SLAVE_TLMM] = &qhs_tlmm, 1907*ffaa88a0SVivek Aknurwar [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 1908*ffaa88a0SVivek Aknurwar [SLAVE_USB3] = &qhs_usb3, 1909*ffaa88a0SVivek Aknurwar [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg, 1910*ffaa88a0SVivek Aknurwar [SLAVE_PCIE_ANOC_CFG] = &qss_pcie_anoc_cfg, 1911*ffaa88a0SVivek Aknurwar [SLAVE_QDSS_CFG] = &qss_qdss_cfg, 1912*ffaa88a0SVivek Aknurwar [SLAVE_QDSS_STM] = &qss_qdss_stm, 1913*ffaa88a0SVivek Aknurwar [SLAVE_TCSR] = &qss_tcsr, 1914*ffaa88a0SVivek Aknurwar [SLAVE_TCU] = &xs_sys_tcu_cfg, 1915*ffaa88a0SVivek Aknurwar }; 1916*ffaa88a0SVivek Aknurwar 1917*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_stdst_cfg_regmap_config = { 1918*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1919*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1920*ffaa88a0SVivek Aknurwar .val_bits = 32, 1921*ffaa88a0SVivek Aknurwar .max_register = 0xb1000, 1922*ffaa88a0SVivek Aknurwar .fast_io = true, 1923*ffaa88a0SVivek Aknurwar }; 1924*ffaa88a0SVivek Aknurwar 1925*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_stdst_cfg = { 1926*ffaa88a0SVivek Aknurwar .config = &hawi_stdst_cfg_regmap_config, 1927*ffaa88a0SVivek Aknurwar .nodes = stdst_cfg_nodes, 1928*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(stdst_cfg_nodes), 1929*ffaa88a0SVivek Aknurwar .bcms = stdst_cfg_bcms, 1930*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(stdst_cfg_bcms), 1931*ffaa88a0SVivek Aknurwar }; 1932*ffaa88a0SVivek Aknurwar 1933*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const stdst_main_nodes[] = { 1934*ffaa88a0SVivek Aknurwar [MASTER_CNOC_STARDUST] = &qsm_cnoc_main, 1935*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_CENTER_CFG] = &qss_stdst_center_cfg, 1936*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_EAST_CFG] = &qss_stdst_east_cfg, 1937*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_MM_CFG] = &qss_stdst_mm_cfg, 1938*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_NORTH_CFG] = &qss_stdst_north_cfg, 1939*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_SOUTH_CFG] = &qss_stdst_south_cfg, 1940*ffaa88a0SVivek Aknurwar [SLAVE_STARDUST_SOUTHWEST_CFG] = &qss_stdst_southwest_cfg, 1941*ffaa88a0SVivek Aknurwar }; 1942*ffaa88a0SVivek Aknurwar 1943*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_stdst_main_regmap_config = { 1944*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1945*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1946*ffaa88a0SVivek Aknurwar .val_bits = 32, 1947*ffaa88a0SVivek Aknurwar .max_register = 0x10000, 1948*ffaa88a0SVivek Aknurwar .fast_io = true, 1949*ffaa88a0SVivek Aknurwar }; 1950*ffaa88a0SVivek Aknurwar 1951*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_stdst_main = { 1952*ffaa88a0SVivek Aknurwar .config = &hawi_stdst_main_regmap_config, 1953*ffaa88a0SVivek Aknurwar .nodes = stdst_main_nodes, 1954*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(stdst_main_nodes), 1955*ffaa88a0SVivek Aknurwar }; 1956*ffaa88a0SVivek Aknurwar 1957*ffaa88a0SVivek Aknurwar static struct qcom_icc_bcm * const system_noc_bcms[] = { 1958*ffaa88a0SVivek Aknurwar &bcm_sn0, 1959*ffaa88a0SVivek Aknurwar &bcm_sn2, 1960*ffaa88a0SVivek Aknurwar }; 1961*ffaa88a0SVivek Aknurwar 1962*ffaa88a0SVivek Aknurwar static struct qcom_icc_node * const system_noc_nodes[] = { 1963*ffaa88a0SVivek Aknurwar [MASTER_A1NOC_SNOC] = &qnm_aggre_noc, 1964*ffaa88a0SVivek Aknurwar [MASTER_APSS_NOC] = &qnm_apss_noc, 1965*ffaa88a0SVivek Aknurwar [MASTER_CNOC_SNOC] = &qnm_cnoc_data, 1966*ffaa88a0SVivek Aknurwar [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf, 1967*ffaa88a0SVivek Aknurwar }; 1968*ffaa88a0SVivek Aknurwar 1969*ffaa88a0SVivek Aknurwar static const struct regmap_config hawi_system_noc_regmap_config = { 1970*ffaa88a0SVivek Aknurwar .reg_bits = 32, 1971*ffaa88a0SVivek Aknurwar .reg_stride = 4, 1972*ffaa88a0SVivek Aknurwar .val_bits = 32, 1973*ffaa88a0SVivek Aknurwar .max_register = 0x20080, 1974*ffaa88a0SVivek Aknurwar .fast_io = true, 1975*ffaa88a0SVivek Aknurwar }; 1976*ffaa88a0SVivek Aknurwar 1977*ffaa88a0SVivek Aknurwar static const struct qcom_icc_desc hawi_system_noc = { 1978*ffaa88a0SVivek Aknurwar .config = &hawi_system_noc_regmap_config, 1979*ffaa88a0SVivek Aknurwar .nodes = system_noc_nodes, 1980*ffaa88a0SVivek Aknurwar .num_nodes = ARRAY_SIZE(system_noc_nodes), 1981*ffaa88a0SVivek Aknurwar .bcms = system_noc_bcms, 1982*ffaa88a0SVivek Aknurwar .num_bcms = ARRAY_SIZE(system_noc_bcms), 1983*ffaa88a0SVivek Aknurwar }; 1984*ffaa88a0SVivek Aknurwar 1985*ffaa88a0SVivek Aknurwar static const struct of_device_id qnoc_of_match[] = { 1986*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-aggre1-noc", .data = &hawi_aggre1_noc }, 1987*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-clk-virt", .data = &hawi_clk_virt }, 1988*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-cnoc-main", .data = &hawi_cnoc_main }, 1989*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-gem-noc", .data = &hawi_gem_noc }, 1990*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-llclpi-noc", .data = &hawi_llclpi_noc }, 1991*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-lpass-ag-noc", .data = &hawi_lpass_ag_noc }, 1992*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-lpass-lpiaon-noc", .data = &hawi_lpass_lpiaon_noc }, 1993*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-lpass-lpicx-noc", .data = &hawi_lpass_lpicx_noc }, 1994*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-mc-virt", .data = &hawi_mc_virt }, 1995*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-mmss-noc", .data = &hawi_mmss_noc }, 1996*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-nsp-noc", .data = &hawi_nsp_noc }, 1997*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-pcie-anoc", .data = &hawi_pcie_anoc }, 1998*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-stdst-cfg", .data = &hawi_stdst_cfg }, 1999*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-stdst-main", .data = &hawi_stdst_main }, 2000*ffaa88a0SVivek Aknurwar { .compatible = "qcom,hawi-system-noc", .data = &hawi_system_noc }, 2001*ffaa88a0SVivek Aknurwar { } 2002*ffaa88a0SVivek Aknurwar }; 2003*ffaa88a0SVivek Aknurwar MODULE_DEVICE_TABLE(of, qnoc_of_match); 2004*ffaa88a0SVivek Aknurwar 2005*ffaa88a0SVivek Aknurwar static struct platform_driver qnoc_driver = { 2006*ffaa88a0SVivek Aknurwar .probe = qcom_icc_rpmh_probe, 2007*ffaa88a0SVivek Aknurwar .remove = qcom_icc_rpmh_remove, 2008*ffaa88a0SVivek Aknurwar .driver = { 2009*ffaa88a0SVivek Aknurwar .name = "qnoc-hawi", 2010*ffaa88a0SVivek Aknurwar .of_match_table = qnoc_of_match, 2011*ffaa88a0SVivek Aknurwar .sync_state = icc_sync_state, 2012*ffaa88a0SVivek Aknurwar }, 2013*ffaa88a0SVivek Aknurwar }; 2014*ffaa88a0SVivek Aknurwar 2015*ffaa88a0SVivek Aknurwar static int __init qnoc_driver_init(void) 2016*ffaa88a0SVivek Aknurwar { 2017*ffaa88a0SVivek Aknurwar return platform_driver_register(&qnoc_driver); 2018*ffaa88a0SVivek Aknurwar } 2019*ffaa88a0SVivek Aknurwar core_initcall(qnoc_driver_init); 2020*ffaa88a0SVivek Aknurwar 2021*ffaa88a0SVivek Aknurwar static void __exit qnoc_driver_exit(void) 2022*ffaa88a0SVivek Aknurwar { 2023*ffaa88a0SVivek Aknurwar platform_driver_unregister(&qnoc_driver); 2024*ffaa88a0SVivek Aknurwar } 2025*ffaa88a0SVivek Aknurwar module_exit(qnoc_driver_exit); 2026*ffaa88a0SVivek Aknurwar 2027*ffaa88a0SVivek Aknurwar MODULE_DESCRIPTION("Qualcomm Hawi NoC driver"); 2028*ffaa88a0SVivek Aknurwar MODULE_LICENSE("GPL"); 2029