Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.19 1908 lines 46 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 4 * Copyright (c) 2021, Linaro Ltd. 5 */ 6 7#include <linux/device.h> 8#include <linux/interconnect-provider.h> 9#include <linux/module.h> 10#include <linux/mod_devicetable.h> 11#include <linux/platform_device.h> 12 13#include <dt-bindings/interconnect/qcom,sc8180x.h> 14 15#include "bcm-voter.h" 16#include "icc-rpmh.h" 17 18static struct qcom_icc_node mas_qhm_a1noc_cfg; 19static struct qcom_icc_node mas_xm_ufs_card; 20static struct qcom_icc_node mas_xm_ufs_g4; 21static struct qcom_icc_node mas_xm_ufs_mem; 22static struct qcom_icc_node mas_xm_usb3_0; 23static struct qcom_icc_node mas_xm_usb3_1; 24static struct qcom_icc_node mas_xm_usb3_2; 25static struct qcom_icc_node mas_qhm_a2noc_cfg; 26static struct qcom_icc_node mas_qhm_qdss_bam; 27static struct qcom_icc_node mas_qhm_qspi; 28static struct qcom_icc_node mas_qhm_qspi1; 29static struct qcom_icc_node mas_qhm_qup0; 30static struct qcom_icc_node mas_qhm_qup1; 31static struct qcom_icc_node mas_qhm_qup2; 32static struct qcom_icc_node mas_qhm_sensorss_ahb; 33static struct qcom_icc_node mas_qxm_crypto; 34static struct qcom_icc_node mas_qxm_ipa; 35static struct qcom_icc_node mas_xm_emac; 36static struct qcom_icc_node mas_xm_pcie3_0; 37static struct qcom_icc_node mas_xm_pcie3_1; 38static struct qcom_icc_node mas_xm_pcie3_2; 39static struct qcom_icc_node mas_xm_pcie3_3; 40static struct qcom_icc_node mas_xm_qdss_etr; 41static struct qcom_icc_node mas_xm_sdc2; 42static struct qcom_icc_node mas_xm_sdc4; 43static struct qcom_icc_node mas_qxm_camnoc_hf0_uncomp; 44static struct qcom_icc_node mas_qxm_camnoc_hf1_uncomp; 45static struct qcom_icc_node mas_qxm_camnoc_sf_uncomp; 46static struct qcom_icc_node mas_qnm_npu; 47static struct qcom_icc_node mas_qnm_snoc; 48static struct qcom_icc_node mas_qhm_cnoc_dc_noc; 49static struct qcom_icc_node mas_acm_apps; 50static struct qcom_icc_node mas_acm_gpu_tcu; 51static struct qcom_icc_node mas_acm_sys_tcu; 52static struct qcom_icc_node mas_qhm_gemnoc_cfg; 53static struct qcom_icc_node mas_qnm_cmpnoc; 54static struct qcom_icc_node mas_qnm_gpu; 55static struct qcom_icc_node mas_qnm_mnoc_hf; 56static struct qcom_icc_node mas_qnm_mnoc_sf; 57static struct qcom_icc_node mas_qnm_pcie; 58static struct qcom_icc_node mas_qnm_snoc_gc; 59static struct qcom_icc_node mas_qnm_snoc_sf; 60static struct qcom_icc_node mas_qxm_ecc; 61static struct qcom_icc_node mas_llcc_mc; 62static struct qcom_icc_node mas_qhm_mnoc_cfg; 63static struct qcom_icc_node mas_qxm_camnoc_hf0; 64static struct qcom_icc_node mas_qxm_camnoc_hf1; 65static struct qcom_icc_node mas_qxm_camnoc_sf; 66static struct qcom_icc_node mas_qxm_mdp0; 67static struct qcom_icc_node mas_qxm_mdp1; 68static struct qcom_icc_node mas_qxm_rot; 69static struct qcom_icc_node mas_qxm_venus0; 70static struct qcom_icc_node mas_qxm_venus1; 71static struct qcom_icc_node mas_qxm_venus_arm9; 72static struct qcom_icc_node mas_qhm_snoc_cfg; 73static struct qcom_icc_node mas_qnm_aggre1_noc; 74static struct qcom_icc_node mas_qnm_aggre2_noc; 75static struct qcom_icc_node mas_qnm_gemnoc; 76static struct qcom_icc_node mas_qxm_pimem; 77static struct qcom_icc_node mas_xm_gic; 78static struct qcom_icc_node mas_qup_core_0; 79static struct qcom_icc_node mas_qup_core_1; 80static struct qcom_icc_node mas_qup_core_2; 81static struct qcom_icc_node slv_qns_a1noc_snoc; 82static struct qcom_icc_node slv_srvc_aggre1_noc; 83static struct qcom_icc_node slv_qns_a2noc_snoc; 84static struct qcom_icc_node slv_qns_pcie_mem_noc; 85static struct qcom_icc_node slv_srvc_aggre2_noc; 86static struct qcom_icc_node slv_qns_camnoc_uncomp; 87static struct qcom_icc_node slv_qns_cdsp_mem_noc; 88static struct qcom_icc_node slv_qhs_a1_noc_cfg; 89static struct qcom_icc_node slv_qhs_a2_noc_cfg; 90static struct qcom_icc_node slv_qhs_ahb2phy_refgen_center; 91static struct qcom_icc_node slv_qhs_ahb2phy_refgen_east; 92static struct qcom_icc_node slv_qhs_ahb2phy_refgen_west; 93static struct qcom_icc_node slv_qhs_ahb2phy_south; 94static struct qcom_icc_node slv_qhs_aop; 95static struct qcom_icc_node slv_qhs_aoss; 96static struct qcom_icc_node slv_qhs_camera_cfg; 97static struct qcom_icc_node slv_qhs_clk_ctl; 98static struct qcom_icc_node slv_qhs_compute_dsp; 99static struct qcom_icc_node slv_qhs_cpr_cx; 100static struct qcom_icc_node slv_qhs_cpr_mmcx; 101static struct qcom_icc_node slv_qhs_cpr_mx; 102static struct qcom_icc_node slv_qhs_crypto0_cfg; 103static struct qcom_icc_node slv_qhs_ddrss_cfg; 104static struct qcom_icc_node slv_qhs_display_cfg; 105static struct qcom_icc_node slv_qhs_emac_cfg; 106static struct qcom_icc_node slv_qhs_glm; 107static struct qcom_icc_node slv_qhs_gpuss_cfg; 108static struct qcom_icc_node slv_qhs_imem_cfg; 109static struct qcom_icc_node slv_qhs_ipa; 110static struct qcom_icc_node slv_qhs_mnoc_cfg; 111static struct qcom_icc_node slv_qhs_npu_cfg; 112static struct qcom_icc_node slv_qhs_pcie0_cfg; 113static struct qcom_icc_node slv_qhs_pcie1_cfg; 114static struct qcom_icc_node slv_qhs_pcie2_cfg; 115static struct qcom_icc_node slv_qhs_pcie3_cfg; 116static struct qcom_icc_node slv_qhs_pdm; 117static struct qcom_icc_node slv_qhs_pimem_cfg; 118static struct qcom_icc_node slv_qhs_prng; 119static struct qcom_icc_node slv_qhs_qdss_cfg; 120static struct qcom_icc_node slv_qhs_qspi_0; 121static struct qcom_icc_node slv_qhs_qspi_1; 122static struct qcom_icc_node slv_qhs_qupv3_east0; 123static struct qcom_icc_node slv_qhs_qupv3_east1; 124static struct qcom_icc_node slv_qhs_qupv3_west; 125static struct qcom_icc_node slv_qhs_sdc2; 126static struct qcom_icc_node slv_qhs_sdc4; 127static struct qcom_icc_node slv_qhs_security; 128static struct qcom_icc_node slv_qhs_snoc_cfg; 129static struct qcom_icc_node slv_qhs_spss_cfg; 130static struct qcom_icc_node slv_qhs_tcsr; 131static struct qcom_icc_node slv_qhs_tlmm_east; 132static struct qcom_icc_node slv_qhs_tlmm_south; 133static struct qcom_icc_node slv_qhs_tlmm_west; 134static struct qcom_icc_node slv_qhs_tsif; 135static struct qcom_icc_node slv_qhs_ufs_card_cfg; 136static struct qcom_icc_node slv_qhs_ufs_mem0_cfg; 137static struct qcom_icc_node slv_qhs_ufs_mem1_cfg; 138static struct qcom_icc_node slv_qhs_usb3_0; 139static struct qcom_icc_node slv_qhs_usb3_1; 140static struct qcom_icc_node slv_qhs_usb3_2; 141static struct qcom_icc_node slv_qhs_venus_cfg; 142static struct qcom_icc_node slv_qhs_vsense_ctrl_cfg; 143static struct qcom_icc_node slv_srvc_cnoc; 144static struct qcom_icc_node slv_qhs_gemnoc; 145static struct qcom_icc_node slv_qhs_llcc; 146static struct qcom_icc_node slv_qhs_mdsp_ms_mpu_cfg; 147static struct qcom_icc_node slv_qns_ecc; 148static struct qcom_icc_node slv_qns_gem_noc_snoc; 149static struct qcom_icc_node slv_qns_llcc; 150static struct qcom_icc_node slv_srvc_gemnoc; 151static struct qcom_icc_node slv_srvc_gemnoc1; 152static struct qcom_icc_node slv_ebi; 153static struct qcom_icc_node slv_qns2_mem_noc; 154static struct qcom_icc_node slv_qns_mem_noc_hf; 155static struct qcom_icc_node slv_srvc_mnoc; 156static struct qcom_icc_node slv_qhs_apss; 157static struct qcom_icc_node slv_qns_cnoc; 158static struct qcom_icc_node slv_qns_gemnoc_gc; 159static struct qcom_icc_node slv_qns_gemnoc_sf; 160static struct qcom_icc_node slv_qxs_imem; 161static struct qcom_icc_node slv_qxs_pimem; 162static struct qcom_icc_node slv_srvc_snoc; 163static struct qcom_icc_node slv_xs_pcie_0; 164static struct qcom_icc_node slv_xs_pcie_1; 165static struct qcom_icc_node slv_xs_pcie_2; 166static struct qcom_icc_node slv_xs_pcie_3; 167static struct qcom_icc_node slv_xs_qdss_stm; 168static struct qcom_icc_node slv_xs_sys_tcu_cfg; 169static struct qcom_icc_node slv_qup_core_0; 170static struct qcom_icc_node slv_qup_core_1; 171static struct qcom_icc_node slv_qup_core_2; 172 173static struct qcom_icc_node mas_qhm_a1noc_cfg = { 174 .name = "mas_qhm_a1noc_cfg", 175 .channels = 1, 176 .buswidth = 4, 177 .num_links = 1, 178 .link_nodes = { &slv_srvc_aggre1_noc }, 179}; 180 181static struct qcom_icc_node mas_xm_ufs_card = { 182 .name = "mas_xm_ufs_card", 183 .channels = 1, 184 .buswidth = 8, 185 .num_links = 1, 186 .link_nodes = { &slv_qns_a1noc_snoc }, 187}; 188 189static struct qcom_icc_node mas_xm_ufs_g4 = { 190 .name = "mas_xm_ufs_g4", 191 .channels = 1, 192 .buswidth = 8, 193 .num_links = 1, 194 .link_nodes = { &slv_qns_a1noc_snoc }, 195}; 196 197static struct qcom_icc_node mas_xm_ufs_mem = { 198 .name = "mas_xm_ufs_mem", 199 .channels = 1, 200 .buswidth = 8, 201 .num_links = 1, 202 .link_nodes = { &slv_qns_a1noc_snoc }, 203}; 204 205static struct qcom_icc_node mas_xm_usb3_0 = { 206 .name = "mas_xm_usb3_0", 207 .channels = 1, 208 .buswidth = 8, 209 .num_links = 1, 210 .link_nodes = { &slv_qns_a1noc_snoc }, 211}; 212 213static struct qcom_icc_node mas_xm_usb3_1 = { 214 .name = "mas_xm_usb3_1", 215 .channels = 1, 216 .buswidth = 8, 217 .num_links = 1, 218 .link_nodes = { &slv_qns_a1noc_snoc }, 219}; 220 221static struct qcom_icc_node mas_xm_usb3_2 = { 222 .name = "mas_xm_usb3_2", 223 .channels = 1, 224 .buswidth = 16, 225 .num_links = 1, 226 .link_nodes = { &slv_qns_a1noc_snoc }, 227}; 228 229static struct qcom_icc_node mas_qhm_a2noc_cfg = { 230 .name = "mas_qhm_a2noc_cfg", 231 .channels = 1, 232 .buswidth = 4, 233 .num_links = 1, 234 .link_nodes = { &slv_srvc_aggre2_noc }, 235}; 236 237static struct qcom_icc_node mas_qhm_qdss_bam = { 238 .name = "mas_qhm_qdss_bam", 239 .channels = 1, 240 .buswidth = 4, 241 .num_links = 1, 242 .link_nodes = { &slv_qns_a2noc_snoc }, 243}; 244 245static struct qcom_icc_node mas_qhm_qspi = { 246 .name = "mas_qhm_qspi", 247 .channels = 1, 248 .buswidth = 4, 249 .num_links = 1, 250 .link_nodes = { &slv_qns_a2noc_snoc }, 251}; 252 253static struct qcom_icc_node mas_qhm_qspi1 = { 254 .name = "mas_qhm_qspi1", 255 .channels = 1, 256 .buswidth = 4, 257 .num_links = 1, 258 .link_nodes = { &slv_qns_a2noc_snoc }, 259}; 260 261static struct qcom_icc_node mas_qhm_qup0 = { 262 .name = "mas_qhm_qup0", 263 .channels = 1, 264 .buswidth = 4, 265 .num_links = 1, 266 .link_nodes = { &slv_qns_a2noc_snoc }, 267}; 268 269static struct qcom_icc_node mas_qhm_qup1 = { 270 .name = "mas_qhm_qup1", 271 .channels = 1, 272 .buswidth = 4, 273 .num_links = 1, 274 .link_nodes = { &slv_qns_a2noc_snoc }, 275}; 276 277static struct qcom_icc_node mas_qhm_qup2 = { 278 .name = "mas_qhm_qup2", 279 .channels = 1, 280 .buswidth = 4, 281 .num_links = 1, 282 .link_nodes = { &slv_qns_a2noc_snoc }, 283}; 284 285static struct qcom_icc_node mas_qhm_sensorss_ahb = { 286 .name = "mas_qhm_sensorss_ahb", 287 .channels = 1, 288 .buswidth = 4, 289 .num_links = 1, 290 .link_nodes = { &slv_qns_a2noc_snoc }, 291}; 292 293static struct qcom_icc_node mas_qxm_crypto = { 294 .name = "mas_qxm_crypto", 295 .channels = 1, 296 .buswidth = 8, 297 .num_links = 1, 298 .link_nodes = { &slv_qns_a2noc_snoc }, 299}; 300 301static struct qcom_icc_node mas_qxm_ipa = { 302 .name = "mas_qxm_ipa", 303 .channels = 1, 304 .buswidth = 8, 305 .num_links = 1, 306 .link_nodes = { &slv_qns_a2noc_snoc }, 307}; 308 309static struct qcom_icc_node mas_xm_emac = { 310 .name = "mas_xm_emac", 311 .channels = 1, 312 .buswidth = 8, 313 .num_links = 1, 314 .link_nodes = { &slv_qns_a2noc_snoc }, 315}; 316 317static struct qcom_icc_node mas_xm_pcie3_0 = { 318 .name = "mas_xm_pcie3_0", 319 .channels = 1, 320 .buswidth = 8, 321 .num_links = 1, 322 .link_nodes = { &slv_qns_pcie_mem_noc }, 323}; 324 325static struct qcom_icc_node mas_xm_pcie3_1 = { 326 .name = "mas_xm_pcie3_1", 327 .channels = 1, 328 .buswidth = 16, 329 .num_links = 1, 330 .link_nodes = { &slv_qns_pcie_mem_noc }, 331}; 332 333static struct qcom_icc_node mas_xm_pcie3_2 = { 334 .name = "mas_xm_pcie3_2", 335 .channels = 1, 336 .buswidth = 8, 337 .num_links = 1, 338 .link_nodes = { &slv_qns_pcie_mem_noc }, 339}; 340 341static struct qcom_icc_node mas_xm_pcie3_3 = { 342 .name = "mas_xm_pcie3_3", 343 .channels = 1, 344 .buswidth = 16, 345 .num_links = 1, 346 .link_nodes = { &slv_qns_pcie_mem_noc }, 347}; 348 349static struct qcom_icc_node mas_xm_qdss_etr = { 350 .name = "mas_xm_qdss_etr", 351 .channels = 1, 352 .buswidth = 8, 353 .num_links = 1, 354 .link_nodes = { &slv_qns_a2noc_snoc }, 355}; 356 357static struct qcom_icc_node mas_xm_sdc2 = { 358 .name = "mas_xm_sdc2", 359 .channels = 1, 360 .buswidth = 8, 361 .num_links = 1, 362 .link_nodes = { &slv_qns_a2noc_snoc }, 363}; 364 365static struct qcom_icc_node mas_xm_sdc4 = { 366 .name = "mas_xm_sdc4", 367 .channels = 1, 368 .buswidth = 8, 369 .num_links = 1, 370 .link_nodes = { &slv_qns_a2noc_snoc }, 371}; 372 373static struct qcom_icc_node mas_qxm_camnoc_hf0_uncomp = { 374 .name = "mas_qxm_camnoc_hf0_uncomp", 375 .channels = 1, 376 .buswidth = 32, 377 .num_links = 1, 378 .link_nodes = { &slv_qns_camnoc_uncomp }, 379}; 380 381static struct qcom_icc_node mas_qxm_camnoc_hf1_uncomp = { 382 .name = "mas_qxm_camnoc_hf1_uncomp", 383 .channels = 1, 384 .buswidth = 32, 385 .num_links = 1, 386 .link_nodes = { &slv_qns_camnoc_uncomp }, 387}; 388 389static struct qcom_icc_node mas_qxm_camnoc_sf_uncomp = { 390 .name = "mas_qxm_camnoc_sf_uncomp", 391 .channels = 1, 392 .buswidth = 32, 393 .num_links = 1, 394 .link_nodes = { &slv_qns_camnoc_uncomp }, 395}; 396 397static struct qcom_icc_node mas_qnm_npu = { 398 .name = "mas_qnm_npu", 399 .channels = 1, 400 .buswidth = 32, 401 .num_links = 1, 402 .link_nodes = { &slv_qns_cdsp_mem_noc }, 403}; 404 405static struct qcom_icc_node mas_qnm_snoc = { 406 .name = "mas_qnm_snoc", 407 .channels = 1, 408 .buswidth = 8, 409 .num_links = 56, 410 .link_nodes = { &slv_qhs_tlmm_south, 411 &slv_qhs_compute_dsp, 412 &slv_qhs_spss_cfg, 413 &slv_qhs_camera_cfg, 414 &slv_qhs_sdc4, 415 &slv_qhs_ahb2phy_refgen_center, 416 &slv_qhs_sdc2, 417 &slv_qhs_pcie2_cfg, 418 &slv_qhs_mnoc_cfg, 419 &slv_qhs_emac_cfg, 420 &slv_qhs_qspi_0, 421 &slv_qhs_qspi_1, 422 &slv_qhs_tlmm_east, 423 &slv_qhs_snoc_cfg, 424 &slv_qhs_ahb2phy_refgen_east, 425 &slv_qhs_glm, 426 &slv_qhs_pdm, 427 &slv_qhs_pcie1_cfg, 428 &slv_qhs_a2_noc_cfg, 429 &slv_qhs_qdss_cfg, 430 &slv_qhs_display_cfg, 431 &slv_qhs_tcsr, 432 &slv_qhs_ufs_mem0_cfg, 433 &slv_qhs_ddrss_cfg, 434 &slv_qhs_pcie0_cfg, 435 &slv_qhs_qupv3_east0, 436 &slv_qhs_qupv3_east1, 437 &slv_qhs_npu_cfg, 438 &slv_qhs_crypto0_cfg, 439 &slv_qhs_gpuss_cfg, 440 &slv_qhs_venus_cfg, 441 &slv_qhs_tsif, 442 &slv_qhs_ipa, 443 &slv_qhs_clk_ctl, 444 &slv_qhs_security, 445 &slv_qhs_aop, 446 &slv_qhs_ahb2phy_refgen_west, 447 &slv_qhs_ahb2phy_south, 448 &slv_srvc_cnoc, 449 &slv_qhs_ufs_card_cfg, 450 &slv_qhs_usb3_1, 451 &slv_qhs_usb3_2, 452 &slv_qhs_pcie3_cfg, 453 &slv_qhs_cpr_cx, 454 &slv_qhs_tlmm_west, 455 &slv_qhs_a1_noc_cfg, 456 &slv_qhs_aoss, 457 &slv_qhs_prng, 458 &slv_qhs_vsense_ctrl_cfg, 459 &slv_qhs_qupv3_west, 460 &slv_qhs_usb3_0, 461 &slv_qhs_cpr_mmcx, 462 &slv_qhs_pimem_cfg, 463 &slv_qhs_ufs_mem1_cfg, 464 &slv_qhs_cpr_mx, 465 &slv_qhs_imem_cfg }, 466}; 467 468static struct qcom_icc_node mas_qhm_cnoc_dc_noc = { 469 .name = "mas_qhm_cnoc_dc_noc", 470 .channels = 1, 471 .buswidth = 4, 472 .num_links = 2, 473 .link_nodes = { &slv_qhs_llcc, 474 &slv_qhs_gemnoc }, 475}; 476 477static struct qcom_icc_node mas_acm_apps = { 478 .name = "mas_acm_apps", 479 .channels = 4, 480 .buswidth = 64, 481 .num_links = 3, 482 .link_nodes = { &slv_qns_ecc, 483 &slv_qns_llcc, 484 &slv_qns_gem_noc_snoc }, 485}; 486 487static struct qcom_icc_node mas_acm_gpu_tcu = { 488 .name = "mas_acm_gpu_tcu", 489 .channels = 1, 490 .buswidth = 8, 491 .num_links = 2, 492 .link_nodes = { &slv_qns_llcc, 493 &slv_qns_gem_noc_snoc }, 494}; 495 496static struct qcom_icc_node mas_acm_sys_tcu = { 497 .name = "mas_acm_sys_tcu", 498 .channels = 1, 499 .buswidth = 8, 500 .num_links = 2, 501 .link_nodes = { &slv_qns_llcc, 502 &slv_qns_gem_noc_snoc }, 503}; 504 505static struct qcom_icc_node mas_qhm_gemnoc_cfg = { 506 .name = "mas_qhm_gemnoc_cfg", 507 .channels = 1, 508 .buswidth = 4, 509 .num_links = 3, 510 .link_nodes = { &slv_srvc_gemnoc1, 511 &slv_srvc_gemnoc, 512 &slv_qhs_mdsp_ms_mpu_cfg }, 513}; 514 515static struct qcom_icc_node mas_qnm_cmpnoc = { 516 .name = "mas_qnm_cmpnoc", 517 .channels = 2, 518 .buswidth = 32, 519 .num_links = 3, 520 .link_nodes = { &slv_qns_ecc, 521 &slv_qns_llcc, 522 &slv_qns_gem_noc_snoc }, 523}; 524 525static struct qcom_icc_node mas_qnm_gpu = { 526 .name = "mas_qnm_gpu", 527 .channels = 4, 528 .buswidth = 32, 529 .num_links = 2, 530 .link_nodes = { &slv_qns_llcc, 531 &slv_qns_gem_noc_snoc }, 532}; 533 534static struct qcom_icc_node mas_qnm_mnoc_hf = { 535 .name = "mas_qnm_mnoc_hf", 536 .channels = 2, 537 .buswidth = 32, 538 .num_links = 1, 539 .link_nodes = { &slv_qns_llcc }, 540}; 541 542static struct qcom_icc_node mas_qnm_mnoc_sf = { 543 .name = "mas_qnm_mnoc_sf", 544 .channels = 1, 545 .buswidth = 32, 546 .num_links = 2, 547 .link_nodes = { &slv_qns_llcc, 548 &slv_qns_gem_noc_snoc }, 549}; 550 551static struct qcom_icc_node mas_qnm_pcie = { 552 .name = "mas_qnm_pcie", 553 .channels = 1, 554 .buswidth = 32, 555 .num_links = 2, 556 .link_nodes = { &slv_qns_llcc, 557 &slv_qns_gem_noc_snoc }, 558}; 559 560static struct qcom_icc_node mas_qnm_snoc_gc = { 561 .name = "mas_qnm_snoc_gc", 562 .channels = 1, 563 .buswidth = 8, 564 .num_links = 1, 565 .link_nodes = { &slv_qns_llcc }, 566}; 567 568static struct qcom_icc_node mas_qnm_snoc_sf = { 569 .name = "mas_qnm_snoc_sf", 570 .channels = 1, 571 .buswidth = 32, 572 .num_links = 1, 573 .link_nodes = { &slv_qns_llcc }, 574}; 575 576static struct qcom_icc_node mas_qxm_ecc = { 577 .name = "mas_qxm_ecc", 578 .channels = 2, 579 .buswidth = 32, 580 .num_links = 1, 581 .link_nodes = { &slv_qns_llcc }, 582}; 583 584static struct qcom_icc_node mas_llcc_mc = { 585 .name = "mas_llcc_mc", 586 .channels = 8, 587 .buswidth = 4, 588 .num_links = 1, 589 .link_nodes = { &slv_ebi }, 590}; 591 592static struct qcom_icc_node mas_qhm_mnoc_cfg = { 593 .name = "mas_qhm_mnoc_cfg", 594 .channels = 1, 595 .buswidth = 4, 596 .num_links = 1, 597 .link_nodes = { &slv_srvc_mnoc }, 598}; 599 600static struct qcom_icc_node mas_qxm_camnoc_hf0 = { 601 .name = "mas_qxm_camnoc_hf0", 602 .channels = 1, 603 .buswidth = 32, 604 .num_links = 1, 605 .link_nodes = { &slv_qns_mem_noc_hf }, 606}; 607 608static struct qcom_icc_node mas_qxm_camnoc_hf1 = { 609 .name = "mas_qxm_camnoc_hf1", 610 .channels = 1, 611 .buswidth = 32, 612 .num_links = 1, 613 .link_nodes = { &slv_qns_mem_noc_hf }, 614}; 615 616static struct qcom_icc_node mas_qxm_camnoc_sf = { 617 .name = "mas_qxm_camnoc_sf", 618 .channels = 1, 619 .buswidth = 32, 620 .num_links = 1, 621 .link_nodes = { &slv_qns2_mem_noc }, 622}; 623 624static struct qcom_icc_node mas_qxm_mdp0 = { 625 .name = "mas_qxm_mdp0", 626 .channels = 1, 627 .buswidth = 32, 628 .num_links = 1, 629 .link_nodes = { &slv_qns_mem_noc_hf }, 630}; 631 632static struct qcom_icc_node mas_qxm_mdp1 = { 633 .name = "mas_qxm_mdp1", 634 .channels = 1, 635 .buswidth = 32, 636 .num_links = 1, 637 .link_nodes = { &slv_qns_mem_noc_hf }, 638}; 639 640static struct qcom_icc_node mas_qxm_rot = { 641 .name = "mas_qxm_rot", 642 .channels = 1, 643 .buswidth = 32, 644 .num_links = 1, 645 .link_nodes = { &slv_qns2_mem_noc }, 646}; 647 648static struct qcom_icc_node mas_qxm_venus0 = { 649 .name = "mas_qxm_venus0", 650 .channels = 1, 651 .buswidth = 32, 652 .num_links = 1, 653 .link_nodes = { &slv_qns2_mem_noc }, 654}; 655 656static struct qcom_icc_node mas_qxm_venus1 = { 657 .name = "mas_qxm_venus1", 658 .channels = 1, 659 .buswidth = 32, 660 .num_links = 1, 661 .link_nodes = { &slv_qns2_mem_noc }, 662}; 663 664static struct qcom_icc_node mas_qxm_venus_arm9 = { 665 .name = "mas_qxm_venus_arm9", 666 .channels = 1, 667 .buswidth = 8, 668 .num_links = 1, 669 .link_nodes = { &slv_qns2_mem_noc }, 670}; 671 672static struct qcom_icc_node mas_qhm_snoc_cfg = { 673 .name = "mas_qhm_snoc_cfg", 674 .channels = 1, 675 .buswidth = 4, 676 .num_links = 1, 677 .link_nodes = { &slv_srvc_snoc }, 678}; 679 680static struct qcom_icc_node mas_qnm_aggre1_noc = { 681 .name = "mas_qnm_aggre1_noc", 682 .channels = 1, 683 .buswidth = 32, 684 .num_links = 6, 685 .link_nodes = { &slv_qns_gemnoc_sf, 686 &slv_qxs_pimem, 687 &slv_qxs_imem, 688 &slv_qhs_apss, 689 &slv_qns_cnoc, 690 &slv_xs_qdss_stm }, 691}; 692 693static struct qcom_icc_node mas_qnm_aggre2_noc = { 694 .name = "mas_qnm_aggre2_noc", 695 .channels = 1, 696 .buswidth = 16, 697 .num_links = 11, 698 .link_nodes = { &slv_qns_gemnoc_sf, 699 &slv_qxs_pimem, 700 &slv_xs_pcie_3, 701 &slv_qxs_imem, 702 &slv_qhs_apss, 703 &slv_xs_pcie_2, 704 &slv_qns_cnoc, 705 &slv_xs_pcie_0, 706 &slv_xs_pcie_1, 707 &slv_xs_sys_tcu_cfg, 708 &slv_xs_qdss_stm }, 709}; 710 711static struct qcom_icc_node mas_qnm_gemnoc = { 712 .name = "mas_qnm_gemnoc", 713 .channels = 1, 714 .buswidth = 8, 715 .num_links = 6, 716 .link_nodes = { &slv_qxs_pimem, 717 &slv_qxs_imem, 718 &slv_qhs_apss, 719 &slv_qns_cnoc, 720 &slv_xs_sys_tcu_cfg, 721 &slv_xs_qdss_stm }, 722}; 723 724static struct qcom_icc_node mas_qxm_pimem = { 725 .name = "mas_qxm_pimem", 726 .channels = 1, 727 .buswidth = 8, 728 .num_links = 2, 729 .link_nodes = { &slv_qns_gemnoc_gc, 730 &slv_qxs_imem }, 731}; 732 733static struct qcom_icc_node mas_xm_gic = { 734 .name = "mas_xm_gic", 735 .channels = 1, 736 .buswidth = 8, 737 .num_links = 2, 738 .link_nodes = { &slv_qns_gemnoc_gc, 739 &slv_qxs_imem }, 740}; 741 742static struct qcom_icc_node mas_qup_core_0 = { 743 .name = "mas_qup_core_0", 744 .channels = 1, 745 .buswidth = 4, 746 .num_links = 1, 747 .link_nodes = { &slv_qup_core_0 }, 748}; 749 750static struct qcom_icc_node mas_qup_core_1 = { 751 .name = "mas_qup_core_1", 752 .channels = 1, 753 .buswidth = 4, 754 .num_links = 1, 755 .link_nodes = { &slv_qup_core_1 }, 756}; 757 758static struct qcom_icc_node mas_qup_core_2 = { 759 .name = "mas_qup_core_2", 760 .channels = 1, 761 .buswidth = 4, 762 .num_links = 1, 763 .link_nodes = { &slv_qup_core_2 }, 764}; 765 766static struct qcom_icc_node slv_qns_a1noc_snoc = { 767 .name = "slv_qns_a1noc_snoc", 768 .channels = 1, 769 .buswidth = 32, 770 .num_links = 1, 771 .link_nodes = { &mas_qnm_aggre1_noc }, 772}; 773 774static struct qcom_icc_node slv_srvc_aggre1_noc = { 775 .name = "slv_srvc_aggre1_noc", 776 .channels = 1, 777 .buswidth = 4 778}; 779 780static struct qcom_icc_node slv_qns_a2noc_snoc = { 781 .name = "slv_qns_a2noc_snoc", 782 .channels = 1, 783 .buswidth = 16, 784 .num_links = 1, 785 .link_nodes = { &mas_qnm_aggre2_noc }, 786}; 787 788static struct qcom_icc_node slv_qns_pcie_mem_noc = { 789 .name = "slv_qns_pcie_mem_noc", 790 .channels = 1, 791 .buswidth = 32, 792 .num_links = 1, 793 .link_nodes = { &mas_qnm_pcie }, 794}; 795 796static struct qcom_icc_node slv_srvc_aggre2_noc = { 797 .name = "slv_srvc_aggre2_noc", 798 .channels = 1, 799 .buswidth = 4 800}; 801 802static struct qcom_icc_node slv_qns_camnoc_uncomp = { 803 .name = "slv_qns_camnoc_uncomp", 804 .channels = 1, 805 .buswidth = 32 806}; 807 808static struct qcom_icc_node slv_qns_cdsp_mem_noc = { 809 .name = "slv_qns_cdsp_mem_noc", 810 .channels = 2, 811 .buswidth = 32, 812 .num_links = 1, 813 .link_nodes = { &mas_qnm_cmpnoc }, 814}; 815 816static struct qcom_icc_node slv_qhs_a1_noc_cfg = { 817 .name = "slv_qhs_a1_noc_cfg", 818 .channels = 1, 819 .buswidth = 4, 820 .num_links = 1, 821 .link_nodes = { &mas_qhm_a1noc_cfg }, 822}; 823 824static struct qcom_icc_node slv_qhs_a2_noc_cfg = { 825 .name = "slv_qhs_a2_noc_cfg", 826 .channels = 1, 827 .buswidth = 4, 828 .num_links = 1, 829 .link_nodes = { &mas_qhm_a2noc_cfg }, 830}; 831 832static struct qcom_icc_node slv_qhs_ahb2phy_refgen_center = { 833 .name = "slv_qhs_ahb2phy_refgen_center", 834 .channels = 1, 835 .buswidth = 4 836}; 837 838static struct qcom_icc_node slv_qhs_ahb2phy_refgen_east = { 839 .name = "slv_qhs_ahb2phy_refgen_east", 840 .channels = 1, 841 .buswidth = 4 842}; 843 844static struct qcom_icc_node slv_qhs_ahb2phy_refgen_west = { 845 .name = "slv_qhs_ahb2phy_refgen_west", 846 .channels = 1, 847 .buswidth = 4 848}; 849 850static struct qcom_icc_node slv_qhs_ahb2phy_south = { 851 .name = "slv_qhs_ahb2phy_south", 852 .channels = 1, 853 .buswidth = 4 854}; 855 856static struct qcom_icc_node slv_qhs_aop = { 857 .name = "slv_qhs_aop", 858 .channels = 1, 859 .buswidth = 4 860}; 861 862static struct qcom_icc_node slv_qhs_aoss = { 863 .name = "slv_qhs_aoss", 864 .channels = 1, 865 .buswidth = 4 866}; 867 868static struct qcom_icc_node slv_qhs_camera_cfg = { 869 .name = "slv_qhs_camera_cfg", 870 .channels = 1, 871 .buswidth = 4 872}; 873 874static struct qcom_icc_node slv_qhs_clk_ctl = { 875 .name = "slv_qhs_clk_ctl", 876 .channels = 1, 877 .buswidth = 4 878}; 879 880static struct qcom_icc_node slv_qhs_compute_dsp = { 881 .name = "slv_qhs_compute_dsp", 882 .channels = 1, 883 .buswidth = 4 884}; 885 886static struct qcom_icc_node slv_qhs_cpr_cx = { 887 .name = "slv_qhs_cpr_cx", 888 .channels = 1, 889 .buswidth = 4 890}; 891 892static struct qcom_icc_node slv_qhs_cpr_mmcx = { 893 .name = "slv_qhs_cpr_mmcx", 894 .channels = 1, 895 .buswidth = 4 896}; 897 898static struct qcom_icc_node slv_qhs_cpr_mx = { 899 .name = "slv_qhs_cpr_mx", 900 .channels = 1, 901 .buswidth = 4 902}; 903 904static struct qcom_icc_node slv_qhs_crypto0_cfg = { 905 .name = "slv_qhs_crypto0_cfg", 906 .channels = 1, 907 .buswidth = 4 908}; 909 910static struct qcom_icc_node slv_qhs_ddrss_cfg = { 911 .name = "slv_qhs_ddrss_cfg", 912 .channels = 1, 913 .buswidth = 4, 914 .num_links = 1, 915 .link_nodes = { &mas_qhm_cnoc_dc_noc }, 916}; 917 918static struct qcom_icc_node slv_qhs_display_cfg = { 919 .name = "slv_qhs_display_cfg", 920 .channels = 1, 921 .buswidth = 4 922}; 923 924static struct qcom_icc_node slv_qhs_emac_cfg = { 925 .name = "slv_qhs_emac_cfg", 926 .channels = 1, 927 .buswidth = 4 928}; 929 930static struct qcom_icc_node slv_qhs_glm = { 931 .name = "slv_qhs_glm", 932 .channels = 1, 933 .buswidth = 4 934}; 935 936static struct qcom_icc_node slv_qhs_gpuss_cfg = { 937 .name = "slv_qhs_gpuss_cfg", 938 .channels = 1, 939 .buswidth = 8 940}; 941 942static struct qcom_icc_node slv_qhs_imem_cfg = { 943 .name = "slv_qhs_imem_cfg", 944 .channels = 1, 945 .buswidth = 4 946}; 947 948static struct qcom_icc_node slv_qhs_ipa = { 949 .name = "slv_qhs_ipa", 950 .channels = 1, 951 .buswidth = 4 952}; 953 954static struct qcom_icc_node slv_qhs_mnoc_cfg = { 955 .name = "slv_qhs_mnoc_cfg", 956 .channels = 1, 957 .buswidth = 4, 958 .num_links = 1, 959 .link_nodes = { &mas_qhm_mnoc_cfg }, 960}; 961 962static struct qcom_icc_node slv_qhs_npu_cfg = { 963 .name = "slv_qhs_npu_cfg", 964 .channels = 1, 965 .buswidth = 4 966}; 967 968static struct qcom_icc_node slv_qhs_pcie0_cfg = { 969 .name = "slv_qhs_pcie0_cfg", 970 .channels = 1, 971 .buswidth = 4 972}; 973 974static struct qcom_icc_node slv_qhs_pcie1_cfg = { 975 .name = "slv_qhs_pcie1_cfg", 976 .channels = 1, 977 .buswidth = 4 978}; 979 980static struct qcom_icc_node slv_qhs_pcie2_cfg = { 981 .name = "slv_qhs_pcie2_cfg", 982 .channels = 1, 983 .buswidth = 4 984}; 985 986static struct qcom_icc_node slv_qhs_pcie3_cfg = { 987 .name = "slv_qhs_pcie3_cfg", 988 .channels = 1, 989 .buswidth = 4 990}; 991 992static struct qcom_icc_node slv_qhs_pdm = { 993 .name = "slv_qhs_pdm", 994 .channels = 1, 995 .buswidth = 4 996}; 997 998static struct qcom_icc_node slv_qhs_pimem_cfg = { 999 .name = "slv_qhs_pimem_cfg", 1000 .channels = 1, 1001 .buswidth = 4 1002}; 1003 1004static struct qcom_icc_node slv_qhs_prng = { 1005 .name = "slv_qhs_prng", 1006 .channels = 1, 1007 .buswidth = 4 1008}; 1009 1010static struct qcom_icc_node slv_qhs_qdss_cfg = { 1011 .name = "slv_qhs_qdss_cfg", 1012 .channels = 1, 1013 .buswidth = 4 1014}; 1015 1016static struct qcom_icc_node slv_qhs_qspi_0 = { 1017 .name = "slv_qhs_qspi_0", 1018 .channels = 1, 1019 .buswidth = 4 1020}; 1021 1022static struct qcom_icc_node slv_qhs_qspi_1 = { 1023 .name = "slv_qhs_qspi_1", 1024 .channels = 1, 1025 .buswidth = 4 1026}; 1027 1028static struct qcom_icc_node slv_qhs_qupv3_east0 = { 1029 .name = "slv_qhs_qupv3_east0", 1030 .channels = 1, 1031 .buswidth = 4 1032}; 1033 1034static struct qcom_icc_node slv_qhs_qupv3_east1 = { 1035 .name = "slv_qhs_qupv3_east1", 1036 .channels = 1, 1037 .buswidth = 4 1038}; 1039 1040static struct qcom_icc_node slv_qhs_qupv3_west = { 1041 .name = "slv_qhs_qupv3_west", 1042 .channels = 1, 1043 .buswidth = 4 1044}; 1045 1046static struct qcom_icc_node slv_qhs_sdc2 = { 1047 .name = "slv_qhs_sdc2", 1048 .channels = 1, 1049 .buswidth = 4 1050}; 1051 1052static struct qcom_icc_node slv_qhs_sdc4 = { 1053 .name = "slv_qhs_sdc4", 1054 .channels = 1, 1055 .buswidth = 4 1056}; 1057 1058static struct qcom_icc_node slv_qhs_security = { 1059 .name = "slv_qhs_security", 1060 .channels = 1, 1061 .buswidth = 4 1062}; 1063 1064static struct qcom_icc_node slv_qhs_snoc_cfg = { 1065 .name = "slv_qhs_snoc_cfg", 1066 .channels = 1, 1067 .buswidth = 4, 1068 .num_links = 1, 1069 .link_nodes = { &mas_qhm_snoc_cfg }, 1070}; 1071 1072static struct qcom_icc_node slv_qhs_spss_cfg = { 1073 .name = "slv_qhs_spss_cfg", 1074 .channels = 1, 1075 .buswidth = 4 1076}; 1077 1078static struct qcom_icc_node slv_qhs_tcsr = { 1079 .name = "slv_qhs_tcsr", 1080 .channels = 1, 1081 .buswidth = 4 1082}; 1083 1084static struct qcom_icc_node slv_qhs_tlmm_east = { 1085 .name = "slv_qhs_tlmm_east", 1086 .channels = 1, 1087 .buswidth = 4 1088}; 1089 1090static struct qcom_icc_node slv_qhs_tlmm_south = { 1091 .name = "slv_qhs_tlmm_south", 1092 .channels = 1, 1093 .buswidth = 4 1094}; 1095 1096static struct qcom_icc_node slv_qhs_tlmm_west = { 1097 .name = "slv_qhs_tlmm_west", 1098 .channels = 1, 1099 .buswidth = 4 1100}; 1101 1102static struct qcom_icc_node slv_qhs_tsif = { 1103 .name = "slv_qhs_tsif", 1104 .channels = 1, 1105 .buswidth = 4 1106}; 1107 1108static struct qcom_icc_node slv_qhs_ufs_card_cfg = { 1109 .name = "slv_qhs_ufs_card_cfg", 1110 .channels = 1, 1111 .buswidth = 4 1112}; 1113 1114static struct qcom_icc_node slv_qhs_ufs_mem0_cfg = { 1115 .name = "slv_qhs_ufs_mem0_cfg", 1116 .channels = 1, 1117 .buswidth = 4 1118}; 1119 1120static struct qcom_icc_node slv_qhs_ufs_mem1_cfg = { 1121 .name = "slv_qhs_ufs_mem1_cfg", 1122 .channels = 1, 1123 .buswidth = 4 1124}; 1125 1126static struct qcom_icc_node slv_qhs_usb3_0 = { 1127 .name = "slv_qhs_usb3_0", 1128 .channels = 1, 1129 .buswidth = 4 1130}; 1131 1132static struct qcom_icc_node slv_qhs_usb3_1 = { 1133 .name = "slv_qhs_usb3_1", 1134 .channels = 1, 1135 .buswidth = 4 1136}; 1137 1138static struct qcom_icc_node slv_qhs_usb3_2 = { 1139 .name = "slv_qhs_usb3_2", 1140 .channels = 1, 1141 .buswidth = 4 1142}; 1143 1144static struct qcom_icc_node slv_qhs_venus_cfg = { 1145 .name = "slv_qhs_venus_cfg", 1146 .channels = 1, 1147 .buswidth = 4 1148}; 1149 1150static struct qcom_icc_node slv_qhs_vsense_ctrl_cfg = { 1151 .name = "slv_qhs_vsense_ctrl_cfg", 1152 .channels = 1, 1153 .buswidth = 4 1154}; 1155 1156static struct qcom_icc_node slv_srvc_cnoc = { 1157 .name = "slv_srvc_cnoc", 1158 .channels = 1, 1159 .buswidth = 4 1160}; 1161 1162static struct qcom_icc_node slv_qhs_gemnoc = { 1163 .name = "slv_qhs_gemnoc", 1164 .channels = 1, 1165 .buswidth = 4, 1166 .num_links = 1, 1167 .link_nodes = { &mas_qhm_gemnoc_cfg }, 1168}; 1169 1170static struct qcom_icc_node slv_qhs_llcc = { 1171 .name = "slv_qhs_llcc", 1172 .channels = 1, 1173 .buswidth = 4 1174}; 1175 1176static struct qcom_icc_node slv_qhs_mdsp_ms_mpu_cfg = { 1177 .name = "slv_qhs_mdsp_ms_mpu_cfg", 1178 .channels = 1, 1179 .buswidth = 4 1180}; 1181 1182static struct qcom_icc_node slv_qns_ecc = { 1183 .name = "slv_qns_ecc", 1184 .channels = 1, 1185 .buswidth = 32 1186}; 1187 1188static struct qcom_icc_node slv_qns_gem_noc_snoc = { 1189 .name = "slv_qns_gem_noc_snoc", 1190 .channels = 1, 1191 .buswidth = 8, 1192 .num_links = 1, 1193 .link_nodes = { &mas_qnm_gemnoc }, 1194}; 1195 1196static struct qcom_icc_node slv_qns_llcc = { 1197 .name = "slv_qns_llcc", 1198 .channels = 8, 1199 .buswidth = 16, 1200 .num_links = 1, 1201 .link_nodes = { &mas_llcc_mc }, 1202}; 1203 1204static struct qcom_icc_node slv_srvc_gemnoc = { 1205 .name = "slv_srvc_gemnoc", 1206 .channels = 1, 1207 .buswidth = 4 1208}; 1209 1210static struct qcom_icc_node slv_srvc_gemnoc1 = { 1211 .name = "slv_srvc_gemnoc1", 1212 .channels = 1, 1213 .buswidth = 4 1214}; 1215 1216static struct qcom_icc_node slv_ebi = { 1217 .name = "slv_ebi", 1218 .channels = 8, 1219 .buswidth = 4 1220}; 1221 1222static struct qcom_icc_node slv_qns2_mem_noc = { 1223 .name = "slv_qns2_mem_noc", 1224 .channels = 1, 1225 .buswidth = 32, 1226 .num_links = 1, 1227 .link_nodes = { &mas_qnm_mnoc_sf }, 1228}; 1229 1230static struct qcom_icc_node slv_qns_mem_noc_hf = { 1231 .name = "slv_qns_mem_noc_hf", 1232 .channels = 2, 1233 .buswidth = 32, 1234 .num_links = 1, 1235 .link_nodes = { &mas_qnm_mnoc_hf }, 1236}; 1237 1238static struct qcom_icc_node slv_srvc_mnoc = { 1239 .name = "slv_srvc_mnoc", 1240 .channels = 1, 1241 .buswidth = 4 1242}; 1243 1244static struct qcom_icc_node slv_qhs_apss = { 1245 .name = "slv_qhs_apss", 1246 .channels = 1, 1247 .buswidth = 8 1248}; 1249 1250static struct qcom_icc_node slv_qns_cnoc = { 1251 .name = "slv_qns_cnoc", 1252 .channels = 1, 1253 .buswidth = 8, 1254 .num_links = 1, 1255 .link_nodes = { &mas_qnm_snoc }, 1256}; 1257 1258static struct qcom_icc_node slv_qns_gemnoc_gc = { 1259 .name = "slv_qns_gemnoc_gc", 1260 .channels = 1, 1261 .buswidth = 8, 1262 .num_links = 1, 1263 .link_nodes = { &mas_qnm_snoc_gc }, 1264}; 1265 1266static struct qcom_icc_node slv_qns_gemnoc_sf = { 1267 .name = "slv_qns_gemnoc_sf", 1268 .channels = 1, 1269 .buswidth = 32, 1270 .num_links = 1, 1271 .link_nodes = { &mas_qnm_snoc_sf }, 1272}; 1273 1274static struct qcom_icc_node slv_qxs_imem = { 1275 .name = "slv_qxs_imem", 1276 .channels = 1, 1277 .buswidth = 8 1278}; 1279 1280static struct qcom_icc_node slv_qxs_pimem = { 1281 .name = "slv_qxs_pimem", 1282 .channels = 1, 1283 .buswidth = 8 1284}; 1285 1286static struct qcom_icc_node slv_srvc_snoc = { 1287 .name = "slv_srvc_snoc", 1288 .channels = 1, 1289 .buswidth = 4 1290}; 1291 1292static struct qcom_icc_node slv_xs_pcie_0 = { 1293 .name = "slv_xs_pcie_0", 1294 .channels = 1, 1295 .buswidth = 8 1296}; 1297 1298static struct qcom_icc_node slv_xs_pcie_1 = { 1299 .name = "slv_xs_pcie_1", 1300 .channels = 1, 1301 .buswidth = 8 1302}; 1303 1304static struct qcom_icc_node slv_xs_pcie_2 = { 1305 .name = "slv_xs_pcie_2", 1306 .channels = 1, 1307 .buswidth = 8 1308}; 1309 1310static struct qcom_icc_node slv_xs_pcie_3 = { 1311 .name = "slv_xs_pcie_3", 1312 .channels = 1, 1313 .buswidth = 8 1314}; 1315 1316static struct qcom_icc_node slv_xs_qdss_stm = { 1317 .name = "slv_xs_qdss_stm", 1318 .channels = 1, 1319 .buswidth = 4 1320}; 1321 1322static struct qcom_icc_node slv_xs_sys_tcu_cfg = { 1323 .name = "slv_xs_sys_tcu_cfg", 1324 .channels = 1, 1325 .buswidth = 8 1326}; 1327 1328static struct qcom_icc_node slv_qup_core_0 = { 1329 .name = "slv_qup_core_0", 1330 .channels = 1, 1331 .buswidth = 4 1332}; 1333 1334static struct qcom_icc_node slv_qup_core_1 = { 1335 .name = "slv_qup_core_1", 1336 .channels = 1, 1337 .buswidth = 4 1338}; 1339 1340static struct qcom_icc_node slv_qup_core_2 = { 1341 .name = "slv_qup_core_2", 1342 .channels = 1, 1343 .buswidth = 4 1344}; 1345 1346static struct qcom_icc_bcm bcm_acv = { 1347 .name = "ACV", 1348 .enable_mask = BIT(3), 1349 .num_nodes = 1, 1350 .nodes = { &slv_ebi } 1351}; 1352 1353static struct qcom_icc_bcm bcm_mc0 = { 1354 .name = "MC0", 1355 .keepalive = true, 1356 .num_nodes = 1, 1357 .nodes = { &slv_ebi } 1358}; 1359 1360static struct qcom_icc_bcm bcm_sh0 = { 1361 .name = "SH0", 1362 .keepalive = true, 1363 .num_nodes = 1, 1364 .nodes = { &slv_qns_llcc } 1365}; 1366 1367static struct qcom_icc_bcm bcm_mm0 = { 1368 .name = "MM0", 1369 .num_nodes = 1, 1370 .nodes = { &slv_qns_mem_noc_hf } 1371}; 1372 1373static struct qcom_icc_bcm bcm_co0 = { 1374 .name = "CO0", 1375 .keepalive = true, 1376 .num_nodes = 1, 1377 .nodes = { &slv_qns_cdsp_mem_noc } 1378}; 1379 1380static struct qcom_icc_bcm bcm_ce0 = { 1381 .name = "CE0", 1382 .num_nodes = 1, 1383 .nodes = { &mas_qxm_crypto } 1384}; 1385 1386static struct qcom_icc_bcm bcm_cn0 = { 1387 .name = "CN0", 1388 .keepalive = true, 1389 .num_nodes = 57, 1390 .nodes = { &mas_qnm_snoc, 1391 &slv_qhs_a1_noc_cfg, 1392 &slv_qhs_a2_noc_cfg, 1393 &slv_qhs_ahb2phy_refgen_center, 1394 &slv_qhs_ahb2phy_refgen_east, 1395 &slv_qhs_ahb2phy_refgen_west, 1396 &slv_qhs_ahb2phy_south, 1397 &slv_qhs_aop, 1398 &slv_qhs_aoss, 1399 &slv_qhs_camera_cfg, 1400 &slv_qhs_clk_ctl, 1401 &slv_qhs_compute_dsp, 1402 &slv_qhs_cpr_cx, 1403 &slv_qhs_cpr_mmcx, 1404 &slv_qhs_cpr_mx, 1405 &slv_qhs_crypto0_cfg, 1406 &slv_qhs_ddrss_cfg, 1407 &slv_qhs_display_cfg, 1408 &slv_qhs_emac_cfg, 1409 &slv_qhs_glm, 1410 &slv_qhs_gpuss_cfg, 1411 &slv_qhs_imem_cfg, 1412 &slv_qhs_ipa, 1413 &slv_qhs_mnoc_cfg, 1414 &slv_qhs_npu_cfg, 1415 &slv_qhs_pcie0_cfg, 1416 &slv_qhs_pcie1_cfg, 1417 &slv_qhs_pcie2_cfg, 1418 &slv_qhs_pcie3_cfg, 1419 &slv_qhs_pdm, 1420 &slv_qhs_pimem_cfg, 1421 &slv_qhs_prng, 1422 &slv_qhs_qdss_cfg, 1423 &slv_qhs_qspi_0, 1424 &slv_qhs_qspi_1, 1425 &slv_qhs_qupv3_east0, 1426 &slv_qhs_qupv3_east1, 1427 &slv_qhs_qupv3_west, 1428 &slv_qhs_sdc2, 1429 &slv_qhs_sdc4, 1430 &slv_qhs_security, 1431 &slv_qhs_snoc_cfg, 1432 &slv_qhs_spss_cfg, 1433 &slv_qhs_tcsr, 1434 &slv_qhs_tlmm_east, 1435 &slv_qhs_tlmm_south, 1436 &slv_qhs_tlmm_west, 1437 &slv_qhs_tsif, 1438 &slv_qhs_ufs_card_cfg, 1439 &slv_qhs_ufs_mem0_cfg, 1440 &slv_qhs_ufs_mem1_cfg, 1441 &slv_qhs_usb3_0, 1442 &slv_qhs_usb3_1, 1443 &slv_qhs_usb3_2, 1444 &slv_qhs_venus_cfg, 1445 &slv_qhs_vsense_ctrl_cfg, 1446 &slv_srvc_cnoc } 1447}; 1448 1449static struct qcom_icc_bcm bcm_mm1 = { 1450 .name = "MM1", 1451 .num_nodes = 7, 1452 .nodes = { &mas_qxm_camnoc_hf0_uncomp, 1453 &mas_qxm_camnoc_hf1_uncomp, 1454 &mas_qxm_camnoc_sf_uncomp, 1455 &mas_qxm_camnoc_hf0, 1456 &mas_qxm_camnoc_hf1, 1457 &mas_qxm_mdp0, 1458 &mas_qxm_mdp1 } 1459}; 1460 1461static struct qcom_icc_bcm bcm_qup0 = { 1462 .name = "QUP0", 1463 .num_nodes = 3, 1464 .nodes = { &mas_qup_core_0, 1465 &mas_qup_core_1, 1466 &mas_qup_core_2 } 1467}; 1468 1469static struct qcom_icc_bcm bcm_sh2 = { 1470 .name = "SH2", 1471 .num_nodes = 1, 1472 .nodes = { &slv_qns_gem_noc_snoc } 1473}; 1474 1475static struct qcom_icc_bcm bcm_mm2 = { 1476 .name = "MM2", 1477 .num_nodes = 6, 1478 .nodes = { &mas_qxm_camnoc_sf, 1479 &mas_qxm_rot, 1480 &mas_qxm_venus0, 1481 &mas_qxm_venus1, 1482 &mas_qxm_venus_arm9, 1483 &slv_qns2_mem_noc } 1484}; 1485 1486static struct qcom_icc_bcm bcm_sh3 = { 1487 .name = "SH3", 1488 .keepalive = true, 1489 .num_nodes = 1, 1490 .nodes = { &mas_acm_apps } 1491}; 1492 1493static struct qcom_icc_bcm bcm_sn0 = { 1494 .name = "SN0", 1495 .num_nodes = 1, 1496 .nodes = { &slv_qns_gemnoc_sf } 1497}; 1498 1499static struct qcom_icc_bcm bcm_sn1 = { 1500 .name = "SN1", 1501 .num_nodes = 1, 1502 .nodes = { &slv_qxs_imem } 1503}; 1504 1505static struct qcom_icc_bcm bcm_sn2 = { 1506 .name = "SN2", 1507 .keepalive = true, 1508 .num_nodes = 1, 1509 .nodes = { &slv_qns_gemnoc_gc } 1510}; 1511 1512static struct qcom_icc_bcm bcm_co2 = { 1513 .name = "CO2", 1514 .num_nodes = 1, 1515 .nodes = { &mas_qnm_npu } 1516}; 1517 1518static struct qcom_icc_bcm bcm_sn3 = { 1519 .name = "SN3", 1520 .keepalive = true, 1521 .num_nodes = 2, 1522 .nodes = { &slv_srvc_aggre1_noc, 1523 &slv_qns_cnoc } 1524}; 1525 1526static struct qcom_icc_bcm bcm_sn4 = { 1527 .name = "SN4", 1528 .num_nodes = 1, 1529 .nodes = { &slv_qxs_pimem } 1530}; 1531 1532static struct qcom_icc_bcm bcm_sn8 = { 1533 .name = "SN8", 1534 .num_nodes = 4, 1535 .nodes = { &slv_xs_pcie_0, 1536 &slv_xs_pcie_1, 1537 &slv_xs_pcie_2, 1538 &slv_xs_pcie_3 } 1539}; 1540 1541static struct qcom_icc_bcm bcm_sn9 = { 1542 .name = "SN9", 1543 .num_nodes = 1, 1544 .nodes = { &mas_qnm_aggre1_noc } 1545}; 1546 1547static struct qcom_icc_bcm bcm_sn11 = { 1548 .name = "SN11", 1549 .num_nodes = 1, 1550 .nodes = { &mas_qnm_aggre2_noc } 1551}; 1552 1553static struct qcom_icc_bcm bcm_sn14 = { 1554 .name = "SN14", 1555 .num_nodes = 1, 1556 .nodes = { &slv_qns_pcie_mem_noc } 1557}; 1558 1559static struct qcom_icc_bcm bcm_sn15 = { 1560 .name = "SN15", 1561 .keepalive = true, 1562 .num_nodes = 1, 1563 .nodes = { &mas_qnm_gemnoc } 1564}; 1565 1566static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 1567 &bcm_sn3, 1568 &bcm_ce0, 1569}; 1570 1571static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 1572 &bcm_sn14, 1573 &bcm_ce0, 1574}; 1575 1576static struct qcom_icc_bcm * const camnoc_virt_bcms[] = { 1577 &bcm_mm1, 1578}; 1579 1580static struct qcom_icc_bcm * const compute_noc_bcms[] = { 1581 &bcm_co0, 1582 &bcm_co2, 1583}; 1584 1585static struct qcom_icc_bcm * const config_noc_bcms[] = { 1586 &bcm_cn0, 1587}; 1588 1589static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1590 &bcm_sh0, 1591 &bcm_sh2, 1592 &bcm_sh3, 1593}; 1594 1595static struct qcom_icc_bcm * const mc_virt_bcms[] = { 1596 &bcm_mc0, 1597 &bcm_acv, 1598}; 1599 1600static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 1601 &bcm_mm0, 1602 &bcm_mm1, 1603 &bcm_mm2, 1604}; 1605 1606static struct qcom_icc_bcm * const system_noc_bcms[] = { 1607 &bcm_sn0, 1608 &bcm_sn1, 1609 &bcm_sn2, 1610 &bcm_sn3, 1611 &bcm_sn4, 1612 &bcm_sn8, 1613 &bcm_sn9, 1614 &bcm_sn11, 1615 &bcm_sn15, 1616}; 1617 1618static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1619 [MASTER_A1NOC_CFG] = &mas_qhm_a1noc_cfg, 1620 [MASTER_UFS_CARD] = &mas_xm_ufs_card, 1621 [MASTER_UFS_GEN4] = &mas_xm_ufs_g4, 1622 [MASTER_UFS_MEM] = &mas_xm_ufs_mem, 1623 [MASTER_USB3] = &mas_xm_usb3_0, 1624 [MASTER_USB3_1] = &mas_xm_usb3_1, 1625 [MASTER_USB3_2] = &mas_xm_usb3_2, 1626 [A1NOC_SNOC_SLV] = &slv_qns_a1noc_snoc, 1627 [SLAVE_SERVICE_A1NOC] = &slv_srvc_aggre1_noc, 1628}; 1629 1630static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1631 [MASTER_A2NOC_CFG] = &mas_qhm_a2noc_cfg, 1632 [MASTER_QDSS_BAM] = &mas_qhm_qdss_bam, 1633 [MASTER_QSPI_0] = &mas_qhm_qspi, 1634 [MASTER_QSPI_1] = &mas_qhm_qspi1, 1635 [MASTER_QUP_0] = &mas_qhm_qup0, 1636 [MASTER_QUP_1] = &mas_qhm_qup1, 1637 [MASTER_QUP_2] = &mas_qhm_qup2, 1638 [MASTER_SENSORS_AHB] = &mas_qhm_sensorss_ahb, 1639 [MASTER_CRYPTO_CORE_0] = &mas_qxm_crypto, 1640 [MASTER_IPA] = &mas_qxm_ipa, 1641 [MASTER_EMAC] = &mas_xm_emac, 1642 [MASTER_PCIE] = &mas_xm_pcie3_0, 1643 [MASTER_PCIE_1] = &mas_xm_pcie3_1, 1644 [MASTER_PCIE_2] = &mas_xm_pcie3_2, 1645 [MASTER_PCIE_3] = &mas_xm_pcie3_3, 1646 [MASTER_QDSS_ETR] = &mas_xm_qdss_etr, 1647 [MASTER_SDCC_2] = &mas_xm_sdc2, 1648 [MASTER_SDCC_4] = &mas_xm_sdc4, 1649 [A2NOC_SNOC_SLV] = &slv_qns_a2noc_snoc, 1650 [SLAVE_ANOC_PCIE_GEM_NOC] = &slv_qns_pcie_mem_noc, 1651 [SLAVE_SERVICE_A2NOC] = &slv_srvc_aggre2_noc, 1652}; 1653 1654static struct qcom_icc_node * const camnoc_virt_nodes[] = { 1655 [MASTER_CAMNOC_HF0_UNCOMP] = &mas_qxm_camnoc_hf0_uncomp, 1656 [MASTER_CAMNOC_HF1_UNCOMP] = &mas_qxm_camnoc_hf1_uncomp, 1657 [MASTER_CAMNOC_SF_UNCOMP] = &mas_qxm_camnoc_sf_uncomp, 1658 [SLAVE_CAMNOC_UNCOMP] = &slv_qns_camnoc_uncomp, 1659}; 1660 1661static struct qcom_icc_node * const compute_noc_nodes[] = { 1662 [MASTER_NPU] = &mas_qnm_npu, 1663 [SLAVE_CDSP_MEM_NOC] = &slv_qns_cdsp_mem_noc, 1664}; 1665 1666static struct qcom_icc_node * const config_noc_nodes[] = { 1667 [SNOC_CNOC_MAS] = &mas_qnm_snoc, 1668 [SLAVE_A1NOC_CFG] = &slv_qhs_a1_noc_cfg, 1669 [SLAVE_A2NOC_CFG] = &slv_qhs_a2_noc_cfg, 1670 [SLAVE_AHB2PHY_CENTER] = &slv_qhs_ahb2phy_refgen_center, 1671 [SLAVE_AHB2PHY_EAST] = &slv_qhs_ahb2phy_refgen_east, 1672 [SLAVE_AHB2PHY_WEST] = &slv_qhs_ahb2phy_refgen_west, 1673 [SLAVE_AHB2PHY_SOUTH] = &slv_qhs_ahb2phy_south, 1674 [SLAVE_AOP] = &slv_qhs_aop, 1675 [SLAVE_AOSS] = &slv_qhs_aoss, 1676 [SLAVE_CAMERA_CFG] = &slv_qhs_camera_cfg, 1677 [SLAVE_CLK_CTL] = &slv_qhs_clk_ctl, 1678 [SLAVE_CDSP_CFG] = &slv_qhs_compute_dsp, 1679 [SLAVE_RBCPR_CX_CFG] = &slv_qhs_cpr_cx, 1680 [SLAVE_RBCPR_MMCX_CFG] = &slv_qhs_cpr_mmcx, 1681 [SLAVE_RBCPR_MX_CFG] = &slv_qhs_cpr_mx, 1682 [SLAVE_CRYPTO_0_CFG] = &slv_qhs_crypto0_cfg, 1683 [SLAVE_CNOC_DDRSS] = &slv_qhs_ddrss_cfg, 1684 [SLAVE_DISPLAY_CFG] = &slv_qhs_display_cfg, 1685 [SLAVE_EMAC_CFG] = &slv_qhs_emac_cfg, 1686 [SLAVE_GLM] = &slv_qhs_glm, 1687 [SLAVE_GRAPHICS_3D_CFG] = &slv_qhs_gpuss_cfg, 1688 [SLAVE_IMEM_CFG] = &slv_qhs_imem_cfg, 1689 [SLAVE_IPA_CFG] = &slv_qhs_ipa, 1690 [SLAVE_CNOC_MNOC_CFG] = &slv_qhs_mnoc_cfg, 1691 [SLAVE_NPU_CFG] = &slv_qhs_npu_cfg, 1692 [SLAVE_PCIE_0_CFG] = &slv_qhs_pcie0_cfg, 1693 [SLAVE_PCIE_1_CFG] = &slv_qhs_pcie1_cfg, 1694 [SLAVE_PCIE_2_CFG] = &slv_qhs_pcie2_cfg, 1695 [SLAVE_PCIE_3_CFG] = &slv_qhs_pcie3_cfg, 1696 [SLAVE_PDM] = &slv_qhs_pdm, 1697 [SLAVE_PIMEM_CFG] = &slv_qhs_pimem_cfg, 1698 [SLAVE_PRNG] = &slv_qhs_prng, 1699 [SLAVE_QDSS_CFG] = &slv_qhs_qdss_cfg, 1700 [SLAVE_QSPI_0] = &slv_qhs_qspi_0, 1701 [SLAVE_QSPI_1] = &slv_qhs_qspi_1, 1702 [SLAVE_QUP_1] = &slv_qhs_qupv3_east0, 1703 [SLAVE_QUP_2] = &slv_qhs_qupv3_east1, 1704 [SLAVE_QUP_0] = &slv_qhs_qupv3_west, 1705 [SLAVE_SDCC_2] = &slv_qhs_sdc2, 1706 [SLAVE_SDCC_4] = &slv_qhs_sdc4, 1707 [SLAVE_SECURITY] = &slv_qhs_security, 1708 [SLAVE_SNOC_CFG] = &slv_qhs_snoc_cfg, 1709 [SLAVE_SPSS_CFG] = &slv_qhs_spss_cfg, 1710 [SLAVE_TCSR] = &slv_qhs_tcsr, 1711 [SLAVE_TLMM_EAST] = &slv_qhs_tlmm_east, 1712 [SLAVE_TLMM_SOUTH] = &slv_qhs_tlmm_south, 1713 [SLAVE_TLMM_WEST] = &slv_qhs_tlmm_west, 1714 [SLAVE_TSIF] = &slv_qhs_tsif, 1715 [SLAVE_UFS_CARD_CFG] = &slv_qhs_ufs_card_cfg, 1716 [SLAVE_UFS_MEM_0_CFG] = &slv_qhs_ufs_mem0_cfg, 1717 [SLAVE_UFS_MEM_1_CFG] = &slv_qhs_ufs_mem1_cfg, 1718 [SLAVE_USB3] = &slv_qhs_usb3_0, 1719 [SLAVE_USB3_1] = &slv_qhs_usb3_1, 1720 [SLAVE_USB3_2] = &slv_qhs_usb3_2, 1721 [SLAVE_VENUS_CFG] = &slv_qhs_venus_cfg, 1722 [SLAVE_VSENSE_CTRL_CFG] = &slv_qhs_vsense_ctrl_cfg, 1723 [SLAVE_SERVICE_CNOC] = &slv_srvc_cnoc, 1724}; 1725 1726static struct qcom_icc_node * const dc_noc_nodes[] = { 1727 [MASTER_CNOC_DC_NOC] = &mas_qhm_cnoc_dc_noc, 1728 [SLAVE_GEM_NOC_CFG] = &slv_qhs_gemnoc, 1729 [SLAVE_LLCC_CFG] = &slv_qhs_llcc, 1730}; 1731 1732static struct qcom_icc_node * const gem_noc_nodes[] = { 1733 [MASTER_AMPSS_M0] = &mas_acm_apps, 1734 [MASTER_GPU_TCU] = &mas_acm_gpu_tcu, 1735 [MASTER_SYS_TCU] = &mas_acm_sys_tcu, 1736 [MASTER_GEM_NOC_CFG] = &mas_qhm_gemnoc_cfg, 1737 [MASTER_COMPUTE_NOC] = &mas_qnm_cmpnoc, 1738 [MASTER_GRAPHICS_3D] = &mas_qnm_gpu, 1739 [MASTER_MNOC_HF_MEM_NOC] = &mas_qnm_mnoc_hf, 1740 [MASTER_MNOC_SF_MEM_NOC] = &mas_qnm_mnoc_sf, 1741 [MASTER_GEM_NOC_PCIE_SNOC] = &mas_qnm_pcie, 1742 [MASTER_SNOC_GC_MEM_NOC] = &mas_qnm_snoc_gc, 1743 [MASTER_SNOC_SF_MEM_NOC] = &mas_qnm_snoc_sf, 1744 [MASTER_ECC] = &mas_qxm_ecc, 1745 [SLAVE_MSS_PROC_MS_MPU_CFG] = &slv_qhs_mdsp_ms_mpu_cfg, 1746 [SLAVE_ECC] = &slv_qns_ecc, 1747 [SLAVE_GEM_NOC_SNOC] = &slv_qns_gem_noc_snoc, 1748 [SLAVE_LLCC] = &slv_qns_llcc, 1749 [SLAVE_SERVICE_GEM_NOC] = &slv_srvc_gemnoc, 1750 [SLAVE_SERVICE_GEM_NOC_1] = &slv_srvc_gemnoc1, 1751}; 1752 1753static struct qcom_icc_node * const mc_virt_nodes[] = { 1754 [MASTER_LLCC] = &mas_llcc_mc, 1755 [SLAVE_EBI_CH0] = &slv_ebi, 1756}; 1757 1758static struct qcom_icc_node * const mmss_noc_nodes[] = { 1759 [MASTER_CNOC_MNOC_CFG] = &mas_qhm_mnoc_cfg, 1760 [MASTER_CAMNOC_HF0] = &mas_qxm_camnoc_hf0, 1761 [MASTER_CAMNOC_HF1] = &mas_qxm_camnoc_hf1, 1762 [MASTER_CAMNOC_SF] = &mas_qxm_camnoc_sf, 1763 [MASTER_MDP_PORT0] = &mas_qxm_mdp0, 1764 [MASTER_MDP_PORT1] = &mas_qxm_mdp1, 1765 [MASTER_ROTATOR] = &mas_qxm_rot, 1766 [MASTER_VIDEO_P0] = &mas_qxm_venus0, 1767 [MASTER_VIDEO_P1] = &mas_qxm_venus1, 1768 [MASTER_VIDEO_PROC] = &mas_qxm_venus_arm9, 1769 [SLAVE_MNOC_SF_MEM_NOC] = &slv_qns2_mem_noc, 1770 [SLAVE_MNOC_HF_MEM_NOC] = &slv_qns_mem_noc_hf, 1771 [SLAVE_SERVICE_MNOC] = &slv_srvc_mnoc, 1772}; 1773 1774static struct qcom_icc_node * const system_noc_nodes[] = { 1775 [MASTER_SNOC_CFG] = &mas_qhm_snoc_cfg, 1776 [A1NOC_SNOC_MAS] = &mas_qnm_aggre1_noc, 1777 [A2NOC_SNOC_MAS] = &mas_qnm_aggre2_noc, 1778 [MASTER_GEM_NOC_SNOC] = &mas_qnm_gemnoc, 1779 [MASTER_PIMEM] = &mas_qxm_pimem, 1780 [MASTER_GIC] = &mas_xm_gic, 1781 [SLAVE_APPSS] = &slv_qhs_apss, 1782 [SNOC_CNOC_SLV] = &slv_qns_cnoc, 1783 [SLAVE_SNOC_GEM_NOC_GC] = &slv_qns_gemnoc_gc, 1784 [SLAVE_SNOC_GEM_NOC_SF] = &slv_qns_gemnoc_sf, 1785 [SLAVE_OCIMEM] = &slv_qxs_imem, 1786 [SLAVE_PIMEM] = &slv_qxs_pimem, 1787 [SLAVE_SERVICE_SNOC] = &slv_srvc_snoc, 1788 [SLAVE_QDSS_STM] = &slv_xs_qdss_stm, 1789 [SLAVE_TCU] = &slv_xs_sys_tcu_cfg, 1790}; 1791 1792static const struct qcom_icc_desc sc8180x_aggre1_noc = { 1793 .nodes = aggre1_noc_nodes, 1794 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1795 .bcms = aggre1_noc_bcms, 1796 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1797}; 1798 1799static const struct qcom_icc_desc sc8180x_aggre2_noc = { 1800 .nodes = aggre2_noc_nodes, 1801 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1802 .bcms = aggre2_noc_bcms, 1803 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1804}; 1805 1806static const struct qcom_icc_desc sc8180x_camnoc_virt = { 1807 .nodes = camnoc_virt_nodes, 1808 .num_nodes = ARRAY_SIZE(camnoc_virt_nodes), 1809 .bcms = camnoc_virt_bcms, 1810 .num_bcms = ARRAY_SIZE(camnoc_virt_bcms), 1811}; 1812 1813static const struct qcom_icc_desc sc8180x_compute_noc = { 1814 .nodes = compute_noc_nodes, 1815 .num_nodes = ARRAY_SIZE(compute_noc_nodes), 1816 .bcms = compute_noc_bcms, 1817 .num_bcms = ARRAY_SIZE(compute_noc_bcms), 1818}; 1819 1820static const struct qcom_icc_desc sc8180x_config_noc = { 1821 .nodes = config_noc_nodes, 1822 .num_nodes = ARRAY_SIZE(config_noc_nodes), 1823 .bcms = config_noc_bcms, 1824 .num_bcms = ARRAY_SIZE(config_noc_bcms), 1825}; 1826 1827static const struct qcom_icc_desc sc8180x_dc_noc = { 1828 .nodes = dc_noc_nodes, 1829 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 1830}; 1831 1832static const struct qcom_icc_desc sc8180x_gem_noc = { 1833 .nodes = gem_noc_nodes, 1834 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1835 .bcms = gem_noc_bcms, 1836 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1837}; 1838 1839static const struct qcom_icc_desc sc8180x_mc_virt = { 1840 .nodes = mc_virt_nodes, 1841 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1842 .bcms = mc_virt_bcms, 1843 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1844}; 1845 1846static const struct qcom_icc_desc sc8180x_mmss_noc = { 1847 .nodes = mmss_noc_nodes, 1848 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1849 .bcms = mmss_noc_bcms, 1850 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1851}; 1852 1853static const struct qcom_icc_desc sc8180x_system_noc = { 1854 .nodes = system_noc_nodes, 1855 .num_nodes = ARRAY_SIZE(system_noc_nodes), 1856 .bcms = system_noc_bcms, 1857 .num_bcms = ARRAY_SIZE(system_noc_bcms), 1858}; 1859 1860static struct qcom_icc_bcm * const qup_virt_bcms[] = { 1861 &bcm_qup0, 1862}; 1863 1864static struct qcom_icc_node * const qup_virt_nodes[] = { 1865 [MASTER_QUP_CORE_0] = &mas_qup_core_0, 1866 [MASTER_QUP_CORE_1] = &mas_qup_core_1, 1867 [MASTER_QUP_CORE_2] = &mas_qup_core_2, 1868 [SLAVE_QUP_CORE_0] = &slv_qup_core_0, 1869 [SLAVE_QUP_CORE_1] = &slv_qup_core_1, 1870 [SLAVE_QUP_CORE_2] = &slv_qup_core_2, 1871}; 1872 1873static const struct qcom_icc_desc sc8180x_qup_virt = { 1874 .nodes = qup_virt_nodes, 1875 .num_nodes = ARRAY_SIZE(qup_virt_nodes), 1876 .bcms = qup_virt_bcms, 1877 .num_bcms = ARRAY_SIZE(qup_virt_bcms), 1878}; 1879 1880static const struct of_device_id qnoc_of_match[] = { 1881 { .compatible = "qcom,sc8180x-aggre1-noc", .data = &sc8180x_aggre1_noc }, 1882 { .compatible = "qcom,sc8180x-aggre2-noc", .data = &sc8180x_aggre2_noc }, 1883 { .compatible = "qcom,sc8180x-camnoc-virt", .data = &sc8180x_camnoc_virt }, 1884 { .compatible = "qcom,sc8180x-compute-noc", .data = &sc8180x_compute_noc, }, 1885 { .compatible = "qcom,sc8180x-config-noc", .data = &sc8180x_config_noc }, 1886 { .compatible = "qcom,sc8180x-dc-noc", .data = &sc8180x_dc_noc }, 1887 { .compatible = "qcom,sc8180x-gem-noc", .data = &sc8180x_gem_noc }, 1888 { .compatible = "qcom,sc8180x-mc-virt", .data = &sc8180x_mc_virt }, 1889 { .compatible = "qcom,sc8180x-mmss-noc", .data = &sc8180x_mmss_noc }, 1890 { .compatible = "qcom,sc8180x-qup-virt", .data = &sc8180x_qup_virt }, 1891 { .compatible = "qcom,sc8180x-system-noc", .data = &sc8180x_system_noc }, 1892 { } 1893}; 1894MODULE_DEVICE_TABLE(of, qnoc_of_match); 1895 1896static struct platform_driver qnoc_driver = { 1897 .probe = qcom_icc_rpmh_probe, 1898 .remove = qcom_icc_rpmh_remove, 1899 .driver = { 1900 .name = "qnoc-sc8180x", 1901 .of_match_table = qnoc_of_match, 1902 .sync_state = icc_sync_state, 1903 }, 1904}; 1905module_platform_driver(qnoc_driver); 1906 1907MODULE_DESCRIPTION("Qualcomm sc8180x NoC driver"); 1908MODULE_LICENSE("GPL v2");