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

Merge branch 'icc-x1e80100' into icc-next

* icc-x1e80100
dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm SM8650 SoC
interconnect: qcom: introduce RPMh Network-On-Chip Interconnect on SM8650 SoC
dt-bindings: interconnect: qcom-bwmon: document SM8650 BWMONs

This series adds interconnect support for the Qualcomm X1E80100 platform,
aka Snapdragon X Elite.

Our v1 post of the patchsets adding support for Snapdragon X Elite SoC had
the part number sc8380xp which is now updated to the new part number x1e80100
based on the new branding scheme and refers to the exact same SoC.
Release Link: https://www.qualcomm.com/news/releases/2023/10/qualcomm-unleashes-snapdragon-x-elite--the-ai-super-charged-plat

Link: https://lore.kernel.org/r/20231123135028.29433-1-quic_sibis@quicinc.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>

+2821
+83
Documentation/devicetree/bindings/interconnect/qcom,x1e80100-rpmh.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interconnect/qcom,x1e80100-rpmh.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm RPMh Network-On-Chip Interconnect on X1E80100 8 + 9 + maintainers: 10 + - Rajendra Nayak <quic_rjendra@quicinc.com> 11 + - Abel Vesa <abel.vesa@linaro.org> 12 + 13 + description: | 14 + RPMh interconnect providers support system bandwidth requirements through 15 + RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is 16 + able to communicate with the BCM through the Resource State Coordinator (RSC) 17 + associated with each execution environment. Provider nodes must point to at 18 + least one RPMh device child node pertaining to their RSC and each provider 19 + can map to multiple RPMh resources. 20 + 21 + See also:: include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h 22 + 23 + properties: 24 + compatible: 25 + enum: 26 + - qcom,x1e80100-aggre1-noc 27 + - qcom,x1e80100-aggre2-noc 28 + - qcom,x1e80100-clk-virt 29 + - qcom,x1e80100-cnoc-cfg 30 + - qcom,x1e80100-cnoc-main 31 + - qcom,x1e80100-gem-noc 32 + - qcom,x1e80100-lpass-ag-noc 33 + - qcom,x1e80100-lpass-lpiaon-noc 34 + - qcom,x1e80100-lpass-lpicx-noc 35 + - qcom,x1e80100-mc-virt 36 + - qcom,x1e80100-mmss-noc 37 + - qcom,x1e80100-nsp-noc 38 + - qcom,x1e80100-pcie-center-anoc 39 + - qcom,x1e80100-pcie-north-anoc 40 + - qcom,x1e80100-pcie-south-anoc 41 + - qcom,x1e80100-system-noc 42 + - qcom,x1e80100-usb-center-anoc 43 + - qcom,x1e80100-usb-north-anoc 44 + - qcom,x1e80100-usb-south-anoc 45 + 46 + reg: 47 + maxItems: 1 48 + 49 + required: 50 + - compatible 51 + 52 + allOf: 53 + - $ref: qcom,rpmh-common.yaml# 54 + - if: 55 + properties: 56 + compatible: 57 + contains: 58 + enum: 59 + - qcom,x1e80100-clk-virt 60 + - qcom,x1e80100-mc-virt 61 + then: 62 + properties: 63 + reg: false 64 + else: 65 + required: 66 + - reg 67 + 68 + unevaluatedProperties: false 69 + 70 + examples: 71 + - | 72 + clk_virt: interconnect-0 { 73 + compatible = "qcom,x1e80100-clk-virt"; 74 + #interconnect-cells = <2>; 75 + qcom,bcm-voters = <&apps_bcm_voter>; 76 + }; 77 + 78 + aggre1_noc: interconnect@16e0000 { 79 + compatible = "qcom,x1e80100-aggre1-noc"; 80 + reg = <0x016e0000 0x14400>; 81 + #interconnect-cells = <2>; 82 + qcom,bcm-voters = <&apps_bcm_voter>; 83 + };
+9
drivers/interconnect/qcom/Kconfig
··· 254 254 This is a driver for the Qualcomm Network-on-Chip on SM8650-based 255 255 platforms. 256 256 257 + config INTERCONNECT_QCOM_X1E80100 258 + tristate "Qualcomm X1E80100 interconnect driver" 259 + depends on INTERCONNECT_QCOM_RPMH_POSSIBLE 260 + select INTERCONNECT_QCOM_RPMH 261 + select INTERCONNECT_QCOM_BCM_VOTER 262 + help 263 + This is a driver for the Qualcomm Network-on-Chip on X1E80100-based 264 + platforms. 265 + 257 266 config INTERCONNECT_QCOM_SMD_RPM 258 267 tristate
+2
drivers/interconnect/qcom/Makefile
··· 31 31 qnoc-sm8450-objs := sm8450.o 32 32 qnoc-sm8550-objs := sm8550.o 33 33 qnoc-sm8650-objs := sm8650.o 34 + qnoc-x1e80100-objs := x1e80100.o 34 35 icc-smd-rpm-objs := smd-rpm.o icc-rpm.o icc-rpm-clocks.o 35 36 36 37 obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o ··· 62 61 obj-$(CONFIG_INTERCONNECT_QCOM_SM8450) += qnoc-sm8450.o 63 62 obj-$(CONFIG_INTERCONNECT_QCOM_SM8550) += qnoc-sm8550.o 64 63 obj-$(CONFIG_INTERCONNECT_QCOM_SM8650) += qnoc-sm8650.o 64 + obj-$(CONFIG_INTERCONNECT_QCOM_X1E80100) += qnoc-x1e80100.o 65 65 obj-$(CONFIG_INTERCONNECT_QCOM_SMD_RPM) += icc-smd-rpm.o
+2328
drivers/interconnect/qcom/x1e80100.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 + * Copyright (c) 2023, Linaro Limited 5 + * 6 + */ 7 + 8 + #include <linux/device.h> 9 + #include <linux/interconnect.h> 10 + #include <linux/interconnect-provider.h> 11 + #include <linux/module.h> 12 + #include <linux/of_platform.h> 13 + #include <dt-bindings/interconnect/qcom,x1e80100-rpmh.h> 14 + 15 + #include "bcm-voter.h" 16 + #include "icc-common.h" 17 + #include "icc-rpmh.h" 18 + #include "x1e80100.h" 19 + 20 + static struct qcom_icc_node qhm_qspi = { 21 + .name = "qhm_qspi", 22 + .id = X1E80100_MASTER_QSPI_0, 23 + .channels = 1, 24 + .buswidth = 4, 25 + .num_links = 1, 26 + .links = { X1E80100_SLAVE_A1NOC_SNOC }, 27 + }; 28 + 29 + static struct qcom_icc_node qhm_qup1 = { 30 + .name = "qhm_qup1", 31 + .id = X1E80100_MASTER_QUP_1, 32 + .channels = 1, 33 + .buswidth = 4, 34 + .num_links = 1, 35 + .links = { X1E80100_SLAVE_A1NOC_SNOC }, 36 + }; 37 + 38 + static struct qcom_icc_node xm_sdc4 = { 39 + .name = "xm_sdc4", 40 + .id = X1E80100_MASTER_SDCC_4, 41 + .channels = 1, 42 + .buswidth = 8, 43 + .num_links = 1, 44 + .links = { X1E80100_SLAVE_A1NOC_SNOC }, 45 + }; 46 + 47 + static struct qcom_icc_node xm_ufs_mem = { 48 + .name = "xm_ufs_mem", 49 + .id = X1E80100_MASTER_UFS_MEM, 50 + .channels = 1, 51 + .buswidth = 16, 52 + .num_links = 1, 53 + .links = { X1E80100_SLAVE_A1NOC_SNOC }, 54 + }; 55 + 56 + static struct qcom_icc_node qhm_qup0 = { 57 + .name = "qhm_qup0", 58 + .id = X1E80100_MASTER_QUP_0, 59 + .channels = 1, 60 + .buswidth = 4, 61 + .num_links = 1, 62 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 63 + }; 64 + 65 + static struct qcom_icc_node qhm_qup2 = { 66 + .name = "qhm_qup2", 67 + .id = X1E80100_MASTER_QUP_2, 68 + .channels = 1, 69 + .buswidth = 4, 70 + .num_links = 1, 71 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 72 + }; 73 + 74 + static struct qcom_icc_node qxm_crypto = { 75 + .name = "qxm_crypto", 76 + .id = X1E80100_MASTER_CRYPTO, 77 + .channels = 1, 78 + .buswidth = 8, 79 + .num_links = 1, 80 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 81 + }; 82 + 83 + static struct qcom_icc_node qxm_sp = { 84 + .name = "qxm_sp", 85 + .id = X1E80100_MASTER_SP, 86 + .channels = 1, 87 + .buswidth = 8, 88 + .num_links = 1, 89 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 90 + }; 91 + 92 + static struct qcom_icc_node xm_qdss_etr_0 = { 93 + .name = "xm_qdss_etr_0", 94 + .id = X1E80100_MASTER_QDSS_ETR, 95 + .channels = 1, 96 + .buswidth = 8, 97 + .num_links = 1, 98 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 99 + }; 100 + 101 + static struct qcom_icc_node xm_qdss_etr_1 = { 102 + .name = "xm_qdss_etr_1", 103 + .id = X1E80100_MASTER_QDSS_ETR_1, 104 + .channels = 1, 105 + .buswidth = 8, 106 + .num_links = 1, 107 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 108 + }; 109 + 110 + static struct qcom_icc_node xm_sdc2 = { 111 + .name = "xm_sdc2", 112 + .id = X1E80100_MASTER_SDCC_2, 113 + .channels = 1, 114 + .buswidth = 8, 115 + .num_links = 1, 116 + .links = { X1E80100_SLAVE_A2NOC_SNOC }, 117 + }; 118 + 119 + static struct qcom_icc_node ddr_perf_mode_master = { 120 + .name = "ddr_perf_mode_master", 121 + .id = X1E80100_MASTER_DDR_PERF_MODE, 122 + .channels = 1, 123 + .buswidth = 4, 124 + .num_links = 1, 125 + .links = { X1E80100_SLAVE_DDR_PERF_MODE }, 126 + }; 127 + 128 + static struct qcom_icc_node qup0_core_master = { 129 + .name = "qup0_core_master", 130 + .id = X1E80100_MASTER_QUP_CORE_0, 131 + .channels = 1, 132 + .buswidth = 4, 133 + .num_links = 1, 134 + .links = { X1E80100_SLAVE_QUP_CORE_0 }, 135 + }; 136 + 137 + static struct qcom_icc_node qup1_core_master = { 138 + .name = "qup1_core_master", 139 + .id = X1E80100_MASTER_QUP_CORE_1, 140 + .channels = 1, 141 + .buswidth = 4, 142 + .num_links = 1, 143 + .links = { X1E80100_SLAVE_QUP_CORE_1 }, 144 + }; 145 + 146 + static struct qcom_icc_node qup2_core_master = { 147 + .name = "qup2_core_master", 148 + .id = X1E80100_MASTER_QUP_CORE_2, 149 + .channels = 1, 150 + .buswidth = 4, 151 + .num_links = 1, 152 + .links = { X1E80100_SLAVE_QUP_CORE_2 }, 153 + }; 154 + 155 + static struct qcom_icc_node qsm_cfg = { 156 + .name = "qsm_cfg", 157 + .id = X1E80100_MASTER_CNOC_CFG, 158 + .channels = 1, 159 + .buswidth = 4, 160 + .num_links = 47, 161 + .links = { X1E80100_SLAVE_AHB2PHY_SOUTH, X1E80100_SLAVE_AHB2PHY_NORTH, 162 + X1E80100_SLAVE_AHB2PHY_2, X1E80100_SLAVE_AV1_ENC_CFG, 163 + X1E80100_SLAVE_CAMERA_CFG, X1E80100_SLAVE_CLK_CTL, 164 + X1E80100_SLAVE_CRYPTO_0_CFG, X1E80100_SLAVE_DISPLAY_CFG, 165 + X1E80100_SLAVE_GFX3D_CFG, X1E80100_SLAVE_IMEM_CFG, 166 + X1E80100_SLAVE_IPC_ROUTER_CFG, X1E80100_SLAVE_PCIE_0_CFG, 167 + X1E80100_SLAVE_PCIE_1_CFG, X1E80100_SLAVE_PCIE_2_CFG, 168 + X1E80100_SLAVE_PCIE_3_CFG, X1E80100_SLAVE_PCIE_4_CFG, 169 + X1E80100_SLAVE_PCIE_5_CFG, X1E80100_SLAVE_PCIE_6A_CFG, 170 + X1E80100_SLAVE_PCIE_6B_CFG, X1E80100_SLAVE_PCIE_RSC_CFG, 171 + X1E80100_SLAVE_PDM, X1E80100_SLAVE_PRNG, 172 + X1E80100_SLAVE_QDSS_CFG, X1E80100_SLAVE_QSPI_0, 173 + X1E80100_SLAVE_QUP_0, X1E80100_SLAVE_QUP_1, 174 + X1E80100_SLAVE_QUP_2, X1E80100_SLAVE_SDCC_2, 175 + X1E80100_SLAVE_SDCC_4, X1E80100_SLAVE_SMMUV3_CFG, 176 + X1E80100_SLAVE_TCSR, X1E80100_SLAVE_TLMM, 177 + X1E80100_SLAVE_UFS_MEM_CFG, X1E80100_SLAVE_USB2, 178 + X1E80100_SLAVE_USB3_0, X1E80100_SLAVE_USB3_1, 179 + X1E80100_SLAVE_USB3_2, X1E80100_SLAVE_USB3_MP, 180 + X1E80100_SLAVE_USB4_0, X1E80100_SLAVE_USB4_1, 181 + X1E80100_SLAVE_USB4_2, X1E80100_SLAVE_VENUS_CFG, 182 + X1E80100_SLAVE_LPASS_QTB_CFG, X1E80100_SLAVE_CNOC_MNOC_CFG, 183 + X1E80100_SLAVE_NSP_QTB_CFG, X1E80100_SLAVE_QDSS_STM, 184 + X1E80100_SLAVE_TCU }, 185 + }; 186 + 187 + static struct qcom_icc_node qnm_gemnoc_cnoc = { 188 + .name = "qnm_gemnoc_cnoc", 189 + .id = X1E80100_MASTER_GEM_NOC_CNOC, 190 + .channels = 1, 191 + .buswidth = 16, 192 + .num_links = 6, 193 + .links = { X1E80100_SLAVE_AOSS, X1E80100_SLAVE_TME_CFG, 194 + X1E80100_SLAVE_APPSS, X1E80100_SLAVE_CNOC_CFG, 195 + X1E80100_SLAVE_BOOT_IMEM, X1E80100_SLAVE_IMEM }, 196 + }; 197 + 198 + static struct qcom_icc_node qnm_gemnoc_pcie = { 199 + .name = "qnm_gemnoc_pcie", 200 + .id = X1E80100_MASTER_GEM_NOC_PCIE_SNOC, 201 + .channels = 1, 202 + .buswidth = 32, 203 + .num_links = 8, 204 + .links = { X1E80100_SLAVE_PCIE_0, X1E80100_SLAVE_PCIE_1, 205 + X1E80100_SLAVE_PCIE_2, X1E80100_SLAVE_PCIE_3, 206 + X1E80100_SLAVE_PCIE_4, X1E80100_SLAVE_PCIE_5, 207 + X1E80100_SLAVE_PCIE_6A, X1E80100_SLAVE_PCIE_6B }, 208 + }; 209 + 210 + static struct qcom_icc_node alm_gpu_tcu = { 211 + .name = "alm_gpu_tcu", 212 + .id = X1E80100_MASTER_GPU_TCU, 213 + .channels = 1, 214 + .buswidth = 8, 215 + .num_links = 2, 216 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 217 + }; 218 + 219 + static struct qcom_icc_node alm_pcie_tcu = { 220 + .name = "alm_pcie_tcu", 221 + .id = X1E80100_MASTER_PCIE_TCU, 222 + .channels = 1, 223 + .buswidth = 8, 224 + .num_links = 2, 225 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 226 + }; 227 + 228 + static struct qcom_icc_node alm_sys_tcu = { 229 + .name = "alm_sys_tcu", 230 + .id = X1E80100_MASTER_SYS_TCU, 231 + .channels = 1, 232 + .buswidth = 8, 233 + .num_links = 2, 234 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 235 + }; 236 + 237 + static struct qcom_icc_node chm_apps = { 238 + .name = "chm_apps", 239 + .id = X1E80100_MASTER_APPSS_PROC, 240 + .channels = 6, 241 + .buswidth = 32, 242 + .num_links = 3, 243 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC, 244 + X1E80100_SLAVE_MEM_NOC_PCIE_SNOC }, 245 + }; 246 + 247 + static struct qcom_icc_node qnm_gpu = { 248 + .name = "qnm_gpu", 249 + .id = X1E80100_MASTER_GFX3D, 250 + .channels = 4, 251 + .buswidth = 32, 252 + .num_links = 2, 253 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 254 + }; 255 + 256 + static struct qcom_icc_node qnm_lpass = { 257 + .name = "qnm_lpass", 258 + .id = X1E80100_MASTER_LPASS_GEM_NOC, 259 + .channels = 1, 260 + .buswidth = 16, 261 + .num_links = 3, 262 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC, 263 + X1E80100_SLAVE_MEM_NOC_PCIE_SNOC }, 264 + }; 265 + 266 + static struct qcom_icc_node qnm_mnoc_hf = { 267 + .name = "qnm_mnoc_hf", 268 + .id = X1E80100_MASTER_MNOC_HF_MEM_NOC, 269 + .channels = 2, 270 + .buswidth = 32, 271 + .num_links = 2, 272 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 273 + }; 274 + 275 + static struct qcom_icc_node qnm_mnoc_sf = { 276 + .name = "qnm_mnoc_sf", 277 + .id = X1E80100_MASTER_MNOC_SF_MEM_NOC, 278 + .channels = 2, 279 + .buswidth = 32, 280 + .num_links = 2, 281 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 282 + }; 283 + 284 + static struct qcom_icc_node qnm_nsp_noc = { 285 + .name = "qnm_nsp_noc", 286 + .id = X1E80100_MASTER_COMPUTE_NOC, 287 + .channels = 2, 288 + .buswidth = 32, 289 + .num_links = 3, 290 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC, 291 + X1E80100_SLAVE_MEM_NOC_PCIE_SNOC }, 292 + }; 293 + 294 + static struct qcom_icc_node qnm_pcie = { 295 + .name = "qnm_pcie", 296 + .id = X1E80100_MASTER_ANOC_PCIE_GEM_NOC, 297 + .channels = 1, 298 + .buswidth = 64, 299 + .num_links = 2, 300 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC }, 301 + }; 302 + 303 + static struct qcom_icc_node qnm_snoc_sf = { 304 + .name = "qnm_snoc_sf", 305 + .id = X1E80100_MASTER_SNOC_SF_MEM_NOC, 306 + .channels = 1, 307 + .buswidth = 64, 308 + .num_links = 3, 309 + .links = { X1E80100_SLAVE_GEM_NOC_CNOC, X1E80100_SLAVE_LLCC, 310 + X1E80100_SLAVE_MEM_NOC_PCIE_SNOC }, 311 + }; 312 + 313 + static struct qcom_icc_node xm_gic = { 314 + .name = "xm_gic", 315 + .id = X1E80100_MASTER_GIC2, 316 + .channels = 1, 317 + .buswidth = 8, 318 + .num_links = 1, 319 + .links = { X1E80100_SLAVE_LLCC }, 320 + }; 321 + 322 + static struct qcom_icc_node qnm_lpiaon_noc = { 323 + .name = "qnm_lpiaon_noc", 324 + .id = X1E80100_MASTER_LPIAON_NOC, 325 + .channels = 1, 326 + .buswidth = 16, 327 + .num_links = 1, 328 + .links = { X1E80100_SLAVE_LPASS_GEM_NOC }, 329 + }; 330 + 331 + static struct qcom_icc_node qnm_lpass_lpinoc = { 332 + .name = "qnm_lpass_lpinoc", 333 + .id = X1E80100_MASTER_LPASS_LPINOC, 334 + .channels = 1, 335 + .buswidth = 16, 336 + .num_links = 1, 337 + .links = { X1E80100_SLAVE_LPIAON_NOC_LPASS_AG_NOC }, 338 + }; 339 + 340 + static struct qcom_icc_node qxm_lpinoc_dsp_axim = { 341 + .name = "qxm_lpinoc_dsp_axim", 342 + .id = X1E80100_MASTER_LPASS_PROC, 343 + .channels = 1, 344 + .buswidth = 16, 345 + .num_links = 1, 346 + .links = { X1E80100_SLAVE_LPICX_NOC_LPIAON_NOC }, 347 + }; 348 + 349 + static struct qcom_icc_node llcc_mc = { 350 + .name = "llcc_mc", 351 + .id = X1E80100_MASTER_LLCC, 352 + .channels = 8, 353 + .buswidth = 4, 354 + .num_links = 1, 355 + .links = { X1E80100_SLAVE_EBI1 }, 356 + }; 357 + 358 + static struct qcom_icc_node qnm_av1_enc = { 359 + .name = "qnm_av1_enc", 360 + .id = X1E80100_MASTER_AV1_ENC, 361 + .channels = 1, 362 + .buswidth = 32, 363 + .num_links = 1, 364 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 365 + }; 366 + 367 + static struct qcom_icc_node qnm_camnoc_hf = { 368 + .name = "qnm_camnoc_hf", 369 + .id = X1E80100_MASTER_CAMNOC_HF, 370 + .channels = 2, 371 + .buswidth = 32, 372 + .num_links = 1, 373 + .links = { X1E80100_SLAVE_MNOC_HF_MEM_NOC }, 374 + }; 375 + 376 + static struct qcom_icc_node qnm_camnoc_icp = { 377 + .name = "qnm_camnoc_icp", 378 + .id = X1E80100_MASTER_CAMNOC_ICP, 379 + .channels = 1, 380 + .buswidth = 8, 381 + .num_links = 1, 382 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 383 + }; 384 + 385 + static struct qcom_icc_node qnm_camnoc_sf = { 386 + .name = "qnm_camnoc_sf", 387 + .id = X1E80100_MASTER_CAMNOC_SF, 388 + .channels = 2, 389 + .buswidth = 32, 390 + .num_links = 1, 391 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 392 + }; 393 + 394 + static struct qcom_icc_node qnm_eva = { 395 + .name = "qnm_eva", 396 + .id = X1E80100_MASTER_EVA, 397 + .channels = 1, 398 + .buswidth = 32, 399 + .num_links = 1, 400 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 401 + }; 402 + 403 + static struct qcom_icc_node qnm_mdp = { 404 + .name = "qnm_mdp", 405 + .id = X1E80100_MASTER_MDP, 406 + .channels = 2, 407 + .buswidth = 32, 408 + .num_links = 1, 409 + .links = { X1E80100_SLAVE_MNOC_HF_MEM_NOC }, 410 + }; 411 + 412 + static struct qcom_icc_node qnm_video = { 413 + .name = "qnm_video", 414 + .id = X1E80100_MASTER_VIDEO, 415 + .channels = 2, 416 + .buswidth = 32, 417 + .num_links = 1, 418 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 419 + }; 420 + 421 + static struct qcom_icc_node qnm_video_cv_cpu = { 422 + .name = "qnm_video_cv_cpu", 423 + .id = X1E80100_MASTER_VIDEO_CV_PROC, 424 + .channels = 1, 425 + .buswidth = 8, 426 + .num_links = 1, 427 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 428 + }; 429 + 430 + static struct qcom_icc_node qnm_video_v_cpu = { 431 + .name = "qnm_video_v_cpu", 432 + .id = X1E80100_MASTER_VIDEO_V_PROC, 433 + .channels = 1, 434 + .buswidth = 8, 435 + .num_links = 1, 436 + .links = { X1E80100_SLAVE_MNOC_SF_MEM_NOC }, 437 + }; 438 + 439 + static struct qcom_icc_node qsm_mnoc_cfg = { 440 + .name = "qsm_mnoc_cfg", 441 + .id = X1E80100_MASTER_CNOC_MNOC_CFG, 442 + .channels = 1, 443 + .buswidth = 4, 444 + .num_links = 1, 445 + .links = { X1E80100_SLAVE_SERVICE_MNOC }, 446 + }; 447 + 448 + static struct qcom_icc_node qxm_nsp = { 449 + .name = "qxm_nsp", 450 + .id = X1E80100_MASTER_CDSP_PROC, 451 + .channels = 2, 452 + .buswidth = 32, 453 + .num_links = 1, 454 + .links = { X1E80100_SLAVE_CDSP_MEM_NOC }, 455 + }; 456 + 457 + static struct qcom_icc_node qnm_pcie_north_gem_noc = { 458 + .name = "qnm_pcie_north_gem_noc", 459 + .id = X1E80100_MASTER_PCIE_NORTH, 460 + .channels = 1, 461 + .buswidth = 64, 462 + .num_links = 1, 463 + .links = { X1E80100_SLAVE_ANOC_PCIE_GEM_NOC }, 464 + }; 465 + 466 + static struct qcom_icc_node qnm_pcie_south_gem_noc = { 467 + .name = "qnm_pcie_south_gem_noc", 468 + .id = X1E80100_MASTER_PCIE_SOUTH, 469 + .channels = 1, 470 + .buswidth = 64, 471 + .num_links = 1, 472 + .links = { X1E80100_SLAVE_ANOC_PCIE_GEM_NOC }, 473 + }; 474 + 475 + static struct qcom_icc_node xm_pcie_3 = { 476 + .name = "xm_pcie_3", 477 + .id = X1E80100_MASTER_PCIE_3, 478 + .channels = 1, 479 + .buswidth = 64, 480 + .num_links = 1, 481 + .links = { X1E80100_SLAVE_PCIE_NORTH }, 482 + }; 483 + 484 + static struct qcom_icc_node xm_pcie_4 = { 485 + .name = "xm_pcie_4", 486 + .id = X1E80100_MASTER_PCIE_4, 487 + .channels = 1, 488 + .buswidth = 8, 489 + .num_links = 1, 490 + .links = { X1E80100_SLAVE_PCIE_NORTH }, 491 + }; 492 + 493 + static struct qcom_icc_node xm_pcie_5 = { 494 + .name = "xm_pcie_5", 495 + .id = X1E80100_MASTER_PCIE_5, 496 + .channels = 1, 497 + .buswidth = 8, 498 + .num_links = 1, 499 + .links = { X1E80100_SLAVE_PCIE_NORTH }, 500 + }; 501 + 502 + static struct qcom_icc_node xm_pcie_0 = { 503 + .name = "xm_pcie_0", 504 + .id = X1E80100_MASTER_PCIE_0, 505 + .channels = 1, 506 + .buswidth = 16, 507 + .num_links = 1, 508 + .links = { X1E80100_SLAVE_PCIE_SOUTH }, 509 + }; 510 + 511 + static struct qcom_icc_node xm_pcie_1 = { 512 + .name = "xm_pcie_1", 513 + .id = X1E80100_MASTER_PCIE_1, 514 + .channels = 1, 515 + .buswidth = 16, 516 + .num_links = 1, 517 + .links = { X1E80100_SLAVE_PCIE_SOUTH }, 518 + }; 519 + 520 + static struct qcom_icc_node xm_pcie_2 = { 521 + .name = "xm_pcie_2", 522 + .id = X1E80100_MASTER_PCIE_2, 523 + .channels = 1, 524 + .buswidth = 16, 525 + .num_links = 1, 526 + .links = { X1E80100_SLAVE_PCIE_SOUTH }, 527 + }; 528 + 529 + static struct qcom_icc_node xm_pcie_6a = { 530 + .name = "xm_pcie_6a", 531 + .id = X1E80100_MASTER_PCIE_6A, 532 + .channels = 1, 533 + .buswidth = 32, 534 + .num_links = 1, 535 + .links = { X1E80100_SLAVE_PCIE_SOUTH }, 536 + }; 537 + 538 + static struct qcom_icc_node xm_pcie_6b = { 539 + .name = "xm_pcie_6b", 540 + .id = X1E80100_MASTER_PCIE_6B, 541 + .channels = 1, 542 + .buswidth = 16, 543 + .num_links = 1, 544 + .links = { X1E80100_SLAVE_PCIE_SOUTH }, 545 + }; 546 + 547 + static struct qcom_icc_node qnm_aggre1_noc = { 548 + .name = "qnm_aggre1_noc", 549 + .id = X1E80100_MASTER_A1NOC_SNOC, 550 + .channels = 1, 551 + .buswidth = 16, 552 + .num_links = 1, 553 + .links = { X1E80100_SLAVE_SNOC_GEM_NOC_SF }, 554 + }; 555 + 556 + static struct qcom_icc_node qnm_aggre2_noc = { 557 + .name = "qnm_aggre2_noc", 558 + .id = X1E80100_MASTER_A2NOC_SNOC, 559 + .channels = 1, 560 + .buswidth = 16, 561 + .num_links = 1, 562 + .links = { X1E80100_SLAVE_SNOC_GEM_NOC_SF }, 563 + }; 564 + 565 + static struct qcom_icc_node qnm_gic = { 566 + .name = "qnm_gic", 567 + .id = X1E80100_MASTER_GIC1, 568 + .channels = 1, 569 + .buswidth = 8, 570 + .num_links = 1, 571 + .links = { X1E80100_SLAVE_SNOC_GEM_NOC_SF }, 572 + }; 573 + 574 + static struct qcom_icc_node qnm_usb_anoc = { 575 + .name = "qnm_usb_anoc", 576 + .id = X1E80100_MASTER_USB_NOC_SNOC, 577 + .channels = 1, 578 + .buswidth = 64, 579 + .num_links = 1, 580 + .links = { X1E80100_SLAVE_SNOC_GEM_NOC_SF }, 581 + }; 582 + 583 + static struct qcom_icc_node qnm_aggre_usb_north_snoc = { 584 + .name = "qnm_aggre_usb_north_snoc", 585 + .id = X1E80100_MASTER_AGGRE_USB_NORTH, 586 + .channels = 1, 587 + .buswidth = 64, 588 + .num_links = 1, 589 + .links = { X1E80100_SLAVE_USB_NOC_SNOC }, 590 + }; 591 + 592 + static struct qcom_icc_node qnm_aggre_usb_south_snoc = { 593 + .name = "qnm_aggre_usb_south_snoc", 594 + .id = X1E80100_MASTER_AGGRE_USB_SOUTH, 595 + .channels = 1, 596 + .buswidth = 64, 597 + .num_links = 1, 598 + .links = { X1E80100_SLAVE_USB_NOC_SNOC }, 599 + }; 600 + 601 + static struct qcom_icc_node xm_usb2_0 = { 602 + .name = "xm_usb2_0", 603 + .id = X1E80100_MASTER_USB2, 604 + .channels = 1, 605 + .buswidth = 8, 606 + .num_links = 1, 607 + .links = { X1E80100_SLAVE_AGGRE_USB_NORTH }, 608 + }; 609 + 610 + static struct qcom_icc_node xm_usb3_mp = { 611 + .name = "xm_usb3_mp", 612 + .id = X1E80100_MASTER_USB3_MP, 613 + .channels = 1, 614 + .buswidth = 16, 615 + .num_links = 1, 616 + .links = { X1E80100_SLAVE_AGGRE_USB_NORTH }, 617 + }; 618 + 619 + static struct qcom_icc_node xm_usb3_0 = { 620 + .name = "xm_usb3_0", 621 + .id = X1E80100_MASTER_USB3_0, 622 + .channels = 1, 623 + .buswidth = 8, 624 + .num_links = 1, 625 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 626 + }; 627 + 628 + static struct qcom_icc_node xm_usb3_1 = { 629 + .name = "xm_usb3_1", 630 + .id = X1E80100_MASTER_USB3_1, 631 + .channels = 1, 632 + .buswidth = 8, 633 + .num_links = 1, 634 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 635 + }; 636 + 637 + static struct qcom_icc_node xm_usb3_2 = { 638 + .name = "xm_usb3_2", 639 + .id = X1E80100_MASTER_USB3_2, 640 + .channels = 1, 641 + .buswidth = 8, 642 + .num_links = 1, 643 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 644 + }; 645 + 646 + static struct qcom_icc_node xm_usb4_0 = { 647 + .name = "xm_usb4_0", 648 + .id = X1E80100_MASTER_USB4_0, 649 + .channels = 1, 650 + .buswidth = 16, 651 + .num_links = 1, 652 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 653 + }; 654 + 655 + static struct qcom_icc_node xm_usb4_1 = { 656 + .name = "xm_usb4_1", 657 + .id = X1E80100_MASTER_USB4_1, 658 + .channels = 1, 659 + .buswidth = 16, 660 + .num_links = 1, 661 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 662 + }; 663 + 664 + static struct qcom_icc_node xm_usb4_2 = { 665 + .name = "xm_usb4_2", 666 + .id = X1E80100_MASTER_USB4_2, 667 + .channels = 1, 668 + .buswidth = 16, 669 + .num_links = 1, 670 + .links = { X1E80100_SLAVE_AGGRE_USB_SOUTH }, 671 + }; 672 + 673 + static struct qcom_icc_node qnm_mnoc_hf_disp = { 674 + .name = "qnm_mnoc_hf_disp", 675 + .id = X1E80100_MASTER_MNOC_HF_MEM_NOC_DISP, 676 + .channels = 2, 677 + .buswidth = 32, 678 + .num_links = 1, 679 + .links = { X1E80100_SLAVE_LLCC_DISP }, 680 + }; 681 + 682 + static struct qcom_icc_node qnm_pcie_disp = { 683 + .name = "qnm_pcie_disp", 684 + .id = X1E80100_MASTER_ANOC_PCIE_GEM_NOC_DISP, 685 + .channels = 1, 686 + .buswidth = 64, 687 + .num_links = 1, 688 + .links = { X1E80100_SLAVE_LLCC_DISP }, 689 + }; 690 + 691 + static struct qcom_icc_node llcc_mc_disp = { 692 + .name = "llcc_mc_disp", 693 + .id = X1E80100_MASTER_LLCC_DISP, 694 + .channels = 8, 695 + .buswidth = 4, 696 + .num_links = 1, 697 + .links = { X1E80100_SLAVE_EBI1_DISP }, 698 + }; 699 + 700 + static struct qcom_icc_node qnm_mdp_disp = { 701 + .name = "qnm_mdp_disp", 702 + .id = X1E80100_MASTER_MDP_DISP, 703 + .channels = 2, 704 + .buswidth = 32, 705 + .num_links = 1, 706 + .links = { X1E80100_SLAVE_MNOC_HF_MEM_NOC_DISP }, 707 + }; 708 + 709 + static struct qcom_icc_node qnm_pcie_pcie = { 710 + .name = "qnm_pcie_pcie", 711 + .id = X1E80100_MASTER_ANOC_PCIE_GEM_NOC_PCIE, 712 + .channels = 1, 713 + .buswidth = 64, 714 + .num_links = 1, 715 + .links = { X1E80100_SLAVE_LLCC_PCIE }, 716 + }; 717 + 718 + static struct qcom_icc_node llcc_mc_pcie = { 719 + .name = "llcc_mc_pcie", 720 + .id = X1E80100_MASTER_LLCC_PCIE, 721 + .channels = 8, 722 + .buswidth = 4, 723 + .num_links = 1, 724 + .links = { X1E80100_SLAVE_EBI1_PCIE }, 725 + }; 726 + 727 + static struct qcom_icc_node qnm_pcie_north_gem_noc_pcie = { 728 + .name = "qnm_pcie_north_gem_noc_pcie", 729 + .id = X1E80100_MASTER_PCIE_NORTH_PCIE, 730 + .channels = 1, 731 + .buswidth = 64, 732 + .num_links = 1, 733 + .links = { X1E80100_SLAVE_ANOC_PCIE_GEM_NOC_PCIE }, 734 + }; 735 + 736 + static struct qcom_icc_node qnm_pcie_south_gem_noc_pcie = { 737 + .name = "qnm_pcie_south_gem_noc_pcie", 738 + .id = X1E80100_MASTER_PCIE_SOUTH_PCIE, 739 + .channels = 1, 740 + .buswidth = 64, 741 + .num_links = 1, 742 + .links = { X1E80100_SLAVE_ANOC_PCIE_GEM_NOC_PCIE }, 743 + }; 744 + 745 + static struct qcom_icc_node xm_pcie_3_pcie = { 746 + .name = "xm_pcie_3_pcie", 747 + .id = X1E80100_MASTER_PCIE_3_PCIE, 748 + .channels = 1, 749 + .buswidth = 64, 750 + .num_links = 1, 751 + .links = { X1E80100_SLAVE_PCIE_NORTH_PCIE }, 752 + }; 753 + 754 + static struct qcom_icc_node xm_pcie_4_pcie = { 755 + .name = "xm_pcie_4_pcie", 756 + .id = X1E80100_MASTER_PCIE_4_PCIE, 757 + .channels = 1, 758 + .buswidth = 8, 759 + .num_links = 1, 760 + .links = { X1E80100_SLAVE_PCIE_NORTH_PCIE }, 761 + }; 762 + 763 + static struct qcom_icc_node xm_pcie_5_pcie = { 764 + .name = "xm_pcie_5_pcie", 765 + .id = X1E80100_MASTER_PCIE_5_PCIE, 766 + .channels = 1, 767 + .buswidth = 8, 768 + .num_links = 1, 769 + .links = { X1E80100_SLAVE_PCIE_NORTH_PCIE }, 770 + }; 771 + 772 + static struct qcom_icc_node xm_pcie_0_pcie = { 773 + .name = "xm_pcie_0_pcie", 774 + .id = X1E80100_MASTER_PCIE_0_PCIE, 775 + .channels = 1, 776 + .buswidth = 16, 777 + .num_links = 1, 778 + .links = { X1E80100_SLAVE_PCIE_SOUTH_PCIE }, 779 + }; 780 + 781 + static struct qcom_icc_node xm_pcie_1_pcie = { 782 + .name = "xm_pcie_1_pcie", 783 + .id = X1E80100_MASTER_PCIE_1_PCIE, 784 + .channels = 1, 785 + .buswidth = 16, 786 + .num_links = 1, 787 + .links = { X1E80100_SLAVE_PCIE_SOUTH_PCIE }, 788 + }; 789 + 790 + static struct qcom_icc_node xm_pcie_2_pcie = { 791 + .name = "xm_pcie_2_pcie", 792 + .id = X1E80100_MASTER_PCIE_2_PCIE, 793 + .channels = 1, 794 + .buswidth = 16, 795 + .num_links = 1, 796 + .links = { X1E80100_SLAVE_PCIE_SOUTH_PCIE }, 797 + }; 798 + 799 + static struct qcom_icc_node xm_pcie_6a_pcie = { 800 + .name = "xm_pcie_6a_pcie", 801 + .id = X1E80100_MASTER_PCIE_6A_PCIE, 802 + .channels = 1, 803 + .buswidth = 32, 804 + .num_links = 1, 805 + .links = { X1E80100_SLAVE_PCIE_SOUTH_PCIE }, 806 + }; 807 + 808 + static struct qcom_icc_node xm_pcie_6b_pcie = { 809 + .name = "xm_pcie_6b_pcie", 810 + .id = X1E80100_MASTER_PCIE_6B_PCIE, 811 + .channels = 1, 812 + .buswidth = 16, 813 + .num_links = 1, 814 + .links = { X1E80100_SLAVE_PCIE_SOUTH_PCIE }, 815 + }; 816 + 817 + static struct qcom_icc_node qns_a1noc_snoc = { 818 + .name = "qns_a1noc_snoc", 819 + .id = X1E80100_SLAVE_A1NOC_SNOC, 820 + .channels = 1, 821 + .buswidth = 16, 822 + .num_links = 1, 823 + .links = { X1E80100_MASTER_A1NOC_SNOC }, 824 + }; 825 + 826 + static struct qcom_icc_node qns_a2noc_snoc = { 827 + .name = "qns_a2noc_snoc", 828 + .id = X1E80100_SLAVE_A2NOC_SNOC, 829 + .channels = 1, 830 + .buswidth = 16, 831 + .num_links = 1, 832 + .links = { X1E80100_MASTER_A2NOC_SNOC }, 833 + }; 834 + 835 + static struct qcom_icc_node ddr_perf_mode_slave = { 836 + .name = "ddr_perf_mode_slave", 837 + .id = X1E80100_SLAVE_DDR_PERF_MODE, 838 + .channels = 1, 839 + .buswidth = 4, 840 + .num_links = 0, 841 + }; 842 + 843 + static struct qcom_icc_node qup0_core_slave = { 844 + .name = "qup0_core_slave", 845 + .id = X1E80100_SLAVE_QUP_CORE_0, 846 + .channels = 1, 847 + .buswidth = 4, 848 + .num_links = 0, 849 + }; 850 + 851 + static struct qcom_icc_node qup1_core_slave = { 852 + .name = "qup1_core_slave", 853 + .id = X1E80100_SLAVE_QUP_CORE_1, 854 + .channels = 1, 855 + .buswidth = 4, 856 + .num_links = 0, 857 + }; 858 + 859 + static struct qcom_icc_node qup2_core_slave = { 860 + .name = "qup2_core_slave", 861 + .id = X1E80100_SLAVE_QUP_CORE_2, 862 + .channels = 1, 863 + .buswidth = 4, 864 + .num_links = 0, 865 + }; 866 + 867 + static struct qcom_icc_node qhs_ahb2phy0 = { 868 + .name = "qhs_ahb2phy0", 869 + .id = X1E80100_SLAVE_AHB2PHY_SOUTH, 870 + .channels = 1, 871 + .buswidth = 4, 872 + .num_links = 0, 873 + }; 874 + 875 + static struct qcom_icc_node qhs_ahb2phy1 = { 876 + .name = "qhs_ahb2phy1", 877 + .id = X1E80100_SLAVE_AHB2PHY_NORTH, 878 + .channels = 1, 879 + .buswidth = 4, 880 + .num_links = 0, 881 + }; 882 + 883 + static struct qcom_icc_node qhs_ahb2phy2 = { 884 + .name = "qhs_ahb2phy2", 885 + .id = X1E80100_SLAVE_AHB2PHY_2, 886 + .channels = 1, 887 + .buswidth = 4, 888 + .num_links = 0, 889 + }; 890 + 891 + static struct qcom_icc_node qhs_av1_enc_cfg = { 892 + .name = "qhs_av1_enc_cfg", 893 + .id = X1E80100_SLAVE_AV1_ENC_CFG, 894 + .channels = 1, 895 + .buswidth = 4, 896 + .num_links = 0, 897 + }; 898 + 899 + static struct qcom_icc_node qhs_camera_cfg = { 900 + .name = "qhs_camera_cfg", 901 + .id = X1E80100_SLAVE_CAMERA_CFG, 902 + .channels = 1, 903 + .buswidth = 4, 904 + .num_links = 0, 905 + }; 906 + 907 + static struct qcom_icc_node qhs_clk_ctl = { 908 + .name = "qhs_clk_ctl", 909 + .id = X1E80100_SLAVE_CLK_CTL, 910 + .channels = 1, 911 + .buswidth = 4, 912 + .num_links = 0, 913 + }; 914 + 915 + static struct qcom_icc_node qhs_crypto0_cfg = { 916 + .name = "qhs_crypto0_cfg", 917 + .id = X1E80100_SLAVE_CRYPTO_0_CFG, 918 + .channels = 1, 919 + .buswidth = 4, 920 + .num_links = 0, 921 + }; 922 + 923 + static struct qcom_icc_node qhs_display_cfg = { 924 + .name = "qhs_display_cfg", 925 + .id = X1E80100_SLAVE_DISPLAY_CFG, 926 + .channels = 1, 927 + .buswidth = 4, 928 + .num_links = 0, 929 + }; 930 + 931 + static struct qcom_icc_node qhs_gpuss_cfg = { 932 + .name = "qhs_gpuss_cfg", 933 + .id = X1E80100_SLAVE_GFX3D_CFG, 934 + .channels = 1, 935 + .buswidth = 8, 936 + .num_links = 0, 937 + }; 938 + 939 + static struct qcom_icc_node qhs_imem_cfg = { 940 + .name = "qhs_imem_cfg", 941 + .id = X1E80100_SLAVE_IMEM_CFG, 942 + .channels = 1, 943 + .buswidth = 4, 944 + .num_links = 0, 945 + }; 946 + 947 + static struct qcom_icc_node qhs_ipc_router = { 948 + .name = "qhs_ipc_router", 949 + .id = X1E80100_SLAVE_IPC_ROUTER_CFG, 950 + .channels = 1, 951 + .buswidth = 4, 952 + .num_links = 0, 953 + }; 954 + 955 + static struct qcom_icc_node qhs_pcie0_cfg = { 956 + .name = "qhs_pcie0_cfg", 957 + .id = X1E80100_SLAVE_PCIE_0_CFG, 958 + .channels = 1, 959 + .buswidth = 4, 960 + .num_links = 0, 961 + }; 962 + 963 + static struct qcom_icc_node qhs_pcie1_cfg = { 964 + .name = "qhs_pcie1_cfg", 965 + .id = X1E80100_SLAVE_PCIE_1_CFG, 966 + .channels = 1, 967 + .buswidth = 4, 968 + .num_links = 0, 969 + }; 970 + 971 + static struct qcom_icc_node qhs_pcie2_cfg = { 972 + .name = "qhs_pcie2_cfg", 973 + .id = X1E80100_SLAVE_PCIE_2_CFG, 974 + .channels = 1, 975 + .buswidth = 4, 976 + .num_links = 0, 977 + }; 978 + 979 + static struct qcom_icc_node qhs_pcie3_cfg = { 980 + .name = "qhs_pcie3_cfg", 981 + .id = X1E80100_SLAVE_PCIE_3_CFG, 982 + .channels = 1, 983 + .buswidth = 4, 984 + .num_links = 0, 985 + }; 986 + 987 + static struct qcom_icc_node qhs_pcie4_cfg = { 988 + .name = "qhs_pcie4_cfg", 989 + .id = X1E80100_SLAVE_PCIE_4_CFG, 990 + .channels = 1, 991 + .buswidth = 4, 992 + .num_links = 0, 993 + }; 994 + 995 + static struct qcom_icc_node qhs_pcie5_cfg = { 996 + .name = "qhs_pcie5_cfg", 997 + .id = X1E80100_SLAVE_PCIE_5_CFG, 998 + .channels = 1, 999 + .buswidth = 4, 1000 + .num_links = 0, 1001 + }; 1002 + 1003 + static struct qcom_icc_node qhs_pcie6a_cfg = { 1004 + .name = "qhs_pcie6a_cfg", 1005 + .id = X1E80100_SLAVE_PCIE_6A_CFG, 1006 + .channels = 1, 1007 + .buswidth = 4, 1008 + .num_links = 0, 1009 + }; 1010 + 1011 + static struct qcom_icc_node qhs_pcie6b_cfg = { 1012 + .name = "qhs_pcie6b_cfg", 1013 + .id = X1E80100_SLAVE_PCIE_6B_CFG, 1014 + .channels = 1, 1015 + .buswidth = 4, 1016 + .num_links = 0, 1017 + }; 1018 + 1019 + static struct qcom_icc_node qhs_pcie_rsc_cfg = { 1020 + .name = "qhs_pcie_rsc_cfg", 1021 + .id = X1E80100_SLAVE_PCIE_RSC_CFG, 1022 + .channels = 1, 1023 + .buswidth = 4, 1024 + .num_links = 0, 1025 + }; 1026 + 1027 + static struct qcom_icc_node qhs_pdm = { 1028 + .name = "qhs_pdm", 1029 + .id = X1E80100_SLAVE_PDM, 1030 + .channels = 1, 1031 + .buswidth = 4, 1032 + .num_links = 0, 1033 + }; 1034 + 1035 + static struct qcom_icc_node qhs_prng = { 1036 + .name = "qhs_prng", 1037 + .id = X1E80100_SLAVE_PRNG, 1038 + .channels = 1, 1039 + .buswidth = 4, 1040 + .num_links = 0, 1041 + }; 1042 + 1043 + static struct qcom_icc_node qhs_qdss_cfg = { 1044 + .name = "qhs_qdss_cfg", 1045 + .id = X1E80100_SLAVE_QDSS_CFG, 1046 + .channels = 1, 1047 + .buswidth = 4, 1048 + .num_links = 0, 1049 + }; 1050 + 1051 + static struct qcom_icc_node qhs_qspi = { 1052 + .name = "qhs_qspi", 1053 + .id = X1E80100_SLAVE_QSPI_0, 1054 + .channels = 1, 1055 + .buswidth = 4, 1056 + .num_links = 0, 1057 + }; 1058 + 1059 + static struct qcom_icc_node qhs_qup0 = { 1060 + .name = "qhs_qup0", 1061 + .id = X1E80100_SLAVE_QUP_0, 1062 + .channels = 1, 1063 + .buswidth = 4, 1064 + .num_links = 0, 1065 + }; 1066 + 1067 + static struct qcom_icc_node qhs_qup1 = { 1068 + .name = "qhs_qup1", 1069 + .id = X1E80100_SLAVE_QUP_1, 1070 + .channels = 1, 1071 + .buswidth = 4, 1072 + .num_links = 0, 1073 + }; 1074 + 1075 + static struct qcom_icc_node qhs_qup2 = { 1076 + .name = "qhs_qup2", 1077 + .id = X1E80100_SLAVE_QUP_2, 1078 + .channels = 1, 1079 + .buswidth = 4, 1080 + .num_links = 0, 1081 + }; 1082 + 1083 + static struct qcom_icc_node qhs_sdc2 = { 1084 + .name = "qhs_sdc2", 1085 + .id = X1E80100_SLAVE_SDCC_2, 1086 + .channels = 1, 1087 + .buswidth = 4, 1088 + .num_links = 0, 1089 + }; 1090 + 1091 + static struct qcom_icc_node qhs_sdc4 = { 1092 + .name = "qhs_sdc4", 1093 + .id = X1E80100_SLAVE_SDCC_4, 1094 + .channels = 1, 1095 + .buswidth = 4, 1096 + .num_links = 0, 1097 + }; 1098 + 1099 + static struct qcom_icc_node qhs_smmuv3_cfg = { 1100 + .name = "qhs_smmuv3_cfg", 1101 + .id = X1E80100_SLAVE_SMMUV3_CFG, 1102 + .channels = 1, 1103 + .buswidth = 8, 1104 + .num_links = 0, 1105 + }; 1106 + 1107 + static struct qcom_icc_node qhs_tcsr = { 1108 + .name = "qhs_tcsr", 1109 + .id = X1E80100_SLAVE_TCSR, 1110 + .channels = 1, 1111 + .buswidth = 4, 1112 + .num_links = 0, 1113 + }; 1114 + 1115 + static struct qcom_icc_node qhs_tlmm = { 1116 + .name = "qhs_tlmm", 1117 + .id = X1E80100_SLAVE_TLMM, 1118 + .channels = 1, 1119 + .buswidth = 4, 1120 + .num_links = 0, 1121 + }; 1122 + 1123 + static struct qcom_icc_node qhs_ufs_mem_cfg = { 1124 + .name = "qhs_ufs_mem_cfg", 1125 + .id = X1E80100_SLAVE_UFS_MEM_CFG, 1126 + .channels = 1, 1127 + .buswidth = 4, 1128 + .num_links = 0, 1129 + }; 1130 + 1131 + static struct qcom_icc_node qhs_usb2_0_cfg = { 1132 + .name = "qhs_usb2_0_cfg", 1133 + .id = X1E80100_SLAVE_USB2, 1134 + .channels = 1, 1135 + .buswidth = 4, 1136 + .num_links = 0, 1137 + }; 1138 + 1139 + static struct qcom_icc_node qhs_usb3_0_cfg = { 1140 + .name = "qhs_usb3_0_cfg", 1141 + .id = X1E80100_SLAVE_USB3_0, 1142 + .channels = 1, 1143 + .buswidth = 4, 1144 + .num_links = 0, 1145 + }; 1146 + 1147 + static struct qcom_icc_node qhs_usb3_1_cfg = { 1148 + .name = "qhs_usb3_1_cfg", 1149 + .id = X1E80100_SLAVE_USB3_1, 1150 + .channels = 1, 1151 + .buswidth = 4, 1152 + .num_links = 0, 1153 + }; 1154 + 1155 + static struct qcom_icc_node qhs_usb3_2_cfg = { 1156 + .name = "qhs_usb3_2_cfg", 1157 + .id = X1E80100_SLAVE_USB3_2, 1158 + .channels = 1, 1159 + .buswidth = 4, 1160 + .num_links = 0, 1161 + }; 1162 + 1163 + static struct qcom_icc_node qhs_usb3_mp_cfg = { 1164 + .name = "qhs_usb3_mp_cfg", 1165 + .id = X1E80100_SLAVE_USB3_MP, 1166 + .channels = 1, 1167 + .buswidth = 4, 1168 + .num_links = 0, 1169 + }; 1170 + 1171 + static struct qcom_icc_node qhs_usb4_0_cfg = { 1172 + .name = "qhs_usb4_0_cfg", 1173 + .id = X1E80100_SLAVE_USB4_0, 1174 + .channels = 1, 1175 + .buswidth = 4, 1176 + .num_links = 0, 1177 + }; 1178 + 1179 + static struct qcom_icc_node qhs_usb4_1_cfg = { 1180 + .name = "qhs_usb4_1_cfg", 1181 + .id = X1E80100_SLAVE_USB4_1, 1182 + .channels = 1, 1183 + .buswidth = 4, 1184 + .num_links = 0, 1185 + }; 1186 + 1187 + static struct qcom_icc_node qhs_usb4_2_cfg = { 1188 + .name = "qhs_usb4_2_cfg", 1189 + .id = X1E80100_SLAVE_USB4_2, 1190 + .channels = 1, 1191 + .buswidth = 4, 1192 + .num_links = 0, 1193 + }; 1194 + 1195 + static struct qcom_icc_node qhs_venus_cfg = { 1196 + .name = "qhs_venus_cfg", 1197 + .id = X1E80100_SLAVE_VENUS_CFG, 1198 + .channels = 1, 1199 + .buswidth = 4, 1200 + .num_links = 0, 1201 + }; 1202 + 1203 + static struct qcom_icc_node qss_lpass_qtb_cfg = { 1204 + .name = "qss_lpass_qtb_cfg", 1205 + .id = X1E80100_SLAVE_LPASS_QTB_CFG, 1206 + .channels = 1, 1207 + .buswidth = 4, 1208 + .num_links = 0, 1209 + }; 1210 + 1211 + static struct qcom_icc_node qss_mnoc_cfg = { 1212 + .name = "qss_mnoc_cfg", 1213 + .id = X1E80100_SLAVE_CNOC_MNOC_CFG, 1214 + .channels = 1, 1215 + .buswidth = 4, 1216 + .num_links = 1, 1217 + .links = { X1E80100_MASTER_CNOC_MNOC_CFG }, 1218 + }; 1219 + 1220 + static struct qcom_icc_node qss_nsp_qtb_cfg = { 1221 + .name = "qss_nsp_qtb_cfg", 1222 + .id = X1E80100_SLAVE_NSP_QTB_CFG, 1223 + .channels = 1, 1224 + .buswidth = 4, 1225 + .num_links = 0, 1226 + }; 1227 + 1228 + static struct qcom_icc_node xs_qdss_stm = { 1229 + .name = "xs_qdss_stm", 1230 + .id = X1E80100_SLAVE_QDSS_STM, 1231 + .channels = 1, 1232 + .buswidth = 4, 1233 + .num_links = 0, 1234 + }; 1235 + 1236 + static struct qcom_icc_node xs_sys_tcu_cfg = { 1237 + .name = "xs_sys_tcu_cfg", 1238 + .id = X1E80100_SLAVE_TCU, 1239 + .channels = 1, 1240 + .buswidth = 8, 1241 + .num_links = 0, 1242 + }; 1243 + 1244 + static struct qcom_icc_node qhs_aoss = { 1245 + .name = "qhs_aoss", 1246 + .id = X1E80100_SLAVE_AOSS, 1247 + .channels = 1, 1248 + .buswidth = 4, 1249 + .num_links = 0, 1250 + }; 1251 + 1252 + static struct qcom_icc_node qhs_tme_cfg = { 1253 + .name = "qhs_tme_cfg", 1254 + .id = X1E80100_SLAVE_TME_CFG, 1255 + .channels = 1, 1256 + .buswidth = 4, 1257 + .num_links = 0, 1258 + }; 1259 + 1260 + static struct qcom_icc_node qns_apss = { 1261 + .name = "qns_apss", 1262 + .id = X1E80100_SLAVE_APPSS, 1263 + .channels = 1, 1264 + .buswidth = 8, 1265 + .num_links = 0, 1266 + }; 1267 + 1268 + static struct qcom_icc_node qss_cfg = { 1269 + .name = "qss_cfg", 1270 + .id = X1E80100_SLAVE_CNOC_CFG, 1271 + .channels = 1, 1272 + .buswidth = 4, 1273 + .num_links = 1, 1274 + .links = { X1E80100_MASTER_CNOC_CFG }, 1275 + }; 1276 + 1277 + static struct qcom_icc_node qxs_boot_imem = { 1278 + .name = "qxs_boot_imem", 1279 + .id = X1E80100_SLAVE_BOOT_IMEM, 1280 + .channels = 1, 1281 + .buswidth = 16, 1282 + .num_links = 0, 1283 + }; 1284 + 1285 + static struct qcom_icc_node qxs_imem = { 1286 + .name = "qxs_imem", 1287 + .id = X1E80100_SLAVE_IMEM, 1288 + .channels = 1, 1289 + .buswidth = 8, 1290 + .num_links = 0, 1291 + }; 1292 + 1293 + static struct qcom_icc_node xs_pcie_0 = { 1294 + .name = "xs_pcie_0", 1295 + .id = X1E80100_SLAVE_PCIE_0, 1296 + .channels = 1, 1297 + .buswidth = 16, 1298 + .num_links = 0, 1299 + }; 1300 + 1301 + static struct qcom_icc_node xs_pcie_1 = { 1302 + .name = "xs_pcie_1", 1303 + .id = X1E80100_SLAVE_PCIE_1, 1304 + .channels = 1, 1305 + .buswidth = 16, 1306 + .num_links = 0, 1307 + }; 1308 + 1309 + static struct qcom_icc_node xs_pcie_2 = { 1310 + .name = "xs_pcie_2", 1311 + .id = X1E80100_SLAVE_PCIE_2, 1312 + .channels = 1, 1313 + .buswidth = 16, 1314 + .num_links = 0, 1315 + }; 1316 + 1317 + static struct qcom_icc_node xs_pcie_3 = { 1318 + .name = "xs_pcie_3", 1319 + .id = X1E80100_SLAVE_PCIE_3, 1320 + .channels = 1, 1321 + .buswidth = 64, 1322 + .num_links = 0, 1323 + }; 1324 + 1325 + static struct qcom_icc_node xs_pcie_4 = { 1326 + .name = "xs_pcie_4", 1327 + .id = X1E80100_SLAVE_PCIE_4, 1328 + .channels = 1, 1329 + .buswidth = 8, 1330 + .num_links = 0, 1331 + }; 1332 + 1333 + static struct qcom_icc_node xs_pcie_5 = { 1334 + .name = "xs_pcie_5", 1335 + .id = X1E80100_SLAVE_PCIE_5, 1336 + .channels = 1, 1337 + .buswidth = 8, 1338 + .num_links = 0, 1339 + }; 1340 + 1341 + static struct qcom_icc_node xs_pcie_6a = { 1342 + .name = "xs_pcie_6a", 1343 + .id = X1E80100_SLAVE_PCIE_6A, 1344 + .channels = 1, 1345 + .buswidth = 32, 1346 + .num_links = 0, 1347 + }; 1348 + 1349 + static struct qcom_icc_node xs_pcie_6b = { 1350 + .name = "xs_pcie_6b", 1351 + .id = X1E80100_SLAVE_PCIE_6B, 1352 + .channels = 1, 1353 + .buswidth = 16, 1354 + .num_links = 0, 1355 + }; 1356 + 1357 + static struct qcom_icc_node qns_gem_noc_cnoc = { 1358 + .name = "qns_gem_noc_cnoc", 1359 + .id = X1E80100_SLAVE_GEM_NOC_CNOC, 1360 + .channels = 1, 1361 + .buswidth = 16, 1362 + .num_links = 1, 1363 + .links = { X1E80100_MASTER_GEM_NOC_CNOC }, 1364 + }; 1365 + 1366 + static struct qcom_icc_node qns_llcc = { 1367 + .name = "qns_llcc", 1368 + .id = X1E80100_SLAVE_LLCC, 1369 + .channels = 8, 1370 + .buswidth = 16, 1371 + .num_links = 1, 1372 + .links = { X1E80100_MASTER_LLCC }, 1373 + }; 1374 + 1375 + static struct qcom_icc_node qns_pcie = { 1376 + .name = "qns_pcie", 1377 + .id = X1E80100_SLAVE_MEM_NOC_PCIE_SNOC, 1378 + .channels = 1, 1379 + .buswidth = 32, 1380 + .num_links = 1, 1381 + .links = { X1E80100_MASTER_GEM_NOC_PCIE_SNOC }, 1382 + }; 1383 + 1384 + static struct qcom_icc_node qns_lpass_ag_noc_gemnoc = { 1385 + .name = "qns_lpass_ag_noc_gemnoc", 1386 + .id = X1E80100_SLAVE_LPASS_GEM_NOC, 1387 + .channels = 1, 1388 + .buswidth = 16, 1389 + .num_links = 1, 1390 + .links = { X1E80100_MASTER_LPASS_GEM_NOC }, 1391 + }; 1392 + 1393 + static struct qcom_icc_node qns_lpass_aggnoc = { 1394 + .name = "qns_lpass_aggnoc", 1395 + .id = X1E80100_SLAVE_LPIAON_NOC_LPASS_AG_NOC, 1396 + .channels = 1, 1397 + .buswidth = 16, 1398 + .num_links = 1, 1399 + .links = { X1E80100_MASTER_LPIAON_NOC }, 1400 + }; 1401 + 1402 + static struct qcom_icc_node qns_lpi_aon_noc = { 1403 + .name = "qns_lpi_aon_noc", 1404 + .id = X1E80100_SLAVE_LPICX_NOC_LPIAON_NOC, 1405 + .channels = 1, 1406 + .buswidth = 16, 1407 + .num_links = 1, 1408 + .links = { X1E80100_MASTER_LPASS_LPINOC }, 1409 + }; 1410 + 1411 + static struct qcom_icc_node ebi = { 1412 + .name = "ebi", 1413 + .id = X1E80100_SLAVE_EBI1, 1414 + .channels = 8, 1415 + .buswidth = 4, 1416 + .num_links = 0, 1417 + }; 1418 + 1419 + static struct qcom_icc_node qns_mem_noc_hf = { 1420 + .name = "qns_mem_noc_hf", 1421 + .id = X1E80100_SLAVE_MNOC_HF_MEM_NOC, 1422 + .channels = 2, 1423 + .buswidth = 32, 1424 + .num_links = 1, 1425 + .links = { X1E80100_MASTER_MNOC_HF_MEM_NOC }, 1426 + }; 1427 + 1428 + static struct qcom_icc_node qns_mem_noc_sf = { 1429 + .name = "qns_mem_noc_sf", 1430 + .id = X1E80100_SLAVE_MNOC_SF_MEM_NOC, 1431 + .channels = 2, 1432 + .buswidth = 32, 1433 + .num_links = 1, 1434 + .links = { X1E80100_MASTER_MNOC_SF_MEM_NOC }, 1435 + }; 1436 + 1437 + static struct qcom_icc_node srvc_mnoc = { 1438 + .name = "srvc_mnoc", 1439 + .id = X1E80100_SLAVE_SERVICE_MNOC, 1440 + .channels = 1, 1441 + .buswidth = 4, 1442 + .num_links = 0, 1443 + }; 1444 + 1445 + static struct qcom_icc_node qns_nsp_gemnoc = { 1446 + .name = "qns_nsp_gemnoc", 1447 + .id = X1E80100_SLAVE_CDSP_MEM_NOC, 1448 + .channels = 2, 1449 + .buswidth = 32, 1450 + .num_links = 1, 1451 + .links = { X1E80100_MASTER_COMPUTE_NOC }, 1452 + }; 1453 + 1454 + static struct qcom_icc_node qns_pcie_mem_noc = { 1455 + .name = "qns_pcie_mem_noc", 1456 + .id = X1E80100_SLAVE_ANOC_PCIE_GEM_NOC, 1457 + .channels = 1, 1458 + .buswidth = 64, 1459 + .num_links = 1, 1460 + .links = { X1E80100_MASTER_ANOC_PCIE_GEM_NOC }, 1461 + }; 1462 + 1463 + static struct qcom_icc_node qns_pcie_north_gem_noc = { 1464 + .name = "qns_pcie_north_gem_noc", 1465 + .id = X1E80100_SLAVE_PCIE_NORTH, 1466 + .channels = 1, 1467 + .buswidth = 64, 1468 + .num_links = 1, 1469 + .links = { X1E80100_MASTER_PCIE_NORTH }, 1470 + }; 1471 + 1472 + static struct qcom_icc_node qns_pcie_south_gem_noc = { 1473 + .name = "qns_pcie_south_gem_noc", 1474 + .id = X1E80100_SLAVE_PCIE_SOUTH, 1475 + .channels = 1, 1476 + .buswidth = 64, 1477 + .num_links = 1, 1478 + .links = { X1E80100_MASTER_PCIE_SOUTH }, 1479 + }; 1480 + 1481 + static struct qcom_icc_node qns_gemnoc_sf = { 1482 + .name = "qns_gemnoc_sf", 1483 + .id = X1E80100_SLAVE_SNOC_GEM_NOC_SF, 1484 + .channels = 1, 1485 + .buswidth = 64, 1486 + .num_links = 1, 1487 + .links = { X1E80100_MASTER_SNOC_SF_MEM_NOC }, 1488 + }; 1489 + 1490 + static struct qcom_icc_node qns_aggre_usb_snoc = { 1491 + .name = "qns_aggre_usb_snoc", 1492 + .id = X1E80100_SLAVE_USB_NOC_SNOC, 1493 + .channels = 1, 1494 + .buswidth = 64, 1495 + .num_links = 1, 1496 + .links = { X1E80100_MASTER_USB_NOC_SNOC }, 1497 + }; 1498 + 1499 + static struct qcom_icc_node qns_aggre_usb_north_snoc = { 1500 + .name = "qns_aggre_usb_north_snoc", 1501 + .id = X1E80100_SLAVE_AGGRE_USB_NORTH, 1502 + .channels = 1, 1503 + .buswidth = 64, 1504 + .num_links = 1, 1505 + .links = { X1E80100_MASTER_AGGRE_USB_NORTH }, 1506 + }; 1507 + 1508 + static struct qcom_icc_node qns_aggre_usb_south_snoc = { 1509 + .name = "qns_aggre_usb_south_snoc", 1510 + .id = X1E80100_SLAVE_AGGRE_USB_SOUTH, 1511 + .channels = 1, 1512 + .buswidth = 64, 1513 + .num_links = 1, 1514 + .links = { X1E80100_MASTER_AGGRE_USB_SOUTH }, 1515 + }; 1516 + 1517 + static struct qcom_icc_node qns_llcc_disp = { 1518 + .name = "qns_llcc_disp", 1519 + .id = X1E80100_SLAVE_LLCC_DISP, 1520 + .channels = 8, 1521 + .buswidth = 16, 1522 + .num_links = 1, 1523 + .links = { X1E80100_MASTER_LLCC_DISP }, 1524 + }; 1525 + 1526 + static struct qcom_icc_node ebi_disp = { 1527 + .name = "ebi_disp", 1528 + .id = X1E80100_SLAVE_EBI1_DISP, 1529 + .channels = 8, 1530 + .buswidth = 4, 1531 + .num_links = 0, 1532 + }; 1533 + 1534 + static struct qcom_icc_node qns_mem_noc_hf_disp = { 1535 + .name = "qns_mem_noc_hf_disp", 1536 + .id = X1E80100_SLAVE_MNOC_HF_MEM_NOC_DISP, 1537 + .channels = 2, 1538 + .buswidth = 32, 1539 + .num_links = 1, 1540 + .links = { X1E80100_MASTER_MNOC_HF_MEM_NOC_DISP }, 1541 + }; 1542 + 1543 + static struct qcom_icc_node qns_llcc_pcie = { 1544 + .name = "qns_llcc_pcie", 1545 + .id = X1E80100_SLAVE_LLCC_PCIE, 1546 + .channels = 8, 1547 + .buswidth = 16, 1548 + .num_links = 1, 1549 + .links = { X1E80100_MASTER_LLCC_PCIE }, 1550 + }; 1551 + 1552 + static struct qcom_icc_node ebi_pcie = { 1553 + .name = "ebi_pcie", 1554 + .id = X1E80100_SLAVE_EBI1_PCIE, 1555 + .channels = 8, 1556 + .buswidth = 4, 1557 + .num_links = 0, 1558 + }; 1559 + 1560 + static struct qcom_icc_node qns_pcie_mem_noc_pcie = { 1561 + .name = "qns_pcie_mem_noc_pcie", 1562 + .id = X1E80100_SLAVE_ANOC_PCIE_GEM_NOC_PCIE, 1563 + .channels = 1, 1564 + .buswidth = 64, 1565 + .num_links = 1, 1566 + .links = { X1E80100_MASTER_ANOC_PCIE_GEM_NOC_PCIE }, 1567 + }; 1568 + 1569 + static struct qcom_icc_node qns_pcie_north_gem_noc_pcie = { 1570 + .name = "qns_pcie_north_gem_noc_pcie", 1571 + .id = X1E80100_SLAVE_PCIE_NORTH_PCIE, 1572 + .channels = 1, 1573 + .buswidth = 64, 1574 + .num_links = 1, 1575 + .links = { X1E80100_MASTER_PCIE_NORTH_PCIE }, 1576 + }; 1577 + 1578 + static struct qcom_icc_node qns_pcie_south_gem_noc_pcie = { 1579 + .name = "qns_pcie_south_gem_noc_pcie", 1580 + .id = X1E80100_SLAVE_PCIE_SOUTH_PCIE, 1581 + .channels = 1, 1582 + .buswidth = 64, 1583 + .num_links = 1, 1584 + .links = { X1E80100_MASTER_PCIE_SOUTH_PCIE }, 1585 + }; 1586 + 1587 + static struct qcom_icc_bcm bcm_acv = { 1588 + .name = "ACV", 1589 + .num_nodes = 1, 1590 + .nodes = { &ebi }, 1591 + }; 1592 + 1593 + static struct qcom_icc_bcm bcm_acv_perf = { 1594 + .name = "ACV_PERF", 1595 + .num_nodes = 1, 1596 + .nodes = { &ddr_perf_mode_slave }, 1597 + }; 1598 + 1599 + static struct qcom_icc_bcm bcm_ce0 = { 1600 + .name = "CE0", 1601 + .num_nodes = 1, 1602 + .nodes = { &qxm_crypto }, 1603 + }; 1604 + 1605 + static struct qcom_icc_bcm bcm_cn0 = { 1606 + .name = "CN0", 1607 + .keepalive = true, 1608 + .num_nodes = 63, 1609 + .nodes = { &qsm_cfg, &qhs_ahb2phy0, 1610 + &qhs_ahb2phy1, &qhs_ahb2phy2, 1611 + &qhs_av1_enc_cfg, &qhs_camera_cfg, 1612 + &qhs_clk_ctl, &qhs_crypto0_cfg, 1613 + &qhs_gpuss_cfg, &qhs_imem_cfg, 1614 + &qhs_ipc_router, &qhs_pcie0_cfg, 1615 + &qhs_pcie1_cfg, &qhs_pcie2_cfg, 1616 + &qhs_pcie3_cfg, &qhs_pcie4_cfg, 1617 + &qhs_pcie5_cfg, &qhs_pcie6a_cfg, 1618 + &qhs_pcie6b_cfg, &qhs_pcie_rsc_cfg, 1619 + &qhs_pdm, &qhs_prng, 1620 + &qhs_qdss_cfg, &qhs_qspi, 1621 + &qhs_qup0, &qhs_qup1, 1622 + &qhs_qup2, &qhs_sdc2, 1623 + &qhs_sdc4, &qhs_smmuv3_cfg, 1624 + &qhs_tcsr, &qhs_tlmm, 1625 + &qhs_ufs_mem_cfg, &qhs_usb2_0_cfg, 1626 + &qhs_usb3_0_cfg, &qhs_usb3_1_cfg, 1627 + &qhs_usb3_2_cfg, &qhs_usb3_mp_cfg, 1628 + &qhs_usb4_0_cfg, &qhs_usb4_1_cfg, 1629 + &qhs_usb4_2_cfg, &qhs_venus_cfg, 1630 + &qss_lpass_qtb_cfg, &qss_mnoc_cfg, 1631 + &qss_nsp_qtb_cfg, &xs_qdss_stm, 1632 + &xs_sys_tcu_cfg, &qnm_gemnoc_cnoc, 1633 + &qnm_gemnoc_pcie, &qhs_aoss, 1634 + &qhs_tme_cfg, &qns_apss, 1635 + &qss_cfg, &qxs_boot_imem, 1636 + &qxs_imem, &xs_pcie_0, 1637 + &xs_pcie_1, &xs_pcie_2, 1638 + &xs_pcie_3, &xs_pcie_4, 1639 + &xs_pcie_5, &xs_pcie_6a, 1640 + &xs_pcie_6b }, 1641 + }; 1642 + 1643 + static struct qcom_icc_bcm bcm_cn1 = { 1644 + .name = "CN1", 1645 + .num_nodes = 1, 1646 + .nodes = { &qhs_display_cfg }, 1647 + }; 1648 + 1649 + static struct qcom_icc_bcm bcm_co0 = { 1650 + .name = "CO0", 1651 + .num_nodes = 2, 1652 + .nodes = { &qxm_nsp, &qns_nsp_gemnoc }, 1653 + }; 1654 + 1655 + static struct qcom_icc_bcm bcm_lp0 = { 1656 + .name = "LP0", 1657 + .num_nodes = 2, 1658 + .nodes = { &qnm_lpass_lpinoc, &qns_lpass_aggnoc }, 1659 + }; 1660 + 1661 + static struct qcom_icc_bcm bcm_mc0 = { 1662 + .name = "MC0", 1663 + .keepalive = true, 1664 + .num_nodes = 1, 1665 + .nodes = { &ebi }, 1666 + }; 1667 + 1668 + static struct qcom_icc_bcm bcm_mm0 = { 1669 + .name = "MM0", 1670 + .num_nodes = 1, 1671 + .nodes = { &qns_mem_noc_hf }, 1672 + }; 1673 + 1674 + static struct qcom_icc_bcm bcm_mm1 = { 1675 + .name = "MM1", 1676 + .num_nodes = 10, 1677 + .nodes = { &qnm_av1_enc, &qnm_camnoc_hf, 1678 + &qnm_camnoc_icp, &qnm_camnoc_sf, 1679 + &qnm_eva, &qnm_mdp, 1680 + &qnm_video, &qnm_video_cv_cpu, 1681 + &qnm_video_v_cpu, &qns_mem_noc_sf }, 1682 + }; 1683 + 1684 + static struct qcom_icc_bcm bcm_pc0 = { 1685 + .name = "PC0", 1686 + .num_nodes = 1, 1687 + .nodes = { &qns_pcie_mem_noc }, 1688 + }; 1689 + 1690 + static struct qcom_icc_bcm bcm_qup0 = { 1691 + .name = "QUP0", 1692 + .keepalive = true, 1693 + .vote_scale = 1, 1694 + .num_nodes = 1, 1695 + .nodes = { &qup0_core_slave }, 1696 + }; 1697 + 1698 + static struct qcom_icc_bcm bcm_qup1 = { 1699 + .name = "QUP1", 1700 + .keepalive = true, 1701 + .vote_scale = 1, 1702 + .num_nodes = 1, 1703 + .nodes = { &qup1_core_slave }, 1704 + }; 1705 + 1706 + static struct qcom_icc_bcm bcm_qup2 = { 1707 + .name = "QUP2", 1708 + .keepalive = true, 1709 + .vote_scale = 1, 1710 + .num_nodes = 1, 1711 + .nodes = { &qup2_core_slave }, 1712 + }; 1713 + 1714 + static struct qcom_icc_bcm bcm_sh0 = { 1715 + .name = "SH0", 1716 + .keepalive = true, 1717 + .num_nodes = 1, 1718 + .nodes = { &qns_llcc }, 1719 + }; 1720 + 1721 + static struct qcom_icc_bcm bcm_sh1 = { 1722 + .name = "SH1", 1723 + .num_nodes = 13, 1724 + .nodes = { &alm_gpu_tcu, &alm_pcie_tcu, 1725 + &alm_sys_tcu, &chm_apps, 1726 + &qnm_gpu, &qnm_lpass, 1727 + &qnm_mnoc_hf, &qnm_mnoc_sf, 1728 + &qnm_nsp_noc, &qnm_pcie, 1729 + &xm_gic, &qns_gem_noc_cnoc, 1730 + &qns_pcie }, 1731 + }; 1732 + 1733 + static struct qcom_icc_bcm bcm_sn0 = { 1734 + .name = "SN0", 1735 + .keepalive = true, 1736 + .num_nodes = 1, 1737 + .nodes = { &qns_gemnoc_sf }, 1738 + }; 1739 + 1740 + static struct qcom_icc_bcm bcm_sn2 = { 1741 + .name = "SN2", 1742 + .num_nodes = 1, 1743 + .nodes = { &qnm_aggre1_noc }, 1744 + }; 1745 + 1746 + static struct qcom_icc_bcm bcm_sn3 = { 1747 + .name = "SN3", 1748 + .num_nodes = 1, 1749 + .nodes = { &qnm_aggre2_noc }, 1750 + }; 1751 + 1752 + static struct qcom_icc_bcm bcm_sn4 = { 1753 + .name = "SN4", 1754 + .num_nodes = 1, 1755 + .nodes = { &qnm_usb_anoc }, 1756 + }; 1757 + 1758 + static struct qcom_icc_bcm bcm_acv_disp = { 1759 + .name = "ACV", 1760 + .num_nodes = 1, 1761 + .nodes = { &ebi_disp }, 1762 + }; 1763 + 1764 + static struct qcom_icc_bcm bcm_mc0_disp = { 1765 + .name = "MC0", 1766 + .num_nodes = 1, 1767 + .nodes = { &ebi_disp }, 1768 + }; 1769 + 1770 + static struct qcom_icc_bcm bcm_mm0_disp = { 1771 + .name = "MM0", 1772 + .num_nodes = 1, 1773 + .nodes = { &qns_mem_noc_hf_disp }, 1774 + }; 1775 + 1776 + static struct qcom_icc_bcm bcm_mm1_disp = { 1777 + .name = "MM1", 1778 + .num_nodes = 1, 1779 + .nodes = { &qnm_mdp_disp }, 1780 + }; 1781 + 1782 + static struct qcom_icc_bcm bcm_sh0_disp = { 1783 + .name = "SH0", 1784 + .num_nodes = 1, 1785 + .nodes = { &qns_llcc_disp }, 1786 + }; 1787 + 1788 + static struct qcom_icc_bcm bcm_sh1_disp = { 1789 + .name = "SH1", 1790 + .num_nodes = 2, 1791 + .nodes = { &qnm_mnoc_hf_disp, &qnm_pcie_disp }, 1792 + }; 1793 + 1794 + static struct qcom_icc_bcm bcm_acv_pcie = { 1795 + .name = "ACV", 1796 + .num_nodes = 1, 1797 + .nodes = { &ebi_pcie }, 1798 + }; 1799 + 1800 + static struct qcom_icc_bcm bcm_mc0_pcie = { 1801 + .name = "MC0", 1802 + .num_nodes = 1, 1803 + .nodes = { &ebi_pcie }, 1804 + }; 1805 + 1806 + static struct qcom_icc_bcm bcm_pc0_pcie = { 1807 + .name = "PC0", 1808 + .num_nodes = 1, 1809 + .nodes = { &qns_pcie_mem_noc_pcie }, 1810 + }; 1811 + 1812 + static struct qcom_icc_bcm bcm_sh0_pcie = { 1813 + .name = "SH0", 1814 + .num_nodes = 1, 1815 + .nodes = { &qns_llcc_pcie }, 1816 + }; 1817 + 1818 + static struct qcom_icc_bcm bcm_sh1_pcie = { 1819 + .name = "SH1", 1820 + .num_nodes = 1, 1821 + .nodes = { &qnm_pcie_pcie }, 1822 + }; 1823 + 1824 + static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 1825 + }; 1826 + 1827 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1828 + [MASTER_QSPI_0] = &qhm_qspi, 1829 + [MASTER_QUP_1] = &qhm_qup1, 1830 + [MASTER_SDCC_4] = &xm_sdc4, 1831 + [MASTER_UFS_MEM] = &xm_ufs_mem, 1832 + [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 1833 + }; 1834 + 1835 + static const struct qcom_icc_desc x1e80100_aggre1_noc = { 1836 + .nodes = aggre1_noc_nodes, 1837 + .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1838 + .bcms = aggre1_noc_bcms, 1839 + .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1840 + }; 1841 + 1842 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 1843 + &bcm_ce0, 1844 + }; 1845 + 1846 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1847 + [MASTER_QUP_0] = &qhm_qup0, 1848 + [MASTER_QUP_2] = &qhm_qup2, 1849 + [MASTER_CRYPTO] = &qxm_crypto, 1850 + [MASTER_SP] = &qxm_sp, 1851 + [MASTER_QDSS_ETR] = &xm_qdss_etr_0, 1852 + [MASTER_QDSS_ETR_1] = &xm_qdss_etr_1, 1853 + [MASTER_SDCC_2] = &xm_sdc2, 1854 + [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc, 1855 + }; 1856 + 1857 + static const struct qcom_icc_desc x1e80100_aggre2_noc = { 1858 + .nodes = aggre2_noc_nodes, 1859 + .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1860 + .bcms = aggre2_noc_bcms, 1861 + .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1862 + }; 1863 + 1864 + static struct qcom_icc_bcm * const clk_virt_bcms[] = { 1865 + &bcm_acv_perf, 1866 + &bcm_qup0, 1867 + &bcm_qup1, 1868 + &bcm_qup2, 1869 + }; 1870 + 1871 + static struct qcom_icc_node * const clk_virt_nodes[] = { 1872 + [MASTER_DDR_PERF_MODE] = &ddr_perf_mode_master, 1873 + [MASTER_QUP_CORE_0] = &qup0_core_master, 1874 + [MASTER_QUP_CORE_1] = &qup1_core_master, 1875 + [MASTER_QUP_CORE_2] = &qup2_core_master, 1876 + [SLAVE_DDR_PERF_MODE] = &ddr_perf_mode_slave, 1877 + [SLAVE_QUP_CORE_0] = &qup0_core_slave, 1878 + [SLAVE_QUP_CORE_1] = &qup1_core_slave, 1879 + [SLAVE_QUP_CORE_2] = &qup2_core_slave, 1880 + }; 1881 + 1882 + static const struct qcom_icc_desc x1e80100_clk_virt = { 1883 + .nodes = clk_virt_nodes, 1884 + .num_nodes = ARRAY_SIZE(clk_virt_nodes), 1885 + .bcms = clk_virt_bcms, 1886 + .num_bcms = ARRAY_SIZE(clk_virt_bcms), 1887 + }; 1888 + 1889 + static struct qcom_icc_bcm * const cnoc_cfg_bcms[] = { 1890 + &bcm_cn0, 1891 + &bcm_cn1, 1892 + }; 1893 + 1894 + static struct qcom_icc_node * const cnoc_cfg_nodes[] = { 1895 + [MASTER_CNOC_CFG] = &qsm_cfg, 1896 + [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, 1897 + [SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1, 1898 + [SLAVE_AHB2PHY_2] = &qhs_ahb2phy2, 1899 + [SLAVE_AV1_ENC_CFG] = &qhs_av1_enc_cfg, 1900 + [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 1901 + [SLAVE_CLK_CTL] = &qhs_clk_ctl, 1902 + [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 1903 + [SLAVE_DISPLAY_CFG] = &qhs_display_cfg, 1904 + [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg, 1905 + [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 1906 + [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router, 1907 + [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg, 1908 + [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg, 1909 + [SLAVE_PCIE_2_CFG] = &qhs_pcie2_cfg, 1910 + [SLAVE_PCIE_3_CFG] = &qhs_pcie3_cfg, 1911 + [SLAVE_PCIE_4_CFG] = &qhs_pcie4_cfg, 1912 + [SLAVE_PCIE_5_CFG] = &qhs_pcie5_cfg, 1913 + [SLAVE_PCIE_6A_CFG] = &qhs_pcie6a_cfg, 1914 + [SLAVE_PCIE_6B_CFG] = &qhs_pcie6b_cfg, 1915 + [SLAVE_PCIE_RSC_CFG] = &qhs_pcie_rsc_cfg, 1916 + [SLAVE_PDM] = &qhs_pdm, 1917 + [SLAVE_PRNG] = &qhs_prng, 1918 + [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 1919 + [SLAVE_QSPI_0] = &qhs_qspi, 1920 + [SLAVE_QUP_0] = &qhs_qup0, 1921 + [SLAVE_QUP_1] = &qhs_qup1, 1922 + [SLAVE_QUP_2] = &qhs_qup2, 1923 + [SLAVE_SDCC_2] = &qhs_sdc2, 1924 + [SLAVE_SDCC_4] = &qhs_sdc4, 1925 + [SLAVE_SMMUV3_CFG] = &qhs_smmuv3_cfg, 1926 + [SLAVE_TCSR] = &qhs_tcsr, 1927 + [SLAVE_TLMM] = &qhs_tlmm, 1928 + [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 1929 + [SLAVE_USB2] = &qhs_usb2_0_cfg, 1930 + [SLAVE_USB3_0] = &qhs_usb3_0_cfg, 1931 + [SLAVE_USB3_1] = &qhs_usb3_1_cfg, 1932 + [SLAVE_USB3_2] = &qhs_usb3_2_cfg, 1933 + [SLAVE_USB3_MP] = &qhs_usb3_mp_cfg, 1934 + [SLAVE_USB4_0] = &qhs_usb4_0_cfg, 1935 + [SLAVE_USB4_1] = &qhs_usb4_1_cfg, 1936 + [SLAVE_USB4_2] = &qhs_usb4_2_cfg, 1937 + [SLAVE_VENUS_CFG] = &qhs_venus_cfg, 1938 + [SLAVE_LPASS_QTB_CFG] = &qss_lpass_qtb_cfg, 1939 + [SLAVE_CNOC_MNOC_CFG] = &qss_mnoc_cfg, 1940 + [SLAVE_NSP_QTB_CFG] = &qss_nsp_qtb_cfg, 1941 + [SLAVE_QDSS_STM] = &xs_qdss_stm, 1942 + [SLAVE_TCU] = &xs_sys_tcu_cfg, 1943 + }; 1944 + 1945 + static const struct qcom_icc_desc x1e80100_cnoc_cfg = { 1946 + .nodes = cnoc_cfg_nodes, 1947 + .num_nodes = ARRAY_SIZE(cnoc_cfg_nodes), 1948 + .bcms = cnoc_cfg_bcms, 1949 + .num_bcms = ARRAY_SIZE(cnoc_cfg_bcms), 1950 + }; 1951 + 1952 + static struct qcom_icc_bcm * const cnoc_main_bcms[] = { 1953 + &bcm_cn0, 1954 + }; 1955 + 1956 + static struct qcom_icc_node * const cnoc_main_nodes[] = { 1957 + [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1958 + [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 1959 + [SLAVE_AOSS] = &qhs_aoss, 1960 + [SLAVE_TME_CFG] = &qhs_tme_cfg, 1961 + [SLAVE_APPSS] = &qns_apss, 1962 + [SLAVE_CNOC_CFG] = &qss_cfg, 1963 + [SLAVE_BOOT_IMEM] = &qxs_boot_imem, 1964 + [SLAVE_IMEM] = &qxs_imem, 1965 + [SLAVE_PCIE_0] = &xs_pcie_0, 1966 + [SLAVE_PCIE_1] = &xs_pcie_1, 1967 + [SLAVE_PCIE_2] = &xs_pcie_2, 1968 + [SLAVE_PCIE_3] = &xs_pcie_3, 1969 + [SLAVE_PCIE_4] = &xs_pcie_4, 1970 + [SLAVE_PCIE_5] = &xs_pcie_5, 1971 + [SLAVE_PCIE_6A] = &xs_pcie_6a, 1972 + [SLAVE_PCIE_6B] = &xs_pcie_6b, 1973 + }; 1974 + 1975 + static const struct qcom_icc_desc x1e80100_cnoc_main = { 1976 + .nodes = cnoc_main_nodes, 1977 + .num_nodes = ARRAY_SIZE(cnoc_main_nodes), 1978 + .bcms = cnoc_main_bcms, 1979 + .num_bcms = ARRAY_SIZE(cnoc_main_bcms), 1980 + }; 1981 + 1982 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1983 + &bcm_sh0, 1984 + &bcm_sh1, 1985 + &bcm_sh0_disp, 1986 + &bcm_sh1_disp, 1987 + &bcm_sh0_pcie, 1988 + &bcm_sh1_pcie, 1989 + }; 1990 + 1991 + static struct qcom_icc_node * const gem_noc_nodes[] = { 1992 + [MASTER_GPU_TCU] = &alm_gpu_tcu, 1993 + [MASTER_PCIE_TCU] = &alm_pcie_tcu, 1994 + [MASTER_SYS_TCU] = &alm_sys_tcu, 1995 + [MASTER_APPSS_PROC] = &chm_apps, 1996 + [MASTER_GFX3D] = &qnm_gpu, 1997 + [MASTER_LPASS_GEM_NOC] = &qnm_lpass, 1998 + [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 1999 + [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 2000 + [MASTER_COMPUTE_NOC] = &qnm_nsp_noc, 2001 + [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie, 2002 + [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 2003 + [MASTER_GIC2] = &xm_gic, 2004 + [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc, 2005 + [SLAVE_LLCC] = &qns_llcc, 2006 + [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie, 2007 + [MASTER_MNOC_HF_MEM_NOC_DISP] = &qnm_mnoc_hf_disp, 2008 + [MASTER_ANOC_PCIE_GEM_NOC_DISP] = &qnm_pcie_disp, 2009 + [SLAVE_LLCC_DISP] = &qns_llcc_disp, 2010 + [MASTER_ANOC_PCIE_GEM_NOC_PCIE] = &qnm_pcie_pcie, 2011 + [SLAVE_LLCC_PCIE] = &qns_llcc_pcie, 2012 + }; 2013 + 2014 + static const struct qcom_icc_desc x1e80100_gem_noc = { 2015 + .nodes = gem_noc_nodes, 2016 + .num_nodes = ARRAY_SIZE(gem_noc_nodes), 2017 + .bcms = gem_noc_bcms, 2018 + .num_bcms = ARRAY_SIZE(gem_noc_bcms), 2019 + }; 2020 + 2021 + static struct qcom_icc_bcm *lpass_ag_noc_bcms[] = { 2022 + }; 2023 + 2024 + static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 2025 + [MASTER_LPIAON_NOC] = &qnm_lpiaon_noc, 2026 + [SLAVE_LPASS_GEM_NOC] = &qns_lpass_ag_noc_gemnoc, 2027 + }; 2028 + 2029 + static const struct qcom_icc_desc x1e80100_lpass_ag_noc = { 2030 + .nodes = lpass_ag_noc_nodes, 2031 + .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 2032 + .bcms = lpass_ag_noc_bcms, 2033 + .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 2034 + }; 2035 + 2036 + static struct qcom_icc_bcm * const lpass_lpiaon_noc_bcms[] = { 2037 + &bcm_lp0, 2038 + }; 2039 + 2040 + static struct qcom_icc_node * const lpass_lpiaon_noc_nodes[] = { 2041 + [MASTER_LPASS_LPINOC] = &qnm_lpass_lpinoc, 2042 + [SLAVE_LPIAON_NOC_LPASS_AG_NOC] = &qns_lpass_aggnoc, 2043 + }; 2044 + 2045 + static const struct qcom_icc_desc x1e80100_lpass_lpiaon_noc = { 2046 + .nodes = lpass_lpiaon_noc_nodes, 2047 + .num_nodes = ARRAY_SIZE(lpass_lpiaon_noc_nodes), 2048 + .bcms = lpass_lpiaon_noc_bcms, 2049 + .num_bcms = ARRAY_SIZE(lpass_lpiaon_noc_bcms), 2050 + }; 2051 + 2052 + static struct qcom_icc_bcm * const lpass_lpicx_noc_bcms[] = { 2053 + }; 2054 + 2055 + static struct qcom_icc_node * const lpass_lpicx_noc_nodes[] = { 2056 + [MASTER_LPASS_PROC] = &qxm_lpinoc_dsp_axim, 2057 + [SLAVE_LPICX_NOC_LPIAON_NOC] = &qns_lpi_aon_noc, 2058 + }; 2059 + 2060 + static const struct qcom_icc_desc x1e80100_lpass_lpicx_noc = { 2061 + .nodes = lpass_lpicx_noc_nodes, 2062 + .num_nodes = ARRAY_SIZE(lpass_lpicx_noc_nodes), 2063 + .bcms = lpass_lpicx_noc_bcms, 2064 + .num_bcms = ARRAY_SIZE(lpass_lpicx_noc_bcms), 2065 + }; 2066 + 2067 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 2068 + &bcm_acv, 2069 + &bcm_mc0, 2070 + &bcm_acv_disp, 2071 + &bcm_mc0_disp, 2072 + &bcm_acv_pcie, 2073 + &bcm_mc0_pcie, 2074 + }; 2075 + 2076 + static struct qcom_icc_node * const mc_virt_nodes[] = { 2077 + [MASTER_LLCC] = &llcc_mc, 2078 + [SLAVE_EBI1] = &ebi, 2079 + [MASTER_LLCC_DISP] = &llcc_mc_disp, 2080 + [SLAVE_EBI1_DISP] = &ebi_disp, 2081 + [MASTER_LLCC_PCIE] = &llcc_mc_pcie, 2082 + [SLAVE_EBI1_PCIE] = &ebi_pcie, 2083 + }; 2084 + 2085 + static const struct qcom_icc_desc x1e80100_mc_virt = { 2086 + .nodes = mc_virt_nodes, 2087 + .num_nodes = ARRAY_SIZE(mc_virt_nodes), 2088 + .bcms = mc_virt_bcms, 2089 + .num_bcms = ARRAY_SIZE(mc_virt_bcms), 2090 + }; 2091 + 2092 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 2093 + &bcm_mm0, 2094 + &bcm_mm1, 2095 + &bcm_mm0_disp, 2096 + &bcm_mm1_disp, 2097 + }; 2098 + 2099 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 2100 + [MASTER_AV1_ENC] = &qnm_av1_enc, 2101 + [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 2102 + [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp, 2103 + [MASTER_CAMNOC_SF] = &qnm_camnoc_sf, 2104 + [MASTER_EVA] = &qnm_eva, 2105 + [MASTER_MDP] = &qnm_mdp, 2106 + [MASTER_VIDEO] = &qnm_video, 2107 + [MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu, 2108 + [MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu, 2109 + [MASTER_CNOC_MNOC_CFG] = &qsm_mnoc_cfg, 2110 + [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 2111 + [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf, 2112 + [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 2113 + [MASTER_MDP_DISP] = &qnm_mdp_disp, 2114 + [SLAVE_MNOC_HF_MEM_NOC_DISP] = &qns_mem_noc_hf_disp, 2115 + }; 2116 + 2117 + static const struct qcom_icc_desc x1e80100_mmss_noc = { 2118 + .nodes = mmss_noc_nodes, 2119 + .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 2120 + .bcms = mmss_noc_bcms, 2121 + .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 2122 + }; 2123 + 2124 + static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 2125 + &bcm_co0, 2126 + }; 2127 + 2128 + static struct qcom_icc_node * const nsp_noc_nodes[] = { 2129 + [MASTER_CDSP_PROC] = &qxm_nsp, 2130 + [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 2131 + }; 2132 + 2133 + static const struct qcom_icc_desc x1e80100_nsp_noc = { 2134 + .nodes = nsp_noc_nodes, 2135 + .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 2136 + .bcms = nsp_noc_bcms, 2137 + .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 2138 + }; 2139 + 2140 + static struct qcom_icc_bcm * const pcie_center_anoc_bcms[] = { 2141 + &bcm_pc0, 2142 + &bcm_pc0_pcie, 2143 + }; 2144 + 2145 + static struct qcom_icc_node * const pcie_center_anoc_nodes[] = { 2146 + [MASTER_PCIE_NORTH] = &qnm_pcie_north_gem_noc, 2147 + [MASTER_PCIE_SOUTH] = &qnm_pcie_south_gem_noc, 2148 + [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc, 2149 + [MASTER_PCIE_NORTH_PCIE] = &qnm_pcie_north_gem_noc_pcie, 2150 + [MASTER_PCIE_SOUTH_PCIE] = &qnm_pcie_south_gem_noc_pcie, 2151 + [SLAVE_ANOC_PCIE_GEM_NOC_PCIE] = &qns_pcie_mem_noc_pcie, 2152 + }; 2153 + 2154 + static const struct qcom_icc_desc x1e80100_pcie_center_anoc = { 2155 + .nodes = pcie_center_anoc_nodes, 2156 + .num_nodes = ARRAY_SIZE(pcie_center_anoc_nodes), 2157 + .bcms = pcie_center_anoc_bcms, 2158 + .num_bcms = ARRAY_SIZE(pcie_center_anoc_bcms), 2159 + }; 2160 + 2161 + static struct qcom_icc_bcm * const pcie_north_anoc_bcms[] = { 2162 + }; 2163 + 2164 + static struct qcom_icc_node * const pcie_north_anoc_nodes[] = { 2165 + [MASTER_PCIE_3] = &xm_pcie_3, 2166 + [MASTER_PCIE_4] = &xm_pcie_4, 2167 + [MASTER_PCIE_5] = &xm_pcie_5, 2168 + [SLAVE_PCIE_NORTH] = &qns_pcie_north_gem_noc, 2169 + [MASTER_PCIE_3_PCIE] = &xm_pcie_3_pcie, 2170 + [MASTER_PCIE_4_PCIE] = &xm_pcie_4_pcie, 2171 + [MASTER_PCIE_5_PCIE] = &xm_pcie_5_pcie, 2172 + [SLAVE_PCIE_NORTH_PCIE] = &qns_pcie_north_gem_noc_pcie, 2173 + }; 2174 + 2175 + static const struct qcom_icc_desc x1e80100_pcie_north_anoc = { 2176 + .nodes = pcie_north_anoc_nodes, 2177 + .num_nodes = ARRAY_SIZE(pcie_north_anoc_nodes), 2178 + .bcms = pcie_north_anoc_bcms, 2179 + .num_bcms = ARRAY_SIZE(pcie_north_anoc_bcms), 2180 + }; 2181 + 2182 + static struct qcom_icc_bcm *pcie_south_anoc_bcms[] = { 2183 + }; 2184 + 2185 + static struct qcom_icc_node * const pcie_south_anoc_nodes[] = { 2186 + [MASTER_PCIE_0] = &xm_pcie_0, 2187 + [MASTER_PCIE_1] = &xm_pcie_1, 2188 + [MASTER_PCIE_2] = &xm_pcie_2, 2189 + [MASTER_PCIE_6A] = &xm_pcie_6a, 2190 + [MASTER_PCIE_6B] = &xm_pcie_6b, 2191 + [SLAVE_PCIE_SOUTH] = &qns_pcie_south_gem_noc, 2192 + [MASTER_PCIE_0_PCIE] = &xm_pcie_0_pcie, 2193 + [MASTER_PCIE_1_PCIE] = &xm_pcie_1_pcie, 2194 + [MASTER_PCIE_2_PCIE] = &xm_pcie_2_pcie, 2195 + [MASTER_PCIE_6A_PCIE] = &xm_pcie_6a_pcie, 2196 + [MASTER_PCIE_6B_PCIE] = &xm_pcie_6b_pcie, 2197 + [SLAVE_PCIE_SOUTH_PCIE] = &qns_pcie_south_gem_noc_pcie, 2198 + }; 2199 + 2200 + static const struct qcom_icc_desc x1e80100_pcie_south_anoc = { 2201 + .nodes = pcie_south_anoc_nodes, 2202 + .num_nodes = ARRAY_SIZE(pcie_south_anoc_nodes), 2203 + .bcms = pcie_south_anoc_bcms, 2204 + .num_bcms = ARRAY_SIZE(pcie_south_anoc_bcms), 2205 + }; 2206 + 2207 + static struct qcom_icc_bcm *system_noc_bcms[] = { 2208 + &bcm_sn0, 2209 + &bcm_sn2, 2210 + &bcm_sn3, 2211 + &bcm_sn4, 2212 + }; 2213 + 2214 + static struct qcom_icc_node * const system_noc_nodes[] = { 2215 + [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 2216 + [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 2217 + [MASTER_GIC1] = &qnm_gic, 2218 + [MASTER_USB_NOC_SNOC] = &qnm_usb_anoc, 2219 + [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf, 2220 + }; 2221 + 2222 + static const struct qcom_icc_desc x1e80100_system_noc = { 2223 + .nodes = system_noc_nodes, 2224 + .num_nodes = ARRAY_SIZE(system_noc_nodes), 2225 + .bcms = system_noc_bcms, 2226 + .num_bcms = ARRAY_SIZE(system_noc_bcms), 2227 + }; 2228 + 2229 + static struct qcom_icc_bcm * const usb_center_anoc_bcms[] = { 2230 + }; 2231 + 2232 + static struct qcom_icc_node * const usb_center_anoc_nodes[] = { 2233 + [MASTER_AGGRE_USB_NORTH] = &qnm_aggre_usb_north_snoc, 2234 + [MASTER_AGGRE_USB_SOUTH] = &qnm_aggre_usb_south_snoc, 2235 + [SLAVE_USB_NOC_SNOC] = &qns_aggre_usb_snoc, 2236 + }; 2237 + 2238 + static const struct qcom_icc_desc x1e80100_usb_center_anoc = { 2239 + .nodes = usb_center_anoc_nodes, 2240 + .num_nodes = ARRAY_SIZE(usb_center_anoc_nodes), 2241 + .bcms = usb_center_anoc_bcms, 2242 + .num_bcms = ARRAY_SIZE(usb_center_anoc_bcms), 2243 + }; 2244 + 2245 + static struct qcom_icc_bcm *usb_north_anoc_bcms[] = { 2246 + }; 2247 + 2248 + static struct qcom_icc_node * const usb_north_anoc_nodes[] = { 2249 + [MASTER_USB2] = &xm_usb2_0, 2250 + [MASTER_USB3_MP] = &xm_usb3_mp, 2251 + [SLAVE_AGGRE_USB_NORTH] = &qns_aggre_usb_north_snoc, 2252 + }; 2253 + 2254 + static const struct qcom_icc_desc x1e80100_usb_north_anoc = { 2255 + .nodes = usb_north_anoc_nodes, 2256 + .num_nodes = ARRAY_SIZE(usb_north_anoc_nodes), 2257 + .bcms = usb_north_anoc_bcms, 2258 + .num_bcms = ARRAY_SIZE(usb_north_anoc_bcms), 2259 + }; 2260 + 2261 + static struct qcom_icc_bcm *usb_south_anoc_bcms[] = { 2262 + }; 2263 + 2264 + static struct qcom_icc_node * const usb_south_anoc_nodes[] = { 2265 + [MASTER_USB3_0] = &xm_usb3_0, 2266 + [MASTER_USB3_1] = &xm_usb3_1, 2267 + [MASTER_USB3_2] = &xm_usb3_2, 2268 + [MASTER_USB4_0] = &xm_usb4_0, 2269 + [MASTER_USB4_1] = &xm_usb4_1, 2270 + [MASTER_USB4_2] = &xm_usb4_2, 2271 + [SLAVE_AGGRE_USB_SOUTH] = &qns_aggre_usb_south_snoc, 2272 + }; 2273 + 2274 + static const struct qcom_icc_desc x1e80100_usb_south_anoc = { 2275 + .nodes = usb_south_anoc_nodes, 2276 + .num_nodes = ARRAY_SIZE(usb_south_anoc_nodes), 2277 + .bcms = usb_south_anoc_bcms, 2278 + .num_bcms = ARRAY_SIZE(usb_south_anoc_bcms), 2279 + }; 2280 + 2281 + static const struct of_device_id qnoc_of_match[] = { 2282 + { .compatible = "qcom,x1e80100-aggre1-noc", .data = &x1e80100_aggre1_noc}, 2283 + { .compatible = "qcom,x1e80100-aggre2-noc", .data = &x1e80100_aggre2_noc}, 2284 + { .compatible = "qcom,x1e80100-clk-virt", .data = &x1e80100_clk_virt}, 2285 + { .compatible = "qcom,x1e80100-cnoc-cfg", .data = &x1e80100_cnoc_cfg}, 2286 + { .compatible = "qcom,x1e80100-cnoc-main", .data = &x1e80100_cnoc_main}, 2287 + { .compatible = "qcom,x1e80100-gem-noc", .data = &x1e80100_gem_noc}, 2288 + { .compatible = "qcom,x1e80100-lpass-ag-noc", .data = &x1e80100_lpass_ag_noc}, 2289 + { .compatible = "qcom,x1e80100-lpass-lpiaon-noc", .data = &x1e80100_lpass_lpiaon_noc}, 2290 + { .compatible = "qcom,x1e80100-lpass-lpicx-noc", .data = &x1e80100_lpass_lpicx_noc}, 2291 + { .compatible = "qcom,x1e80100-mc-virt", .data = &x1e80100_mc_virt}, 2292 + { .compatible = "qcom,x1e80100-mmss-noc", .data = &x1e80100_mmss_noc}, 2293 + { .compatible = "qcom,x1e80100-nsp-noc", .data = &x1e80100_nsp_noc}, 2294 + { .compatible = "qcom,x1e80100-pcie-center-anoc", .data = &x1e80100_pcie_center_anoc}, 2295 + { .compatible = "qcom,x1e80100-pcie-north-anoc", .data = &x1e80100_pcie_north_anoc}, 2296 + { .compatible = "qcom,x1e80100-pcie-south-anoc", .data = &x1e80100_pcie_south_anoc}, 2297 + { .compatible = "qcom,x1e80100-system-noc", .data = &x1e80100_system_noc}, 2298 + { .compatible = "qcom,x1e80100-usb-center-anoc", .data = &x1e80100_usb_center_anoc}, 2299 + { .compatible = "qcom,x1e80100-usb-north-anoc", .data = &x1e80100_usb_north_anoc}, 2300 + { .compatible = "qcom,x1e80100-usb-south-anoc", .data = &x1e80100_usb_south_anoc}, 2301 + { } 2302 + }; 2303 + MODULE_DEVICE_TABLE(of, qnoc_of_match); 2304 + 2305 + static struct platform_driver qnoc_driver = { 2306 + .probe = qcom_icc_rpmh_probe, 2307 + .remove_new = qcom_icc_rpmh_remove, 2308 + .driver = { 2309 + .name = "qnoc-x1e80100", 2310 + .of_match_table = qnoc_of_match, 2311 + .sync_state = icc_sync_state, 2312 + }, 2313 + }; 2314 + 2315 + static int __init qnoc_driver_init(void) 2316 + { 2317 + return platform_driver_register(&qnoc_driver); 2318 + } 2319 + core_initcall(qnoc_driver_init); 2320 + 2321 + static void __exit qnoc_driver_exit(void) 2322 + { 2323 + platform_driver_unregister(&qnoc_driver); 2324 + } 2325 + module_exit(qnoc_driver_exit); 2326 + 2327 + MODULE_DESCRIPTION("x1e80100 NoC driver"); 2328 + MODULE_LICENSE("GPL");
+192
drivers/interconnect/qcom/x1e80100.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only */ 2 + /* 3 + * X1E80100 interconnect IDs 4 + * 5 + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 6 + * Copyright (c) 2023, Linaro Limited 7 + */ 8 + 9 + #ifndef __DRIVERS_INTERCONNECT_QCOM_X1E80100_H 10 + #define __DRIVERS_INTERCONNECT_QCOM_X1E80100_H 11 + 12 + #define X1E80100_MASTER_A1NOC_SNOC 0 13 + #define X1E80100_MASTER_A2NOC_SNOC 1 14 + #define X1E80100_MASTER_ANOC_PCIE_GEM_NOC 2 15 + #define X1E80100_MASTER_ANOC_PCIE_GEM_NOC_DISP 3 16 + #define X1E80100_MASTER_APPSS_PROC 4 17 + #define X1E80100_MASTER_CAMNOC_HF 5 18 + #define X1E80100_MASTER_CAMNOC_ICP 6 19 + #define X1E80100_MASTER_CAMNOC_SF 7 20 + #define X1E80100_MASTER_CDSP_PROC 8 21 + #define X1E80100_MASTER_CNOC_CFG 9 22 + #define X1E80100_MASTER_CNOC_MNOC_CFG 10 23 + #define X1E80100_MASTER_COMPUTE_NOC 11 24 + #define X1E80100_MASTER_CRYPTO 12 25 + #define X1E80100_MASTER_GEM_NOC_CNOC 13 26 + #define X1E80100_MASTER_GEM_NOC_PCIE_SNOC 14 27 + #define X1E80100_MASTER_GFX3D 15 28 + #define X1E80100_MASTER_GPU_TCU 16 29 + #define X1E80100_MASTER_IPA 17 30 + #define X1E80100_MASTER_LLCC 18 31 + #define X1E80100_MASTER_LLCC_DISP 19 32 + #define X1E80100_MASTER_LPASS_GEM_NOC 20 33 + #define X1E80100_MASTER_LPASS_LPINOC 21 34 + #define X1E80100_MASTER_LPASS_PROC 22 35 + #define X1E80100_MASTER_LPIAON_NOC 23 36 + #define X1E80100_MASTER_MDP 24 37 + #define X1E80100_MASTER_MDP_DISP 25 38 + #define X1E80100_MASTER_MNOC_HF_MEM_NOC 26 39 + #define X1E80100_MASTER_MNOC_HF_MEM_NOC_DISP 27 40 + #define X1E80100_MASTER_MNOC_SF_MEM_NOC 28 41 + #define X1E80100_MASTER_PCIE_0 29 42 + #define X1E80100_MASTER_PCIE_1 30 43 + #define X1E80100_MASTER_QDSS_ETR 31 44 + #define X1E80100_MASTER_QDSS_ETR_1 32 45 + #define X1E80100_MASTER_QSPI_0 33 46 + #define X1E80100_MASTER_QUP_0 34 47 + #define X1E80100_MASTER_QUP_1 35 48 + #define X1E80100_MASTER_QUP_2 36 49 + #define X1E80100_MASTER_QUP_CORE_0 37 50 + #define X1E80100_MASTER_QUP_CORE_1 38 51 + #define X1E80100_MASTER_SDCC_2 39 52 + #define X1E80100_MASTER_SDCC_4 40 53 + #define X1E80100_MASTER_SNOC_SF_MEM_NOC 41 54 + #define X1E80100_MASTER_SP 42 55 + #define X1E80100_MASTER_SYS_TCU 43 56 + #define X1E80100_MASTER_UFS_MEM 44 57 + #define X1E80100_MASTER_USB3_0 45 58 + #define X1E80100_MASTER_VIDEO 46 59 + #define X1E80100_MASTER_VIDEO_CV_PROC 47 60 + #define X1E80100_MASTER_VIDEO_V_PROC 48 61 + #define X1E80100_SLAVE_A1NOC_SNOC 49 62 + #define X1E80100_SLAVE_A2NOC_SNOC 50 63 + #define X1E80100_SLAVE_AHB2PHY_NORTH 51 64 + #define X1E80100_SLAVE_AHB2PHY_SOUTH 52 65 + #define X1E80100_SLAVE_ANOC_PCIE_GEM_NOC 53 66 + #define X1E80100_SLAVE_AOSS 54 67 + #define X1E80100_SLAVE_APPSS 55 68 + #define X1E80100_SLAVE_BOOT_IMEM 56 69 + #define X1E80100_SLAVE_CAMERA_CFG 57 70 + #define X1E80100_SLAVE_CDSP_MEM_NOC 58 71 + #define X1E80100_SLAVE_CLK_CTL 59 72 + #define X1E80100_SLAVE_CNOC_CFG 60 73 + #define X1E80100_SLAVE_CNOC_MNOC_CFG 61 74 + #define X1E80100_SLAVE_CRYPTO_0_CFG 62 75 + #define X1E80100_SLAVE_DISPLAY_CFG 63 76 + #define X1E80100_SLAVE_EBI1 64 77 + #define X1E80100_SLAVE_EBI1_DISP 65 78 + #define X1E80100_SLAVE_GEM_NOC_CNOC 66 79 + #define X1E80100_SLAVE_GFX3D_CFG 67 80 + #define X1E80100_SLAVE_IMEM 68 81 + #define X1E80100_SLAVE_IMEM_CFG 69 82 + #define X1E80100_SLAVE_IPC_ROUTER_CFG 70 83 + #define X1E80100_SLAVE_LLCC 71 84 + #define X1E80100_SLAVE_LLCC_DISP 72 85 + #define X1E80100_SLAVE_LPASS_GEM_NOC 73 86 + #define X1E80100_SLAVE_LPASS_QTB_CFG 74 87 + #define X1E80100_SLAVE_LPIAON_NOC_LPASS_AG_NOC 75 88 + #define X1E80100_SLAVE_LPICX_NOC_LPIAON_NOC 76 89 + #define X1E80100_SLAVE_MEM_NOC_PCIE_SNOC 77 90 + #define X1E80100_SLAVE_MNOC_HF_MEM_NOC 78 91 + #define X1E80100_SLAVE_MNOC_HF_MEM_NOC_DISP 79 92 + #define X1E80100_SLAVE_MNOC_SF_MEM_NOC 80 93 + #define X1E80100_SLAVE_NSP_QTB_CFG 81 94 + #define X1E80100_SLAVE_PCIE_0 82 95 + #define X1E80100_SLAVE_PCIE_0_CFG 83 96 + #define X1E80100_SLAVE_PCIE_1 84 97 + #define X1E80100_SLAVE_PCIE_1_CFG 85 98 + #define X1E80100_SLAVE_PDM 86 99 + #define X1E80100_SLAVE_PRNG 87 100 + #define X1E80100_SLAVE_QDSS_CFG 88 101 + #define X1E80100_SLAVE_QDSS_STM 89 102 + #define X1E80100_SLAVE_QSPI_0 90 103 + #define X1E80100_SLAVE_QUP_1 91 104 + #define X1E80100_SLAVE_QUP_2 92 105 + #define X1E80100_SLAVE_QUP_CORE_0 93 106 + #define X1E80100_SLAVE_QUP_CORE_1 94 107 + #define X1E80100_SLAVE_QUP_CORE_2 95 108 + #define X1E80100_SLAVE_SDCC_2 96 109 + #define X1E80100_SLAVE_SDCC_4 97 110 + #define X1E80100_SLAVE_SERVICE_MNOC 98 111 + #define X1E80100_SLAVE_SNOC_GEM_NOC_SF 99 112 + #define X1E80100_SLAVE_TCSR 100 113 + #define X1E80100_SLAVE_TCU 101 114 + #define X1E80100_SLAVE_TLMM 102 115 + #define X1E80100_SLAVE_TME_CFG 103 116 + #define X1E80100_SLAVE_UFS_MEM_CFG 104 117 + #define X1E80100_SLAVE_USB3_0 105 118 + #define X1E80100_SLAVE_VENUS_CFG 106 119 + #define X1E80100_MASTER_DDR_PERF_MODE 107 120 + #define X1E80100_MASTER_QUP_CORE_2 108 121 + #define X1E80100_MASTER_PCIE_TCU 109 122 + #define X1E80100_MASTER_GIC2 110 123 + #define X1E80100_MASTER_AV1_ENC 111 124 + #define X1E80100_MASTER_EVA 112 125 + #define X1E80100_MASTER_PCIE_NORTH 113 126 + #define X1E80100_MASTER_PCIE_SOUTH 114 127 + #define X1E80100_MASTER_PCIE_3 115 128 + #define X1E80100_MASTER_PCIE_4 116 129 + #define X1E80100_MASTER_PCIE_5 117 130 + #define X1E80100_MASTER_PCIE_2 118 131 + #define X1E80100_MASTER_PCIE_6A 119 132 + #define X1E80100_MASTER_PCIE_6B 120 133 + #define X1E80100_MASTER_GIC1 121 134 + #define X1E80100_MASTER_USB_NOC_SNOC 122 135 + #define X1E80100_MASTER_AGGRE_USB_NORTH 123 136 + #define X1E80100_MASTER_AGGRE_USB_SOUTH 124 137 + #define X1E80100_MASTER_USB2 125 138 + #define X1E80100_MASTER_USB3_MP 126 139 + #define X1E80100_MASTER_USB3_1 127 140 + #define X1E80100_MASTER_USB3_2 128 141 + #define X1E80100_MASTER_USB4_0 129 142 + #define X1E80100_MASTER_USB4_1 130 143 + #define X1E80100_MASTER_USB4_2 131 144 + #define X1E80100_MASTER_ANOC_PCIE_GEM_NOC_PCIE 132 145 + #define X1E80100_MASTER_LLCC_PCIE 133 146 + #define X1E80100_MASTER_PCIE_NORTH_PCIE 134 147 + #define X1E80100_MASTER_PCIE_SOUTH_PCIE 135 148 + #define X1E80100_MASTER_PCIE_3_PCIE 136 149 + #define X1E80100_MASTER_PCIE_4_PCIE 137 150 + #define X1E80100_MASTER_PCIE_5_PCIE 138 151 + #define X1E80100_MASTER_PCIE_0_PCIE 139 152 + #define X1E80100_MASTER_PCIE_1_PCIE 140 153 + #define X1E80100_MASTER_PCIE_2_PCIE 141 154 + #define X1E80100_MASTER_PCIE_6A_PCIE 142 155 + #define X1E80100_MASTER_PCIE_6B_PCIE 143 156 + #define X1E80100_SLAVE_AHB2PHY_2 144 157 + #define X1E80100_SLAVE_AV1_ENC_CFG 145 158 + #define X1E80100_SLAVE_PCIE_2_CFG 146 159 + #define X1E80100_SLAVE_PCIE_3_CFG 147 160 + #define X1E80100_SLAVE_PCIE_4_CFG 148 161 + #define X1E80100_SLAVE_PCIE_5_CFG 149 162 + #define X1E80100_SLAVE_PCIE_6A_CFG 150 163 + #define X1E80100_SLAVE_PCIE_6B_CFG 151 164 + #define X1E80100_SLAVE_PCIE_RSC_CFG 152 165 + #define X1E80100_SLAVE_QUP_0 153 166 + #define X1E80100_SLAVE_SMMUV3_CFG 154 167 + #define X1E80100_SLAVE_USB2 155 168 + #define X1E80100_SLAVE_USB3_1 156 169 + #define X1E80100_SLAVE_USB3_2 157 170 + #define X1E80100_SLAVE_USB3_MP 158 171 + #define X1E80100_SLAVE_USB4_0 159 172 + #define X1E80100_SLAVE_USB4_1 160 173 + #define X1E80100_SLAVE_USB4_2 161 174 + #define X1E80100_SLAVE_PCIE_2 162 175 + #define X1E80100_SLAVE_PCIE_3 163 176 + #define X1E80100_SLAVE_PCIE_4 164 177 + #define X1E80100_SLAVE_PCIE_5 165 178 + #define X1E80100_SLAVE_PCIE_6A 166 179 + #define X1E80100_SLAVE_PCIE_6B 167 180 + #define X1E80100_SLAVE_DDR_PERF_MODE 168 181 + #define X1E80100_SLAVE_PCIE_NORTH 169 182 + #define X1E80100_SLAVE_PCIE_SOUTH 170 183 + #define X1E80100_SLAVE_USB_NOC_SNOC 171 184 + #define X1E80100_SLAVE_AGGRE_USB_NORTH 172 185 + #define X1E80100_SLAVE_AGGRE_USB_SOUTH 173 186 + #define X1E80100_SLAVE_LLCC_PCIE 174 187 + #define X1E80100_SLAVE_EBI1_PCIE 175 188 + #define X1E80100_SLAVE_ANOC_PCIE_GEM_NOC_PCIE 176 189 + #define X1E80100_SLAVE_PCIE_NORTH_PCIE 177 190 + #define X1E80100_SLAVE_PCIE_SOUTH_PCIE 178 191 + 192 + #endif
+207
include/dt-bindings/interconnect/qcom,x1e80100-rpmh.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 + * Copyright (c) 2023, Linaro Limited 5 + */ 6 + 7 + #ifndef __DT_BINDINGS_INTERCONNECT_QCOM_X1E80100_H 8 + #define __DT_BINDINGS_INTERCONNECT_QCOM_X1E80100_H 9 + 10 + #define MASTER_QSPI_0 0 11 + #define MASTER_QUP_1 1 12 + #define MASTER_SDCC_4 2 13 + #define MASTER_UFS_MEM 3 14 + #define SLAVE_A1NOC_SNOC 4 15 + 16 + #define MASTER_QUP_0 0 17 + #define MASTER_QUP_2 1 18 + #define MASTER_CRYPTO 2 19 + #define MASTER_SP 3 20 + #define MASTER_QDSS_ETR 4 21 + #define MASTER_QDSS_ETR_1 5 22 + #define MASTER_SDCC_2 6 23 + #define SLAVE_A2NOC_SNOC 7 24 + 25 + #define MASTER_DDR_PERF_MODE 0 26 + #define MASTER_QUP_CORE_0 1 27 + #define MASTER_QUP_CORE_1 2 28 + #define MASTER_QUP_CORE_2 3 29 + #define SLAVE_DDR_PERF_MODE 4 30 + #define SLAVE_QUP_CORE_0 5 31 + #define SLAVE_QUP_CORE_1 6 32 + #define SLAVE_QUP_CORE_2 7 33 + 34 + #define MASTER_CNOC_CFG 0 35 + #define SLAVE_AHB2PHY_SOUTH 1 36 + #define SLAVE_AHB2PHY_NORTH 2 37 + #define SLAVE_AHB2PHY_2 3 38 + #define SLAVE_AV1_ENC_CFG 4 39 + #define SLAVE_CAMERA_CFG 5 40 + #define SLAVE_CLK_CTL 6 41 + #define SLAVE_CRYPTO_0_CFG 7 42 + #define SLAVE_DISPLAY_CFG 8 43 + #define SLAVE_GFX3D_CFG 9 44 + #define SLAVE_IMEM_CFG 10 45 + #define SLAVE_IPC_ROUTER_CFG 11 46 + #define SLAVE_PCIE_0_CFG 12 47 + #define SLAVE_PCIE_1_CFG 13 48 + #define SLAVE_PCIE_2_CFG 14 49 + #define SLAVE_PCIE_3_CFG 15 50 + #define SLAVE_PCIE_4_CFG 16 51 + #define SLAVE_PCIE_5_CFG 17 52 + #define SLAVE_PCIE_6A_CFG 18 53 + #define SLAVE_PCIE_6B_CFG 19 54 + #define SLAVE_PCIE_RSC_CFG 20 55 + #define SLAVE_PDM 21 56 + #define SLAVE_PRNG 22 57 + #define SLAVE_QDSS_CFG 23 58 + #define SLAVE_QSPI_0 24 59 + #define SLAVE_QUP_0 25 60 + #define SLAVE_QUP_1 26 61 + #define SLAVE_QUP_2 27 62 + #define SLAVE_SDCC_2 28 63 + #define SLAVE_SDCC_4 29 64 + #define SLAVE_SMMUV3_CFG 30 65 + #define SLAVE_TCSR 31 66 + #define SLAVE_TLMM 32 67 + #define SLAVE_UFS_MEM_CFG 33 68 + #define SLAVE_USB2 34 69 + #define SLAVE_USB3_0 35 70 + #define SLAVE_USB3_1 36 71 + #define SLAVE_USB3_2 37 72 + #define SLAVE_USB3_MP 38 73 + #define SLAVE_USB4_0 39 74 + #define SLAVE_USB4_1 40 75 + #define SLAVE_USB4_2 41 76 + #define SLAVE_VENUS_CFG 42 77 + #define SLAVE_LPASS_QTB_CFG 43 78 + #define SLAVE_CNOC_MNOC_CFG 44 79 + #define SLAVE_NSP_QTB_CFG 45 80 + #define SLAVE_QDSS_STM 46 81 + #define SLAVE_TCU 47 82 + 83 + #define MASTER_GEM_NOC_CNOC 0 84 + #define MASTER_GEM_NOC_PCIE_SNOC 1 85 + #define SLAVE_AOSS 2 86 + #define SLAVE_TME_CFG 3 87 + #define SLAVE_APPSS 4 88 + #define SLAVE_CNOC_CFG 5 89 + #define SLAVE_BOOT_IMEM 6 90 + #define SLAVE_IMEM 7 91 + #define SLAVE_PCIE_0 8 92 + #define SLAVE_PCIE_1 9 93 + #define SLAVE_PCIE_2 10 94 + #define SLAVE_PCIE_3 11 95 + #define SLAVE_PCIE_4 12 96 + #define SLAVE_PCIE_5 13 97 + #define SLAVE_PCIE_6A 14 98 + #define SLAVE_PCIE_6B 15 99 + 100 + #define MASTER_GPU_TCU 0 101 + #define MASTER_PCIE_TCU 1 102 + #define MASTER_SYS_TCU 2 103 + #define MASTER_APPSS_PROC 3 104 + #define MASTER_GFX3D 4 105 + #define MASTER_LPASS_GEM_NOC 5 106 + #define MASTER_MNOC_HF_MEM_NOC 6 107 + #define MASTER_MNOC_SF_MEM_NOC 7 108 + #define MASTER_COMPUTE_NOC 8 109 + #define MASTER_ANOC_PCIE_GEM_NOC 9 110 + #define MASTER_SNOC_SF_MEM_NOC 10 111 + #define MASTER_GIC2 11 112 + #define SLAVE_GEM_NOC_CNOC 12 113 + #define SLAVE_LLCC 13 114 + #define SLAVE_MEM_NOC_PCIE_SNOC 14 115 + #define MASTER_MNOC_HF_MEM_NOC_DISP 15 116 + #define MASTER_ANOC_PCIE_GEM_NOC_DISP 16 117 + #define SLAVE_LLCC_DISP 17 118 + #define MASTER_ANOC_PCIE_GEM_NOC_PCIE 18 119 + #define SLAVE_LLCC_PCIE 19 120 + 121 + #define MASTER_LPIAON_NOC 0 122 + #define SLAVE_LPASS_GEM_NOC 1 123 + 124 + #define MASTER_LPASS_LPINOC 0 125 + #define SLAVE_LPIAON_NOC_LPASS_AG_NOC 1 126 + 127 + #define MASTER_LPASS_PROC 0 128 + #define SLAVE_LPICX_NOC_LPIAON_NOC 1 129 + 130 + #define MASTER_LLCC 0 131 + #define SLAVE_EBI1 1 132 + #define MASTER_LLCC_DISP 2 133 + #define SLAVE_EBI1_DISP 3 134 + #define MASTER_LLCC_PCIE 4 135 + #define SLAVE_EBI1_PCIE 5 136 + 137 + #define MASTER_AV1_ENC 0 138 + #define MASTER_CAMNOC_HF 1 139 + #define MASTER_CAMNOC_ICP 2 140 + #define MASTER_CAMNOC_SF 3 141 + #define MASTER_EVA 4 142 + #define MASTER_MDP 5 143 + #define MASTER_VIDEO 6 144 + #define MASTER_VIDEO_CV_PROC 7 145 + #define MASTER_VIDEO_V_PROC 8 146 + #define MASTER_CNOC_MNOC_CFG 9 147 + #define SLAVE_MNOC_HF_MEM_NOC 10 148 + #define SLAVE_MNOC_SF_MEM_NOC 11 149 + #define SLAVE_SERVICE_MNOC 12 150 + #define MASTER_MDP_DISP 13 151 + #define SLAVE_MNOC_HF_MEM_NOC_DISP 14 152 + 153 + #define MASTER_CDSP_PROC 0 154 + #define SLAVE_CDSP_MEM_NOC 1 155 + 156 + #define MASTER_PCIE_NORTH 0 157 + #define MASTER_PCIE_SOUTH 1 158 + #define SLAVE_ANOC_PCIE_GEM_NOC 2 159 + #define MASTER_PCIE_NORTH_PCIE 3 160 + #define MASTER_PCIE_SOUTH_PCIE 4 161 + #define SLAVE_ANOC_PCIE_GEM_NOC_PCIE 5 162 + 163 + #define MASTER_PCIE_3 0 164 + #define MASTER_PCIE_4 1 165 + #define MASTER_PCIE_5 2 166 + #define SLAVE_PCIE_NORTH 3 167 + #define MASTER_PCIE_3_PCIE 4 168 + #define MASTER_PCIE_4_PCIE 5 169 + #define MASTER_PCIE_5_PCIE 6 170 + #define SLAVE_PCIE_NORTH_PCIE 7 171 + 172 + #define MASTER_PCIE_0 0 173 + #define MASTER_PCIE_1 1 174 + #define MASTER_PCIE_2 2 175 + #define MASTER_PCIE_6A 3 176 + #define MASTER_PCIE_6B 4 177 + #define SLAVE_PCIE_SOUTH 5 178 + #define MASTER_PCIE_0_PCIE 6 179 + #define MASTER_PCIE_1_PCIE 7 180 + #define MASTER_PCIE_2_PCIE 8 181 + #define MASTER_PCIE_6A_PCIE 9 182 + #define MASTER_PCIE_6B_PCIE 10 183 + #define SLAVE_PCIE_SOUTH_PCIE 11 184 + 185 + #define MASTER_A1NOC_SNOC 0 186 + #define MASTER_A2NOC_SNOC 1 187 + #define MASTER_GIC1 2 188 + #define MASTER_USB_NOC_SNOC 3 189 + #define SLAVE_SNOC_GEM_NOC_SF 4 190 + 191 + #define MASTER_AGGRE_USB_NORTH 0 192 + #define MASTER_AGGRE_USB_SOUTH 1 193 + #define SLAVE_USB_NOC_SNOC 2 194 + 195 + #define MASTER_USB2 0 196 + #define MASTER_USB3_MP 1 197 + #define SLAVE_AGGRE_USB_NORTH 2 198 + 199 + #define MASTER_USB3_0 0 200 + #define MASTER_USB3_1 1 201 + #define MASTER_USB3_2 2 202 + #define MASTER_USB4_0 3 203 + #define MASTER_USB4_1 4 204 + #define MASTER_USB4_2 5 205 + #define SLAVE_AGGRE_USB_SOUTH 6 206 + 207 + #endif