1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. 4 * Copyright (c) 2021, Linaro Limited 5 * 6 */ 7 8 #include <linux/interconnect-provider.h> 9 #include <linux/module.h> 10 #include <linux/mod_devicetable.h> 11 #include <linux/platform_device.h> 12 #include <dt-bindings/interconnect/qcom,sm8350.h> 13 14 #include "bcm-voter.h" 15 #include "icc-rpmh.h" 16 #include "sm8350.h" 17 18 static struct qcom_icc_node qhm_qspi = { 19 .name = "qhm_qspi", 20 .id = SM8350_MASTER_QSPI_0, 21 .channels = 1, 22 .buswidth = 4, 23 .num_links = 1, 24 .links = { SM8350_SLAVE_A1NOC_SNOC }, 25 }; 26 27 static struct qcom_icc_node qhm_qup0 = { 28 .name = "qhm_qup0", 29 .id = SM8350_MASTER_QUP_0, 30 .channels = 1, 31 .buswidth = 4, 32 .num_links = 1, 33 .links = { SM8350_SLAVE_A2NOC_SNOC }, 34 }; 35 36 static struct qcom_icc_node qhm_qup1 = { 37 .name = "qhm_qup1", 38 .id = SM8350_MASTER_QUP_1, 39 .channels = 1, 40 .buswidth = 4, 41 .num_links = 1, 42 .links = { SM8350_SLAVE_A1NOC_SNOC }, 43 }; 44 45 static struct qcom_icc_node qhm_qup2 = { 46 .name = "qhm_qup2", 47 .id = SM8350_MASTER_QUP_2, 48 .channels = 1, 49 .buswidth = 4, 50 .num_links = 1, 51 .links = { SM8350_SLAVE_A2NOC_SNOC }, 52 }; 53 54 static struct qcom_icc_node qnm_a1noc_cfg = { 55 .name = "qnm_a1noc_cfg", 56 .id = SM8350_MASTER_A1NOC_CFG, 57 .channels = 1, 58 .buswidth = 4, 59 .num_links = 1, 60 .links = { SM8350_SLAVE_SERVICE_A1NOC }, 61 }; 62 63 static struct qcom_icc_node xm_sdc4 = { 64 .name = "xm_sdc4", 65 .id = SM8350_MASTER_SDCC_4, 66 .channels = 1, 67 .buswidth = 8, 68 .num_links = 1, 69 .links = { SM8350_SLAVE_A1NOC_SNOC }, 70 }; 71 72 static struct qcom_icc_node xm_ufs_mem = { 73 .name = "xm_ufs_mem", 74 .id = SM8350_MASTER_UFS_MEM, 75 .channels = 1, 76 .buswidth = 8, 77 .num_links = 1, 78 .links = { SM8350_SLAVE_A1NOC_SNOC }, 79 }; 80 81 static struct qcom_icc_node xm_usb3_0 = { 82 .name = "xm_usb3_0", 83 .id = SM8350_MASTER_USB3_0, 84 .channels = 1, 85 .buswidth = 8, 86 .num_links = 1, 87 .links = { SM8350_SLAVE_A1NOC_SNOC }, 88 }; 89 90 static struct qcom_icc_node xm_usb3_1 = { 91 .name = "xm_usb3_1", 92 .id = SM8350_MASTER_USB3_1, 93 .channels = 1, 94 .buswidth = 8, 95 .num_links = 1, 96 .links = { SM8350_SLAVE_A1NOC_SNOC }, 97 }; 98 99 static struct qcom_icc_node qhm_qdss_bam = { 100 .name = "qhm_qdss_bam", 101 .id = SM8350_MASTER_QDSS_BAM, 102 .channels = 1, 103 .buswidth = 4, 104 .num_links = 1, 105 .links = { SM8350_SLAVE_A2NOC_SNOC }, 106 }; 107 108 static struct qcom_icc_node qnm_a2noc_cfg = { 109 .name = "qnm_a2noc_cfg", 110 .id = SM8350_MASTER_A2NOC_CFG, 111 .channels = 1, 112 .buswidth = 4, 113 .num_links = 1, 114 .links = { SM8350_SLAVE_SERVICE_A2NOC }, 115 }; 116 117 static struct qcom_icc_node qxm_crypto = { 118 .name = "qxm_crypto", 119 .id = SM8350_MASTER_CRYPTO, 120 .channels = 1, 121 .buswidth = 8, 122 .num_links = 1, 123 .links = { SM8350_SLAVE_A2NOC_SNOC }, 124 }; 125 126 static struct qcom_icc_node qxm_ipa = { 127 .name = "qxm_ipa", 128 .id = SM8350_MASTER_IPA, 129 .channels = 1, 130 .buswidth = 8, 131 .num_links = 1, 132 .links = { SM8350_SLAVE_A2NOC_SNOC }, 133 }; 134 135 static struct qcom_icc_node xm_pcie3_0 = { 136 .name = "xm_pcie3_0", 137 .id = SM8350_MASTER_PCIE_0, 138 .channels = 1, 139 .buswidth = 8, 140 .num_links = 1, 141 .links = { SM8350_SLAVE_ANOC_PCIE_GEM_NOC }, 142 }; 143 144 static struct qcom_icc_node xm_pcie3_1 = { 145 .name = "xm_pcie3_1", 146 .id = SM8350_MASTER_PCIE_1, 147 .channels = 1, 148 .buswidth = 8, 149 .num_links = 1, 150 .links = { SM8350_SLAVE_ANOC_PCIE_GEM_NOC }, 151 }; 152 153 static struct qcom_icc_node xm_qdss_etr = { 154 .name = "xm_qdss_etr", 155 .id = SM8350_MASTER_QDSS_ETR, 156 .channels = 1, 157 .buswidth = 8, 158 .num_links = 1, 159 .links = { SM8350_SLAVE_A2NOC_SNOC }, 160 }; 161 162 static struct qcom_icc_node xm_sdc2 = { 163 .name = "xm_sdc2", 164 .id = SM8350_MASTER_SDCC_2, 165 .channels = 1, 166 .buswidth = 8, 167 .num_links = 1, 168 .links = { SM8350_SLAVE_A2NOC_SNOC }, 169 }; 170 171 static struct qcom_icc_node xm_ufs_card = { 172 .name = "xm_ufs_card", 173 .id = SM8350_MASTER_UFS_CARD, 174 .channels = 1, 175 .buswidth = 8, 176 .num_links = 1, 177 .links = { SM8350_SLAVE_A2NOC_SNOC }, 178 }; 179 180 static struct qcom_icc_node qnm_gemnoc_cnoc = { 181 .name = "qnm_gemnoc_cnoc", 182 .id = SM8350_MASTER_GEM_NOC_CNOC, 183 .channels = 1, 184 .buswidth = 16, 185 .num_links = 56, 186 .links = { SM8350_SLAVE_AHB2PHY_SOUTH, 187 SM8350_SLAVE_AHB2PHY_NORTH, 188 SM8350_SLAVE_AOSS, 189 SM8350_SLAVE_APPSS, 190 SM8350_SLAVE_CAMERA_CFG, 191 SM8350_SLAVE_CLK_CTL, 192 SM8350_SLAVE_CDSP_CFG, 193 SM8350_SLAVE_RBCPR_CX_CFG, 194 SM8350_SLAVE_RBCPR_MMCX_CFG, 195 SM8350_SLAVE_RBCPR_MX_CFG, 196 SM8350_SLAVE_CRYPTO_0_CFG, 197 SM8350_SLAVE_CX_RDPM, 198 SM8350_SLAVE_DCC_CFG, 199 SM8350_SLAVE_DISPLAY_CFG, 200 SM8350_SLAVE_GFX3D_CFG, 201 SM8350_SLAVE_HWKM, 202 SM8350_SLAVE_IMEM_CFG, 203 SM8350_SLAVE_IPA_CFG, 204 SM8350_SLAVE_IPC_ROUTER_CFG, 205 SM8350_SLAVE_LPASS, 206 SM8350_SLAVE_CNOC_MSS, 207 SM8350_SLAVE_MX_RDPM, 208 SM8350_SLAVE_PCIE_0_CFG, 209 SM8350_SLAVE_PCIE_1_CFG, 210 SM8350_SLAVE_PDM, 211 SM8350_SLAVE_PIMEM_CFG, 212 SM8350_SLAVE_PKA_WRAPPER_CFG, 213 SM8350_SLAVE_PMU_WRAPPER_CFG, 214 SM8350_SLAVE_QDSS_CFG, 215 SM8350_SLAVE_QSPI_0, 216 SM8350_SLAVE_QUP_0, 217 SM8350_SLAVE_QUP_1, 218 SM8350_SLAVE_QUP_2, 219 SM8350_SLAVE_SDCC_2, 220 SM8350_SLAVE_SDCC_4, 221 SM8350_SLAVE_SECURITY, 222 SM8350_SLAVE_SPSS_CFG, 223 SM8350_SLAVE_TCSR, 224 SM8350_SLAVE_TLMM, 225 SM8350_SLAVE_UFS_CARD_CFG, 226 SM8350_SLAVE_UFS_MEM_CFG, 227 SM8350_SLAVE_USB3_0, 228 SM8350_SLAVE_USB3_1, 229 SM8350_SLAVE_VENUS_CFG, 230 SM8350_SLAVE_VSENSE_CTRL_CFG, 231 SM8350_SLAVE_A1NOC_CFG, 232 SM8350_SLAVE_A2NOC_CFG, 233 SM8350_SLAVE_DDRSS_CFG, 234 SM8350_SLAVE_CNOC_MNOC_CFG, 235 SM8350_SLAVE_SNOC_CFG, 236 SM8350_SLAVE_BOOT_IMEM, 237 SM8350_SLAVE_IMEM, 238 SM8350_SLAVE_PIMEM, 239 SM8350_SLAVE_SERVICE_CNOC, 240 SM8350_SLAVE_QDSS_STM, 241 SM8350_SLAVE_TCU 242 }, 243 }; 244 245 static struct qcom_icc_node qnm_gemnoc_pcie = { 246 .name = "qnm_gemnoc_pcie", 247 .id = SM8350_MASTER_GEM_NOC_PCIE_SNOC, 248 .channels = 1, 249 .buswidth = 8, 250 .num_links = 2, 251 .links = { SM8350_SLAVE_PCIE_0, 252 SM8350_SLAVE_PCIE_1 253 }, 254 }; 255 256 static struct qcom_icc_node xm_qdss_dap = { 257 .name = "xm_qdss_dap", 258 .id = SM8350_MASTER_QDSS_DAP, 259 .channels = 1, 260 .buswidth = 8, 261 .num_links = 56, 262 .links = { SM8350_SLAVE_AHB2PHY_SOUTH, 263 SM8350_SLAVE_AHB2PHY_NORTH, 264 SM8350_SLAVE_AOSS, 265 SM8350_SLAVE_APPSS, 266 SM8350_SLAVE_CAMERA_CFG, 267 SM8350_SLAVE_CLK_CTL, 268 SM8350_SLAVE_CDSP_CFG, 269 SM8350_SLAVE_RBCPR_CX_CFG, 270 SM8350_SLAVE_RBCPR_MMCX_CFG, 271 SM8350_SLAVE_RBCPR_MX_CFG, 272 SM8350_SLAVE_CRYPTO_0_CFG, 273 SM8350_SLAVE_CX_RDPM, 274 SM8350_SLAVE_DCC_CFG, 275 SM8350_SLAVE_DISPLAY_CFG, 276 SM8350_SLAVE_GFX3D_CFG, 277 SM8350_SLAVE_HWKM, 278 SM8350_SLAVE_IMEM_CFG, 279 SM8350_SLAVE_IPA_CFG, 280 SM8350_SLAVE_IPC_ROUTER_CFG, 281 SM8350_SLAVE_LPASS, 282 SM8350_SLAVE_CNOC_MSS, 283 SM8350_SLAVE_MX_RDPM, 284 SM8350_SLAVE_PCIE_0_CFG, 285 SM8350_SLAVE_PCIE_1_CFG, 286 SM8350_SLAVE_PDM, 287 SM8350_SLAVE_PIMEM_CFG, 288 SM8350_SLAVE_PKA_WRAPPER_CFG, 289 SM8350_SLAVE_PMU_WRAPPER_CFG, 290 SM8350_SLAVE_QDSS_CFG, 291 SM8350_SLAVE_QSPI_0, 292 SM8350_SLAVE_QUP_0, 293 SM8350_SLAVE_QUP_1, 294 SM8350_SLAVE_QUP_2, 295 SM8350_SLAVE_SDCC_2, 296 SM8350_SLAVE_SDCC_4, 297 SM8350_SLAVE_SECURITY, 298 SM8350_SLAVE_SPSS_CFG, 299 SM8350_SLAVE_TCSR, 300 SM8350_SLAVE_TLMM, 301 SM8350_SLAVE_UFS_CARD_CFG, 302 SM8350_SLAVE_UFS_MEM_CFG, 303 SM8350_SLAVE_USB3_0, 304 SM8350_SLAVE_USB3_1, 305 SM8350_SLAVE_VENUS_CFG, 306 SM8350_SLAVE_VSENSE_CTRL_CFG, 307 SM8350_SLAVE_A1NOC_CFG, 308 SM8350_SLAVE_A2NOC_CFG, 309 SM8350_SLAVE_DDRSS_CFG, 310 SM8350_SLAVE_CNOC_MNOC_CFG, 311 SM8350_SLAVE_SNOC_CFG, 312 SM8350_SLAVE_BOOT_IMEM, 313 SM8350_SLAVE_IMEM, 314 SM8350_SLAVE_PIMEM, 315 SM8350_SLAVE_SERVICE_CNOC, 316 SM8350_SLAVE_QDSS_STM, 317 SM8350_SLAVE_TCU 318 }, 319 }; 320 321 static struct qcom_icc_node qnm_cnoc_dc_noc = { 322 .name = "qnm_cnoc_dc_noc", 323 .id = SM8350_MASTER_CNOC_DC_NOC, 324 .channels = 1, 325 .buswidth = 4, 326 .num_links = 2, 327 .links = { SM8350_SLAVE_LLCC_CFG, 328 SM8350_SLAVE_GEM_NOC_CFG 329 }, 330 }; 331 332 static struct qcom_icc_node alm_gpu_tcu = { 333 .name = "alm_gpu_tcu", 334 .id = SM8350_MASTER_GPU_TCU, 335 .channels = 1, 336 .buswidth = 8, 337 .num_links = 2, 338 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 339 SM8350_SLAVE_LLCC 340 }, 341 }; 342 343 static struct qcom_icc_node alm_sys_tcu = { 344 .name = "alm_sys_tcu", 345 .id = SM8350_MASTER_SYS_TCU, 346 .channels = 1, 347 .buswidth = 8, 348 .num_links = 2, 349 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 350 SM8350_SLAVE_LLCC 351 }, 352 }; 353 354 static struct qcom_icc_node chm_apps = { 355 .name = "chm_apps", 356 .id = SM8350_MASTER_APPSS_PROC, 357 .channels = 2, 358 .buswidth = 32, 359 .num_links = 3, 360 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 361 SM8350_SLAVE_LLCC, 362 SM8350_SLAVE_MEM_NOC_PCIE_SNOC 363 }, 364 }; 365 366 static struct qcom_icc_node qnm_cmpnoc = { 367 .name = "qnm_cmpnoc", 368 .id = SM8350_MASTER_COMPUTE_NOC, 369 .channels = 2, 370 .buswidth = 32, 371 .num_links = 2, 372 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 373 SM8350_SLAVE_LLCC 374 }, 375 }; 376 377 static struct qcom_icc_node qnm_gemnoc_cfg = { 378 .name = "qnm_gemnoc_cfg", 379 .id = SM8350_MASTER_GEM_NOC_CFG, 380 .channels = 1, 381 .buswidth = 4, 382 .num_links = 5, 383 .links = { SM8350_SLAVE_MSS_PROC_MS_MPU_CFG, 384 SM8350_SLAVE_MCDMA_MS_MPU_CFG, 385 SM8350_SLAVE_SERVICE_GEM_NOC_1, 386 SM8350_SLAVE_SERVICE_GEM_NOC_2, 387 SM8350_SLAVE_SERVICE_GEM_NOC 388 }, 389 }; 390 391 static struct qcom_icc_node qnm_gpu = { 392 .name = "qnm_gpu", 393 .id = SM8350_MASTER_GFX3D, 394 .channels = 2, 395 .buswidth = 32, 396 .num_links = 2, 397 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 398 SM8350_SLAVE_LLCC 399 }, 400 }; 401 402 static struct qcom_icc_node qnm_mnoc_hf = { 403 .name = "qnm_mnoc_hf", 404 .id = SM8350_MASTER_MNOC_HF_MEM_NOC, 405 .channels = 2, 406 .buswidth = 32, 407 .num_links = 1, 408 .links = { SM8350_SLAVE_LLCC }, 409 }; 410 411 static struct qcom_icc_node qnm_mnoc_sf = { 412 .name = "qnm_mnoc_sf", 413 .id = SM8350_MASTER_MNOC_SF_MEM_NOC, 414 .channels = 2, 415 .buswidth = 32, 416 .num_links = 2, 417 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 418 SM8350_SLAVE_LLCC 419 }, 420 }; 421 422 static struct qcom_icc_node qnm_pcie = { 423 .name = "qnm_pcie", 424 .id = SM8350_MASTER_ANOC_PCIE_GEM_NOC, 425 .channels = 1, 426 .buswidth = 16, 427 .num_links = 2, 428 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 429 SM8350_SLAVE_LLCC 430 }, 431 }; 432 433 static struct qcom_icc_node qnm_snoc_gc = { 434 .name = "qnm_snoc_gc", 435 .id = SM8350_MASTER_SNOC_GC_MEM_NOC, 436 .channels = 1, 437 .buswidth = 8, 438 .num_links = 1, 439 .links = { SM8350_SLAVE_LLCC }, 440 }; 441 442 static struct qcom_icc_node qnm_snoc_sf = { 443 .name = "qnm_snoc_sf", 444 .id = SM8350_MASTER_SNOC_SF_MEM_NOC, 445 .channels = 1, 446 .buswidth = 16, 447 .num_links = 3, 448 .links = { SM8350_SLAVE_GEM_NOC_CNOC, 449 SM8350_SLAVE_LLCC, 450 SM8350_SLAVE_MEM_NOC_PCIE_SNOC 451 }, 452 }; 453 454 static struct qcom_icc_node qhm_config_noc = { 455 .name = "qhm_config_noc", 456 .id = SM8350_MASTER_CNOC_LPASS_AG_NOC, 457 .channels = 1, 458 .buswidth = 4, 459 .num_links = 6, 460 .links = { SM8350_SLAVE_LPASS_CORE_CFG, 461 SM8350_SLAVE_LPASS_LPI_CFG, 462 SM8350_SLAVE_LPASS_MPU_CFG, 463 SM8350_SLAVE_LPASS_TOP_CFG, 464 SM8350_SLAVE_SERVICES_LPASS_AML_NOC, 465 SM8350_SLAVE_SERVICE_LPASS_AG_NOC 466 }, 467 }; 468 469 static struct qcom_icc_node llcc_mc = { 470 .name = "llcc_mc", 471 .id = SM8350_MASTER_LLCC, 472 .channels = 4, 473 .buswidth = 4, 474 .num_links = 1, 475 .links = { SM8350_SLAVE_EBI1 }, 476 }; 477 478 static struct qcom_icc_node qnm_camnoc_hf = { 479 .name = "qnm_camnoc_hf", 480 .id = SM8350_MASTER_CAMNOC_HF, 481 .channels = 2, 482 .buswidth = 32, 483 .num_links = 1, 484 .links = { SM8350_SLAVE_MNOC_HF_MEM_NOC }, 485 }; 486 487 static struct qcom_icc_node qnm_camnoc_icp = { 488 .name = "qnm_camnoc_icp", 489 .id = SM8350_MASTER_CAMNOC_ICP, 490 .channels = 1, 491 .buswidth = 8, 492 .num_links = 1, 493 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 494 }; 495 496 static struct qcom_icc_node qnm_camnoc_sf = { 497 .name = "qnm_camnoc_sf", 498 .id = SM8350_MASTER_CAMNOC_SF, 499 .channels = 2, 500 .buswidth = 32, 501 .num_links = 1, 502 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 503 }; 504 505 static struct qcom_icc_node qnm_mnoc_cfg = { 506 .name = "qnm_mnoc_cfg", 507 .id = SM8350_MASTER_CNOC_MNOC_CFG, 508 .channels = 1, 509 .buswidth = 4, 510 .num_links = 1, 511 .links = { SM8350_SLAVE_SERVICE_MNOC }, 512 }; 513 514 static struct qcom_icc_node qnm_video0 = { 515 .name = "qnm_video0", 516 .id = SM8350_MASTER_VIDEO_P0, 517 .channels = 1, 518 .buswidth = 32, 519 .num_links = 1, 520 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 521 }; 522 523 static struct qcom_icc_node qnm_video1 = { 524 .name = "qnm_video1", 525 .id = SM8350_MASTER_VIDEO_P1, 526 .channels = 1, 527 .buswidth = 32, 528 .num_links = 1, 529 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 530 }; 531 532 static struct qcom_icc_node qnm_video_cvp = { 533 .name = "qnm_video_cvp", 534 .id = SM8350_MASTER_VIDEO_PROC, 535 .channels = 1, 536 .buswidth = 32, 537 .num_links = 1, 538 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 539 }; 540 541 static struct qcom_icc_node qxm_mdp0 = { 542 .name = "qxm_mdp0", 543 .id = SM8350_MASTER_MDP0, 544 .channels = 1, 545 .buswidth = 32, 546 .num_links = 1, 547 .links = { SM8350_SLAVE_MNOC_HF_MEM_NOC }, 548 }; 549 550 static struct qcom_icc_node qxm_mdp1 = { 551 .name = "qxm_mdp1", 552 .id = SM8350_MASTER_MDP1, 553 .channels = 1, 554 .buswidth = 32, 555 .num_links = 1, 556 .links = { SM8350_SLAVE_MNOC_HF_MEM_NOC }, 557 }; 558 559 static struct qcom_icc_node qxm_rot = { 560 .name = "qxm_rot", 561 .id = SM8350_MASTER_ROTATOR, 562 .channels = 1, 563 .buswidth = 32, 564 .num_links = 1, 565 .links = { SM8350_SLAVE_MNOC_SF_MEM_NOC }, 566 }; 567 568 static struct qcom_icc_node qhm_nsp_noc_config = { 569 .name = "qhm_nsp_noc_config", 570 .id = SM8350_MASTER_CDSP_NOC_CFG, 571 .channels = 1, 572 .buswidth = 4, 573 .num_links = 1, 574 .links = { SM8350_SLAVE_SERVICE_NSP_NOC }, 575 }; 576 577 static struct qcom_icc_node qxm_nsp = { 578 .name = "qxm_nsp", 579 .id = SM8350_MASTER_CDSP_PROC, 580 .channels = 2, 581 .buswidth = 32, 582 .num_links = 1, 583 .links = { SM8350_SLAVE_CDSP_MEM_NOC }, 584 }; 585 586 static struct qcom_icc_node qnm_aggre1_noc = { 587 .name = "qnm_aggre1_noc", 588 .id = SM8350_MASTER_A1NOC_SNOC, 589 .channels = 1, 590 .buswidth = 16, 591 .num_links = 1, 592 .links = { SM8350_SLAVE_SNOC_GEM_NOC_SF }, 593 }; 594 595 static struct qcom_icc_node qnm_aggre2_noc = { 596 .name = "qnm_aggre2_noc", 597 .id = SM8350_MASTER_A2NOC_SNOC, 598 .channels = 1, 599 .buswidth = 16, 600 .num_links = 1, 601 .links = { SM8350_SLAVE_SNOC_GEM_NOC_SF }, 602 }; 603 604 static struct qcom_icc_node qnm_snoc_cfg = { 605 .name = "qnm_snoc_cfg", 606 .id = SM8350_MASTER_SNOC_CFG, 607 .channels = 1, 608 .buswidth = 4, 609 .num_links = 1, 610 .links = { SM8350_SLAVE_SERVICE_SNOC }, 611 }; 612 613 static struct qcom_icc_node qxm_pimem = { 614 .name = "qxm_pimem", 615 .id = SM8350_MASTER_PIMEM, 616 .channels = 1, 617 .buswidth = 8, 618 .num_links = 1, 619 .links = { SM8350_SLAVE_SNOC_GEM_NOC_GC }, 620 }; 621 622 static struct qcom_icc_node xm_gic = { 623 .name = "xm_gic", 624 .id = SM8350_MASTER_GIC, 625 .channels = 1, 626 .buswidth = 8, 627 .num_links = 1, 628 .links = { SM8350_SLAVE_SNOC_GEM_NOC_GC }, 629 }; 630 631 static struct qcom_icc_node qns_a1noc_snoc = { 632 .name = "qns_a1noc_snoc", 633 .id = SM8350_SLAVE_A1NOC_SNOC, 634 .channels = 1, 635 .buswidth = 16, 636 .num_links = 1, 637 .links = { SM8350_MASTER_A1NOC_SNOC }, 638 }; 639 640 static struct qcom_icc_node srvc_aggre1_noc = { 641 .name = "srvc_aggre1_noc", 642 .id = SM8350_SLAVE_SERVICE_A1NOC, 643 .channels = 1, 644 .buswidth = 4, 645 }; 646 647 static struct qcom_icc_node qns_a2noc_snoc = { 648 .name = "qns_a2noc_snoc", 649 .id = SM8350_SLAVE_A2NOC_SNOC, 650 .channels = 1, 651 .buswidth = 16, 652 .num_links = 1, 653 .links = { SM8350_MASTER_A2NOC_SNOC }, 654 }; 655 656 static struct qcom_icc_node qns_pcie_mem_noc = { 657 .name = "qns_pcie_mem_noc", 658 .id = SM8350_SLAVE_ANOC_PCIE_GEM_NOC, 659 .channels = 1, 660 .buswidth = 16, 661 .num_links = 1, 662 .links = { SM8350_MASTER_ANOC_PCIE_GEM_NOC }, 663 }; 664 665 static struct qcom_icc_node srvc_aggre2_noc = { 666 .name = "srvc_aggre2_noc", 667 .id = SM8350_SLAVE_SERVICE_A2NOC, 668 .channels = 1, 669 .buswidth = 4, 670 }; 671 672 static struct qcom_icc_node qhs_ahb2phy0 = { 673 .name = "qhs_ahb2phy0", 674 .id = SM8350_SLAVE_AHB2PHY_SOUTH, 675 .channels = 1, 676 .buswidth = 4, 677 }; 678 679 static struct qcom_icc_node qhs_ahb2phy1 = { 680 .name = "qhs_ahb2phy1", 681 .id = SM8350_SLAVE_AHB2PHY_NORTH, 682 .channels = 1, 683 .buswidth = 4, 684 }; 685 686 static struct qcom_icc_node qhs_aoss = { 687 .name = "qhs_aoss", 688 .id = SM8350_SLAVE_AOSS, 689 .channels = 1, 690 .buswidth = 4, 691 }; 692 693 static struct qcom_icc_node qhs_apss = { 694 .name = "qhs_apss", 695 .id = SM8350_SLAVE_APPSS, 696 .channels = 1, 697 .buswidth = 8, 698 }; 699 700 static struct qcom_icc_node qhs_camera_cfg = { 701 .name = "qhs_camera_cfg", 702 .id = SM8350_SLAVE_CAMERA_CFG, 703 .channels = 1, 704 .buswidth = 4, 705 }; 706 707 static struct qcom_icc_node qhs_clk_ctl = { 708 .name = "qhs_clk_ctl", 709 .id = SM8350_SLAVE_CLK_CTL, 710 .channels = 1, 711 .buswidth = 4, 712 }; 713 714 static struct qcom_icc_node qhs_compute_cfg = { 715 .name = "qhs_compute_cfg", 716 .id = SM8350_SLAVE_CDSP_CFG, 717 .channels = 1, 718 .buswidth = 4, 719 }; 720 721 static struct qcom_icc_node qhs_cpr_cx = { 722 .name = "qhs_cpr_cx", 723 .id = SM8350_SLAVE_RBCPR_CX_CFG, 724 .channels = 1, 725 .buswidth = 4, 726 }; 727 728 static struct qcom_icc_node qhs_cpr_mmcx = { 729 .name = "qhs_cpr_mmcx", 730 .id = SM8350_SLAVE_RBCPR_MMCX_CFG, 731 .channels = 1, 732 .buswidth = 4, 733 }; 734 735 static struct qcom_icc_node qhs_cpr_mx = { 736 .name = "qhs_cpr_mx", 737 .id = SM8350_SLAVE_RBCPR_MX_CFG, 738 .channels = 1, 739 .buswidth = 4, 740 }; 741 742 static struct qcom_icc_node qhs_crypto0_cfg = { 743 .name = "qhs_crypto0_cfg", 744 .id = SM8350_SLAVE_CRYPTO_0_CFG, 745 .channels = 1, 746 .buswidth = 4, 747 }; 748 749 static struct qcom_icc_node qhs_cx_rdpm = { 750 .name = "qhs_cx_rdpm", 751 .id = SM8350_SLAVE_CX_RDPM, 752 .channels = 1, 753 .buswidth = 4, 754 }; 755 756 static struct qcom_icc_node qhs_dcc_cfg = { 757 .name = "qhs_dcc_cfg", 758 .id = SM8350_SLAVE_DCC_CFG, 759 .channels = 1, 760 .buswidth = 4, 761 }; 762 763 static struct qcom_icc_node qhs_display_cfg = { 764 .name = "qhs_display_cfg", 765 .id = SM8350_SLAVE_DISPLAY_CFG, 766 .channels = 1, 767 .buswidth = 4, 768 }; 769 770 static struct qcom_icc_node qhs_gpuss_cfg = { 771 .name = "qhs_gpuss_cfg", 772 .id = SM8350_SLAVE_GFX3D_CFG, 773 .channels = 1, 774 .buswidth = 8, 775 }; 776 777 static struct qcom_icc_node qhs_hwkm = { 778 .name = "qhs_hwkm", 779 .id = SM8350_SLAVE_HWKM, 780 .channels = 1, 781 .buswidth = 4, 782 }; 783 784 static struct qcom_icc_node qhs_imem_cfg = { 785 .name = "qhs_imem_cfg", 786 .id = SM8350_SLAVE_IMEM_CFG, 787 .channels = 1, 788 .buswidth = 4, 789 }; 790 791 static struct qcom_icc_node qhs_ipa = { 792 .name = "qhs_ipa", 793 .id = SM8350_SLAVE_IPA_CFG, 794 .channels = 1, 795 .buswidth = 4, 796 }; 797 798 static struct qcom_icc_node qhs_ipc_router = { 799 .name = "qhs_ipc_router", 800 .id = SM8350_SLAVE_IPC_ROUTER_CFG, 801 .channels = 1, 802 .buswidth = 4, 803 }; 804 805 static struct qcom_icc_node qhs_lpass_cfg = { 806 .name = "qhs_lpass_cfg", 807 .id = SM8350_SLAVE_LPASS, 808 .channels = 1, 809 .buswidth = 4, 810 .num_links = 1, 811 .links = { SM8350_MASTER_CNOC_LPASS_AG_NOC }, 812 }; 813 814 static struct qcom_icc_node qhs_mss_cfg = { 815 .name = "qhs_mss_cfg", 816 .id = SM8350_SLAVE_CNOC_MSS, 817 .channels = 1, 818 .buswidth = 4, 819 }; 820 821 static struct qcom_icc_node qhs_mx_rdpm = { 822 .name = "qhs_mx_rdpm", 823 .id = SM8350_SLAVE_MX_RDPM, 824 .channels = 1, 825 .buswidth = 4, 826 }; 827 828 static struct qcom_icc_node qhs_pcie0_cfg = { 829 .name = "qhs_pcie0_cfg", 830 .id = SM8350_SLAVE_PCIE_0_CFG, 831 .channels = 1, 832 .buswidth = 4, 833 }; 834 835 static struct qcom_icc_node qhs_pcie1_cfg = { 836 .name = "qhs_pcie1_cfg", 837 .id = SM8350_SLAVE_PCIE_1_CFG, 838 .channels = 1, 839 .buswidth = 4, 840 }; 841 842 static struct qcom_icc_node qhs_pdm = { 843 .name = "qhs_pdm", 844 .id = SM8350_SLAVE_PDM, 845 .channels = 1, 846 .buswidth = 4, 847 }; 848 849 static struct qcom_icc_node qhs_pimem_cfg = { 850 .name = "qhs_pimem_cfg", 851 .id = SM8350_SLAVE_PIMEM_CFG, 852 .channels = 1, 853 .buswidth = 4, 854 }; 855 856 static struct qcom_icc_node qhs_pka_wrapper_cfg = { 857 .name = "qhs_pka_wrapper_cfg", 858 .id = SM8350_SLAVE_PKA_WRAPPER_CFG, 859 .channels = 1, 860 .buswidth = 4, 861 }; 862 863 static struct qcom_icc_node qhs_pmu_wrapper_cfg = { 864 .name = "qhs_pmu_wrapper_cfg", 865 .id = SM8350_SLAVE_PMU_WRAPPER_CFG, 866 .channels = 1, 867 .buswidth = 4, 868 }; 869 870 static struct qcom_icc_node qhs_qdss_cfg = { 871 .name = "qhs_qdss_cfg", 872 .id = SM8350_SLAVE_QDSS_CFG, 873 .channels = 1, 874 .buswidth = 4, 875 }; 876 877 static struct qcom_icc_node qhs_qspi = { 878 .name = "qhs_qspi", 879 .id = SM8350_SLAVE_QSPI_0, 880 .channels = 1, 881 .buswidth = 4, 882 }; 883 884 static struct qcom_icc_node qhs_qup0 = { 885 .name = "qhs_qup0", 886 .id = SM8350_SLAVE_QUP_0, 887 .channels = 1, 888 .buswidth = 4, 889 }; 890 891 static struct qcom_icc_node qhs_qup1 = { 892 .name = "qhs_qup1", 893 .id = SM8350_SLAVE_QUP_1, 894 .channels = 1, 895 .buswidth = 4, 896 }; 897 898 static struct qcom_icc_node qhs_qup2 = { 899 .name = "qhs_qup2", 900 .id = SM8350_SLAVE_QUP_2, 901 .channels = 1, 902 .buswidth = 4, 903 }; 904 905 static struct qcom_icc_node qhs_sdc2 = { 906 .name = "qhs_sdc2", 907 .id = SM8350_SLAVE_SDCC_2, 908 .channels = 1, 909 .buswidth = 4, 910 }; 911 912 static struct qcom_icc_node qhs_sdc4 = { 913 .name = "qhs_sdc4", 914 .id = SM8350_SLAVE_SDCC_4, 915 .channels = 1, 916 .buswidth = 4, 917 }; 918 919 static struct qcom_icc_node qhs_security = { 920 .name = "qhs_security", 921 .id = SM8350_SLAVE_SECURITY, 922 .channels = 1, 923 .buswidth = 4, 924 }; 925 926 static struct qcom_icc_node qhs_spss_cfg = { 927 .name = "qhs_spss_cfg", 928 .id = SM8350_SLAVE_SPSS_CFG, 929 .channels = 1, 930 .buswidth = 4, 931 }; 932 933 static struct qcom_icc_node qhs_tcsr = { 934 .name = "qhs_tcsr", 935 .id = SM8350_SLAVE_TCSR, 936 .channels = 1, 937 .buswidth = 4, 938 }; 939 940 static struct qcom_icc_node qhs_tlmm = { 941 .name = "qhs_tlmm", 942 .id = SM8350_SLAVE_TLMM, 943 .channels = 1, 944 .buswidth = 4, 945 }; 946 947 static struct qcom_icc_node qhs_ufs_card_cfg = { 948 .name = "qhs_ufs_card_cfg", 949 .id = SM8350_SLAVE_UFS_CARD_CFG, 950 .channels = 1, 951 .buswidth = 4, 952 }; 953 954 static struct qcom_icc_node qhs_ufs_mem_cfg = { 955 .name = "qhs_ufs_mem_cfg", 956 .id = SM8350_SLAVE_UFS_MEM_CFG, 957 .channels = 1, 958 .buswidth = 4, 959 }; 960 961 static struct qcom_icc_node qhs_usb3_0 = { 962 .name = "qhs_usb3_0", 963 .id = SM8350_SLAVE_USB3_0, 964 .channels = 1, 965 .buswidth = 4, 966 }; 967 968 static struct qcom_icc_node qhs_usb3_1 = { 969 .name = "qhs_usb3_1", 970 .id = SM8350_SLAVE_USB3_1, 971 .channels = 1, 972 .buswidth = 4, 973 }; 974 975 static struct qcom_icc_node qhs_venus_cfg = { 976 .name = "qhs_venus_cfg", 977 .id = SM8350_SLAVE_VENUS_CFG, 978 .channels = 1, 979 .buswidth = 4, 980 }; 981 982 static struct qcom_icc_node qhs_vsense_ctrl_cfg = { 983 .name = "qhs_vsense_ctrl_cfg", 984 .id = SM8350_SLAVE_VSENSE_CTRL_CFG, 985 .channels = 1, 986 .buswidth = 4, 987 }; 988 989 static struct qcom_icc_node qns_a1_noc_cfg = { 990 .name = "qns_a1_noc_cfg", 991 .id = SM8350_SLAVE_A1NOC_CFG, 992 .channels = 1, 993 .buswidth = 4, 994 }; 995 996 static struct qcom_icc_node qns_a2_noc_cfg = { 997 .name = "qns_a2_noc_cfg", 998 .id = SM8350_SLAVE_A2NOC_CFG, 999 .channels = 1, 1000 .buswidth = 4, 1001 }; 1002 1003 static struct qcom_icc_node qns_ddrss_cfg = { 1004 .name = "qns_ddrss_cfg", 1005 .id = SM8350_SLAVE_DDRSS_CFG, 1006 .channels = 1, 1007 .buswidth = 4, 1008 }; 1009 1010 static struct qcom_icc_node qns_mnoc_cfg = { 1011 .name = "qns_mnoc_cfg", 1012 .id = SM8350_SLAVE_CNOC_MNOC_CFG, 1013 .channels = 1, 1014 .buswidth = 4, 1015 }; 1016 1017 static struct qcom_icc_node qns_snoc_cfg = { 1018 .name = "qns_snoc_cfg", 1019 .id = SM8350_SLAVE_SNOC_CFG, 1020 .channels = 1, 1021 .buswidth = 4, 1022 }; 1023 1024 static struct qcom_icc_node qxs_boot_imem = { 1025 .name = "qxs_boot_imem", 1026 .id = SM8350_SLAVE_BOOT_IMEM, 1027 .channels = 1, 1028 .buswidth = 8, 1029 }; 1030 1031 static struct qcom_icc_node qxs_imem = { 1032 .name = "qxs_imem", 1033 .id = SM8350_SLAVE_IMEM, 1034 .channels = 1, 1035 .buswidth = 8, 1036 }; 1037 1038 static struct qcom_icc_node qxs_pimem = { 1039 .name = "qxs_pimem", 1040 .id = SM8350_SLAVE_PIMEM, 1041 .channels = 1, 1042 .buswidth = 8, 1043 }; 1044 1045 static struct qcom_icc_node srvc_cnoc = { 1046 .name = "srvc_cnoc", 1047 .id = SM8350_SLAVE_SERVICE_CNOC, 1048 .channels = 1, 1049 .buswidth = 4, 1050 }; 1051 1052 static struct qcom_icc_node xs_pcie_0 = { 1053 .name = "xs_pcie_0", 1054 .id = SM8350_SLAVE_PCIE_0, 1055 .channels = 1, 1056 .buswidth = 8, 1057 }; 1058 1059 static struct qcom_icc_node xs_pcie_1 = { 1060 .name = "xs_pcie_1", 1061 .id = SM8350_SLAVE_PCIE_1, 1062 .channels = 1, 1063 .buswidth = 8, 1064 }; 1065 1066 static struct qcom_icc_node xs_qdss_stm = { 1067 .name = "xs_qdss_stm", 1068 .id = SM8350_SLAVE_QDSS_STM, 1069 .channels = 1, 1070 .buswidth = 4, 1071 }; 1072 1073 static struct qcom_icc_node xs_sys_tcu_cfg = { 1074 .name = "xs_sys_tcu_cfg", 1075 .id = SM8350_SLAVE_TCU, 1076 .channels = 1, 1077 .buswidth = 8, 1078 }; 1079 1080 static struct qcom_icc_node qhs_llcc = { 1081 .name = "qhs_llcc", 1082 .id = SM8350_SLAVE_LLCC_CFG, 1083 .channels = 1, 1084 .buswidth = 4, 1085 }; 1086 1087 static struct qcom_icc_node qns_gemnoc = { 1088 .name = "qns_gemnoc", 1089 .id = SM8350_SLAVE_GEM_NOC_CFG, 1090 .channels = 1, 1091 .buswidth = 4, 1092 }; 1093 1094 static struct qcom_icc_node qhs_mdsp_ms_mpu_cfg = { 1095 .name = "qhs_mdsp_ms_mpu_cfg", 1096 .id = SM8350_SLAVE_MSS_PROC_MS_MPU_CFG, 1097 .channels = 1, 1098 .buswidth = 4, 1099 }; 1100 1101 static struct qcom_icc_node qhs_modem_ms_mpu_cfg = { 1102 .name = "qhs_modem_ms_mpu_cfg", 1103 .id = SM8350_SLAVE_MCDMA_MS_MPU_CFG, 1104 .channels = 1, 1105 .buswidth = 4, 1106 }; 1107 1108 static struct qcom_icc_node qns_gem_noc_cnoc = { 1109 .name = "qns_gem_noc_cnoc", 1110 .id = SM8350_SLAVE_GEM_NOC_CNOC, 1111 .channels = 1, 1112 .buswidth = 16, 1113 .num_links = 1, 1114 .links = { SM8350_MASTER_GEM_NOC_CNOC }, 1115 }; 1116 1117 static struct qcom_icc_node qns_llcc = { 1118 .name = "qns_llcc", 1119 .id = SM8350_SLAVE_LLCC, 1120 .channels = 4, 1121 .buswidth = 16, 1122 .num_links = 1, 1123 .links = { SM8350_MASTER_LLCC }, 1124 }; 1125 1126 static struct qcom_icc_node qns_pcie = { 1127 .name = "qns_pcie", 1128 .id = SM8350_SLAVE_MEM_NOC_PCIE_SNOC, 1129 .channels = 1, 1130 .buswidth = 8, 1131 }; 1132 1133 static struct qcom_icc_node srvc_even_gemnoc = { 1134 .name = "srvc_even_gemnoc", 1135 .id = SM8350_SLAVE_SERVICE_GEM_NOC_1, 1136 .channels = 1, 1137 .buswidth = 4, 1138 }; 1139 1140 static struct qcom_icc_node srvc_odd_gemnoc = { 1141 .name = "srvc_odd_gemnoc", 1142 .id = SM8350_SLAVE_SERVICE_GEM_NOC_2, 1143 .channels = 1, 1144 .buswidth = 4, 1145 }; 1146 1147 static struct qcom_icc_node srvc_sys_gemnoc = { 1148 .name = "srvc_sys_gemnoc", 1149 .id = SM8350_SLAVE_SERVICE_GEM_NOC, 1150 .channels = 1, 1151 .buswidth = 4, 1152 }; 1153 1154 static struct qcom_icc_node qhs_lpass_core = { 1155 .name = "qhs_lpass_core", 1156 .id = SM8350_SLAVE_LPASS_CORE_CFG, 1157 .channels = 1, 1158 .buswidth = 4, 1159 }; 1160 1161 static struct qcom_icc_node qhs_lpass_lpi = { 1162 .name = "qhs_lpass_lpi", 1163 .id = SM8350_SLAVE_LPASS_LPI_CFG, 1164 .channels = 1, 1165 .buswidth = 4, 1166 }; 1167 1168 static struct qcom_icc_node qhs_lpass_mpu = { 1169 .name = "qhs_lpass_mpu", 1170 .id = SM8350_SLAVE_LPASS_MPU_CFG, 1171 .channels = 1, 1172 .buswidth = 4, 1173 }; 1174 1175 static struct qcom_icc_node qhs_lpass_top = { 1176 .name = "qhs_lpass_top", 1177 .id = SM8350_SLAVE_LPASS_TOP_CFG, 1178 .channels = 1, 1179 .buswidth = 4, 1180 }; 1181 1182 static struct qcom_icc_node srvc_niu_aml_noc = { 1183 .name = "srvc_niu_aml_noc", 1184 .id = SM8350_SLAVE_SERVICES_LPASS_AML_NOC, 1185 .channels = 1, 1186 .buswidth = 4, 1187 }; 1188 1189 static struct qcom_icc_node srvc_niu_lpass_agnoc = { 1190 .name = "srvc_niu_lpass_agnoc", 1191 .id = SM8350_SLAVE_SERVICE_LPASS_AG_NOC, 1192 .channels = 1, 1193 .buswidth = 4, 1194 }; 1195 1196 static struct qcom_icc_node ebi = { 1197 .name = "ebi", 1198 .id = SM8350_SLAVE_EBI1, 1199 .channels = 4, 1200 .buswidth = 4, 1201 }; 1202 1203 static struct qcom_icc_node qns_mem_noc_hf = { 1204 .name = "qns_mem_noc_hf", 1205 .id = SM8350_SLAVE_MNOC_HF_MEM_NOC, 1206 .channels = 2, 1207 .buswidth = 32, 1208 .num_links = 1, 1209 .links = { SM8350_MASTER_MNOC_HF_MEM_NOC }, 1210 }; 1211 1212 static struct qcom_icc_node qns_mem_noc_sf = { 1213 .name = "qns_mem_noc_sf", 1214 .id = SM8350_SLAVE_MNOC_SF_MEM_NOC, 1215 .channels = 2, 1216 .buswidth = 32, 1217 .num_links = 1, 1218 .links = { SM8350_MASTER_MNOC_SF_MEM_NOC }, 1219 }; 1220 1221 static struct qcom_icc_node srvc_mnoc = { 1222 .name = "srvc_mnoc", 1223 .id = SM8350_SLAVE_SERVICE_MNOC, 1224 .channels = 1, 1225 .buswidth = 4, 1226 }; 1227 1228 static struct qcom_icc_node qns_nsp_gemnoc = { 1229 .name = "qns_nsp_gemnoc", 1230 .id = SM8350_SLAVE_CDSP_MEM_NOC, 1231 .channels = 2, 1232 .buswidth = 32, 1233 .num_links = 1, 1234 .links = { SM8350_MASTER_COMPUTE_NOC }, 1235 }; 1236 1237 static struct qcom_icc_node service_nsp_noc = { 1238 .name = "service_nsp_noc", 1239 .id = SM8350_SLAVE_SERVICE_NSP_NOC, 1240 .channels = 1, 1241 .buswidth = 4, 1242 }; 1243 1244 static struct qcom_icc_node qns_gemnoc_gc = { 1245 .name = "qns_gemnoc_gc", 1246 .id = SM8350_SLAVE_SNOC_GEM_NOC_GC, 1247 .channels = 1, 1248 .buswidth = 8, 1249 .num_links = 1, 1250 .links = { SM8350_MASTER_SNOC_GC_MEM_NOC }, 1251 }; 1252 1253 static struct qcom_icc_node qns_gemnoc_sf = { 1254 .name = "qns_gemnoc_sf", 1255 .id = SM8350_SLAVE_SNOC_GEM_NOC_SF, 1256 .channels = 1, 1257 .buswidth = 16, 1258 .num_links = 1, 1259 .links = { SM8350_MASTER_SNOC_SF_MEM_NOC }, 1260 }; 1261 1262 static struct qcom_icc_node srvc_snoc = { 1263 .name = "srvc_snoc", 1264 .id = SM8350_SLAVE_SERVICE_SNOC, 1265 .channels = 1, 1266 .buswidth = 4, 1267 }; 1268 1269 static struct qcom_icc_bcm bcm_acv = { 1270 .name = "ACV", 1271 .enable_mask = BIT(3), 1272 .keepalive = false, 1273 .num_nodes = 1, 1274 .nodes = { &ebi }, 1275 }; 1276 1277 static struct qcom_icc_bcm bcm_ce0 = { 1278 .name = "CE0", 1279 .keepalive = false, 1280 .num_nodes = 1, 1281 .nodes = { &qxm_crypto }, 1282 }; 1283 1284 static struct qcom_icc_bcm bcm_cn0 = { 1285 .name = "CN0", 1286 .keepalive = true, 1287 .num_nodes = 2, 1288 .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie }, 1289 }; 1290 1291 static struct qcom_icc_bcm bcm_cn1 = { 1292 .name = "CN1", 1293 .keepalive = false, 1294 .num_nodes = 47, 1295 .nodes = { &xm_qdss_dap, 1296 &qhs_ahb2phy0, 1297 &qhs_ahb2phy1, 1298 &qhs_aoss, 1299 &qhs_apss, 1300 &qhs_camera_cfg, 1301 &qhs_clk_ctl, 1302 &qhs_compute_cfg, 1303 &qhs_cpr_cx, 1304 &qhs_cpr_mmcx, 1305 &qhs_cpr_mx, 1306 &qhs_crypto0_cfg, 1307 &qhs_cx_rdpm, 1308 &qhs_dcc_cfg, 1309 &qhs_display_cfg, 1310 &qhs_gpuss_cfg, 1311 &qhs_hwkm, 1312 &qhs_imem_cfg, 1313 &qhs_ipa, 1314 &qhs_ipc_router, 1315 &qhs_mss_cfg, 1316 &qhs_mx_rdpm, 1317 &qhs_pcie0_cfg, 1318 &qhs_pcie1_cfg, 1319 &qhs_pimem_cfg, 1320 &qhs_pka_wrapper_cfg, 1321 &qhs_pmu_wrapper_cfg, 1322 &qhs_qdss_cfg, 1323 &qhs_qup0, 1324 &qhs_qup1, 1325 &qhs_qup2, 1326 &qhs_security, 1327 &qhs_spss_cfg, 1328 &qhs_tcsr, 1329 &qhs_tlmm, 1330 &qhs_ufs_card_cfg, 1331 &qhs_ufs_mem_cfg, 1332 &qhs_usb3_0, 1333 &qhs_usb3_1, 1334 &qhs_venus_cfg, 1335 &qhs_vsense_ctrl_cfg, 1336 &qns_a1_noc_cfg, 1337 &qns_a2_noc_cfg, 1338 &qns_ddrss_cfg, 1339 &qns_mnoc_cfg, 1340 &qns_snoc_cfg, 1341 &srvc_cnoc 1342 }, 1343 }; 1344 1345 static struct qcom_icc_bcm bcm_cn2 = { 1346 .name = "CN2", 1347 .keepalive = false, 1348 .num_nodes = 5, 1349 .nodes = { &qhs_lpass_cfg, &qhs_pdm, &qhs_qspi, &qhs_sdc2, &qhs_sdc4 }, 1350 }; 1351 1352 static struct qcom_icc_bcm bcm_co0 = { 1353 .name = "CO0", 1354 .keepalive = false, 1355 .num_nodes = 1, 1356 .nodes = { &qns_nsp_gemnoc }, 1357 }; 1358 1359 static struct qcom_icc_bcm bcm_co3 = { 1360 .name = "CO3", 1361 .keepalive = false, 1362 .num_nodes = 1, 1363 .nodes = { &qxm_nsp }, 1364 }; 1365 1366 static struct qcom_icc_bcm bcm_mc0 = { 1367 .name = "MC0", 1368 .keepalive = true, 1369 .num_nodes = 1, 1370 .nodes = { &ebi }, 1371 }; 1372 1373 static struct qcom_icc_bcm bcm_mm0 = { 1374 .name = "MM0", 1375 .keepalive = true, 1376 .num_nodes = 1, 1377 .nodes = { &qns_mem_noc_hf }, 1378 }; 1379 1380 static struct qcom_icc_bcm bcm_mm1 = { 1381 .name = "MM1", 1382 .keepalive = false, 1383 .num_nodes = 3, 1384 .nodes = { &qnm_camnoc_hf, &qxm_mdp0, &qxm_mdp1 }, 1385 }; 1386 1387 static struct qcom_icc_bcm bcm_mm4 = { 1388 .name = "MM4", 1389 .keepalive = false, 1390 .num_nodes = 1, 1391 .nodes = { &qns_mem_noc_sf }, 1392 }; 1393 1394 static struct qcom_icc_bcm bcm_mm5 = { 1395 .name = "MM5", 1396 .keepalive = false, 1397 .num_nodes = 6, 1398 .nodes = { &qnm_camnoc_icp, 1399 &qnm_camnoc_sf, 1400 &qnm_video0, 1401 &qnm_video1, 1402 &qnm_video_cvp, 1403 &qxm_rot 1404 }, 1405 }; 1406 1407 static struct qcom_icc_bcm bcm_sh0 = { 1408 .name = "SH0", 1409 .keepalive = true, 1410 .num_nodes = 1, 1411 .nodes = { &qns_llcc }, 1412 }; 1413 1414 static struct qcom_icc_bcm bcm_sh2 = { 1415 .name = "SH2", 1416 .keepalive = false, 1417 .num_nodes = 2, 1418 .nodes = { &alm_gpu_tcu, &alm_sys_tcu }, 1419 }; 1420 1421 static struct qcom_icc_bcm bcm_sh3 = { 1422 .name = "SH3", 1423 .keepalive = false, 1424 .num_nodes = 1, 1425 .nodes = { &qnm_cmpnoc }, 1426 }; 1427 1428 static struct qcom_icc_bcm bcm_sh4 = { 1429 .name = "SH4", 1430 .keepalive = false, 1431 .num_nodes = 1, 1432 .nodes = { &chm_apps }, 1433 }; 1434 1435 static struct qcom_icc_bcm bcm_sn0 = { 1436 .name = "SN0", 1437 .keepalive = true, 1438 .num_nodes = 1, 1439 .nodes = { &qns_gemnoc_sf }, 1440 }; 1441 1442 static struct qcom_icc_bcm bcm_sn2 = { 1443 .name = "SN2", 1444 .keepalive = false, 1445 .num_nodes = 1, 1446 .nodes = { &qns_gemnoc_gc }, 1447 }; 1448 1449 static struct qcom_icc_bcm bcm_sn3 = { 1450 .name = "SN3", 1451 .keepalive = false, 1452 .num_nodes = 1, 1453 .nodes = { &qxs_pimem }, 1454 }; 1455 1456 static struct qcom_icc_bcm bcm_sn4 = { 1457 .name = "SN4", 1458 .keepalive = false, 1459 .num_nodes = 1, 1460 .nodes = { &xs_qdss_stm }, 1461 }; 1462 1463 static struct qcom_icc_bcm bcm_sn5 = { 1464 .name = "SN5", 1465 .keepalive = false, 1466 .num_nodes = 1, 1467 .nodes = { &xm_pcie3_0 }, 1468 }; 1469 1470 static struct qcom_icc_bcm bcm_sn6 = { 1471 .name = "SN6", 1472 .keepalive = false, 1473 .num_nodes = 1, 1474 .nodes = { &xm_pcie3_1 }, 1475 }; 1476 1477 static struct qcom_icc_bcm bcm_sn7 = { 1478 .name = "SN7", 1479 .keepalive = false, 1480 .num_nodes = 1, 1481 .nodes = { &qnm_aggre1_noc }, 1482 }; 1483 1484 static struct qcom_icc_bcm bcm_sn8 = { 1485 .name = "SN8", 1486 .keepalive = false, 1487 .num_nodes = 1, 1488 .nodes = { &qnm_aggre2_noc }, 1489 }; 1490 1491 static struct qcom_icc_bcm bcm_sn14 = { 1492 .name = "SN14", 1493 .keepalive = false, 1494 .num_nodes = 1, 1495 .nodes = { &qns_pcie_mem_noc }, 1496 }; 1497 1498 static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 1499 }; 1500 1501 static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1502 [MASTER_QSPI_0] = &qhm_qspi, 1503 [MASTER_QUP_1] = &qhm_qup1, 1504 [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg, 1505 [MASTER_SDCC_4] = &xm_sdc4, 1506 [MASTER_UFS_MEM] = &xm_ufs_mem, 1507 [MASTER_USB3_0] = &xm_usb3_0, 1508 [MASTER_USB3_1] = &xm_usb3_1, 1509 [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 1510 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 1511 }; 1512 1513 static const struct qcom_icc_desc sm8350_aggre1_noc = { 1514 .nodes = aggre1_noc_nodes, 1515 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1516 .bcms = aggre1_noc_bcms, 1517 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1518 }; 1519 1520 static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 1521 &bcm_ce0, 1522 &bcm_sn5, 1523 &bcm_sn6, 1524 &bcm_sn14, 1525 }; 1526 1527 static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1528 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 1529 [MASTER_QUP_0] = &qhm_qup0, 1530 [MASTER_QUP_2] = &qhm_qup2, 1531 [MASTER_A2NOC_CFG] = &qnm_a2noc_cfg, 1532 [MASTER_CRYPTO] = &qxm_crypto, 1533 [MASTER_IPA] = &qxm_ipa, 1534 [MASTER_PCIE_0] = &xm_pcie3_0, 1535 [MASTER_PCIE_1] = &xm_pcie3_1, 1536 [MASTER_QDSS_ETR] = &xm_qdss_etr, 1537 [MASTER_SDCC_2] = &xm_sdc2, 1538 [MASTER_UFS_CARD] = &xm_ufs_card, 1539 [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc, 1540 [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc, 1541 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 1542 }; 1543 1544 static const struct qcom_icc_desc sm8350_aggre2_noc = { 1545 .nodes = aggre2_noc_nodes, 1546 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1547 .bcms = aggre2_noc_bcms, 1548 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1549 }; 1550 1551 static struct qcom_icc_bcm * const config_noc_bcms[] = { 1552 &bcm_cn0, 1553 &bcm_cn1, 1554 &bcm_cn2, 1555 &bcm_sn3, 1556 &bcm_sn4, 1557 }; 1558 1559 static struct qcom_icc_node * const config_noc_nodes[] = { 1560 [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1561 [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 1562 [MASTER_QDSS_DAP] = &xm_qdss_dap, 1563 [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, 1564 [SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1, 1565 [SLAVE_AOSS] = &qhs_aoss, 1566 [SLAVE_APPSS] = &qhs_apss, 1567 [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 1568 [SLAVE_CLK_CTL] = &qhs_clk_ctl, 1569 [SLAVE_CDSP_CFG] = &qhs_compute_cfg, 1570 [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx, 1571 [SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx, 1572 [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx, 1573 [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 1574 [SLAVE_CX_RDPM] = &qhs_cx_rdpm, 1575 [SLAVE_DCC_CFG] = &qhs_dcc_cfg, 1576 [SLAVE_DISPLAY_CFG] = &qhs_display_cfg, 1577 [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg, 1578 [SLAVE_HWKM] = &qhs_hwkm, 1579 [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 1580 [SLAVE_IPA_CFG] = &qhs_ipa, 1581 [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router, 1582 [SLAVE_LPASS] = &qhs_lpass_cfg, 1583 [SLAVE_CNOC_MSS] = &qhs_mss_cfg, 1584 [SLAVE_MX_RDPM] = &qhs_mx_rdpm, 1585 [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg, 1586 [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg, 1587 [SLAVE_PDM] = &qhs_pdm, 1588 [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg, 1589 [SLAVE_PKA_WRAPPER_CFG] = &qhs_pka_wrapper_cfg, 1590 [SLAVE_PMU_WRAPPER_CFG] = &qhs_pmu_wrapper_cfg, 1591 [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 1592 [SLAVE_QSPI_0] = &qhs_qspi, 1593 [SLAVE_QUP_0] = &qhs_qup0, 1594 [SLAVE_QUP_1] = &qhs_qup1, 1595 [SLAVE_QUP_2] = &qhs_qup2, 1596 [SLAVE_SDCC_2] = &qhs_sdc2, 1597 [SLAVE_SDCC_4] = &qhs_sdc4, 1598 [SLAVE_SECURITY] = &qhs_security, 1599 [SLAVE_SPSS_CFG] = &qhs_spss_cfg, 1600 [SLAVE_TCSR] = &qhs_tcsr, 1601 [SLAVE_TLMM] = &qhs_tlmm, 1602 [SLAVE_UFS_CARD_CFG] = &qhs_ufs_card_cfg, 1603 [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 1604 [SLAVE_USB3_0] = &qhs_usb3_0, 1605 [SLAVE_USB3_1] = &qhs_usb3_1, 1606 [SLAVE_VENUS_CFG] = &qhs_venus_cfg, 1607 [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg, 1608 [SLAVE_A1NOC_CFG] = &qns_a1_noc_cfg, 1609 [SLAVE_A2NOC_CFG] = &qns_a2_noc_cfg, 1610 [SLAVE_DDRSS_CFG] = &qns_ddrss_cfg, 1611 [SLAVE_CNOC_MNOC_CFG] = &qns_mnoc_cfg, 1612 [SLAVE_SNOC_CFG] = &qns_snoc_cfg, 1613 [SLAVE_BOOT_IMEM] = &qxs_boot_imem, 1614 [SLAVE_IMEM] = &qxs_imem, 1615 [SLAVE_PIMEM] = &qxs_pimem, 1616 [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 1617 [SLAVE_PCIE_0] = &xs_pcie_0, 1618 [SLAVE_PCIE_1] = &xs_pcie_1, 1619 [SLAVE_QDSS_STM] = &xs_qdss_stm, 1620 [SLAVE_TCU] = &xs_sys_tcu_cfg, 1621 }; 1622 1623 static const struct qcom_icc_desc sm8350_config_noc = { 1624 .nodes = config_noc_nodes, 1625 .num_nodes = ARRAY_SIZE(config_noc_nodes), 1626 .bcms = config_noc_bcms, 1627 .num_bcms = ARRAY_SIZE(config_noc_bcms), 1628 }; 1629 1630 static struct qcom_icc_bcm * const dc_noc_bcms[] = { 1631 }; 1632 1633 static struct qcom_icc_node * const dc_noc_nodes[] = { 1634 [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc, 1635 [SLAVE_LLCC_CFG] = &qhs_llcc, 1636 [SLAVE_GEM_NOC_CFG] = &qns_gemnoc, 1637 }; 1638 1639 static const struct qcom_icc_desc sm8350_dc_noc = { 1640 .nodes = dc_noc_nodes, 1641 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 1642 .bcms = dc_noc_bcms, 1643 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 1644 }; 1645 1646 static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1647 &bcm_sh0, 1648 &bcm_sh2, 1649 &bcm_sh3, 1650 &bcm_sh4, 1651 }; 1652 1653 static struct qcom_icc_node * const gem_noc_nodes[] = { 1654 [MASTER_GPU_TCU] = &alm_gpu_tcu, 1655 [MASTER_SYS_TCU] = &alm_sys_tcu, 1656 [MASTER_APPSS_PROC] = &chm_apps, 1657 [MASTER_COMPUTE_NOC] = &qnm_cmpnoc, 1658 [MASTER_GEM_NOC_CFG] = &qnm_gemnoc_cfg, 1659 [MASTER_GFX3D] = &qnm_gpu, 1660 [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 1661 [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 1662 [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie, 1663 [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 1664 [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 1665 [SLAVE_MSS_PROC_MS_MPU_CFG] = &qhs_mdsp_ms_mpu_cfg, 1666 [SLAVE_MCDMA_MS_MPU_CFG] = &qhs_modem_ms_mpu_cfg, 1667 [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc, 1668 [SLAVE_LLCC] = &qns_llcc, 1669 [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie, 1670 [SLAVE_SERVICE_GEM_NOC_1] = &srvc_even_gemnoc, 1671 [SLAVE_SERVICE_GEM_NOC_2] = &srvc_odd_gemnoc, 1672 [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc, 1673 }; 1674 1675 static const struct qcom_icc_desc sm8350_gem_noc = { 1676 .nodes = gem_noc_nodes, 1677 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1678 .bcms = gem_noc_bcms, 1679 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1680 }; 1681 1682 static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = { 1683 }; 1684 1685 static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 1686 [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 1687 [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, 1688 [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi, 1689 [SLAVE_LPASS_MPU_CFG] = &qhs_lpass_mpu, 1690 [SLAVE_LPASS_TOP_CFG] = &qhs_lpass_top, 1691 [SLAVE_SERVICES_LPASS_AML_NOC] = &srvc_niu_aml_noc, 1692 [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 1693 }; 1694 1695 static const struct qcom_icc_desc sm8350_lpass_ag_noc = { 1696 .nodes = lpass_ag_noc_nodes, 1697 .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 1698 .bcms = lpass_ag_noc_bcms, 1699 .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 1700 }; 1701 1702 static struct qcom_icc_bcm * const mc_virt_bcms[] = { 1703 &bcm_acv, 1704 &bcm_mc0, 1705 }; 1706 1707 static struct qcom_icc_node * const mc_virt_nodes[] = { 1708 [MASTER_LLCC] = &llcc_mc, 1709 [SLAVE_EBI1] = &ebi, 1710 }; 1711 1712 static const struct qcom_icc_desc sm8350_mc_virt = { 1713 .nodes = mc_virt_nodes, 1714 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1715 .bcms = mc_virt_bcms, 1716 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1717 }; 1718 1719 static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 1720 &bcm_mm0, 1721 &bcm_mm1, 1722 &bcm_mm4, 1723 &bcm_mm5, 1724 }; 1725 1726 static struct qcom_icc_node * const mmss_noc_nodes[] = { 1727 [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 1728 [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp, 1729 [MASTER_CAMNOC_SF] = &qnm_camnoc_sf, 1730 [MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg, 1731 [MASTER_VIDEO_P0] = &qnm_video0, 1732 [MASTER_VIDEO_P1] = &qnm_video1, 1733 [MASTER_VIDEO_PROC] = &qnm_video_cvp, 1734 [MASTER_MDP0] = &qxm_mdp0, 1735 [MASTER_MDP1] = &qxm_mdp1, 1736 [MASTER_ROTATOR] = &qxm_rot, 1737 [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 1738 [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf, 1739 [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 1740 }; 1741 1742 static const struct qcom_icc_desc sm8350_mmss_noc = { 1743 .nodes = mmss_noc_nodes, 1744 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1745 .bcms = mmss_noc_bcms, 1746 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1747 }; 1748 1749 static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 1750 &bcm_co0, 1751 &bcm_co3, 1752 }; 1753 1754 static struct qcom_icc_node * const nsp_noc_nodes[] = { 1755 [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 1756 [MASTER_CDSP_PROC] = &qxm_nsp, 1757 [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 1758 [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 1759 }; 1760 1761 static const struct qcom_icc_desc sm8350_compute_noc = { 1762 .nodes = nsp_noc_nodes, 1763 .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 1764 .bcms = nsp_noc_bcms, 1765 .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 1766 }; 1767 1768 static struct qcom_icc_bcm * const system_noc_bcms[] = { 1769 &bcm_sn0, 1770 &bcm_sn2, 1771 &bcm_sn7, 1772 &bcm_sn8, 1773 }; 1774 1775 static struct qcom_icc_node * const system_noc_nodes[] = { 1776 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 1777 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 1778 [MASTER_SNOC_CFG] = &qnm_snoc_cfg, 1779 [MASTER_PIMEM] = &qxm_pimem, 1780 [MASTER_GIC] = &xm_gic, 1781 [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc, 1782 [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf, 1783 [SLAVE_SERVICE_SNOC] = &srvc_snoc, 1784 }; 1785 1786 static const struct qcom_icc_desc sm8350_system_noc = { 1787 .nodes = system_noc_nodes, 1788 .num_nodes = ARRAY_SIZE(system_noc_nodes), 1789 .bcms = system_noc_bcms, 1790 .num_bcms = ARRAY_SIZE(system_noc_bcms), 1791 }; 1792 1793 static const struct of_device_id qnoc_of_match[] = { 1794 { .compatible = "qcom,sm8350-aggre1-noc", .data = &sm8350_aggre1_noc}, 1795 { .compatible = "qcom,sm8350-aggre2-noc", .data = &sm8350_aggre2_noc}, 1796 { .compatible = "qcom,sm8350-config-noc", .data = &sm8350_config_noc}, 1797 { .compatible = "qcom,sm8350-dc-noc", .data = &sm8350_dc_noc}, 1798 { .compatible = "qcom,sm8350-gem-noc", .data = &sm8350_gem_noc}, 1799 { .compatible = "qcom,sm8350-lpass-ag-noc", .data = &sm8350_lpass_ag_noc}, 1800 { .compatible = "qcom,sm8350-mc-virt", .data = &sm8350_mc_virt}, 1801 { .compatible = "qcom,sm8350-mmss-noc", .data = &sm8350_mmss_noc}, 1802 { .compatible = "qcom,sm8350-compute-noc", .data = &sm8350_compute_noc}, 1803 { .compatible = "qcom,sm8350-system-noc", .data = &sm8350_system_noc}, 1804 { } 1805 }; 1806 MODULE_DEVICE_TABLE(of, qnoc_of_match); 1807 1808 static struct platform_driver qnoc_driver = { 1809 .probe = qcom_icc_rpmh_probe, 1810 .remove = qcom_icc_rpmh_remove, 1811 .driver = { 1812 .name = "qnoc-sm8350", 1813 .of_match_table = qnoc_of_match, 1814 .sync_state = icc_sync_state, 1815 }, 1816 }; 1817 module_platform_driver(qnoc_driver); 1818 1819 MODULE_DESCRIPTION("SM8350 NoC driver"); 1820 MODULE_LICENSE("GPL v2"); 1821