17e438e18SRichard Acayan // SPDX-License-Identifier: GPL-2.0-only 27e438e18SRichard Acayan /* 37e438e18SRichard Acayan * Copyright (c) 2022, The Linux Foundation. All rights reserved. 47e438e18SRichard Acayan */ 57e438e18SRichard Acayan 67e438e18SRichard Acayan #include <linux/device.h> 77e438e18SRichard Acayan #include <linux/interconnect.h> 87e438e18SRichard Acayan #include <linux/interconnect-provider.h> 9cff66aceSRob Herring #include <linux/mod_devicetable.h> 107e438e18SRichard Acayan #include <linux/module.h> 11cff66aceSRob Herring #include <linux/platform_device.h> 127e438e18SRichard Acayan #include <dt-bindings/interconnect/qcom,sdm670-rpmh.h> 137e438e18SRichard Acayan 147e438e18SRichard Acayan #include "bcm-voter.h" 157e438e18SRichard Acayan #include "icc-rpmh.h" 167e438e18SRichard Acayan #include "sdm670.h" 177e438e18SRichard Acayan 1899cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_a1noc_cfg = { 1999cb3e80SKonrad Dybcio .name = "qhm_a1noc_cfg", 2099cb3e80SKonrad Dybcio .id = SDM670_MASTER_A1NOC_CFG, 2199cb3e80SKonrad Dybcio .channels = 1, 2299cb3e80SKonrad Dybcio .buswidth = 4, 2399cb3e80SKonrad Dybcio .num_links = 1, 2499cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_A1NOC }, 2599cb3e80SKonrad Dybcio }; 2699cb3e80SKonrad Dybcio 2799cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_qup1 = { 2899cb3e80SKonrad Dybcio .name = "qhm_qup1", 2999cb3e80SKonrad Dybcio .id = SDM670_MASTER_BLSP_1, 3099cb3e80SKonrad Dybcio .channels = 1, 3199cb3e80SKonrad Dybcio .buswidth = 4, 3299cb3e80SKonrad Dybcio .num_links = 1, 3399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 3499cb3e80SKonrad Dybcio }; 3599cb3e80SKonrad Dybcio 3699cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_tsif = { 3799cb3e80SKonrad Dybcio .name = "qhm_tsif", 3899cb3e80SKonrad Dybcio .id = SDM670_MASTER_TSIF, 3999cb3e80SKonrad Dybcio .channels = 1, 4099cb3e80SKonrad Dybcio .buswidth = 4, 4199cb3e80SKonrad Dybcio .num_links = 1, 4299cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 4399cb3e80SKonrad Dybcio }; 4499cb3e80SKonrad Dybcio 4599cb3e80SKonrad Dybcio static struct qcom_icc_node xm_emmc = { 4699cb3e80SKonrad Dybcio .name = "xm_emmc", 4799cb3e80SKonrad Dybcio .id = SDM670_MASTER_EMMC, 4899cb3e80SKonrad Dybcio .channels = 1, 4999cb3e80SKonrad Dybcio .buswidth = 8, 5099cb3e80SKonrad Dybcio .num_links = 1, 5199cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 5299cb3e80SKonrad Dybcio }; 5399cb3e80SKonrad Dybcio 5499cb3e80SKonrad Dybcio static struct qcom_icc_node xm_sdc2 = { 5599cb3e80SKonrad Dybcio .name = "xm_sdc2", 5699cb3e80SKonrad Dybcio .id = SDM670_MASTER_SDCC_2, 5799cb3e80SKonrad Dybcio .channels = 1, 5899cb3e80SKonrad Dybcio .buswidth = 8, 5999cb3e80SKonrad Dybcio .num_links = 1, 6099cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 6199cb3e80SKonrad Dybcio }; 6299cb3e80SKonrad Dybcio 6399cb3e80SKonrad Dybcio static struct qcom_icc_node xm_sdc4 = { 6499cb3e80SKonrad Dybcio .name = "xm_sdc4", 6599cb3e80SKonrad Dybcio .id = SDM670_MASTER_SDCC_4, 6699cb3e80SKonrad Dybcio .channels = 1, 6799cb3e80SKonrad Dybcio .buswidth = 8, 6899cb3e80SKonrad Dybcio .num_links = 1, 6999cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 7099cb3e80SKonrad Dybcio }; 7199cb3e80SKonrad Dybcio 7299cb3e80SKonrad Dybcio static struct qcom_icc_node xm_ufs_mem = { 7399cb3e80SKonrad Dybcio .name = "xm_ufs_mem", 7499cb3e80SKonrad Dybcio .id = SDM670_MASTER_UFS_MEM, 7599cb3e80SKonrad Dybcio .channels = 1, 7699cb3e80SKonrad Dybcio .buswidth = 8, 7799cb3e80SKonrad Dybcio .num_links = 1, 7899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A1NOC_SNOC }, 7999cb3e80SKonrad Dybcio }; 8099cb3e80SKonrad Dybcio 8199cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_a2noc_cfg = { 8299cb3e80SKonrad Dybcio .name = "qhm_a2noc_cfg", 8399cb3e80SKonrad Dybcio .id = SDM670_MASTER_A2NOC_CFG, 8499cb3e80SKonrad Dybcio .channels = 1, 8599cb3e80SKonrad Dybcio .buswidth = 4, 8699cb3e80SKonrad Dybcio .num_links = 1, 8799cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_A2NOC }, 8899cb3e80SKonrad Dybcio }; 8999cb3e80SKonrad Dybcio 9099cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_qdss_bam = { 9199cb3e80SKonrad Dybcio .name = "qhm_qdss_bam", 9299cb3e80SKonrad Dybcio .id = SDM670_MASTER_QDSS_BAM, 9399cb3e80SKonrad Dybcio .channels = 1, 9499cb3e80SKonrad Dybcio .buswidth = 4, 9599cb3e80SKonrad Dybcio .num_links = 1, 9699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 9799cb3e80SKonrad Dybcio }; 9899cb3e80SKonrad Dybcio 9999cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_qup2 = { 10099cb3e80SKonrad Dybcio .name = "qhm_qup2", 10199cb3e80SKonrad Dybcio .id = SDM670_MASTER_BLSP_2, 10299cb3e80SKonrad Dybcio .channels = 1, 10399cb3e80SKonrad Dybcio .buswidth = 4, 10499cb3e80SKonrad Dybcio .num_links = 1, 10599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 10699cb3e80SKonrad Dybcio }; 10799cb3e80SKonrad Dybcio 10899cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_cnoc = { 10999cb3e80SKonrad Dybcio .name = "qnm_cnoc", 11099cb3e80SKonrad Dybcio .id = SDM670_MASTER_CNOC_A2NOC, 11199cb3e80SKonrad Dybcio .channels = 1, 11299cb3e80SKonrad Dybcio .buswidth = 8, 11399cb3e80SKonrad Dybcio .num_links = 1, 11499cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 11599cb3e80SKonrad Dybcio }; 11699cb3e80SKonrad Dybcio 11799cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_crypto = { 11899cb3e80SKonrad Dybcio .name = "qxm_crypto", 11999cb3e80SKonrad Dybcio .id = SDM670_MASTER_CRYPTO_CORE_0, 12099cb3e80SKonrad Dybcio .channels = 1, 12199cb3e80SKonrad Dybcio .buswidth = 8, 12299cb3e80SKonrad Dybcio .num_links = 1, 12399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 12499cb3e80SKonrad Dybcio }; 12599cb3e80SKonrad Dybcio 12699cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_ipa = { 12799cb3e80SKonrad Dybcio .name = "qxm_ipa", 12899cb3e80SKonrad Dybcio .id = SDM670_MASTER_IPA, 12999cb3e80SKonrad Dybcio .channels = 1, 13099cb3e80SKonrad Dybcio .buswidth = 8, 13199cb3e80SKonrad Dybcio .num_links = 1, 13299cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 13399cb3e80SKonrad Dybcio }; 13499cb3e80SKonrad Dybcio 13599cb3e80SKonrad Dybcio static struct qcom_icc_node xm_qdss_etr = { 13699cb3e80SKonrad Dybcio .name = "xm_qdss_etr", 13799cb3e80SKonrad Dybcio .id = SDM670_MASTER_QDSS_ETR, 13899cb3e80SKonrad Dybcio .channels = 1, 13999cb3e80SKonrad Dybcio .buswidth = 8, 14099cb3e80SKonrad Dybcio .num_links = 1, 14199cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 14299cb3e80SKonrad Dybcio }; 14399cb3e80SKonrad Dybcio 14499cb3e80SKonrad Dybcio static struct qcom_icc_node xm_usb3_0 = { 14599cb3e80SKonrad Dybcio .name = "xm_usb3_0", 14699cb3e80SKonrad Dybcio .id = SDM670_MASTER_USB3, 14799cb3e80SKonrad Dybcio .channels = 1, 14899cb3e80SKonrad Dybcio .buswidth = 8, 14999cb3e80SKonrad Dybcio .num_links = 1, 15099cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_A2NOC_SNOC }, 15199cb3e80SKonrad Dybcio }; 15299cb3e80SKonrad Dybcio 15399cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_hf0_uncomp = { 15499cb3e80SKonrad Dybcio .name = "qxm_camnoc_hf0_uncomp", 15599cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_HF0_UNCOMP, 15699cb3e80SKonrad Dybcio .channels = 1, 15799cb3e80SKonrad Dybcio .buswidth = 32, 15899cb3e80SKonrad Dybcio .num_links = 1, 15999cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_CAMNOC_UNCOMP }, 16099cb3e80SKonrad Dybcio }; 16199cb3e80SKonrad Dybcio 16299cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_hf1_uncomp = { 16399cb3e80SKonrad Dybcio .name = "qxm_camnoc_hf1_uncomp", 16499cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_HF1_UNCOMP, 16599cb3e80SKonrad Dybcio .channels = 1, 16699cb3e80SKonrad Dybcio .buswidth = 32, 16799cb3e80SKonrad Dybcio .num_links = 1, 16899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_CAMNOC_UNCOMP }, 16999cb3e80SKonrad Dybcio }; 17099cb3e80SKonrad Dybcio 17199cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_sf_uncomp = { 17299cb3e80SKonrad Dybcio .name = "qxm_camnoc_sf_uncomp", 17399cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_SF_UNCOMP, 17499cb3e80SKonrad Dybcio .channels = 1, 17599cb3e80SKonrad Dybcio .buswidth = 32, 17699cb3e80SKonrad Dybcio .num_links = 1, 17799cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_CAMNOC_UNCOMP }, 17899cb3e80SKonrad Dybcio }; 17999cb3e80SKonrad Dybcio 18099cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_spdm = { 18199cb3e80SKonrad Dybcio .name = "qhm_spdm", 18299cb3e80SKonrad Dybcio .id = SDM670_MASTER_SPDM, 18399cb3e80SKonrad Dybcio .channels = 1, 18499cb3e80SKonrad Dybcio .buswidth = 4, 18599cb3e80SKonrad Dybcio .num_links = 1, 18699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_CNOC_A2NOC }, 18799cb3e80SKonrad Dybcio }; 18899cb3e80SKonrad Dybcio 18999cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_snoc = { 19099cb3e80SKonrad Dybcio .name = "qnm_snoc", 19199cb3e80SKonrad Dybcio .id = SDM670_MASTER_SNOC_CNOC, 19299cb3e80SKonrad Dybcio .channels = 1, 19399cb3e80SKonrad Dybcio .buswidth = 8, 19499cb3e80SKonrad Dybcio .num_links = 38, 19599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_TLMM_SOUTH, 19699cb3e80SKonrad Dybcio SDM670_SLAVE_CAMERA_CFG, 19799cb3e80SKonrad Dybcio SDM670_SLAVE_SDCC_4, 19899cb3e80SKonrad Dybcio SDM670_SLAVE_SDCC_2, 19999cb3e80SKonrad Dybcio SDM670_SLAVE_CNOC_MNOC_CFG, 20099cb3e80SKonrad Dybcio SDM670_SLAVE_UFS_MEM_CFG, 20199cb3e80SKonrad Dybcio SDM670_SLAVE_GLM, 20299cb3e80SKonrad Dybcio SDM670_SLAVE_PDM, 20399cb3e80SKonrad Dybcio SDM670_SLAVE_A2NOC_CFG, 20499cb3e80SKonrad Dybcio SDM670_SLAVE_QDSS_CFG, 20599cb3e80SKonrad Dybcio SDM670_SLAVE_DISPLAY_CFG, 20699cb3e80SKonrad Dybcio SDM670_SLAVE_TCSR, 20799cb3e80SKonrad Dybcio SDM670_SLAVE_DCC_CFG, 20899cb3e80SKonrad Dybcio SDM670_SLAVE_CNOC_DDRSS, 20999cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_CFG, 21099cb3e80SKonrad Dybcio SDM670_SLAVE_SOUTH_PHY_CFG, 21199cb3e80SKonrad Dybcio SDM670_SLAVE_GRAPHICS_3D_CFG, 21299cb3e80SKonrad Dybcio SDM670_SLAVE_VENUS_CFG, 21399cb3e80SKonrad Dybcio SDM670_SLAVE_TSIF, 21499cb3e80SKonrad Dybcio SDM670_SLAVE_CDSP_CFG, 21599cb3e80SKonrad Dybcio SDM670_SLAVE_AOP, 21699cb3e80SKonrad Dybcio SDM670_SLAVE_BLSP_2, 21799cb3e80SKonrad Dybcio SDM670_SLAVE_SERVICE_CNOC, 21899cb3e80SKonrad Dybcio SDM670_SLAVE_USB3, 21999cb3e80SKonrad Dybcio SDM670_SLAVE_IPA_CFG, 22099cb3e80SKonrad Dybcio SDM670_SLAVE_RBCPR_CX_CFG, 22199cb3e80SKonrad Dybcio SDM670_SLAVE_A1NOC_CFG, 22299cb3e80SKonrad Dybcio SDM670_SLAVE_AOSS, 22399cb3e80SKonrad Dybcio SDM670_SLAVE_PRNG, 22499cb3e80SKonrad Dybcio SDM670_SLAVE_VSENSE_CTRL_CFG, 22599cb3e80SKonrad Dybcio SDM670_SLAVE_EMMC_CFG, 22699cb3e80SKonrad Dybcio SDM670_SLAVE_BLSP_1, 22799cb3e80SKonrad Dybcio SDM670_SLAVE_SPDM_WRAPPER, 22899cb3e80SKonrad Dybcio SDM670_SLAVE_CRYPTO_0_CFG, 22999cb3e80SKonrad Dybcio SDM670_SLAVE_PIMEM_CFG, 23099cb3e80SKonrad Dybcio SDM670_SLAVE_TLMM_NORTH, 23199cb3e80SKonrad Dybcio SDM670_SLAVE_CLK_CTL, 23299cb3e80SKonrad Dybcio SDM670_SLAVE_IMEM_CFG 23399cb3e80SKonrad Dybcio }, 23499cb3e80SKonrad Dybcio }; 23599cb3e80SKonrad Dybcio 23699cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_cnoc = { 23799cb3e80SKonrad Dybcio .name = "qhm_cnoc", 23899cb3e80SKonrad Dybcio .id = SDM670_MASTER_CNOC_DC_NOC, 23999cb3e80SKonrad Dybcio .channels = 1, 24099cb3e80SKonrad Dybcio .buswidth = 4, 24199cb3e80SKonrad Dybcio .num_links = 2, 24299cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MEM_NOC_CFG, 24399cb3e80SKonrad Dybcio SDM670_SLAVE_LLCC_CFG 24499cb3e80SKonrad Dybcio }, 24599cb3e80SKonrad Dybcio }; 24699cb3e80SKonrad Dybcio 24799cb3e80SKonrad Dybcio static struct qcom_icc_node acm_l3 = { 24899cb3e80SKonrad Dybcio .name = "acm_l3", 24999cb3e80SKonrad Dybcio .id = SDM670_MASTER_AMPSS_M0, 25099cb3e80SKonrad Dybcio .channels = 1, 25199cb3e80SKonrad Dybcio .buswidth = 16, 25299cb3e80SKonrad Dybcio .num_links = 3, 25399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_GNOC, 25499cb3e80SKonrad Dybcio SDM670_SLAVE_GNOC_SNOC, 25599cb3e80SKonrad Dybcio SDM670_SLAVE_GNOC_MEM_NOC 25699cb3e80SKonrad Dybcio }, 25799cb3e80SKonrad Dybcio }; 25899cb3e80SKonrad Dybcio 25999cb3e80SKonrad Dybcio static struct qcom_icc_node pm_gnoc_cfg = { 26099cb3e80SKonrad Dybcio .name = "pm_gnoc_cfg", 26199cb3e80SKonrad Dybcio .id = SDM670_MASTER_GNOC_CFG, 26299cb3e80SKonrad Dybcio .channels = 1, 26399cb3e80SKonrad Dybcio .buswidth = 4, 26499cb3e80SKonrad Dybcio .num_links = 1, 26599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_GNOC }, 26699cb3e80SKonrad Dybcio }; 26799cb3e80SKonrad Dybcio 26899cb3e80SKonrad Dybcio static struct qcom_icc_node llcc_mc = { 26999cb3e80SKonrad Dybcio .name = "llcc_mc", 27099cb3e80SKonrad Dybcio .id = SDM670_MASTER_LLCC, 27199cb3e80SKonrad Dybcio .channels = 2, 27299cb3e80SKonrad Dybcio .buswidth = 4, 27399cb3e80SKonrad Dybcio .num_links = 1, 27499cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_EBI_CH0 }, 27599cb3e80SKonrad Dybcio }; 27699cb3e80SKonrad Dybcio 27799cb3e80SKonrad Dybcio static struct qcom_icc_node acm_tcu = { 27899cb3e80SKonrad Dybcio .name = "acm_tcu", 27999cb3e80SKonrad Dybcio .id = SDM670_MASTER_TCU_0, 28099cb3e80SKonrad Dybcio .channels = 1, 28199cb3e80SKonrad Dybcio .buswidth = 8, 28299cb3e80SKonrad Dybcio .num_links = 3, 28399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MEM_NOC_GNOC, 28499cb3e80SKonrad Dybcio SDM670_SLAVE_LLCC, 28599cb3e80SKonrad Dybcio SDM670_SLAVE_MEM_NOC_SNOC 28699cb3e80SKonrad Dybcio }, 28799cb3e80SKonrad Dybcio }; 28899cb3e80SKonrad Dybcio 28999cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_memnoc_cfg = { 29099cb3e80SKonrad Dybcio .name = "qhm_memnoc_cfg", 29199cb3e80SKonrad Dybcio .id = SDM670_MASTER_MEM_NOC_CFG, 29299cb3e80SKonrad Dybcio .channels = 1, 29399cb3e80SKonrad Dybcio .buswidth = 4, 29499cb3e80SKonrad Dybcio .num_links = 2, 29599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_MEM_NOC, 29699cb3e80SKonrad Dybcio SDM670_SLAVE_MSS_PROC_MS_MPU_CFG 29799cb3e80SKonrad Dybcio }, 29899cb3e80SKonrad Dybcio }; 29999cb3e80SKonrad Dybcio 30099cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_apps = { 30199cb3e80SKonrad Dybcio .name = "qnm_apps", 30299cb3e80SKonrad Dybcio .id = SDM670_MASTER_GNOC_MEM_NOC, 30399cb3e80SKonrad Dybcio .channels = 2, 30499cb3e80SKonrad Dybcio .buswidth = 32, 30599cb3e80SKonrad Dybcio .num_links = 1, 30699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_LLCC }, 30799cb3e80SKonrad Dybcio }; 30899cb3e80SKonrad Dybcio 30999cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_mnoc_hf = { 31099cb3e80SKonrad Dybcio .name = "qnm_mnoc_hf", 31199cb3e80SKonrad Dybcio .id = SDM670_MASTER_MNOC_HF_MEM_NOC, 31299cb3e80SKonrad Dybcio .channels = 2, 31399cb3e80SKonrad Dybcio .buswidth = 32, 31499cb3e80SKonrad Dybcio .num_links = 1, 31599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_LLCC }, 31699cb3e80SKonrad Dybcio }; 31799cb3e80SKonrad Dybcio 31899cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_mnoc_sf = { 31999cb3e80SKonrad Dybcio .name = "qnm_mnoc_sf", 32099cb3e80SKonrad Dybcio .id = SDM670_MASTER_MNOC_SF_MEM_NOC, 32199cb3e80SKonrad Dybcio .channels = 1, 32299cb3e80SKonrad Dybcio .buswidth = 32, 32399cb3e80SKonrad Dybcio .num_links = 3, 32499cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MEM_NOC_GNOC, 32599cb3e80SKonrad Dybcio SDM670_SLAVE_LLCC, 32699cb3e80SKonrad Dybcio SDM670_SLAVE_MEM_NOC_SNOC 32799cb3e80SKonrad Dybcio }, 32899cb3e80SKonrad Dybcio }; 32999cb3e80SKonrad Dybcio 33099cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_snoc_gc = { 33199cb3e80SKonrad Dybcio .name = "qnm_snoc_gc", 33299cb3e80SKonrad Dybcio .id = SDM670_MASTER_SNOC_GC_MEM_NOC, 33399cb3e80SKonrad Dybcio .channels = 1, 33499cb3e80SKonrad Dybcio .buswidth = 8, 33599cb3e80SKonrad Dybcio .num_links = 1, 33699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_LLCC }, 33799cb3e80SKonrad Dybcio }; 33899cb3e80SKonrad Dybcio 33999cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_snoc_sf = { 34099cb3e80SKonrad Dybcio .name = "qnm_snoc_sf", 34199cb3e80SKonrad Dybcio .id = SDM670_MASTER_SNOC_SF_MEM_NOC, 34299cb3e80SKonrad Dybcio .channels = 1, 34399cb3e80SKonrad Dybcio .buswidth = 16, 34499cb3e80SKonrad Dybcio .num_links = 2, 34599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MEM_NOC_GNOC, 34699cb3e80SKonrad Dybcio SDM670_SLAVE_LLCC 34799cb3e80SKonrad Dybcio }, 34899cb3e80SKonrad Dybcio }; 34999cb3e80SKonrad Dybcio 35099cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_gpu = { 35199cb3e80SKonrad Dybcio .name = "qxm_gpu", 35299cb3e80SKonrad Dybcio .id = SDM670_MASTER_GRAPHICS_3D, 35399cb3e80SKonrad Dybcio .channels = 2, 35499cb3e80SKonrad Dybcio .buswidth = 32, 35599cb3e80SKonrad Dybcio .num_links = 3, 35699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MEM_NOC_GNOC, 35799cb3e80SKonrad Dybcio SDM670_SLAVE_LLCC, 35899cb3e80SKonrad Dybcio SDM670_SLAVE_MEM_NOC_SNOC 35999cb3e80SKonrad Dybcio }, 36099cb3e80SKonrad Dybcio }; 36199cb3e80SKonrad Dybcio 36299cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_mnoc_cfg = { 36399cb3e80SKonrad Dybcio .name = "qhm_mnoc_cfg", 36499cb3e80SKonrad Dybcio .id = SDM670_MASTER_CNOC_MNOC_CFG, 36599cb3e80SKonrad Dybcio .channels = 1, 36699cb3e80SKonrad Dybcio .buswidth = 4, 36799cb3e80SKonrad Dybcio .num_links = 1, 36899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_MNOC }, 36999cb3e80SKonrad Dybcio }; 37099cb3e80SKonrad Dybcio 37199cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_hf0 = { 37299cb3e80SKonrad Dybcio .name = "qxm_camnoc_hf0", 37399cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_HF0, 37499cb3e80SKonrad Dybcio .channels = 1, 37599cb3e80SKonrad Dybcio .buswidth = 32, 37699cb3e80SKonrad Dybcio .num_links = 1, 37799cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_HF_MEM_NOC }, 37899cb3e80SKonrad Dybcio }; 37999cb3e80SKonrad Dybcio 38099cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_hf1 = { 38199cb3e80SKonrad Dybcio .name = "qxm_camnoc_hf1", 38299cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_HF1, 38399cb3e80SKonrad Dybcio .channels = 1, 38499cb3e80SKonrad Dybcio .buswidth = 32, 38599cb3e80SKonrad Dybcio .num_links = 1, 38699cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_HF_MEM_NOC }, 38799cb3e80SKonrad Dybcio }; 38899cb3e80SKonrad Dybcio 38999cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_camnoc_sf = { 39099cb3e80SKonrad Dybcio .name = "qxm_camnoc_sf", 39199cb3e80SKonrad Dybcio .id = SDM670_MASTER_CAMNOC_SF, 39299cb3e80SKonrad Dybcio .channels = 1, 39399cb3e80SKonrad Dybcio .buswidth = 32, 39499cb3e80SKonrad Dybcio .num_links = 1, 39599cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_SF_MEM_NOC }, 39699cb3e80SKonrad Dybcio }; 39799cb3e80SKonrad Dybcio 39899cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_mdp0 = { 39999cb3e80SKonrad Dybcio .name = "qxm_mdp0", 40099cb3e80SKonrad Dybcio .id = SDM670_MASTER_MDP_PORT0, 40199cb3e80SKonrad Dybcio .channels = 1, 40299cb3e80SKonrad Dybcio .buswidth = 32, 40399cb3e80SKonrad Dybcio .num_links = 1, 40499cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_HF_MEM_NOC }, 40599cb3e80SKonrad Dybcio }; 40699cb3e80SKonrad Dybcio 40799cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_mdp1 = { 40899cb3e80SKonrad Dybcio .name = "qxm_mdp1", 40999cb3e80SKonrad Dybcio .id = SDM670_MASTER_MDP_PORT1, 41099cb3e80SKonrad Dybcio .channels = 1, 41199cb3e80SKonrad Dybcio .buswidth = 32, 41299cb3e80SKonrad Dybcio .num_links = 1, 41399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_HF_MEM_NOC }, 41499cb3e80SKonrad Dybcio }; 41599cb3e80SKonrad Dybcio 41699cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_rot = { 41799cb3e80SKonrad Dybcio .name = "qxm_rot", 41899cb3e80SKonrad Dybcio .id = SDM670_MASTER_ROTATOR, 41999cb3e80SKonrad Dybcio .channels = 1, 42099cb3e80SKonrad Dybcio .buswidth = 32, 42199cb3e80SKonrad Dybcio .num_links = 1, 42299cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_SF_MEM_NOC }, 42399cb3e80SKonrad Dybcio }; 42499cb3e80SKonrad Dybcio 42599cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_venus0 = { 42699cb3e80SKonrad Dybcio .name = "qxm_venus0", 42799cb3e80SKonrad Dybcio .id = SDM670_MASTER_VIDEO_P0, 42899cb3e80SKonrad Dybcio .channels = 1, 42999cb3e80SKonrad Dybcio .buswidth = 32, 43099cb3e80SKonrad Dybcio .num_links = 1, 43199cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_SF_MEM_NOC }, 43299cb3e80SKonrad Dybcio }; 43399cb3e80SKonrad Dybcio 43499cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_venus1 = { 43599cb3e80SKonrad Dybcio .name = "qxm_venus1", 43699cb3e80SKonrad Dybcio .id = SDM670_MASTER_VIDEO_P1, 43799cb3e80SKonrad Dybcio .channels = 1, 43899cb3e80SKonrad Dybcio .buswidth = 32, 43999cb3e80SKonrad Dybcio .num_links = 1, 44099cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_SF_MEM_NOC }, 44199cb3e80SKonrad Dybcio }; 44299cb3e80SKonrad Dybcio 44399cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_venus_arm9 = { 44499cb3e80SKonrad Dybcio .name = "qxm_venus_arm9", 44599cb3e80SKonrad Dybcio .id = SDM670_MASTER_VIDEO_PROC, 44699cb3e80SKonrad Dybcio .channels = 1, 44799cb3e80SKonrad Dybcio .buswidth = 8, 44899cb3e80SKonrad Dybcio .num_links = 1, 44999cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_MNOC_SF_MEM_NOC }, 45099cb3e80SKonrad Dybcio }; 45199cb3e80SKonrad Dybcio 45299cb3e80SKonrad Dybcio static struct qcom_icc_node qhm_snoc_cfg = { 45399cb3e80SKonrad Dybcio .name = "qhm_snoc_cfg", 45499cb3e80SKonrad Dybcio .id = SDM670_MASTER_SNOC_CFG, 45599cb3e80SKonrad Dybcio .channels = 1, 45699cb3e80SKonrad Dybcio .buswidth = 4, 45799cb3e80SKonrad Dybcio .num_links = 1, 45899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_SERVICE_SNOC }, 45999cb3e80SKonrad Dybcio }; 46099cb3e80SKonrad Dybcio 46199cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_aggre1_noc = { 46299cb3e80SKonrad Dybcio .name = "qnm_aggre1_noc", 46399cb3e80SKonrad Dybcio .id = SDM670_MASTER_A1NOC_SNOC, 46499cb3e80SKonrad Dybcio .channels = 1, 46599cb3e80SKonrad Dybcio .buswidth = 16, 46699cb3e80SKonrad Dybcio .num_links = 6, 46799cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_PIMEM, 46899cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_MEM_NOC_SF, 46999cb3e80SKonrad Dybcio SDM670_SLAVE_OCIMEM, 47099cb3e80SKonrad Dybcio SDM670_SLAVE_APPSS, 47199cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_CNOC, 47299cb3e80SKonrad Dybcio SDM670_SLAVE_QDSS_STM 47399cb3e80SKonrad Dybcio }, 47499cb3e80SKonrad Dybcio }; 47599cb3e80SKonrad Dybcio 47699cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_aggre2_noc = { 47799cb3e80SKonrad Dybcio .name = "qnm_aggre2_noc", 47899cb3e80SKonrad Dybcio .id = SDM670_MASTER_A2NOC_SNOC, 47999cb3e80SKonrad Dybcio .channels = 1, 48099cb3e80SKonrad Dybcio .buswidth = 16, 48199cb3e80SKonrad Dybcio .num_links = 7, 48299cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_PIMEM, 48399cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_MEM_NOC_SF, 48499cb3e80SKonrad Dybcio SDM670_SLAVE_OCIMEM, 48599cb3e80SKonrad Dybcio SDM670_SLAVE_APPSS, 48699cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_CNOC, 48799cb3e80SKonrad Dybcio SDM670_SLAVE_TCU, 48899cb3e80SKonrad Dybcio SDM670_SLAVE_QDSS_STM 48999cb3e80SKonrad Dybcio }, 49099cb3e80SKonrad Dybcio }; 49199cb3e80SKonrad Dybcio 49299cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_gladiator_sodv = { 49399cb3e80SKonrad Dybcio .name = "qnm_gladiator_sodv", 49499cb3e80SKonrad Dybcio .id = SDM670_MASTER_GNOC_SNOC, 49599cb3e80SKonrad Dybcio .channels = 1, 49699cb3e80SKonrad Dybcio .buswidth = 8, 49799cb3e80SKonrad Dybcio .num_links = 6, 49899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_PIMEM, 49999cb3e80SKonrad Dybcio SDM670_SLAVE_OCIMEM, 50099cb3e80SKonrad Dybcio SDM670_SLAVE_APPSS, 50199cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_CNOC, 50299cb3e80SKonrad Dybcio SDM670_SLAVE_TCU, 50399cb3e80SKonrad Dybcio SDM670_SLAVE_QDSS_STM 50499cb3e80SKonrad Dybcio }, 50599cb3e80SKonrad Dybcio }; 50699cb3e80SKonrad Dybcio 50799cb3e80SKonrad Dybcio static struct qcom_icc_node qnm_memnoc = { 50899cb3e80SKonrad Dybcio .name = "qnm_memnoc", 50999cb3e80SKonrad Dybcio .id = SDM670_MASTER_MEM_NOC_SNOC, 51099cb3e80SKonrad Dybcio .channels = 1, 51199cb3e80SKonrad Dybcio .buswidth = 8, 51299cb3e80SKonrad Dybcio .num_links = 5, 51399cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_OCIMEM, 51499cb3e80SKonrad Dybcio SDM670_SLAVE_APPSS, 51599cb3e80SKonrad Dybcio SDM670_SLAVE_PIMEM, 51699cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_CNOC, 51799cb3e80SKonrad Dybcio SDM670_SLAVE_QDSS_STM 51899cb3e80SKonrad Dybcio }, 51999cb3e80SKonrad Dybcio }; 52099cb3e80SKonrad Dybcio 52199cb3e80SKonrad Dybcio static struct qcom_icc_node qxm_pimem = { 52299cb3e80SKonrad Dybcio .name = "qxm_pimem", 52399cb3e80SKonrad Dybcio .id = SDM670_MASTER_PIMEM, 52499cb3e80SKonrad Dybcio .channels = 1, 52599cb3e80SKonrad Dybcio .buswidth = 8, 52699cb3e80SKonrad Dybcio .num_links = 2, 52799cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_OCIMEM, 52899cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_MEM_NOC_GC 52999cb3e80SKonrad Dybcio }, 53099cb3e80SKonrad Dybcio }; 53199cb3e80SKonrad Dybcio 53299cb3e80SKonrad Dybcio static struct qcom_icc_node xm_gic = { 53399cb3e80SKonrad Dybcio .name = "xm_gic", 53499cb3e80SKonrad Dybcio .id = SDM670_MASTER_GIC, 53599cb3e80SKonrad Dybcio .channels = 1, 53699cb3e80SKonrad Dybcio .buswidth = 8, 53799cb3e80SKonrad Dybcio .num_links = 2, 53899cb3e80SKonrad Dybcio .links = { SDM670_SLAVE_OCIMEM, 53999cb3e80SKonrad Dybcio SDM670_SLAVE_SNOC_MEM_NOC_GC 54099cb3e80SKonrad Dybcio }, 54199cb3e80SKonrad Dybcio }; 54299cb3e80SKonrad Dybcio 54399cb3e80SKonrad Dybcio static struct qcom_icc_node qns_a1noc_snoc = { 54499cb3e80SKonrad Dybcio .name = "qns_a1noc_snoc", 54599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_A1NOC_SNOC, 54699cb3e80SKonrad Dybcio .channels = 1, 54799cb3e80SKonrad Dybcio .buswidth = 16, 54899cb3e80SKonrad Dybcio .num_links = 1, 54999cb3e80SKonrad Dybcio .links = { SDM670_MASTER_A1NOC_SNOC }, 55099cb3e80SKonrad Dybcio }; 55199cb3e80SKonrad Dybcio 55299cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_aggre1_noc = { 55399cb3e80SKonrad Dybcio .name = "srvc_aggre1_noc", 55499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_A1NOC, 55599cb3e80SKonrad Dybcio .channels = 1, 55699cb3e80SKonrad Dybcio .buswidth = 4, 55799cb3e80SKonrad Dybcio }; 55899cb3e80SKonrad Dybcio 55999cb3e80SKonrad Dybcio static struct qcom_icc_node qns_a2noc_snoc = { 56099cb3e80SKonrad Dybcio .name = "qns_a2noc_snoc", 56199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_A2NOC_SNOC, 56299cb3e80SKonrad Dybcio .channels = 1, 56399cb3e80SKonrad Dybcio .buswidth = 16, 56499cb3e80SKonrad Dybcio .num_links = 1, 56599cb3e80SKonrad Dybcio .links = { SDM670_MASTER_A2NOC_SNOC }, 56699cb3e80SKonrad Dybcio }; 56799cb3e80SKonrad Dybcio 56899cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_aggre2_noc = { 56999cb3e80SKonrad Dybcio .name = "srvc_aggre2_noc", 57099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_A2NOC, 57199cb3e80SKonrad Dybcio .channels = 1, 57299cb3e80SKonrad Dybcio .buswidth = 4, 57399cb3e80SKonrad Dybcio }; 57499cb3e80SKonrad Dybcio 57599cb3e80SKonrad Dybcio static struct qcom_icc_node qns_camnoc_uncomp = { 57699cb3e80SKonrad Dybcio .name = "qns_camnoc_uncomp", 57799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CAMNOC_UNCOMP, 57899cb3e80SKonrad Dybcio .channels = 1, 57999cb3e80SKonrad Dybcio .buswidth = 32, 58099cb3e80SKonrad Dybcio }; 58199cb3e80SKonrad Dybcio 58299cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_a1_noc_cfg = { 58399cb3e80SKonrad Dybcio .name = "qhs_a1_noc_cfg", 58499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_A1NOC_CFG, 58599cb3e80SKonrad Dybcio .channels = 1, 58699cb3e80SKonrad Dybcio .buswidth = 4, 58799cb3e80SKonrad Dybcio .num_links = 1, 58899cb3e80SKonrad Dybcio .links = { SDM670_MASTER_A1NOC_CFG }, 58999cb3e80SKonrad Dybcio }; 59099cb3e80SKonrad Dybcio 59199cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_a2_noc_cfg = { 59299cb3e80SKonrad Dybcio .name = "qhs_a2_noc_cfg", 59399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_A2NOC_CFG, 59499cb3e80SKonrad Dybcio .channels = 1, 59599cb3e80SKonrad Dybcio .buswidth = 4, 59699cb3e80SKonrad Dybcio .num_links = 1, 59799cb3e80SKonrad Dybcio .links = { SDM670_MASTER_A2NOC_CFG }, 59899cb3e80SKonrad Dybcio }; 59999cb3e80SKonrad Dybcio 60099cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_aop = { 60199cb3e80SKonrad Dybcio .name = "qhs_aop", 60299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_AOP, 60399cb3e80SKonrad Dybcio .channels = 1, 60499cb3e80SKonrad Dybcio .buswidth = 4, 60599cb3e80SKonrad Dybcio }; 60699cb3e80SKonrad Dybcio 60799cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_aoss = { 60899cb3e80SKonrad Dybcio .name = "qhs_aoss", 60999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_AOSS, 61099cb3e80SKonrad Dybcio .channels = 1, 61199cb3e80SKonrad Dybcio .buswidth = 4, 61299cb3e80SKonrad Dybcio }; 61399cb3e80SKonrad Dybcio 61499cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_camera_cfg = { 61599cb3e80SKonrad Dybcio .name = "qhs_camera_cfg", 61699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CAMERA_CFG, 61799cb3e80SKonrad Dybcio .channels = 1, 61899cb3e80SKonrad Dybcio .buswidth = 4, 61999cb3e80SKonrad Dybcio }; 62099cb3e80SKonrad Dybcio 62199cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_clk_ctl = { 62299cb3e80SKonrad Dybcio .name = "qhs_clk_ctl", 62399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CLK_CTL, 62499cb3e80SKonrad Dybcio .channels = 1, 62599cb3e80SKonrad Dybcio .buswidth = 4, 62699cb3e80SKonrad Dybcio }; 62799cb3e80SKonrad Dybcio 62899cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_compute_dsp_cfg = { 62999cb3e80SKonrad Dybcio .name = "qhs_compute_dsp_cfg", 63099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CDSP_CFG, 63199cb3e80SKonrad Dybcio .channels = 1, 63299cb3e80SKonrad Dybcio .buswidth = 4, 63399cb3e80SKonrad Dybcio }; 63499cb3e80SKonrad Dybcio 63599cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_cpr_cx = { 63699cb3e80SKonrad Dybcio .name = "qhs_cpr_cx", 63799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_RBCPR_CX_CFG, 63899cb3e80SKonrad Dybcio .channels = 1, 63999cb3e80SKonrad Dybcio .buswidth = 4, 64099cb3e80SKonrad Dybcio }; 64199cb3e80SKonrad Dybcio 64299cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_crypto0_cfg = { 64399cb3e80SKonrad Dybcio .name = "qhs_crypto0_cfg", 64499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CRYPTO_0_CFG, 64599cb3e80SKonrad Dybcio .channels = 1, 64699cb3e80SKonrad Dybcio .buswidth = 4, 64799cb3e80SKonrad Dybcio }; 64899cb3e80SKonrad Dybcio 64999cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_dcc_cfg = { 65099cb3e80SKonrad Dybcio .name = "qhs_dcc_cfg", 65199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_DCC_CFG, 65299cb3e80SKonrad Dybcio .channels = 1, 65399cb3e80SKonrad Dybcio .buswidth = 4, 65499cb3e80SKonrad Dybcio .num_links = 1, 65599cb3e80SKonrad Dybcio .links = { SDM670_MASTER_CNOC_DC_NOC }, 65699cb3e80SKonrad Dybcio }; 65799cb3e80SKonrad Dybcio 65899cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_ddrss_cfg = { 65999cb3e80SKonrad Dybcio .name = "qhs_ddrss_cfg", 66099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CNOC_DDRSS, 66199cb3e80SKonrad Dybcio .channels = 1, 66299cb3e80SKonrad Dybcio .buswidth = 4, 66399cb3e80SKonrad Dybcio }; 66499cb3e80SKonrad Dybcio 66599cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_display_cfg = { 66699cb3e80SKonrad Dybcio .name = "qhs_display_cfg", 66799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_DISPLAY_CFG, 66899cb3e80SKonrad Dybcio .channels = 1, 66999cb3e80SKonrad Dybcio .buswidth = 4, 67099cb3e80SKonrad Dybcio }; 67199cb3e80SKonrad Dybcio 67299cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_emmc_cfg = { 67399cb3e80SKonrad Dybcio .name = "qhs_emmc_cfg", 67499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_EMMC_CFG, 67599cb3e80SKonrad Dybcio .channels = 1, 67699cb3e80SKonrad Dybcio .buswidth = 4, 67799cb3e80SKonrad Dybcio }; 67899cb3e80SKonrad Dybcio 67999cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_glm = { 68099cb3e80SKonrad Dybcio .name = "qhs_glm", 68199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_GLM, 68299cb3e80SKonrad Dybcio .channels = 1, 68399cb3e80SKonrad Dybcio .buswidth = 4, 68499cb3e80SKonrad Dybcio }; 68599cb3e80SKonrad Dybcio 68699cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_gpuss_cfg = { 68799cb3e80SKonrad Dybcio .name = "qhs_gpuss_cfg", 68899cb3e80SKonrad Dybcio .id = SDM670_SLAVE_GRAPHICS_3D_CFG, 68999cb3e80SKonrad Dybcio .channels = 1, 69099cb3e80SKonrad Dybcio .buswidth = 8, 69199cb3e80SKonrad Dybcio }; 69299cb3e80SKonrad Dybcio 69399cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_imem_cfg = { 69499cb3e80SKonrad Dybcio .name = "qhs_imem_cfg", 69599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_IMEM_CFG, 69699cb3e80SKonrad Dybcio .channels = 1, 69799cb3e80SKonrad Dybcio .buswidth = 4, 69899cb3e80SKonrad Dybcio }; 69999cb3e80SKonrad Dybcio 70099cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_ipa = { 70199cb3e80SKonrad Dybcio .name = "qhs_ipa", 70299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_IPA_CFG, 70399cb3e80SKonrad Dybcio .channels = 1, 70499cb3e80SKonrad Dybcio .buswidth = 4, 70599cb3e80SKonrad Dybcio }; 70699cb3e80SKonrad Dybcio 70799cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_mnoc_cfg = { 70899cb3e80SKonrad Dybcio .name = "qhs_mnoc_cfg", 70999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CNOC_MNOC_CFG, 71099cb3e80SKonrad Dybcio .channels = 1, 71199cb3e80SKonrad Dybcio .buswidth = 4, 71299cb3e80SKonrad Dybcio .num_links = 1, 71399cb3e80SKonrad Dybcio .links = { SDM670_MASTER_CNOC_MNOC_CFG }, 71499cb3e80SKonrad Dybcio }; 71599cb3e80SKonrad Dybcio 71699cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_pdm = { 71799cb3e80SKonrad Dybcio .name = "qhs_pdm", 71899cb3e80SKonrad Dybcio .id = SDM670_SLAVE_PDM, 71999cb3e80SKonrad Dybcio .channels = 1, 72099cb3e80SKonrad Dybcio .buswidth = 4, 72199cb3e80SKonrad Dybcio }; 72299cb3e80SKonrad Dybcio 72399cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_phy_refgen_south = { 72499cb3e80SKonrad Dybcio .name = "qhs_phy_refgen_south", 72599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SOUTH_PHY_CFG, 72699cb3e80SKonrad Dybcio .channels = 1, 72799cb3e80SKonrad Dybcio .buswidth = 4, 72899cb3e80SKonrad Dybcio }; 72999cb3e80SKonrad Dybcio 73099cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_pimem_cfg = { 73199cb3e80SKonrad Dybcio .name = "qhs_pimem_cfg", 73299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_PIMEM_CFG, 73399cb3e80SKonrad Dybcio .channels = 1, 73499cb3e80SKonrad Dybcio .buswidth = 4, 73599cb3e80SKonrad Dybcio }; 73699cb3e80SKonrad Dybcio 73799cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_prng = { 73899cb3e80SKonrad Dybcio .name = "qhs_prng", 73999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_PRNG, 74099cb3e80SKonrad Dybcio .channels = 1, 74199cb3e80SKonrad Dybcio .buswidth = 4, 74299cb3e80SKonrad Dybcio }; 74399cb3e80SKonrad Dybcio 74499cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_qdss_cfg = { 74599cb3e80SKonrad Dybcio .name = "qhs_qdss_cfg", 74699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_QDSS_CFG, 74799cb3e80SKonrad Dybcio .channels = 1, 74899cb3e80SKonrad Dybcio .buswidth = 4, 74999cb3e80SKonrad Dybcio }; 75099cb3e80SKonrad Dybcio 75199cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_qupv3_north = { 75299cb3e80SKonrad Dybcio .name = "qhs_qupv3_north", 75399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_BLSP_2, 75499cb3e80SKonrad Dybcio .channels = 1, 75599cb3e80SKonrad Dybcio .buswidth = 4, 75699cb3e80SKonrad Dybcio }; 75799cb3e80SKonrad Dybcio 75899cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_qupv3_south = { 75999cb3e80SKonrad Dybcio .name = "qhs_qupv3_south", 76099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_BLSP_1, 76199cb3e80SKonrad Dybcio .channels = 1, 76299cb3e80SKonrad Dybcio .buswidth = 4, 76399cb3e80SKonrad Dybcio }; 76499cb3e80SKonrad Dybcio 76599cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_sdc2 = { 76699cb3e80SKonrad Dybcio .name = "qhs_sdc2", 76799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SDCC_2, 76899cb3e80SKonrad Dybcio .channels = 1, 76999cb3e80SKonrad Dybcio .buswidth = 4, 77099cb3e80SKonrad Dybcio }; 77199cb3e80SKonrad Dybcio 77299cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_sdc4 = { 77399cb3e80SKonrad Dybcio .name = "qhs_sdc4", 77499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SDCC_4, 77599cb3e80SKonrad Dybcio .channels = 1, 77699cb3e80SKonrad Dybcio .buswidth = 4, 77799cb3e80SKonrad Dybcio }; 77899cb3e80SKonrad Dybcio 77999cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_snoc_cfg = { 78099cb3e80SKonrad Dybcio .name = "qhs_snoc_cfg", 78199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SNOC_CFG, 78299cb3e80SKonrad Dybcio .channels = 1, 78399cb3e80SKonrad Dybcio .buswidth = 4, 78499cb3e80SKonrad Dybcio .num_links = 1, 78599cb3e80SKonrad Dybcio .links = { SDM670_MASTER_SNOC_CFG }, 78699cb3e80SKonrad Dybcio }; 78799cb3e80SKonrad Dybcio 78899cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_spdm = { 78999cb3e80SKonrad Dybcio .name = "qhs_spdm", 79099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SPDM_WRAPPER, 79199cb3e80SKonrad Dybcio .channels = 1, 79299cb3e80SKonrad Dybcio .buswidth = 4, 79399cb3e80SKonrad Dybcio }; 79499cb3e80SKonrad Dybcio 79599cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_tcsr = { 79699cb3e80SKonrad Dybcio .name = "qhs_tcsr", 79799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_TCSR, 79899cb3e80SKonrad Dybcio .channels = 1, 79999cb3e80SKonrad Dybcio .buswidth = 4, 80099cb3e80SKonrad Dybcio }; 80199cb3e80SKonrad Dybcio 80299cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_tlmm_north = { 80399cb3e80SKonrad Dybcio .name = "qhs_tlmm_north", 80499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_TLMM_NORTH, 80599cb3e80SKonrad Dybcio .channels = 1, 80699cb3e80SKonrad Dybcio .buswidth = 4, 80799cb3e80SKonrad Dybcio }; 80899cb3e80SKonrad Dybcio 80999cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_tlmm_south = { 81099cb3e80SKonrad Dybcio .name = "qhs_tlmm_south", 81199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_TLMM_SOUTH, 81299cb3e80SKonrad Dybcio .channels = 1, 81399cb3e80SKonrad Dybcio .buswidth = 4, 81499cb3e80SKonrad Dybcio }; 81599cb3e80SKonrad Dybcio 81699cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_tsif = { 81799cb3e80SKonrad Dybcio .name = "qhs_tsif", 81899cb3e80SKonrad Dybcio .id = SDM670_SLAVE_TSIF, 81999cb3e80SKonrad Dybcio .channels = 1, 82099cb3e80SKonrad Dybcio .buswidth = 4, 82199cb3e80SKonrad Dybcio }; 82299cb3e80SKonrad Dybcio 82399cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_ufs_mem_cfg = { 82499cb3e80SKonrad Dybcio .name = "qhs_ufs_mem_cfg", 82599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_UFS_MEM_CFG, 82699cb3e80SKonrad Dybcio .channels = 1, 82799cb3e80SKonrad Dybcio .buswidth = 4, 82899cb3e80SKonrad Dybcio }; 82999cb3e80SKonrad Dybcio 83099cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_usb3_0 = { 83199cb3e80SKonrad Dybcio .name = "qhs_usb3_0", 83299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_USB3, 83399cb3e80SKonrad Dybcio .channels = 1, 83499cb3e80SKonrad Dybcio .buswidth = 4, 83599cb3e80SKonrad Dybcio }; 83699cb3e80SKonrad Dybcio 83799cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_venus_cfg = { 83899cb3e80SKonrad Dybcio .name = "qhs_venus_cfg", 83999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_VENUS_CFG, 84099cb3e80SKonrad Dybcio .channels = 1, 84199cb3e80SKonrad Dybcio .buswidth = 4, 84299cb3e80SKonrad Dybcio }; 84399cb3e80SKonrad Dybcio 84499cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_vsense_ctrl_cfg = { 84599cb3e80SKonrad Dybcio .name = "qhs_vsense_ctrl_cfg", 84699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_VSENSE_CTRL_CFG, 84799cb3e80SKonrad Dybcio .channels = 1, 84899cb3e80SKonrad Dybcio .buswidth = 4, 84999cb3e80SKonrad Dybcio }; 85099cb3e80SKonrad Dybcio 85199cb3e80SKonrad Dybcio static struct qcom_icc_node qns_cnoc_a2noc = { 85299cb3e80SKonrad Dybcio .name = "qns_cnoc_a2noc", 85399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_CNOC_A2NOC, 85499cb3e80SKonrad Dybcio .channels = 1, 85599cb3e80SKonrad Dybcio .buswidth = 8, 85699cb3e80SKonrad Dybcio .num_links = 1, 85799cb3e80SKonrad Dybcio .links = { SDM670_MASTER_CNOC_A2NOC }, 85899cb3e80SKonrad Dybcio }; 85999cb3e80SKonrad Dybcio 86099cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_cnoc = { 86199cb3e80SKonrad Dybcio .name = "srvc_cnoc", 86299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_CNOC, 86399cb3e80SKonrad Dybcio .channels = 1, 86499cb3e80SKonrad Dybcio .buswidth = 4, 86599cb3e80SKonrad Dybcio }; 86699cb3e80SKonrad Dybcio 86799cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_llcc = { 86899cb3e80SKonrad Dybcio .name = "qhs_llcc", 86999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_LLCC_CFG, 87099cb3e80SKonrad Dybcio .channels = 1, 87199cb3e80SKonrad Dybcio .buswidth = 4, 87299cb3e80SKonrad Dybcio }; 87399cb3e80SKonrad Dybcio 87499cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_memnoc = { 87599cb3e80SKonrad Dybcio .name = "qhs_memnoc", 87699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MEM_NOC_CFG, 87799cb3e80SKonrad Dybcio .channels = 1, 87899cb3e80SKonrad Dybcio .buswidth = 4, 87999cb3e80SKonrad Dybcio .num_links = 1, 88099cb3e80SKonrad Dybcio .links = { SDM670_MASTER_MEM_NOC_CFG }, 88199cb3e80SKonrad Dybcio }; 88299cb3e80SKonrad Dybcio 88399cb3e80SKonrad Dybcio static struct qcom_icc_node qns_gladiator_sodv = { 88499cb3e80SKonrad Dybcio .name = "qns_gladiator_sodv", 88599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_GNOC_SNOC, 88699cb3e80SKonrad Dybcio .channels = 1, 88799cb3e80SKonrad Dybcio .buswidth = 8, 88899cb3e80SKonrad Dybcio .num_links = 1, 88999cb3e80SKonrad Dybcio .links = { SDM670_MASTER_GNOC_SNOC }, 89099cb3e80SKonrad Dybcio }; 89199cb3e80SKonrad Dybcio 89299cb3e80SKonrad Dybcio static struct qcom_icc_node qns_gnoc_memnoc = { 89399cb3e80SKonrad Dybcio .name = "qns_gnoc_memnoc", 89499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_GNOC_MEM_NOC, 89599cb3e80SKonrad Dybcio .channels = 2, 89699cb3e80SKonrad Dybcio .buswidth = 32, 89799cb3e80SKonrad Dybcio .num_links = 1, 89899cb3e80SKonrad Dybcio .links = { SDM670_MASTER_GNOC_MEM_NOC }, 89999cb3e80SKonrad Dybcio }; 90099cb3e80SKonrad Dybcio 90199cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_gnoc = { 90299cb3e80SKonrad Dybcio .name = "srvc_gnoc", 90399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_GNOC, 90499cb3e80SKonrad Dybcio .channels = 1, 90599cb3e80SKonrad Dybcio .buswidth = 4, 90699cb3e80SKonrad Dybcio }; 90799cb3e80SKonrad Dybcio 90899cb3e80SKonrad Dybcio static struct qcom_icc_node ebi = { 90999cb3e80SKonrad Dybcio .name = "ebi", 91099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_EBI_CH0, 91199cb3e80SKonrad Dybcio .channels = 2, 91299cb3e80SKonrad Dybcio .buswidth = 4, 91399cb3e80SKonrad Dybcio }; 91499cb3e80SKonrad Dybcio 91599cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_mdsp_ms_mpu_cfg = { 91699cb3e80SKonrad Dybcio .name = "qhs_mdsp_ms_mpu_cfg", 91799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MSS_PROC_MS_MPU_CFG, 91899cb3e80SKonrad Dybcio .channels = 1, 91999cb3e80SKonrad Dybcio .buswidth = 4, 92099cb3e80SKonrad Dybcio }; 92199cb3e80SKonrad Dybcio 92299cb3e80SKonrad Dybcio static struct qcom_icc_node qns_apps_io = { 92399cb3e80SKonrad Dybcio .name = "qns_apps_io", 92499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MEM_NOC_GNOC, 92599cb3e80SKonrad Dybcio .channels = 1, 92699cb3e80SKonrad Dybcio .buswidth = 32, 92799cb3e80SKonrad Dybcio }; 92899cb3e80SKonrad Dybcio 92999cb3e80SKonrad Dybcio static struct qcom_icc_node qns_llcc = { 93099cb3e80SKonrad Dybcio .name = "qns_llcc", 93199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_LLCC, 93299cb3e80SKonrad Dybcio .channels = 2, 93399cb3e80SKonrad Dybcio .buswidth = 16, 93499cb3e80SKonrad Dybcio .num_links = 1, 93599cb3e80SKonrad Dybcio .links = { SDM670_MASTER_LLCC }, 93699cb3e80SKonrad Dybcio }; 93799cb3e80SKonrad Dybcio 93899cb3e80SKonrad Dybcio static struct qcom_icc_node qns_memnoc_snoc = { 93999cb3e80SKonrad Dybcio .name = "qns_memnoc_snoc", 94099cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MEM_NOC_SNOC, 94199cb3e80SKonrad Dybcio .channels = 1, 94299cb3e80SKonrad Dybcio .buswidth = 8, 94399cb3e80SKonrad Dybcio .num_links = 1, 94499cb3e80SKonrad Dybcio .links = { SDM670_MASTER_MEM_NOC_SNOC }, 94599cb3e80SKonrad Dybcio }; 94699cb3e80SKonrad Dybcio 94799cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_memnoc = { 94899cb3e80SKonrad Dybcio .name = "srvc_memnoc", 94999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_MEM_NOC, 95099cb3e80SKonrad Dybcio .channels = 1, 95199cb3e80SKonrad Dybcio .buswidth = 4, 95299cb3e80SKonrad Dybcio }; 95399cb3e80SKonrad Dybcio 95499cb3e80SKonrad Dybcio static struct qcom_icc_node qns2_mem_noc = { 95599cb3e80SKonrad Dybcio .name = "qns2_mem_noc", 95699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MNOC_SF_MEM_NOC, 95799cb3e80SKonrad Dybcio .channels = 1, 95899cb3e80SKonrad Dybcio .buswidth = 32, 95999cb3e80SKonrad Dybcio .num_links = 1, 96099cb3e80SKonrad Dybcio .links = { SDM670_MASTER_MNOC_SF_MEM_NOC }, 96199cb3e80SKonrad Dybcio }; 96299cb3e80SKonrad Dybcio 96399cb3e80SKonrad Dybcio static struct qcom_icc_node qns_mem_noc_hf = { 96499cb3e80SKonrad Dybcio .name = "qns_mem_noc_hf", 96599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_MNOC_HF_MEM_NOC, 96699cb3e80SKonrad Dybcio .channels = 2, 96799cb3e80SKonrad Dybcio .buswidth = 32, 96899cb3e80SKonrad Dybcio .num_links = 1, 96999cb3e80SKonrad Dybcio .links = { SDM670_MASTER_MNOC_HF_MEM_NOC }, 97099cb3e80SKonrad Dybcio }; 97199cb3e80SKonrad Dybcio 97299cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_mnoc = { 97399cb3e80SKonrad Dybcio .name = "srvc_mnoc", 97499cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_MNOC, 97599cb3e80SKonrad Dybcio .channels = 1, 97699cb3e80SKonrad Dybcio .buswidth = 4, 97799cb3e80SKonrad Dybcio }; 97899cb3e80SKonrad Dybcio 97999cb3e80SKonrad Dybcio static struct qcom_icc_node qhs_apss = { 98099cb3e80SKonrad Dybcio .name = "qhs_apss", 98199cb3e80SKonrad Dybcio .id = SDM670_SLAVE_APPSS, 98299cb3e80SKonrad Dybcio .channels = 1, 98399cb3e80SKonrad Dybcio .buswidth = 8, 98499cb3e80SKonrad Dybcio }; 98599cb3e80SKonrad Dybcio 98699cb3e80SKonrad Dybcio static struct qcom_icc_node qns_cnoc = { 98799cb3e80SKonrad Dybcio .name = "qns_cnoc", 98899cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SNOC_CNOC, 98999cb3e80SKonrad Dybcio .channels = 1, 99099cb3e80SKonrad Dybcio .buswidth = 8, 99199cb3e80SKonrad Dybcio .num_links = 1, 99299cb3e80SKonrad Dybcio .links = { SDM670_MASTER_SNOC_CNOC }, 99399cb3e80SKonrad Dybcio }; 99499cb3e80SKonrad Dybcio 99599cb3e80SKonrad Dybcio static struct qcom_icc_node qns_memnoc_gc = { 99699cb3e80SKonrad Dybcio .name = "qns_memnoc_gc", 99799cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SNOC_MEM_NOC_GC, 99899cb3e80SKonrad Dybcio .channels = 1, 99999cb3e80SKonrad Dybcio .buswidth = 8, 100099cb3e80SKonrad Dybcio .num_links = 1, 100199cb3e80SKonrad Dybcio .links = { SDM670_MASTER_SNOC_GC_MEM_NOC }, 100299cb3e80SKonrad Dybcio }; 100399cb3e80SKonrad Dybcio 100499cb3e80SKonrad Dybcio static struct qcom_icc_node qns_memnoc_sf = { 100599cb3e80SKonrad Dybcio .name = "qns_memnoc_sf", 100699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SNOC_MEM_NOC_SF, 100799cb3e80SKonrad Dybcio .channels = 1, 100899cb3e80SKonrad Dybcio .buswidth = 16, 100999cb3e80SKonrad Dybcio .num_links = 1, 101099cb3e80SKonrad Dybcio .links = { SDM670_MASTER_SNOC_SF_MEM_NOC }, 101199cb3e80SKonrad Dybcio }; 101299cb3e80SKonrad Dybcio 101399cb3e80SKonrad Dybcio static struct qcom_icc_node qxs_imem = { 101499cb3e80SKonrad Dybcio .name = "qxs_imem", 101599cb3e80SKonrad Dybcio .id = SDM670_SLAVE_OCIMEM, 101699cb3e80SKonrad Dybcio .channels = 1, 101799cb3e80SKonrad Dybcio .buswidth = 8, 101899cb3e80SKonrad Dybcio }; 101999cb3e80SKonrad Dybcio 102099cb3e80SKonrad Dybcio static struct qcom_icc_node qxs_pimem = { 102199cb3e80SKonrad Dybcio .name = "qxs_pimem", 102299cb3e80SKonrad Dybcio .id = SDM670_SLAVE_PIMEM, 102399cb3e80SKonrad Dybcio .channels = 1, 102499cb3e80SKonrad Dybcio .buswidth = 8, 102599cb3e80SKonrad Dybcio }; 102699cb3e80SKonrad Dybcio 102799cb3e80SKonrad Dybcio static struct qcom_icc_node srvc_snoc = { 102899cb3e80SKonrad Dybcio .name = "srvc_snoc", 102999cb3e80SKonrad Dybcio .id = SDM670_SLAVE_SERVICE_SNOC, 103099cb3e80SKonrad Dybcio .channels = 1, 103199cb3e80SKonrad Dybcio .buswidth = 4, 103299cb3e80SKonrad Dybcio }; 103399cb3e80SKonrad Dybcio 103499cb3e80SKonrad Dybcio static struct qcom_icc_node xs_qdss_stm = { 103599cb3e80SKonrad Dybcio .name = "xs_qdss_stm", 103699cb3e80SKonrad Dybcio .id = SDM670_SLAVE_QDSS_STM, 103799cb3e80SKonrad Dybcio .channels = 1, 103899cb3e80SKonrad Dybcio .buswidth = 4, 103999cb3e80SKonrad Dybcio }; 104099cb3e80SKonrad Dybcio 104199cb3e80SKonrad Dybcio static struct qcom_icc_node xs_sys_tcu_cfg = { 104299cb3e80SKonrad Dybcio .name = "xs_sys_tcu_cfg", 104399cb3e80SKonrad Dybcio .id = SDM670_SLAVE_TCU, 104499cb3e80SKonrad Dybcio .channels = 1, 104599cb3e80SKonrad Dybcio .buswidth = 8, 104699cb3e80SKonrad Dybcio }; 10477e438e18SRichard Acayan 104846cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_acv = { 104946cd2018SKonrad Dybcio .name = "ACV", 1050*435b7183SKonrad Dybcio .enable_mask = BIT(3), 105146cd2018SKonrad Dybcio .keepalive = false, 105246cd2018SKonrad Dybcio .num_nodes = 1, 105346cd2018SKonrad Dybcio .nodes = { &ebi }, 105446cd2018SKonrad Dybcio }; 105546cd2018SKonrad Dybcio 105646cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_mc0 = { 105746cd2018SKonrad Dybcio .name = "MC0", 105846cd2018SKonrad Dybcio .keepalive = true, 105946cd2018SKonrad Dybcio .num_nodes = 1, 106046cd2018SKonrad Dybcio .nodes = { &ebi }, 106146cd2018SKonrad Dybcio }; 106246cd2018SKonrad Dybcio 106346cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sh0 = { 106446cd2018SKonrad Dybcio .name = "SH0", 106546cd2018SKonrad Dybcio .keepalive = true, 106646cd2018SKonrad Dybcio .num_nodes = 1, 106746cd2018SKonrad Dybcio .nodes = { &qns_llcc }, 106846cd2018SKonrad Dybcio }; 106946cd2018SKonrad Dybcio 107046cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_mm0 = { 107146cd2018SKonrad Dybcio .name = "MM0", 107246cd2018SKonrad Dybcio .keepalive = true, 107346cd2018SKonrad Dybcio .num_nodes = 1, 107446cd2018SKonrad Dybcio .nodes = { &qns_mem_noc_hf }, 107546cd2018SKonrad Dybcio }; 107646cd2018SKonrad Dybcio 107746cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sh1 = { 107846cd2018SKonrad Dybcio .name = "SH1", 107946cd2018SKonrad Dybcio .keepalive = false, 108046cd2018SKonrad Dybcio .num_nodes = 1, 108146cd2018SKonrad Dybcio .nodes = { &qns_apps_io }, 108246cd2018SKonrad Dybcio }; 108346cd2018SKonrad Dybcio 108446cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_mm1 = { 108546cd2018SKonrad Dybcio .name = "MM1", 108646cd2018SKonrad Dybcio .keepalive = true, 108746cd2018SKonrad Dybcio .num_nodes = 7, 108846cd2018SKonrad Dybcio .nodes = { &qxm_camnoc_hf0_uncomp, 108946cd2018SKonrad Dybcio &qxm_camnoc_hf1_uncomp, 109046cd2018SKonrad Dybcio &qxm_camnoc_sf_uncomp, 109146cd2018SKonrad Dybcio &qxm_camnoc_hf0, 109246cd2018SKonrad Dybcio &qxm_camnoc_hf1, 109346cd2018SKonrad Dybcio &qxm_mdp0, 109446cd2018SKonrad Dybcio &qxm_mdp1 109546cd2018SKonrad Dybcio }, 109646cd2018SKonrad Dybcio }; 109746cd2018SKonrad Dybcio 109846cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sh2 = { 109946cd2018SKonrad Dybcio .name = "SH2", 110046cd2018SKonrad Dybcio .keepalive = false, 110146cd2018SKonrad Dybcio .num_nodes = 1, 110246cd2018SKonrad Dybcio .nodes = { &qns_memnoc_snoc }, 110346cd2018SKonrad Dybcio }; 110446cd2018SKonrad Dybcio 110546cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_mm2 = { 110646cd2018SKonrad Dybcio .name = "MM2", 110746cd2018SKonrad Dybcio .keepalive = false, 110846cd2018SKonrad Dybcio .num_nodes = 1, 110946cd2018SKonrad Dybcio .nodes = { &qns2_mem_noc }, 111046cd2018SKonrad Dybcio }; 111146cd2018SKonrad Dybcio 111246cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sh3 = { 111346cd2018SKonrad Dybcio .name = "SH3", 111446cd2018SKonrad Dybcio .keepalive = false, 111546cd2018SKonrad Dybcio .num_nodes = 1, 111646cd2018SKonrad Dybcio .nodes = { &acm_tcu }, 111746cd2018SKonrad Dybcio }; 111846cd2018SKonrad Dybcio 111946cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_mm3 = { 112046cd2018SKonrad Dybcio .name = "MM3", 112146cd2018SKonrad Dybcio .keepalive = false, 112246cd2018SKonrad Dybcio .num_nodes = 5, 112346cd2018SKonrad Dybcio .nodes = { &qxm_camnoc_sf, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9 }, 112446cd2018SKonrad Dybcio }; 112546cd2018SKonrad Dybcio 112646cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sh5 = { 112746cd2018SKonrad Dybcio .name = "SH5", 112846cd2018SKonrad Dybcio .keepalive = false, 112946cd2018SKonrad Dybcio .num_nodes = 1, 113046cd2018SKonrad Dybcio .nodes = { &qnm_apps }, 113146cd2018SKonrad Dybcio }; 113246cd2018SKonrad Dybcio 113346cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn0 = { 113446cd2018SKonrad Dybcio .name = "SN0", 113546cd2018SKonrad Dybcio .keepalive = true, 113646cd2018SKonrad Dybcio .num_nodes = 1, 113746cd2018SKonrad Dybcio .nodes = { &qns_memnoc_sf }, 113846cd2018SKonrad Dybcio }; 113946cd2018SKonrad Dybcio 114046cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_ce0 = { 114146cd2018SKonrad Dybcio .name = "CE0", 114246cd2018SKonrad Dybcio .keepalive = false, 114346cd2018SKonrad Dybcio .num_nodes = 1, 114446cd2018SKonrad Dybcio .nodes = { &qxm_crypto }, 114546cd2018SKonrad Dybcio }; 114646cd2018SKonrad Dybcio 114746cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_cn0 = { 114846cd2018SKonrad Dybcio .name = "CN0", 114946cd2018SKonrad Dybcio .keepalive = true, 115046cd2018SKonrad Dybcio .num_nodes = 41, 115146cd2018SKonrad Dybcio .nodes = { &qhm_spdm, 115246cd2018SKonrad Dybcio &qnm_snoc, 115346cd2018SKonrad Dybcio &qhs_a1_noc_cfg, 115446cd2018SKonrad Dybcio &qhs_a2_noc_cfg, 115546cd2018SKonrad Dybcio &qhs_aop, 115646cd2018SKonrad Dybcio &qhs_aoss, 115746cd2018SKonrad Dybcio &qhs_camera_cfg, 115846cd2018SKonrad Dybcio &qhs_clk_ctl, 115946cd2018SKonrad Dybcio &qhs_compute_dsp_cfg, 116046cd2018SKonrad Dybcio &qhs_cpr_cx, 116146cd2018SKonrad Dybcio &qhs_crypto0_cfg, 116246cd2018SKonrad Dybcio &qhs_dcc_cfg, 116346cd2018SKonrad Dybcio &qhs_ddrss_cfg, 116446cd2018SKonrad Dybcio &qhs_display_cfg, 116546cd2018SKonrad Dybcio &qhs_emmc_cfg, 116646cd2018SKonrad Dybcio &qhs_glm, 116746cd2018SKonrad Dybcio &qhs_gpuss_cfg, 116846cd2018SKonrad Dybcio &qhs_imem_cfg, 116946cd2018SKonrad Dybcio &qhs_ipa, 117046cd2018SKonrad Dybcio &qhs_mnoc_cfg, 117146cd2018SKonrad Dybcio &qhs_pdm, 117246cd2018SKonrad Dybcio &qhs_phy_refgen_south, 117346cd2018SKonrad Dybcio &qhs_pimem_cfg, 117446cd2018SKonrad Dybcio &qhs_prng, 117546cd2018SKonrad Dybcio &qhs_qdss_cfg, 117646cd2018SKonrad Dybcio &qhs_qupv3_north, 117746cd2018SKonrad Dybcio &qhs_qupv3_south, 117846cd2018SKonrad Dybcio &qhs_sdc2, 117946cd2018SKonrad Dybcio &qhs_sdc4, 118046cd2018SKonrad Dybcio &qhs_snoc_cfg, 118146cd2018SKonrad Dybcio &qhs_spdm, 118246cd2018SKonrad Dybcio &qhs_tcsr, 118346cd2018SKonrad Dybcio &qhs_tlmm_north, 118446cd2018SKonrad Dybcio &qhs_tlmm_south, 118546cd2018SKonrad Dybcio &qhs_tsif, 118646cd2018SKonrad Dybcio &qhs_ufs_mem_cfg, 118746cd2018SKonrad Dybcio &qhs_usb3_0, 118846cd2018SKonrad Dybcio &qhs_venus_cfg, 118946cd2018SKonrad Dybcio &qhs_vsense_ctrl_cfg, 119046cd2018SKonrad Dybcio &qns_cnoc_a2noc, 119146cd2018SKonrad Dybcio &srvc_cnoc 119246cd2018SKonrad Dybcio }, 119346cd2018SKonrad Dybcio }; 119446cd2018SKonrad Dybcio 119546cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_qup0 = { 119646cd2018SKonrad Dybcio .name = "QUP0", 119746cd2018SKonrad Dybcio .keepalive = false, 119846cd2018SKonrad Dybcio .num_nodes = 2, 119946cd2018SKonrad Dybcio .nodes = { &qhm_qup1, &qhm_qup2 }, 120046cd2018SKonrad Dybcio }; 120146cd2018SKonrad Dybcio 120246cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn1 = { 120346cd2018SKonrad Dybcio .name = "SN1", 120446cd2018SKonrad Dybcio .keepalive = false, 120546cd2018SKonrad Dybcio .num_nodes = 1, 120646cd2018SKonrad Dybcio .nodes = { &qxs_imem }, 120746cd2018SKonrad Dybcio }; 120846cd2018SKonrad Dybcio 120946cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn2 = { 121046cd2018SKonrad Dybcio .name = "SN2", 121146cd2018SKonrad Dybcio .keepalive = false, 121246cd2018SKonrad Dybcio .num_nodes = 1, 121346cd2018SKonrad Dybcio .nodes = { &qns_memnoc_gc }, 121446cd2018SKonrad Dybcio }; 121546cd2018SKonrad Dybcio 121646cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn3 = { 121746cd2018SKonrad Dybcio .name = "SN3", 121846cd2018SKonrad Dybcio .keepalive = false, 121946cd2018SKonrad Dybcio .num_nodes = 1, 122046cd2018SKonrad Dybcio .nodes = { &qns_cnoc }, 122146cd2018SKonrad Dybcio }; 122246cd2018SKonrad Dybcio 122346cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn4 = { 122446cd2018SKonrad Dybcio .name = "SN4", 122546cd2018SKonrad Dybcio .keepalive = false, 122646cd2018SKonrad Dybcio .num_nodes = 2, 122746cd2018SKonrad Dybcio .nodes = { &qxm_pimem, &qxs_pimem }, 122846cd2018SKonrad Dybcio }; 122946cd2018SKonrad Dybcio 123046cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn5 = { 123146cd2018SKonrad Dybcio .name = "SN5", 123246cd2018SKonrad Dybcio .keepalive = false, 123346cd2018SKonrad Dybcio .num_nodes = 1, 123446cd2018SKonrad Dybcio .nodes = { &xs_qdss_stm }, 123546cd2018SKonrad Dybcio }; 123646cd2018SKonrad Dybcio 123746cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn8 = { 123846cd2018SKonrad Dybcio .name = "SN8", 123946cd2018SKonrad Dybcio .keepalive = false, 124046cd2018SKonrad Dybcio .num_nodes = 2, 124146cd2018SKonrad Dybcio .nodes = { &qnm_aggre1_noc, &srvc_aggre1_noc }, 124246cd2018SKonrad Dybcio }; 124346cd2018SKonrad Dybcio 124446cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn10 = { 124546cd2018SKonrad Dybcio .name = "SN10", 124646cd2018SKonrad Dybcio .keepalive = false, 124746cd2018SKonrad Dybcio .num_nodes = 2, 124846cd2018SKonrad Dybcio .nodes = { &qnm_aggre2_noc, &srvc_aggre2_noc }, 124946cd2018SKonrad Dybcio }; 125046cd2018SKonrad Dybcio 125146cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn11 = { 125246cd2018SKonrad Dybcio .name = "SN11", 125346cd2018SKonrad Dybcio .keepalive = false, 125446cd2018SKonrad Dybcio .num_nodes = 2, 125546cd2018SKonrad Dybcio .nodes = { &qnm_gladiator_sodv, &xm_gic }, 125646cd2018SKonrad Dybcio }; 125746cd2018SKonrad Dybcio 125846cd2018SKonrad Dybcio static struct qcom_icc_bcm bcm_sn13 = { 125946cd2018SKonrad Dybcio .name = "SN13", 126046cd2018SKonrad Dybcio .keepalive = false, 126146cd2018SKonrad Dybcio .num_nodes = 1, 126246cd2018SKonrad Dybcio .nodes = { &qnm_memnoc }, 126346cd2018SKonrad Dybcio }; 12647e438e18SRichard Acayan 12657e438e18SRichard Acayan static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 12667e438e18SRichard Acayan &bcm_qup0, 12677e438e18SRichard Acayan &bcm_sn8, 12687e438e18SRichard Acayan }; 12697e438e18SRichard Acayan 12707e438e18SRichard Acayan static struct qcom_icc_node * const aggre1_noc_nodes[] = { 12717e438e18SRichard Acayan [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg, 12727e438e18SRichard Acayan [MASTER_BLSP_1] = &qhm_qup1, 12737e438e18SRichard Acayan [MASTER_TSIF] = &qhm_tsif, 12747e438e18SRichard Acayan [MASTER_EMMC] = &xm_emmc, 12757e438e18SRichard Acayan [MASTER_SDCC_2] = &xm_sdc2, 12767e438e18SRichard Acayan [MASTER_SDCC_4] = &xm_sdc4, 12777e438e18SRichard Acayan [MASTER_UFS_MEM] = &xm_ufs_mem, 12787e438e18SRichard Acayan [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 12797e438e18SRichard Acayan [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 12807e438e18SRichard Acayan }; 12817e438e18SRichard Acayan 12827e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_aggre1_noc = { 12837e438e18SRichard Acayan .nodes = aggre1_noc_nodes, 12847e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 12857e438e18SRichard Acayan .bcms = aggre1_noc_bcms, 12867e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 12877e438e18SRichard Acayan }; 12887e438e18SRichard Acayan 12897e438e18SRichard Acayan static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 12907e438e18SRichard Acayan &bcm_ce0, 12917e438e18SRichard Acayan &bcm_qup0, 12927e438e18SRichard Acayan &bcm_sn10, 12937e438e18SRichard Acayan }; 12947e438e18SRichard Acayan 12957e438e18SRichard Acayan static struct qcom_icc_node * const aggre2_noc_nodes[] = { 12967e438e18SRichard Acayan [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg, 12977e438e18SRichard Acayan [MASTER_QDSS_BAM] = &qhm_qdss_bam, 12987e438e18SRichard Acayan [MASTER_BLSP_2] = &qhm_qup2, 12997e438e18SRichard Acayan [MASTER_CNOC_A2NOC] = &qnm_cnoc, 13007e438e18SRichard Acayan [MASTER_CRYPTO_CORE_0] = &qxm_crypto, 13017e438e18SRichard Acayan [MASTER_IPA] = &qxm_ipa, 13027e438e18SRichard Acayan [MASTER_QDSS_ETR] = &xm_qdss_etr, 13037e438e18SRichard Acayan [MASTER_USB3] = &xm_usb3_0, 13047e438e18SRichard Acayan [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc, 13057e438e18SRichard Acayan [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 13067e438e18SRichard Acayan }; 13077e438e18SRichard Acayan 13087e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_aggre2_noc = { 13097e438e18SRichard Acayan .nodes = aggre2_noc_nodes, 13107e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 13117e438e18SRichard Acayan .bcms = aggre2_noc_bcms, 13127e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 13137e438e18SRichard Acayan }; 13147e438e18SRichard Acayan 13157e438e18SRichard Acayan static struct qcom_icc_bcm * const config_noc_bcms[] = { 13167e438e18SRichard Acayan &bcm_cn0, 13177e438e18SRichard Acayan }; 13187e438e18SRichard Acayan 13197e438e18SRichard Acayan static struct qcom_icc_node * const config_noc_nodes[] = { 13207e438e18SRichard Acayan [MASTER_SPDM] = &qhm_spdm, 13217e438e18SRichard Acayan [MASTER_SNOC_CNOC] = &qnm_snoc, 13227e438e18SRichard Acayan [SLAVE_A1NOC_CFG] = &qhs_a1_noc_cfg, 13237e438e18SRichard Acayan [SLAVE_A2NOC_CFG] = &qhs_a2_noc_cfg, 13247e438e18SRichard Acayan [SLAVE_AOP] = &qhs_aop, 13257e438e18SRichard Acayan [SLAVE_AOSS] = &qhs_aoss, 13267e438e18SRichard Acayan [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 13277e438e18SRichard Acayan [SLAVE_CLK_CTL] = &qhs_clk_ctl, 13287e438e18SRichard Acayan [SLAVE_CDSP_CFG] = &qhs_compute_dsp_cfg, 13297e438e18SRichard Acayan [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx, 13307e438e18SRichard Acayan [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 13317e438e18SRichard Acayan [SLAVE_DCC_CFG] = &qhs_dcc_cfg, 13327e438e18SRichard Acayan [SLAVE_CNOC_DDRSS] = &qhs_ddrss_cfg, 13337e438e18SRichard Acayan [SLAVE_DISPLAY_CFG] = &qhs_display_cfg, 13347e438e18SRichard Acayan [SLAVE_EMMC_CFG] = &qhs_emmc_cfg, 13357e438e18SRichard Acayan [SLAVE_GLM] = &qhs_glm, 13367e438e18SRichard Acayan [SLAVE_GRAPHICS_3D_CFG] = &qhs_gpuss_cfg, 13377e438e18SRichard Acayan [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 13387e438e18SRichard Acayan [SLAVE_IPA_CFG] = &qhs_ipa, 13397e438e18SRichard Acayan [SLAVE_CNOC_MNOC_CFG] = &qhs_mnoc_cfg, 13407e438e18SRichard Acayan [SLAVE_PDM] = &qhs_pdm, 13417e438e18SRichard Acayan [SLAVE_SOUTH_PHY_CFG] = &qhs_phy_refgen_south, 13427e438e18SRichard Acayan [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg, 13437e438e18SRichard Acayan [SLAVE_PRNG] = &qhs_prng, 13447e438e18SRichard Acayan [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 13457e438e18SRichard Acayan [SLAVE_BLSP_2] = &qhs_qupv3_north, 13467e438e18SRichard Acayan [SLAVE_BLSP_1] = &qhs_qupv3_south, 13477e438e18SRichard Acayan [SLAVE_SDCC_2] = &qhs_sdc2, 13487e438e18SRichard Acayan [SLAVE_SDCC_4] = &qhs_sdc4, 13497e438e18SRichard Acayan [SLAVE_SNOC_CFG] = &qhs_snoc_cfg, 13507e438e18SRichard Acayan [SLAVE_SPDM_WRAPPER] = &qhs_spdm, 13517e438e18SRichard Acayan [SLAVE_TCSR] = &qhs_tcsr, 13527e438e18SRichard Acayan [SLAVE_TLMM_NORTH] = &qhs_tlmm_north, 13537e438e18SRichard Acayan [SLAVE_TLMM_SOUTH] = &qhs_tlmm_south, 13547e438e18SRichard Acayan [SLAVE_TSIF] = &qhs_tsif, 13557e438e18SRichard Acayan [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 13567e438e18SRichard Acayan [SLAVE_USB3] = &qhs_usb3_0, 13577e438e18SRichard Acayan [SLAVE_VENUS_CFG] = &qhs_venus_cfg, 13587e438e18SRichard Acayan [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg, 13597e438e18SRichard Acayan [SLAVE_CNOC_A2NOC] = &qns_cnoc_a2noc, 13607e438e18SRichard Acayan [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 13617e438e18SRichard Acayan }; 13627e438e18SRichard Acayan 13637e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_config_noc = { 13647e438e18SRichard Acayan .nodes = config_noc_nodes, 13657e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(config_noc_nodes), 13667e438e18SRichard Acayan .bcms = config_noc_bcms, 13677e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(config_noc_bcms), 13687e438e18SRichard Acayan }; 13697e438e18SRichard Acayan 13707e438e18SRichard Acayan static struct qcom_icc_bcm * const dc_noc_bcms[] = { 13717e438e18SRichard Acayan }; 13727e438e18SRichard Acayan 13737e438e18SRichard Acayan static struct qcom_icc_node * const dc_noc_nodes[] = { 13747e438e18SRichard Acayan [MASTER_CNOC_DC_NOC] = &qhm_cnoc, 13757e438e18SRichard Acayan [SLAVE_LLCC_CFG] = &qhs_llcc, 13767e438e18SRichard Acayan [SLAVE_MEM_NOC_CFG] = &qhs_memnoc, 13777e438e18SRichard Acayan }; 13787e438e18SRichard Acayan 13797e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_dc_noc = { 13807e438e18SRichard Acayan .nodes = dc_noc_nodes, 13817e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(dc_noc_nodes), 13827e438e18SRichard Acayan .bcms = dc_noc_bcms, 13837e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(dc_noc_bcms), 13847e438e18SRichard Acayan }; 13857e438e18SRichard Acayan 13867e438e18SRichard Acayan static struct qcom_icc_bcm * const gladiator_noc_bcms[] = { 13877e438e18SRichard Acayan }; 13887e438e18SRichard Acayan 13897e438e18SRichard Acayan static struct qcom_icc_node * const gladiator_noc_nodes[] = { 13907e438e18SRichard Acayan [MASTER_AMPSS_M0] = &acm_l3, 13917e438e18SRichard Acayan [MASTER_GNOC_CFG] = &pm_gnoc_cfg, 13927e438e18SRichard Acayan [SLAVE_GNOC_SNOC] = &qns_gladiator_sodv, 13937e438e18SRichard Acayan [SLAVE_GNOC_MEM_NOC] = &qns_gnoc_memnoc, 13947e438e18SRichard Acayan [SLAVE_SERVICE_GNOC] = &srvc_gnoc, 13957e438e18SRichard Acayan }; 13967e438e18SRichard Acayan 13977e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_gladiator_noc = { 13987e438e18SRichard Acayan .nodes = gladiator_noc_nodes, 13997e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(gladiator_noc_nodes), 14007e438e18SRichard Acayan .bcms = gladiator_noc_bcms, 14017e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(gladiator_noc_bcms), 14027e438e18SRichard Acayan }; 14037e438e18SRichard Acayan 14047e438e18SRichard Acayan static struct qcom_icc_bcm * const mem_noc_bcms[] = { 14057e438e18SRichard Acayan &bcm_acv, 14067e438e18SRichard Acayan &bcm_mc0, 14077e438e18SRichard Acayan &bcm_sh0, 14087e438e18SRichard Acayan &bcm_sh1, 14097e438e18SRichard Acayan &bcm_sh2, 14107e438e18SRichard Acayan &bcm_sh3, 14117e438e18SRichard Acayan &bcm_sh5, 14127e438e18SRichard Acayan }; 14137e438e18SRichard Acayan 14147e438e18SRichard Acayan static struct qcom_icc_node * const mem_noc_nodes[] = { 14157e438e18SRichard Acayan [MASTER_TCU_0] = &acm_tcu, 14167e438e18SRichard Acayan [MASTER_MEM_NOC_CFG] = &qhm_memnoc_cfg, 14177e438e18SRichard Acayan [MASTER_GNOC_MEM_NOC] = &qnm_apps, 14187e438e18SRichard Acayan [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 14197e438e18SRichard Acayan [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 14207e438e18SRichard Acayan [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 14217e438e18SRichard Acayan [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 14227e438e18SRichard Acayan [MASTER_GRAPHICS_3D] = &qxm_gpu, 14237e438e18SRichard Acayan [SLAVE_MSS_PROC_MS_MPU_CFG] = &qhs_mdsp_ms_mpu_cfg, 14247e438e18SRichard Acayan [SLAVE_MEM_NOC_GNOC] = &qns_apps_io, 14257e438e18SRichard Acayan [SLAVE_LLCC] = &qns_llcc, 14267e438e18SRichard Acayan [SLAVE_MEM_NOC_SNOC] = &qns_memnoc_snoc, 14277e438e18SRichard Acayan [SLAVE_SERVICE_MEM_NOC] = &srvc_memnoc, 14287e438e18SRichard Acayan [MASTER_LLCC] = &llcc_mc, 14297e438e18SRichard Acayan [SLAVE_EBI_CH0] = &ebi, 14307e438e18SRichard Acayan }; 14317e438e18SRichard Acayan 14327e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_mem_noc = { 14337e438e18SRichard Acayan .nodes = mem_noc_nodes, 14347e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(mem_noc_nodes), 14357e438e18SRichard Acayan .bcms = mem_noc_bcms, 14367e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(mem_noc_bcms), 14377e438e18SRichard Acayan }; 14387e438e18SRichard Acayan 14397e438e18SRichard Acayan static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 14407e438e18SRichard Acayan &bcm_mm0, 14417e438e18SRichard Acayan &bcm_mm1, 14427e438e18SRichard Acayan &bcm_mm2, 14437e438e18SRichard Acayan &bcm_mm3, 14447e438e18SRichard Acayan }; 14457e438e18SRichard Acayan 14467e438e18SRichard Acayan static struct qcom_icc_node * const mmss_noc_nodes[] = { 14477e438e18SRichard Acayan [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg, 14487e438e18SRichard Acayan [MASTER_CAMNOC_HF0] = &qxm_camnoc_hf0, 14497e438e18SRichard Acayan [MASTER_CAMNOC_HF1] = &qxm_camnoc_hf1, 14507e438e18SRichard Acayan [MASTER_CAMNOC_SF] = &qxm_camnoc_sf, 14517e438e18SRichard Acayan [MASTER_MDP_PORT0] = &qxm_mdp0, 14527e438e18SRichard Acayan [MASTER_MDP_PORT1] = &qxm_mdp1, 14537e438e18SRichard Acayan [MASTER_ROTATOR] = &qxm_rot, 14547e438e18SRichard Acayan [MASTER_VIDEO_P0] = &qxm_venus0, 14557e438e18SRichard Acayan [MASTER_VIDEO_P1] = &qxm_venus1, 14567e438e18SRichard Acayan [MASTER_VIDEO_PROC] = &qxm_venus_arm9, 14577e438e18SRichard Acayan [SLAVE_MNOC_SF_MEM_NOC] = &qns2_mem_noc, 14587e438e18SRichard Acayan [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 14597e438e18SRichard Acayan [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 14607e438e18SRichard Acayan }; 14617e438e18SRichard Acayan 14627e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_mmss_noc = { 14637e438e18SRichard Acayan .nodes = mmss_noc_nodes, 14647e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 14657e438e18SRichard Acayan .bcms = mmss_noc_bcms, 14667e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 14677e438e18SRichard Acayan }; 14687e438e18SRichard Acayan 14697e438e18SRichard Acayan static struct qcom_icc_bcm * const system_noc_bcms[] = { 14707e438e18SRichard Acayan &bcm_mm1, 14717e438e18SRichard Acayan &bcm_sn0, 14727e438e18SRichard Acayan &bcm_sn1, 14737e438e18SRichard Acayan &bcm_sn10, 14747e438e18SRichard Acayan &bcm_sn11, 14757e438e18SRichard Acayan &bcm_sn13, 14767e438e18SRichard Acayan &bcm_sn2, 14777e438e18SRichard Acayan &bcm_sn3, 14787e438e18SRichard Acayan &bcm_sn4, 14797e438e18SRichard Acayan &bcm_sn5, 14807e438e18SRichard Acayan &bcm_sn8, 14817e438e18SRichard Acayan }; 14827e438e18SRichard Acayan 14837e438e18SRichard Acayan static struct qcom_icc_node * const system_noc_nodes[] = { 14847e438e18SRichard Acayan [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 14857e438e18SRichard Acayan [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 14867e438e18SRichard Acayan [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 14877e438e18SRichard Acayan [MASTER_GNOC_SNOC] = &qnm_gladiator_sodv, 14887e438e18SRichard Acayan [MASTER_MEM_NOC_SNOC] = &qnm_memnoc, 14897e438e18SRichard Acayan [MASTER_PIMEM] = &qxm_pimem, 14907e438e18SRichard Acayan [MASTER_GIC] = &xm_gic, 14917e438e18SRichard Acayan [SLAVE_APPSS] = &qhs_apss, 14927e438e18SRichard Acayan [SLAVE_SNOC_CNOC] = &qns_cnoc, 14937e438e18SRichard Acayan [SLAVE_SNOC_MEM_NOC_GC] = &qns_memnoc_gc, 14947e438e18SRichard Acayan [SLAVE_SNOC_MEM_NOC_SF] = &qns_memnoc_sf, 14957e438e18SRichard Acayan [SLAVE_OCIMEM] = &qxs_imem, 14967e438e18SRichard Acayan [SLAVE_PIMEM] = &qxs_pimem, 14977e438e18SRichard Acayan [SLAVE_SERVICE_SNOC] = &srvc_snoc, 14987e438e18SRichard Acayan [SLAVE_QDSS_STM] = &xs_qdss_stm, 14997e438e18SRichard Acayan [SLAVE_TCU] = &xs_sys_tcu_cfg, 15007e438e18SRichard Acayan [MASTER_CAMNOC_HF0_UNCOMP] = &qxm_camnoc_hf0_uncomp, 15017e438e18SRichard Acayan [MASTER_CAMNOC_HF1_UNCOMP] = &qxm_camnoc_hf1_uncomp, 15027e438e18SRichard Acayan [MASTER_CAMNOC_SF_UNCOMP] = &qxm_camnoc_sf_uncomp, 15037e438e18SRichard Acayan [SLAVE_CAMNOC_UNCOMP] = &qns_camnoc_uncomp, 15047e438e18SRichard Acayan }; 15057e438e18SRichard Acayan 15067e438e18SRichard Acayan static const struct qcom_icc_desc sdm670_system_noc = { 15077e438e18SRichard Acayan .nodes = system_noc_nodes, 15087e438e18SRichard Acayan .num_nodes = ARRAY_SIZE(system_noc_nodes), 15097e438e18SRichard Acayan .bcms = system_noc_bcms, 15107e438e18SRichard Acayan .num_bcms = ARRAY_SIZE(system_noc_bcms), 15117e438e18SRichard Acayan }; 15127e438e18SRichard Acayan 15137e438e18SRichard Acayan static const struct of_device_id qnoc_of_match[] = { 15147e438e18SRichard Acayan { .compatible = "qcom,sdm670-aggre1-noc", 15157e438e18SRichard Acayan .data = &sdm670_aggre1_noc}, 15167e438e18SRichard Acayan { .compatible = "qcom,sdm670-aggre2-noc", 15177e438e18SRichard Acayan .data = &sdm670_aggre2_noc}, 15187e438e18SRichard Acayan { .compatible = "qcom,sdm670-config-noc", 15197e438e18SRichard Acayan .data = &sdm670_config_noc}, 15207e438e18SRichard Acayan { .compatible = "qcom,sdm670-dc-noc", 15217e438e18SRichard Acayan .data = &sdm670_dc_noc}, 15227e438e18SRichard Acayan { .compatible = "qcom,sdm670-gladiator-noc", 15237e438e18SRichard Acayan .data = &sdm670_gladiator_noc}, 15247e438e18SRichard Acayan { .compatible = "qcom,sdm670-mem-noc", 15257e438e18SRichard Acayan .data = &sdm670_mem_noc}, 15267e438e18SRichard Acayan { .compatible = "qcom,sdm670-mmss-noc", 15277e438e18SRichard Acayan .data = &sdm670_mmss_noc}, 15287e438e18SRichard Acayan { .compatible = "qcom,sdm670-system-noc", 15297e438e18SRichard Acayan .data = &sdm670_system_noc}, 15307e438e18SRichard Acayan { } 15317e438e18SRichard Acayan }; 15327e438e18SRichard Acayan MODULE_DEVICE_TABLE(of, qnoc_of_match); 15337e438e18SRichard Acayan 15347e438e18SRichard Acayan static struct platform_driver qnoc_driver = { 15357e438e18SRichard Acayan .probe = qcom_icc_rpmh_probe, 15367e438e18SRichard Acayan .remove = qcom_icc_rpmh_remove, 15377e438e18SRichard Acayan .driver = { 15387e438e18SRichard Acayan .name = "qnoc-sdm670", 15397e438e18SRichard Acayan .of_match_table = qnoc_of_match, 15407e438e18SRichard Acayan .sync_state = icc_sync_state, 15417e438e18SRichard Acayan }, 15427e438e18SRichard Acayan }; 15437e438e18SRichard Acayan module_platform_driver(qnoc_driver); 15447e438e18SRichard Acayan 15457e438e18SRichard Acayan MODULE_DESCRIPTION("Qualcomm SDM670 NoC driver"); 15467e438e18SRichard Acayan MODULE_LICENSE("GPL"); 1547