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

Merge tag 'icc-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next

Georgi writes:

interconnect changes for 5.19

These are the interconnect changes for the 5.19-rc1 merge window
consisting of driver updates.

Driver changes:
- New driver for SC8280XP
- New driver for SDX65
- SC8180X driver fixes
- Constify various data structures in that are never modified
- Fix clock rate caching in RPM drivers.
- Misc fixes and clean-ups

Signed-off-by: Georgi Djakov <djakov@kernel.org>

* tag 'icc-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
dt-bindings: interconnect: Remove sc7180/sdx55 ipa compatibles
interconnect: qcom: sc8180x: Reformat node and bcm definitions
interconnect: qcom: sc8180x: Mark some BCMs keepalive
interconnect: qcom: sc8180x: Fix QUP0 nodes
interconnect: qcom: sc8180x: Modernize sc8180x probe
dt-bindings: interconnect: Add SC8180X QUP0 virt provider
interconnect: qcom: icc-rpm: Cache every clock rate
interconnect: qcom: icc-rpm: Fix for cached clock rate
interconnect: qcom: sc8280xp: constify qcom_icc_bcm pointers
interconnect: qcom: sc8280xp: constify icc_node pointers
interconnect: qcom: sc8280xp: constify qcom_icc_desc
interconnect: qcom: Add SDX65 interconnect provider driver
dt-bindings: interconnect: Add Qualcomm SDX65 DT bindings
interconnect: qcom: constify qcom_icc_bcm pointers
interconnect: qcom: constify icc_node pointers
interconnect: qcom: constify qcom_icc_desc
interconnect: qcom: Add SC8280XP interconnect provider
dt-bindings: interconnect: qcom: Add sc8280xp binding

+5205 -598
+16 -2
Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
··· 31 31 - qcom,sc7180-config-noc 32 32 - qcom,sc7180-dc-noc 33 33 - qcom,sc7180-gem-noc 34 - - qcom,sc7180-ipa-virt 35 34 - qcom,sc7180-mc-virt 36 35 - qcom,sc7180-mmss-noc 37 36 - qcom,sc7180-npu-noc ··· 58 59 - qcom,sc8180x-ipa-virt 59 60 - qcom,sc8180x-mc-virt 60 61 - qcom,sc8180x-mmss-noc 62 + - qcom,sc8180x-qup-virt 61 63 - qcom,sc8180x-system-noc 64 + - qcom,sc8280xp-aggre1-noc 65 + - qcom,sc8280xp-aggre2-noc 66 + - qcom,sc8280xp-clk-virt 67 + - qcom,sc8280xp-config-noc 68 + - qcom,sc8280xp-dc-noc 69 + - qcom,sc8280xp-gem-noc 70 + - qcom,sc8280xp-lpass-ag-noc 71 + - qcom,sc8280xp-mc-virt 72 + - qcom,sc8280xp-mmss-noc 73 + - qcom,sc8280xp-nspa-noc 74 + - qcom,sc8280xp-nspb-noc 75 + - qcom,sc8280xp-system-noc 62 76 - qcom,sdm845-aggre1-noc 63 77 - qcom,sdm845-aggre2-noc 64 78 - qcom,sdm845-config-noc ··· 80 68 - qcom,sdm845-mem-noc 81 69 - qcom,sdm845-mmss-noc 82 70 - qcom,sdm845-system-noc 83 - - qcom,sdx55-ipa-virt 84 71 - qcom,sdx55-mc-virt 85 72 - qcom,sdx55-mem-noc 86 73 - qcom,sdx55-system-noc 74 + - qcom,sdx65-mc-virt 75 + - qcom,sdx65-mem-noc 76 + - qcom,sdx65-system-noc 87 77 - qcom,sm8150-aggre1-noc 88 78 - qcom,sm8150-aggre2-noc 89 79 - qcom,sm8150-camnoc-noc
+18
drivers/interconnect/qcom/Kconfig
··· 110 110 This is a driver for the Qualcomm Network-on-Chip on sc8180x-based 111 111 platforms. 112 112 113 + config INTERCONNECT_QCOM_SC8280XP 114 + tristate "Qualcomm SC8280XP interconnect driver" 115 + depends on INTERCONNECT_QCOM_RPMH_POSSIBLE 116 + select INTERCONNECT_QCOM_RPMH 117 + select INTERCONNECT_QCOM_BCM_VOTER 118 + help 119 + This is a driver for the Qualcomm Network-on-Chip on SC8280XP-based 120 + platforms. 121 + 113 122 config INTERCONNECT_QCOM_SDM660 114 123 tristate "Qualcomm SDM660 interconnect driver" 115 124 depends on INTERCONNECT_QCOM ··· 144 135 select INTERCONNECT_QCOM_BCM_VOTER 145 136 help 146 137 This is a driver for the Qualcomm Network-on-Chip on sdx55-based 138 + platforms. 139 + 140 + config INTERCONNECT_QCOM_SDX65 141 + tristate "Qualcomm SDX65 interconnect driver" 142 + depends on INTERCONNECT_QCOM_RPMH_POSSIBLE 143 + select INTERCONNECT_QCOM_RPMH 144 + select INTERCONNECT_QCOM_BCM_VOTER 145 + help 146 + This is a driver for the Qualcomm Network-on-Chip on sdx65-based 147 147 platforms. 148 148 149 149 config INTERCONNECT_QCOM_SM8150
+4
drivers/interconnect/qcom/Makefile
··· 12 12 qnoc-sc7180-objs := sc7180.o 13 13 qnoc-sc7280-objs := sc7280.o 14 14 qnoc-sc8180x-objs := sc8180x.o 15 + qnoc-sc8280xp-objs := sc8280xp.o 15 16 qnoc-sdm660-objs := sdm660.o 16 17 qnoc-sdm845-objs := sdm845.o 17 18 qnoc-sdx55-objs := sdx55.o 19 + qnoc-sdx65-objs := sdx65.o 18 20 qnoc-sm8150-objs := sm8150.o 19 21 qnoc-sm8250-objs := sm8250.o 20 22 qnoc-sm8350-objs := sm8350.o ··· 35 33 obj-$(CONFIG_INTERCONNECT_QCOM_SC7180) += qnoc-sc7180.o 36 34 obj-$(CONFIG_INTERCONNECT_QCOM_SC7280) += qnoc-sc7280.o 37 35 obj-$(CONFIG_INTERCONNECT_QCOM_SC8180X) += qnoc-sc8180x.o 36 + obj-$(CONFIG_INTERCONNECT_QCOM_SC8280XP) += qnoc-sc8280xp.o 38 37 obj-$(CONFIG_INTERCONNECT_QCOM_SDM660) += qnoc-sdm660.o 39 38 obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o 40 39 obj-$(CONFIG_INTERCONNECT_QCOM_SDX55) += qnoc-sdx55.o 40 + obj-$(CONFIG_INTERCONNECT_QCOM_SDX65) += qnoc-sdx65.o 41 41 obj-$(CONFIG_INTERCONNECT_QCOM_SM8150) += qnoc-sm8150.o 42 42 obj-$(CONFIG_INTERCONNECT_QCOM_SM8250) += qnoc-sm8250.o 43 43 obj-$(CONFIG_INTERCONNECT_QCOM_SM8350) += qnoc-sm8350.o
+10 -6
drivers/interconnect/qcom/icc-rpm.c
··· 274 274 do_div(rate, qn->buswidth); 275 275 rate = min_t(u64, rate, LONG_MAX); 276 276 277 - if (qn->rate == rate) 278 - return 0; 279 - 280 277 for (i = 0; i < qp->num_clks; i++) { 278 + if (qp->bus_clk_rate[i] == rate) 279 + continue; 280 + 281 281 ret = clk_set_rate(qp->bus_clks[i].clk, rate); 282 282 if (ret) { 283 283 pr_err("%s clk_set_rate error: %d\n", 284 284 qp->bus_clks[i].id, ret); 285 285 return ret; 286 286 } 287 + qp->bus_clk_rate[i] = rate; 287 288 } 288 - 289 - qn->rate = rate; 290 289 291 290 return 0; 292 291 } ··· 300 301 const struct qcom_icc_desc *desc; 301 302 struct icc_onecell_data *data; 302 303 struct icc_provider *provider; 303 - struct qcom_icc_node **qnodes; 304 + struct qcom_icc_node * const *qnodes; 304 305 struct qcom_icc_provider *qp; 305 306 struct icc_node *node; 306 307 size_t num_nodes, i; ··· 329 330 330 331 qp = devm_kzalloc(dev, struct_size(qp, bus_clks, cd_num), GFP_KERNEL); 331 332 if (!qp) 333 + return -ENOMEM; 334 + 335 + qp->bus_clk_rate = devm_kcalloc(dev, cd_num, sizeof(*qp->bus_clk_rate), 336 + GFP_KERNEL); 337 + if (!qp->bus_clk_rate) 332 338 return -ENOMEM; 333 339 334 340 data = devm_kzalloc(dev, struct_size(data, nodes, num_nodes),
+3 -3
drivers/interconnect/qcom/icc-rpm.h
··· 26 26 * @type: the ICC provider type 27 27 * @qos_offset: offset to QoS registers 28 28 * @regmap: regmap for QoS registers read/write access 29 + * @bus_clk_rate: bus clock rate in Hz 29 30 */ 30 31 struct qcom_icc_provider { 31 32 struct icc_provider provider; ··· 34 33 enum qcom_icc_type type; 35 34 struct regmap *regmap; 36 35 unsigned int qos_offset; 36 + u64 *bus_clk_rate; 37 37 struct clk_bulk_data bus_clks[]; 38 38 }; 39 39 ··· 68 66 * @mas_rpm_id: RPM id for devices that are bus masters 69 67 * @slv_rpm_id: RPM id for devices that are bus slaves 70 68 * @qos: NoC QoS setting parameters 71 - * @rate: current bus clock rate in Hz 72 69 */ 73 70 struct qcom_icc_node { 74 71 unsigned char *name; ··· 78 77 int mas_rpm_id; 79 78 int slv_rpm_id; 80 79 struct qcom_icc_qos qos; 81 - u64 rate; 82 80 }; 83 81 84 82 struct qcom_icc_desc { 85 - struct qcom_icc_node **nodes; 83 + struct qcom_icc_node * const *nodes; 86 84 size_t num_nodes; 87 85 const char * const *clocks; 88 86 size_t num_clocks;
+1 -1
drivers/interconnect/qcom/icc-rpmh.c
··· 189 189 struct device *dev = &pdev->dev; 190 190 struct icc_onecell_data *data; 191 191 struct icc_provider *provider; 192 - struct qcom_icc_node **qnodes, *qn; 192 + struct qcom_icc_node * const *qnodes, *qn; 193 193 struct qcom_icc_provider *qp; 194 194 struct icc_node *node; 195 195 size_t num_nodes, i, j;
+3 -3
drivers/interconnect/qcom/icc-rpmh.h
··· 22 22 struct qcom_icc_provider { 23 23 struct icc_provider provider; 24 24 struct device *dev; 25 - struct qcom_icc_bcm **bcms; 25 + struct qcom_icc_bcm * const *bcms; 26 26 size_t num_bcms; 27 27 struct bcm_voter *voter; 28 28 }; ··· 112 112 }; 113 113 114 114 struct qcom_icc_desc { 115 - struct qcom_icc_node **nodes; 115 + struct qcom_icc_node * const *nodes; 116 116 size_t num_nodes; 117 - struct qcom_icc_bcm **bcms; 117 + struct qcom_icc_bcm * const *bcms; 118 118 size_t num_bcms; 119 119 }; 120 120
+6 -6
drivers/interconnect/qcom/msm8916.c
··· 1191 1191 .links = snoc_pcnoc_slv_links, 1192 1192 }; 1193 1193 1194 - static struct qcom_icc_node *msm8916_snoc_nodes[] = { 1194 + static struct qcom_icc_node * const msm8916_snoc_nodes[] = { 1195 1195 [BIMC_SNOC_SLV] = &bimc_snoc_slv, 1196 1196 [MASTER_JPEG] = &mas_jpeg, 1197 1197 [MASTER_MDP_PORT0] = &mas_mdp, ··· 1228 1228 .fast_io = true, 1229 1229 }; 1230 1230 1231 - static struct qcom_icc_desc msm8916_snoc = { 1231 + static const struct qcom_icc_desc msm8916_snoc = { 1232 1232 .type = QCOM_ICC_NOC, 1233 1233 .nodes = msm8916_snoc_nodes, 1234 1234 .num_nodes = ARRAY_SIZE(msm8916_snoc_nodes), ··· 1236 1236 .qos_offset = 0x7000, 1237 1237 }; 1238 1238 1239 - static struct qcom_icc_node *msm8916_bimc_nodes[] = { 1239 + static struct qcom_icc_node * const msm8916_bimc_nodes[] = { 1240 1240 [BIMC_SNOC_MAS] = &bimc_snoc_mas, 1241 1241 [MASTER_AMPSS_M0] = &mas_apss, 1242 1242 [MASTER_GRAPHICS_3D] = &mas_gfx, ··· 1256 1256 .fast_io = true, 1257 1257 }; 1258 1258 1259 - static struct qcom_icc_desc msm8916_bimc = { 1259 + static const struct qcom_icc_desc msm8916_bimc = { 1260 1260 .type = QCOM_ICC_BIMC, 1261 1261 .nodes = msm8916_bimc_nodes, 1262 1262 .num_nodes = ARRAY_SIZE(msm8916_bimc_nodes), ··· 1264 1264 .qos_offset = 0x8000, 1265 1265 }; 1266 1266 1267 - static struct qcom_icc_node *msm8916_pcnoc_nodes[] = { 1267 + static struct qcom_icc_node * const msm8916_pcnoc_nodes[] = { 1268 1268 [MASTER_BLSP_1] = &mas_blsp_1, 1269 1269 [MASTER_DEHR] = &mas_dehr, 1270 1270 [MASTER_LPASS] = &mas_audio, ··· 1325 1325 .fast_io = true, 1326 1326 }; 1327 1327 1328 - static struct qcom_icc_desc msm8916_pcnoc = { 1328 + static const struct qcom_icc_desc msm8916_pcnoc = { 1329 1329 .type = QCOM_ICC_NOC, 1330 1330 .nodes = msm8916_pcnoc_nodes, 1331 1331 .num_nodes = ARRAY_SIZE(msm8916_pcnoc_nodes),
+8 -8
drivers/interconnect/qcom/msm8939.c
··· 1251 1251 .links = snoc_pcnoc_slv_links, 1252 1252 }; 1253 1253 1254 - static struct qcom_icc_node *msm8939_snoc_nodes[] = { 1254 + static struct qcom_icc_node * const msm8939_snoc_nodes[] = { 1255 1255 [BIMC_SNOC_SLV] = &bimc_snoc_slv, 1256 1256 [MASTER_QDSS_BAM] = &mas_qdss_bam, 1257 1257 [MASTER_QDSS_ETR] = &mas_qdss_etr, ··· 1281 1281 .fast_io = true, 1282 1282 }; 1283 1283 1284 - static struct qcom_icc_desc msm8939_snoc = { 1284 + static const struct qcom_icc_desc msm8939_snoc = { 1285 1285 .type = QCOM_ICC_NOC, 1286 1286 .nodes = msm8939_snoc_nodes, 1287 1287 .num_nodes = ARRAY_SIZE(msm8939_snoc_nodes), ··· 1289 1289 .qos_offset = 0x7000, 1290 1290 }; 1291 1291 1292 - static struct qcom_icc_node *msm8939_snoc_mm_nodes[] = { 1292 + static struct qcom_icc_node * const msm8939_snoc_mm_nodes[] = { 1293 1293 [MASTER_VIDEO_P0] = &mas_video, 1294 1294 [MASTER_JPEG] = &mas_jpeg, 1295 1295 [MASTER_VFE] = &mas_vfe, ··· 1301 1301 [SNOC_MM_INT_2] = &mm_int_2, 1302 1302 }; 1303 1303 1304 - static struct qcom_icc_desc msm8939_snoc_mm = { 1304 + static const struct qcom_icc_desc msm8939_snoc_mm = { 1305 1305 .type = QCOM_ICC_NOC, 1306 1306 .nodes = msm8939_snoc_mm_nodes, 1307 1307 .num_nodes = ARRAY_SIZE(msm8939_snoc_mm_nodes), ··· 1309 1309 .qos_offset = 0x7000, 1310 1310 }; 1311 1311 1312 - static struct qcom_icc_node *msm8939_bimc_nodes[] = { 1312 + static struct qcom_icc_node * const msm8939_bimc_nodes[] = { 1313 1313 [BIMC_SNOC_MAS] = &bimc_snoc_mas, 1314 1314 [MASTER_AMPSS_M0] = &mas_apss, 1315 1315 [MASTER_GRAPHICS_3D] = &mas_gfx, ··· 1329 1329 .fast_io = true, 1330 1330 }; 1331 1331 1332 - static struct qcom_icc_desc msm8939_bimc = { 1332 + static const struct qcom_icc_desc msm8939_bimc = { 1333 1333 .type = QCOM_ICC_BIMC, 1334 1334 .nodes = msm8939_bimc_nodes, 1335 1335 .num_nodes = ARRAY_SIZE(msm8939_bimc_nodes), ··· 1337 1337 .qos_offset = 0x8000, 1338 1338 }; 1339 1339 1340 - static struct qcom_icc_node *msm8939_pcnoc_nodes[] = { 1340 + static struct qcom_icc_node * const msm8939_pcnoc_nodes[] = { 1341 1341 [MASTER_BLSP_1] = &mas_blsp_1, 1342 1342 [MASTER_DEHR] = &mas_dehr, 1343 1343 [MASTER_LPASS] = &mas_audio, ··· 1400 1400 .fast_io = true, 1401 1401 }; 1402 1402 1403 - static struct qcom_icc_desc msm8939_pcnoc = { 1403 + static const struct qcom_icc_desc msm8939_pcnoc = { 1404 1404 .type = QCOM_ICC_NOC, 1405 1405 .nodes = msm8939_pcnoc_nodes, 1406 1406 .num_nodes = ARRAY_SIZE(msm8939_pcnoc_nodes),
+14 -14
drivers/interconnect/qcom/msm8974.c
··· 220 220 }; 221 221 222 222 struct msm8974_icc_desc { 223 - struct msm8974_icc_node **nodes; 223 + struct msm8974_icc_node * const *nodes; 224 224 size_t num_nodes; 225 225 }; 226 226 ··· 244 244 DEFINE_QNODE(slv_ebi_ch0, MSM8974_BIMC_SLV_EBI_CH0, 8, -1, 0); 245 245 DEFINE_QNODE(slv_ampss_l2, MSM8974_BIMC_SLV_AMPSS_L2, 8, -1, 1); 246 246 247 - static struct msm8974_icc_node *msm8974_bimc_nodes[] = { 247 + static struct msm8974_icc_node * const msm8974_bimc_nodes[] = { 248 248 [BIMC_MAS_AMPSS_M0] = &mas_ampss_m0, 249 249 [BIMC_MAS_AMPSS_M1] = &mas_ampss_m1, 250 250 [BIMC_MAS_MSS_PROC] = &mas_mss_proc, ··· 254 254 [BIMC_SLV_AMPSS_L2] = &slv_ampss_l2, 255 255 }; 256 256 257 - static struct msm8974_icc_desc msm8974_bimc = { 257 + static const struct msm8974_icc_desc msm8974_bimc = { 258 258 .nodes = msm8974_bimc_nodes, 259 259 .num_nodes = ARRAY_SIZE(msm8974_bimc_nodes), 260 260 }; ··· 297 297 DEFINE_QNODE(slv_rpm, MSM8974_CNOC_SLV_RPM, 8, -1, 74); 298 298 DEFINE_QNODE(slv_service_cnoc, MSM8974_CNOC_SLV_SERVICE_CNOC, 8, -1, 76); 299 299 300 - static struct msm8974_icc_node *msm8974_cnoc_nodes[] = { 300 + static struct msm8974_icc_node * const msm8974_cnoc_nodes[] = { 301 301 [CNOC_MAS_RPM_INST] = &mas_rpm_inst, 302 302 [CNOC_MAS_RPM_DATA] = &mas_rpm_data, 303 303 [CNOC_MAS_RPM_SYS] = &mas_rpm_sys, ··· 337 337 [CNOC_SLV_SERVICE_CNOC] = &slv_service_cnoc, 338 338 }; 339 339 340 - static struct msm8974_icc_desc msm8974_cnoc = { 340 + static const struct msm8974_icc_desc msm8974_cnoc = { 341 341 .nodes = msm8974_cnoc_nodes, 342 342 .num_nodes = ARRAY_SIZE(msm8974_cnoc_nodes), 343 343 }; ··· 365 365 DEFINE_QNODE(slv_onoc_mpu_cfg, MSM8974_MNOC_SLV_ONOC_MPU_CFG, 16, -1, 15); 366 366 DEFINE_QNODE(slv_service_mnoc, MSM8974_MNOC_SLV_SERVICE_MNOC, 16, -1, 17); 367 367 368 - static struct msm8974_icc_node *msm8974_mnoc_nodes[] = { 368 + static struct msm8974_icc_node * const msm8974_mnoc_nodes[] = { 369 369 [MNOC_MAS_GRAPHICS_3D] = &mas_graphics_3d, 370 370 [MNOC_MAS_JPEG] = &mas_jpeg, 371 371 [MNOC_MAS_MDP_PORT0] = &mas_mdp_port0, ··· 390 390 [MNOC_SLV_SERVICE_MNOC] = &slv_service_mnoc, 391 391 }; 392 392 393 - static struct msm8974_icc_desc msm8974_mnoc = { 393 + static const struct msm8974_icc_desc msm8974_mnoc = { 394 394 .nodes = msm8974_mnoc_nodes, 395 395 .num_nodes = ARRAY_SIZE(msm8974_mnoc_nodes), 396 396 }; ··· 410 410 DEFINE_QNODE(ocmem_vnoc_to_snoc, MSM8974_OCMEM_VNOC_TO_SNOC, 8, 57, 80); 411 411 DEFINE_QNODE(mas_v_ocmem_gfx3d, MSM8974_OCMEM_VNOC_MAS_GFX3D, 8, 55, -1, MSM8974_OCMEM_VNOC_TO_OCMEM_NOC); 412 412 413 - static struct msm8974_icc_node *msm8974_onoc_nodes[] = { 413 + static struct msm8974_icc_node * const msm8974_onoc_nodes[] = { 414 414 [OCMEM_NOC_TO_OCMEM_VNOC] = &ocmem_noc_to_ocmem_vnoc, 415 415 [OCMEM_MAS_JPEG_OCMEM] = &mas_jpeg_ocmem, 416 416 [OCMEM_MAS_MDP_OCMEM] = &mas_mdp_ocmem, ··· 425 425 [OCMEM_SLV_OCMEM] = &slv_ocmem, 426 426 }; 427 427 428 - static struct msm8974_icc_desc msm8974_onoc = { 428 + static const struct msm8974_icc_desc msm8974_onoc = { 429 429 .nodes = msm8974_onoc_nodes, 430 430 .num_nodes = ARRAY_SIZE(msm8974_onoc_nodes), 431 431 }; ··· 458 458 DEFINE_QNODE(slv_prng, MSM8974_PNOC_SLV_PRNG, 8, -1, 44, MSM8974_PNOC_TO_SNOC); 459 459 DEFINE_QNODE(slv_service_pnoc, MSM8974_PNOC_SLV_SERVICE_PNOC, 8, -1, 46); 460 460 461 - static struct msm8974_icc_node *msm8974_pnoc_nodes[] = { 461 + static struct msm8974_icc_node * const msm8974_pnoc_nodes[] = { 462 462 [PNOC_MAS_PNOC_CFG] = &mas_pnoc_cfg, 463 463 [PNOC_MAS_SDCC_1] = &mas_sdcc_1, 464 464 [PNOC_MAS_SDCC_3] = &mas_sdcc_3, ··· 488 488 [PNOC_SLV_SERVICE_PNOC] = &slv_service_pnoc, 489 489 }; 490 490 491 - static struct msm8974_icc_desc msm8974_pnoc = { 491 + static const struct msm8974_icc_desc msm8974_pnoc = { 492 492 .nodes = msm8974_pnoc_nodes, 493 493 .num_nodes = ARRAY_SIZE(msm8974_pnoc_nodes), 494 494 }; ··· 518 518 DEFINE_QNODE(slv_service_snoc, MSM8974_SNOC_SLV_SERVICE_SNOC, 8, -1, 29); 519 519 DEFINE_QNODE(slv_qdss_stm, MSM8974_SNOC_SLV_QDSS_STM, 8, -1, 30); 520 520 521 - static struct msm8974_icc_node *msm8974_snoc_nodes[] = { 521 + static struct msm8974_icc_node * const msm8974_snoc_nodes[] = { 522 522 [SNOC_MAS_LPASS_AHB] = &mas_lpass_ahb, 523 523 [SNOC_MAS_QDSS_BAM] = &mas_qdss_bam, 524 524 [SNOC_MAS_SNOC_CFG] = &mas_snoc_cfg, ··· 545 545 [SNOC_SLV_QDSS_STM] = &slv_qdss_stm, 546 546 }; 547 547 548 - static struct msm8974_icc_desc msm8974_snoc = { 548 + static const struct msm8974_icc_desc msm8974_snoc = { 549 549 .nodes = msm8974_snoc_nodes, 550 550 .num_nodes = ARRAY_SIZE(msm8974_snoc_nodes), 551 551 }; ··· 648 648 static int msm8974_icc_probe(struct platform_device *pdev) 649 649 { 650 650 const struct msm8974_icc_desc *desc; 651 - struct msm8974_icc_node **qnodes; 651 + struct msm8974_icc_node * const *qnodes; 652 652 struct msm8974_icc_provider *qp; 653 653 struct device *dev = &pdev->dev; 654 654 struct icc_onecell_data *data;
+8 -8
drivers/interconnect/qcom/msm8996.c
··· 1796 1796 .qos.qos_mode = NOC_QOS_MODE_INVALID 1797 1797 }; 1798 1798 1799 - static struct qcom_icc_node *a0noc_nodes[] = { 1799 + static struct qcom_icc_node * const a0noc_nodes[] = { 1800 1800 [MASTER_PCIE_0] = &mas_pcie_0, 1801 1801 [MASTER_PCIE_1] = &mas_pcie_1, 1802 1802 [MASTER_PCIE_2] = &mas_pcie_2 ··· 1820 1820 .regmap_cfg = &msm8996_a0noc_regmap_config 1821 1821 }; 1822 1822 1823 - static struct qcom_icc_node *a1noc_nodes[] = { 1823 + static struct qcom_icc_node * const a1noc_nodes[] = { 1824 1824 [MASTER_CNOC_A1NOC] = &mas_cnoc_a1noc, 1825 1825 [MASTER_CRYPTO_CORE0] = &mas_crypto_c0, 1826 1826 [MASTER_PNOC_A1NOC] = &mas_pnoc_a1noc ··· 1841 1841 .regmap_cfg = &msm8996_a1noc_regmap_config 1842 1842 }; 1843 1843 1844 - static struct qcom_icc_node *a2noc_nodes[] = { 1844 + static struct qcom_icc_node * const a2noc_nodes[] = { 1845 1845 [MASTER_USB3] = &mas_usb3, 1846 1846 [MASTER_IPA] = &mas_ipa, 1847 1847 [MASTER_UFS] = &mas_ufs ··· 1862 1862 .regmap_cfg = &msm8996_a2noc_regmap_config 1863 1863 }; 1864 1864 1865 - static struct qcom_icc_node *bimc_nodes[] = { 1865 + static struct qcom_icc_node * const bimc_nodes[] = { 1866 1866 [MASTER_AMPSS_M0] = &mas_apps_proc, 1867 1867 [MASTER_GRAPHICS_3D] = &mas_oxili, 1868 1868 [MASTER_MNOC_BIMC] = &mas_mnoc_bimc, ··· 1888 1888 .regmap_cfg = &msm8996_bimc_regmap_config 1889 1889 }; 1890 1890 1891 - static struct qcom_icc_node *cnoc_nodes[] = { 1891 + static struct qcom_icc_node * const cnoc_nodes[] = { 1892 1892 [MASTER_SNOC_CNOC] = &mas_snoc_cnoc, 1893 1893 [MASTER_QDSS_DAP] = &mas_qdss_dap, 1894 1894 [SLAVE_CNOC_A1NOC] = &slv_cnoc_a1noc, ··· 1946 1946 .regmap_cfg = &msm8996_cnoc_regmap_config 1947 1947 }; 1948 1948 1949 - static struct qcom_icc_node *mnoc_nodes[] = { 1949 + static struct qcom_icc_node * const mnoc_nodes[] = { 1950 1950 [MASTER_CNOC_MNOC_CFG] = &mas_cnoc_mnoc_cfg, 1951 1951 [MASTER_CPP] = &mas_cpp, 1952 1952 [MASTER_JPEG] = &mas_jpeg, ··· 2001 2001 .regmap_cfg = &msm8996_mnoc_regmap_config 2002 2002 }; 2003 2003 2004 - static struct qcom_icc_node *pnoc_nodes[] = { 2004 + static struct qcom_icc_node * const pnoc_nodes[] = { 2005 2005 [MASTER_SNOC_PNOC] = &mas_snoc_pnoc, 2006 2006 [MASTER_SDCC_1] = &mas_sdcc_1, 2007 2007 [MASTER_SDCC_2] = &mas_sdcc_2, ··· 2037 2037 .regmap_cfg = &msm8996_pnoc_regmap_config 2038 2038 }; 2039 2039 2040 - static struct qcom_icc_node *snoc_nodes[] = { 2040 + static struct qcom_icc_node * const snoc_nodes[] = { 2041 2041 [MASTER_HMSS] = &mas_hmss, 2042 2042 [MASTER_QDSS_BAM] = &mas_qdss_bam, 2043 2043 [MASTER_SNOC_CFG] = &mas_snoc_cfg,
+8 -8
drivers/interconnect/qcom/osm-l3.c
··· 67 67 }; 68 68 69 69 struct qcom_osm_l3_desc { 70 - const struct qcom_osm_l3_node **nodes; 70 + const struct qcom_osm_l3_node * const *nodes; 71 71 size_t num_nodes; 72 72 unsigned int lut_row_size; 73 73 unsigned int reg_freq_lut; ··· 86 86 DEFINE_QNODE(sdm845_osm_apps_l3, SDM845_MASTER_OSM_L3_APPS, 16, SDM845_SLAVE_OSM_L3); 87 87 DEFINE_QNODE(sdm845_osm_l3, SDM845_SLAVE_OSM_L3, 16); 88 88 89 - static const struct qcom_osm_l3_node *sdm845_osm_l3_nodes[] = { 89 + static const struct qcom_osm_l3_node * const sdm845_osm_l3_nodes[] = { 90 90 [MASTER_OSM_L3_APPS] = &sdm845_osm_apps_l3, 91 91 [SLAVE_OSM_L3] = &sdm845_osm_l3, 92 92 }; ··· 102 102 DEFINE_QNODE(sc7180_osm_apps_l3, SC7180_MASTER_OSM_L3_APPS, 16, SC7180_SLAVE_OSM_L3); 103 103 DEFINE_QNODE(sc7180_osm_l3, SC7180_SLAVE_OSM_L3, 16); 104 104 105 - static const struct qcom_osm_l3_node *sc7180_osm_l3_nodes[] = { 105 + static const struct qcom_osm_l3_node * const sc7180_osm_l3_nodes[] = { 106 106 [MASTER_OSM_L3_APPS] = &sc7180_osm_apps_l3, 107 107 [SLAVE_OSM_L3] = &sc7180_osm_l3, 108 108 }; ··· 118 118 DEFINE_QNODE(sc7280_epss_apps_l3, SC7280_MASTER_EPSS_L3_APPS, 32, SC7280_SLAVE_EPSS_L3); 119 119 DEFINE_QNODE(sc7280_epss_l3, SC7280_SLAVE_EPSS_L3, 32); 120 120 121 - static const struct qcom_osm_l3_node *sc7280_epss_l3_nodes[] = { 121 + static const struct qcom_osm_l3_node * const sc7280_epss_l3_nodes[] = { 122 122 [MASTER_EPSS_L3_APPS] = &sc7280_epss_apps_l3, 123 123 [SLAVE_EPSS_L3_SHARED] = &sc7280_epss_l3, 124 124 }; ··· 134 134 DEFINE_QNODE(sc8180x_osm_apps_l3, SC8180X_MASTER_OSM_L3_APPS, 32, SC8180X_SLAVE_OSM_L3); 135 135 DEFINE_QNODE(sc8180x_osm_l3, SC8180X_SLAVE_OSM_L3, 32); 136 136 137 - static const struct qcom_osm_l3_node *sc8180x_osm_l3_nodes[] = { 137 + static const struct qcom_osm_l3_node * const sc8180x_osm_l3_nodes[] = { 138 138 [MASTER_OSM_L3_APPS] = &sc8180x_osm_apps_l3, 139 139 [SLAVE_OSM_L3] = &sc8180x_osm_l3, 140 140 }; ··· 150 150 DEFINE_QNODE(sm8150_osm_apps_l3, SM8150_MASTER_OSM_L3_APPS, 32, SM8150_SLAVE_OSM_L3); 151 151 DEFINE_QNODE(sm8150_osm_l3, SM8150_SLAVE_OSM_L3, 32); 152 152 153 - static const struct qcom_osm_l3_node *sm8150_osm_l3_nodes[] = { 153 + static const struct qcom_osm_l3_node * const sm8150_osm_l3_nodes[] = { 154 154 [MASTER_OSM_L3_APPS] = &sm8150_osm_apps_l3, 155 155 [SLAVE_OSM_L3] = &sm8150_osm_l3, 156 156 }; ··· 166 166 DEFINE_QNODE(sm8250_epss_apps_l3, SM8250_MASTER_EPSS_L3_APPS, 32, SM8250_SLAVE_EPSS_L3); 167 167 DEFINE_QNODE(sm8250_epss_l3, SM8250_SLAVE_EPSS_L3, 32); 168 168 169 - static const struct qcom_osm_l3_node *sm8250_epss_l3_nodes[] = { 169 + static const struct qcom_osm_l3_node * const sm8250_epss_l3_nodes[] = { 170 170 [MASTER_EPSS_L3_APPS] = &sm8250_epss_apps_l3, 171 171 [SLAVE_EPSS_L3_SHARED] = &sm8250_epss_l3, 172 172 }; ··· 228 228 const struct qcom_osm_l3_desc *desc; 229 229 struct icc_onecell_data *data; 230 230 struct icc_provider *provider; 231 - const struct qcom_osm_l3_node **qnodes; 231 + const struct qcom_osm_l3_node * const *qnodes; 232 232 struct icc_node *node; 233 233 size_t num_nodes; 234 234 struct clk *clk;
+12 -12
drivers/interconnect/qcom/qcm2290.c
··· 1174 1174 }; 1175 1175 1176 1176 /* NoC descriptors */ 1177 - static struct qcom_icc_node *qcm2290_bimc_nodes[] = { 1177 + static struct qcom_icc_node * const qcm2290_bimc_nodes[] = { 1178 1178 [MASTER_APPSS_PROC] = &mas_appss_proc, 1179 1179 [MASTER_SNOC_BIMC_RT] = &mas_snoc_bimc_rt, 1180 1180 [MASTER_SNOC_BIMC_NRT] = &mas_snoc_bimc_nrt, ··· 1193 1193 .fast_io = true, 1194 1194 }; 1195 1195 1196 - static struct qcom_icc_desc qcm2290_bimc = { 1196 + static const struct qcom_icc_desc qcm2290_bimc = { 1197 1197 .type = QCOM_ICC_BIMC, 1198 1198 .nodes = qcm2290_bimc_nodes, 1199 1199 .num_nodes = ARRAY_SIZE(qcm2290_bimc_nodes), ··· 1202 1202 .qos_offset = 0x8000, 1203 1203 }; 1204 1204 1205 - static struct qcom_icc_node *qcm2290_cnoc_nodes[] = { 1205 + static struct qcom_icc_node * const qcm2290_cnoc_nodes[] = { 1206 1206 [MASTER_SNOC_CNOC] = &mas_snoc_cnoc, 1207 1207 [MASTER_QDSS_DAP] = &mas_qdss_dap, 1208 1208 [SLAVE_BIMC_CFG] = &slv_bimc_cfg, ··· 1248 1248 .fast_io = true, 1249 1249 }; 1250 1250 1251 - static struct qcom_icc_desc qcm2290_cnoc = { 1251 + static const struct qcom_icc_desc qcm2290_cnoc = { 1252 1252 .type = QCOM_ICC_NOC, 1253 1253 .nodes = qcm2290_cnoc_nodes, 1254 1254 .num_nodes = ARRAY_SIZE(qcm2290_cnoc_nodes), 1255 1255 .regmap_cfg = &qcm2290_cnoc_regmap_config, 1256 1256 }; 1257 1257 1258 - static struct qcom_icc_node *qcm2290_snoc_nodes[] = { 1258 + static struct qcom_icc_node * const qcm2290_snoc_nodes[] = { 1259 1259 [MASTER_CRYPTO_CORE0] = &mas_crypto_core0, 1260 1260 [MASTER_SNOC_CFG] = &mas_snoc_cfg, 1261 1261 [MASTER_TIC] = &mas_tic, ··· 1289 1289 .fast_io = true, 1290 1290 }; 1291 1291 1292 - static struct qcom_icc_desc qcm2290_snoc = { 1292 + static const struct qcom_icc_desc qcm2290_snoc = { 1293 1293 .type = QCOM_ICC_QNOC, 1294 1294 .nodes = qcm2290_snoc_nodes, 1295 1295 .num_nodes = ARRAY_SIZE(qcm2290_snoc_nodes), ··· 1298 1298 .qos_offset = 0x15000, 1299 1299 }; 1300 1300 1301 - static struct qcom_icc_node *qcm2290_qup_virt_nodes[] = { 1301 + static struct qcom_icc_node * const qcm2290_qup_virt_nodes[] = { 1302 1302 [MASTER_QUP_CORE_0] = &mas_qup_core_0, 1303 1303 [SLAVE_QUP_CORE_0] = &slv_qup_core_0 1304 1304 }; 1305 1305 1306 - static struct qcom_icc_desc qcm2290_qup_virt = { 1306 + static const struct qcom_icc_desc qcm2290_qup_virt = { 1307 1307 .type = QCOM_ICC_QNOC, 1308 1308 .nodes = qcm2290_qup_virt_nodes, 1309 1309 .num_nodes = ARRAY_SIZE(qcm2290_qup_virt_nodes), 1310 1310 }; 1311 1311 1312 - static struct qcom_icc_node *qcm2290_mmnrt_virt_nodes[] = { 1312 + static struct qcom_icc_node * const qcm2290_mmnrt_virt_nodes[] = { 1313 1313 [MASTER_CAMNOC_SF] = &mas_camnoc_sf, 1314 1314 [MASTER_VIDEO_P0] = &mas_video_p0, 1315 1315 [MASTER_VIDEO_PROC] = &mas_video_proc, 1316 1316 [SLAVE_SNOC_BIMC_NRT] = &slv_snoc_bimc_nrt, 1317 1317 }; 1318 1318 1319 - static struct qcom_icc_desc qcm2290_mmnrt_virt = { 1319 + static const struct qcom_icc_desc qcm2290_mmnrt_virt = { 1320 1320 .type = QCOM_ICC_QNOC, 1321 1321 .nodes = qcm2290_mmnrt_virt_nodes, 1322 1322 .num_nodes = ARRAY_SIZE(qcm2290_mmnrt_virt_nodes), ··· 1324 1324 .qos_offset = 0x15000, 1325 1325 }; 1326 1326 1327 - static struct qcom_icc_node *qcm2290_mmrt_virt_nodes[] = { 1327 + static struct qcom_icc_node * const qcm2290_mmrt_virt_nodes[] = { 1328 1328 [MASTER_CAMNOC_HF] = &mas_camnoc_hf, 1329 1329 [MASTER_MDP0] = &mas_mdp0, 1330 1330 [SLAVE_SNOC_BIMC_RT] = &slv_snoc_bimc_rt, 1331 1331 }; 1332 1332 1333 - static struct qcom_icc_desc qcm2290_mmrt_virt = { 1333 + static const struct qcom_icc_desc qcm2290_mmrt_virt = { 1334 1334 .type = QCOM_ICC_QNOC, 1335 1335 .nodes = qcm2290_mmrt_virt_nodes, 1336 1336 .num_nodes = ARRAY_SIZE(qcm2290_mmrt_virt_nodes),
+6 -6
drivers/interconnect/qcom/qcs404.c
··· 974 974 .slv_rpm_id = -1, 975 975 }; 976 976 977 - static struct qcom_icc_node *qcs404_bimc_nodes[] = { 977 + static struct qcom_icc_node * const qcs404_bimc_nodes[] = { 978 978 [MASTER_AMPSS_M0] = &mas_apps_proc, 979 979 [MASTER_OXILI] = &mas_oxili, 980 980 [MASTER_MDP_PORT0] = &mas_mdp, ··· 984 984 [SLAVE_BIMC_SNOC] = &slv_bimc_snoc, 985 985 }; 986 986 987 - static struct qcom_icc_desc qcs404_bimc = { 987 + static const struct qcom_icc_desc qcs404_bimc = { 988 988 .nodes = qcs404_bimc_nodes, 989 989 .num_nodes = ARRAY_SIZE(qcs404_bimc_nodes), 990 990 }; 991 991 992 - static struct qcom_icc_node *qcs404_pcnoc_nodes[] = { 992 + static struct qcom_icc_node * const qcs404_pcnoc_nodes[] = { 993 993 [MASTER_SPDM] = &mas_spdm, 994 994 [MASTER_BLSP_1] = &mas_blsp_1, 995 995 [MASTER_BLSP_2] = &mas_blsp_2, ··· 1038 1038 [SLAVE_PCNOC_SNOC] = &slv_pcnoc_snoc, 1039 1039 }; 1040 1040 1041 - static struct qcom_icc_desc qcs404_pcnoc = { 1041 + static const struct qcom_icc_desc qcs404_pcnoc = { 1042 1042 .nodes = qcs404_pcnoc_nodes, 1043 1043 .num_nodes = ARRAY_SIZE(qcs404_pcnoc_nodes), 1044 1044 }; 1045 1045 1046 - static struct qcom_icc_node *qcs404_snoc_nodes[] = { 1046 + static struct qcom_icc_node * const qcs404_snoc_nodes[] = { 1047 1047 [MASTER_QDSS_BAM] = &mas_qdss_bam, 1048 1048 [MASTER_BIMC_SNOC] = &mas_bimc_snoc, 1049 1049 [MASTER_PCNOC_SNOC] = &mas_pcnoc_snoc, ··· 1066 1066 [SLAVE_LPASS] = &slv_lpass, 1067 1067 }; 1068 1068 1069 - static struct qcom_icc_desc qcs404_snoc = { 1069 + static const struct qcom_icc_desc qcs404_snoc = { 1070 1070 .nodes = qcs404_snoc_nodes, 1071 1071 .num_nodes = ARRAY_SIZE(qcs404_snoc_nodes), 1072 1072 };
+33 -33
drivers/interconnect/qcom/sc7180.c
··· 178 178 DEFINE_QBCM(bcm_sn9, "SN9", false, &qnm_aggre2_noc); 179 179 DEFINE_QBCM(bcm_sn12, "SN12", false, &qnm_gemnoc); 180 180 181 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 181 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 182 182 &bcm_cn1, 183 183 }; 184 184 185 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 185 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 186 186 [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg, 187 187 [MASTER_QSPI] = &qhm_qspi, 188 188 [MASTER_QUP_0] = &qhm_qup_0, ··· 193 193 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 194 194 }; 195 195 196 - static struct qcom_icc_desc sc7180_aggre1_noc = { 196 + static const struct qcom_icc_desc sc7180_aggre1_noc = { 197 197 .nodes = aggre1_noc_nodes, 198 198 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 199 199 .bcms = aggre1_noc_bcms, 200 200 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 201 201 }; 202 202 203 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 203 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 204 204 &bcm_ce0, 205 205 }; 206 206 207 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 207 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 208 208 [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg, 209 209 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 210 210 [MASTER_QUP_1] = &qhm_qup_1, ··· 216 216 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 217 217 }; 218 218 219 - static struct qcom_icc_desc sc7180_aggre2_noc = { 219 + static const struct qcom_icc_desc sc7180_aggre2_noc = { 220 220 .nodes = aggre2_noc_nodes, 221 221 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 222 222 .bcms = aggre2_noc_bcms, 223 223 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 224 224 }; 225 225 226 - static struct qcom_icc_bcm *camnoc_virt_bcms[] = { 226 + static struct qcom_icc_bcm * const camnoc_virt_bcms[] = { 227 227 &bcm_mm1, 228 228 }; 229 229 230 - static struct qcom_icc_node *camnoc_virt_nodes[] = { 230 + static struct qcom_icc_node * const camnoc_virt_nodes[] = { 231 231 [MASTER_CAMNOC_HF0_UNCOMP] = &qxm_camnoc_hf0_uncomp, 232 232 [MASTER_CAMNOC_HF1_UNCOMP] = &qxm_camnoc_hf1_uncomp, 233 233 [MASTER_CAMNOC_SF_UNCOMP] = &qxm_camnoc_sf_uncomp, 234 234 [SLAVE_CAMNOC_UNCOMP] = &qns_camnoc_uncomp, 235 235 }; 236 236 237 - static struct qcom_icc_desc sc7180_camnoc_virt = { 237 + static const struct qcom_icc_desc sc7180_camnoc_virt = { 238 238 .nodes = camnoc_virt_nodes, 239 239 .num_nodes = ARRAY_SIZE(camnoc_virt_nodes), 240 240 .bcms = camnoc_virt_bcms, 241 241 .num_bcms = ARRAY_SIZE(camnoc_virt_bcms), 242 242 }; 243 243 244 - static struct qcom_icc_bcm *compute_noc_bcms[] = { 244 + static struct qcom_icc_bcm * const compute_noc_bcms[] = { 245 245 &bcm_co0, 246 246 &bcm_co2, 247 247 &bcm_co3, 248 248 }; 249 249 250 - static struct qcom_icc_node *compute_noc_nodes[] = { 250 + static struct qcom_icc_node * const compute_noc_nodes[] = { 251 251 [MASTER_NPU] = &qnm_npu, 252 252 [MASTER_NPU_PROC] = &qxm_npu_dsp, 253 253 [SLAVE_CDSP_GEM_NOC] = &qns_cdsp_gemnoc, 254 254 }; 255 255 256 - static struct qcom_icc_desc sc7180_compute_noc = { 256 + static const struct qcom_icc_desc sc7180_compute_noc = { 257 257 .nodes = compute_noc_nodes, 258 258 .num_nodes = ARRAY_SIZE(compute_noc_nodes), 259 259 .bcms = compute_noc_bcms, 260 260 .num_bcms = ARRAY_SIZE(compute_noc_bcms), 261 261 }; 262 262 263 - static struct qcom_icc_bcm *config_noc_bcms[] = { 263 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 264 264 &bcm_cn0, 265 265 &bcm_cn1, 266 266 }; 267 267 268 - static struct qcom_icc_node *config_noc_nodes[] = { 268 + static struct qcom_icc_node * const config_noc_nodes[] = { 269 269 [MASTER_SNOC_CNOC] = &qnm_snoc, 270 270 [MASTER_QDSS_DAP] = &xm_qdss_dap, 271 271 [SLAVE_A1NOC_CFG] = &qhs_a1_noc_cfg, ··· 321 321 [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 322 322 }; 323 323 324 - static struct qcom_icc_desc sc7180_config_noc = { 324 + static const struct qcom_icc_desc sc7180_config_noc = { 325 325 .nodes = config_noc_nodes, 326 326 .num_nodes = ARRAY_SIZE(config_noc_nodes), 327 327 .bcms = config_noc_bcms, 328 328 .num_bcms = ARRAY_SIZE(config_noc_bcms), 329 329 }; 330 330 331 - static struct qcom_icc_node *dc_noc_nodes[] = { 331 + static struct qcom_icc_node * const dc_noc_nodes[] = { 332 332 [MASTER_CNOC_DC_NOC] = &qhm_cnoc_dc_noc, 333 333 [SLAVE_GEM_NOC_CFG] = &qhs_gemnoc, 334 334 [SLAVE_LLCC_CFG] = &qhs_llcc, 335 335 }; 336 336 337 - static struct qcom_icc_desc sc7180_dc_noc = { 337 + static const struct qcom_icc_desc sc7180_dc_noc = { 338 338 .nodes = dc_noc_nodes, 339 339 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 340 340 }; 341 341 342 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 342 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 343 343 &bcm_sh0, 344 344 &bcm_sh2, 345 345 &bcm_sh3, 346 346 &bcm_sh4, 347 347 }; 348 348 349 - static struct qcom_icc_node *gem_noc_nodes[] = { 349 + static struct qcom_icc_node * const gem_noc_nodes[] = { 350 350 [MASTER_APPSS_PROC] = &acm_apps0, 351 351 [MASTER_SYS_TCU] = &acm_sys_tcu, 352 352 [MASTER_GEM_NOC_CFG] = &qhm_gemnoc_cfg, ··· 362 362 [SLAVE_SERVICE_GEM_NOC] = &srvc_gemnoc, 363 363 }; 364 364 365 - static struct qcom_icc_desc sc7180_gem_noc = { 365 + static const struct qcom_icc_desc sc7180_gem_noc = { 366 366 .nodes = gem_noc_nodes, 367 367 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 368 368 .bcms = gem_noc_bcms, ··· 374 374 &bcm_mc0, 375 375 }; 376 376 377 - static struct qcom_icc_node *mc_virt_nodes[] = { 377 + static struct qcom_icc_node * const mc_virt_nodes[] = { 378 378 [MASTER_LLCC] = &llcc_mc, 379 379 [SLAVE_EBI1] = &ebi, 380 380 }; 381 381 382 - static struct qcom_icc_desc sc7180_mc_virt = { 382 + static const struct qcom_icc_desc sc7180_mc_virt = { 383 383 .nodes = mc_virt_nodes, 384 384 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 385 385 .bcms = mc_virt_bcms, 386 386 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 387 387 }; 388 388 389 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 389 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 390 390 &bcm_mm0, 391 391 &bcm_mm1, 392 392 &bcm_mm2, 393 393 }; 394 394 395 - static struct qcom_icc_node *mmss_noc_nodes[] = { 395 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 396 396 [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg, 397 397 [MASTER_CAMNOC_HF0] = &qxm_camnoc_hf0, 398 398 [MASTER_CAMNOC_HF1] = &qxm_camnoc_hf1, ··· 406 406 [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 407 407 }; 408 408 409 - static struct qcom_icc_desc sc7180_mmss_noc = { 409 + static const struct qcom_icc_desc sc7180_mmss_noc = { 410 410 .nodes = mmss_noc_nodes, 411 411 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 412 412 .bcms = mmss_noc_bcms, 413 413 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 414 414 }; 415 415 416 - static struct qcom_icc_node *npu_noc_nodes[] = { 416 + static struct qcom_icc_node * const npu_noc_nodes[] = { 417 417 [MASTER_NPU_SYS] = &amm_npu_sys, 418 418 [MASTER_NPU_NOC_CFG] = &qhm_npu_cfg, 419 419 [SLAVE_NPU_CAL_DP0] = &qhs_cal_dp0, ··· 427 427 [SLAVE_SERVICE_NPU_NOC] = &srvc_noc, 428 428 }; 429 429 430 - static struct qcom_icc_desc sc7180_npu_noc = { 430 + static const struct qcom_icc_desc sc7180_npu_noc = { 431 431 .nodes = npu_noc_nodes, 432 432 .num_nodes = ARRAY_SIZE(npu_noc_nodes), 433 433 }; 434 434 435 - static struct qcom_icc_bcm *qup_virt_bcms[] = { 435 + static struct qcom_icc_bcm * const qup_virt_bcms[] = { 436 436 &bcm_qup0, 437 437 }; 438 438 439 - static struct qcom_icc_node *qup_virt_nodes[] = { 439 + static struct qcom_icc_node * const qup_virt_nodes[] = { 440 440 [MASTER_QUP_CORE_0] = &qup_core_master_1, 441 441 [MASTER_QUP_CORE_1] = &qup_core_master_2, 442 442 [SLAVE_QUP_CORE_0] = &qup_core_slave_1, 443 443 [SLAVE_QUP_CORE_1] = &qup_core_slave_2, 444 444 }; 445 445 446 - static struct qcom_icc_desc sc7180_qup_virt = { 446 + static const struct qcom_icc_desc sc7180_qup_virt = { 447 447 .nodes = qup_virt_nodes, 448 448 .num_nodes = ARRAY_SIZE(qup_virt_nodes), 449 449 .bcms = qup_virt_bcms, 450 450 .num_bcms = ARRAY_SIZE(qup_virt_bcms), 451 451 }; 452 452 453 - static struct qcom_icc_bcm *system_noc_bcms[] = { 453 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 454 454 &bcm_sn0, 455 455 &bcm_sn1, 456 456 &bcm_sn2, ··· 461 461 &bcm_sn12, 462 462 }; 463 463 464 - static struct qcom_icc_node *system_noc_nodes[] = { 464 + static struct qcom_icc_node * const system_noc_nodes[] = { 465 465 [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 466 466 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 467 467 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, ··· 478 478 [SLAVE_TCU] = &xs_sys_tcu_cfg, 479 479 }; 480 480 481 - static struct qcom_icc_desc sc7180_system_noc = { 481 + static const struct qcom_icc_desc sc7180_system_noc = { 482 482 .nodes = system_noc_nodes, 483 483 .num_nodes = ARRAY_SIZE(system_noc_nodes), 484 484 .bcms = system_noc_bcms,
+36 -36
drivers/interconnect/qcom/sc7280.c
··· 1476 1476 .nodes = { &qns_pcie_mem_noc }, 1477 1477 }; 1478 1478 1479 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 1479 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 1480 1480 &bcm_sn5, 1481 1481 &bcm_sn6, 1482 1482 &bcm_sn14, 1483 1483 }; 1484 1484 1485 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 1485 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1486 1486 [MASTER_QSPI_0] = &qhm_qspi, 1487 1487 [MASTER_QUP_0] = &qhm_qup0, 1488 1488 [MASTER_QUP_1] = &qhm_qup1, ··· 1500 1500 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 1501 1501 }; 1502 1502 1503 - static struct qcom_icc_desc sc7280_aggre1_noc = { 1503 + static const struct qcom_icc_desc sc7280_aggre1_noc = { 1504 1504 .nodes = aggre1_noc_nodes, 1505 1505 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1506 1506 .bcms = aggre1_noc_bcms, 1507 1507 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1508 1508 }; 1509 1509 1510 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 1510 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 1511 1511 &bcm_ce0, 1512 1512 }; 1513 1513 1514 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 1514 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1515 1515 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 1516 1516 [MASTER_A2NOC_CFG] = &qnm_a2noc_cfg, 1517 1517 [MASTER_CNOC_A2NOC] = &qnm_cnoc_datapath, ··· 1522 1522 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 1523 1523 }; 1524 1524 1525 - static struct qcom_icc_desc sc7280_aggre2_noc = { 1525 + static const struct qcom_icc_desc sc7280_aggre2_noc = { 1526 1526 .nodes = aggre2_noc_nodes, 1527 1527 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1528 1528 .bcms = aggre2_noc_bcms, 1529 1529 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1530 1530 }; 1531 1531 1532 - static struct qcom_icc_bcm *clk_virt_bcms[] = { 1532 + static struct qcom_icc_bcm * const clk_virt_bcms[] = { 1533 1533 &bcm_qup0, 1534 1534 &bcm_qup1, 1535 1535 }; 1536 1536 1537 - static struct qcom_icc_node *clk_virt_nodes[] = { 1537 + static struct qcom_icc_node * const clk_virt_nodes[] = { 1538 1538 [MASTER_QUP_CORE_0] = &qup0_core_master, 1539 1539 [MASTER_QUP_CORE_1] = &qup1_core_master, 1540 1540 [SLAVE_QUP_CORE_0] = &qup0_core_slave, 1541 1541 [SLAVE_QUP_CORE_1] = &qup1_core_slave, 1542 1542 }; 1543 1543 1544 - static struct qcom_icc_desc sc7280_clk_virt = { 1544 + static const struct qcom_icc_desc sc7280_clk_virt = { 1545 1545 .nodes = clk_virt_nodes, 1546 1546 .num_nodes = ARRAY_SIZE(clk_virt_nodes), 1547 1547 .bcms = clk_virt_bcms, 1548 1548 .num_bcms = ARRAY_SIZE(clk_virt_bcms), 1549 1549 }; 1550 1550 1551 - static struct qcom_icc_bcm *cnoc2_bcms[] = { 1551 + static struct qcom_icc_bcm * const cnoc2_bcms[] = { 1552 1552 &bcm_cn1, 1553 1553 &bcm_cn2, 1554 1554 }; 1555 1555 1556 - static struct qcom_icc_node *cnoc2_nodes[] = { 1556 + static struct qcom_icc_node * const cnoc2_nodes[] = { 1557 1557 [MASTER_CNOC3_CNOC2] = &qnm_cnoc3_cnoc2, 1558 1558 [MASTER_QDSS_DAP] = &xm_qdss_dap, 1559 1559 [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, ··· 1603 1603 [SLAVE_SNOC_CFG] = &qns_snoc_cfg, 1604 1604 }; 1605 1605 1606 - static struct qcom_icc_desc sc7280_cnoc2 = { 1606 + static const struct qcom_icc_desc sc7280_cnoc2 = { 1607 1607 .nodes = cnoc2_nodes, 1608 1608 .num_nodes = ARRAY_SIZE(cnoc2_nodes), 1609 1609 .bcms = cnoc2_bcms, 1610 1610 .num_bcms = ARRAY_SIZE(cnoc2_bcms), 1611 1611 }; 1612 1612 1613 - static struct qcom_icc_bcm *cnoc3_bcms[] = { 1613 + static struct qcom_icc_bcm * const cnoc3_bcms[] = { 1614 1614 &bcm_cn0, 1615 1615 &bcm_cn1, 1616 1616 &bcm_sn3, 1617 1617 &bcm_sn4, 1618 1618 }; 1619 1619 1620 - static struct qcom_icc_node *cnoc3_nodes[] = { 1620 + static struct qcom_icc_node * const cnoc3_nodes[] = { 1621 1621 [MASTER_CNOC2_CNOC3] = &qnm_cnoc2_cnoc3, 1622 1622 [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1623 1623 [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, ··· 1635 1635 [SLAVE_TCU] = &xs_sys_tcu_cfg, 1636 1636 }; 1637 1637 1638 - static struct qcom_icc_desc sc7280_cnoc3 = { 1638 + static const struct qcom_icc_desc sc7280_cnoc3 = { 1639 1639 .nodes = cnoc3_nodes, 1640 1640 .num_nodes = ARRAY_SIZE(cnoc3_nodes), 1641 1641 .bcms = cnoc3_bcms, 1642 1642 .num_bcms = ARRAY_SIZE(cnoc3_bcms), 1643 1643 }; 1644 1644 1645 - static struct qcom_icc_bcm *dc_noc_bcms[] = { 1645 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 1646 1646 }; 1647 1647 1648 - static struct qcom_icc_node *dc_noc_nodes[] = { 1648 + static struct qcom_icc_node * const dc_noc_nodes[] = { 1649 1649 [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc, 1650 1650 [SLAVE_LLCC_CFG] = &qhs_llcc, 1651 1651 [SLAVE_GEM_NOC_CFG] = &qns_gemnoc, 1652 1652 }; 1653 1653 1654 - static struct qcom_icc_desc sc7280_dc_noc = { 1654 + static const struct qcom_icc_desc sc7280_dc_noc = { 1655 1655 .nodes = dc_noc_nodes, 1656 1656 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 1657 1657 .bcms = dc_noc_bcms, 1658 1658 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 1659 1659 }; 1660 1660 1661 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 1661 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1662 1662 &bcm_sh0, 1663 1663 &bcm_sh2, 1664 1664 &bcm_sh3, 1665 1665 &bcm_sh4, 1666 1666 }; 1667 1667 1668 - static struct qcom_icc_node *gem_noc_nodes[] = { 1668 + static struct qcom_icc_node * const gem_noc_nodes[] = { 1669 1669 [MASTER_GPU_TCU] = &alm_gpu_tcu, 1670 1670 [MASTER_SYS_TCU] = &alm_sys_tcu, 1671 1671 [MASTER_APPSS_PROC] = &chm_apps, ··· 1687 1687 [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc, 1688 1688 }; 1689 1689 1690 - static struct qcom_icc_desc sc7280_gem_noc = { 1690 + static const struct qcom_icc_desc sc7280_gem_noc = { 1691 1691 .nodes = gem_noc_nodes, 1692 1692 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1693 1693 .bcms = gem_noc_bcms, 1694 1694 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1695 1695 }; 1696 1696 1697 - static struct qcom_icc_bcm *lpass_ag_noc_bcms[] = { 1697 + static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = { 1698 1698 }; 1699 1699 1700 - static struct qcom_icc_node *lpass_ag_noc_nodes[] = { 1700 + static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 1701 1701 [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 1702 1702 [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, 1703 1703 [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi, ··· 1707 1707 [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 1708 1708 }; 1709 1709 1710 - static struct qcom_icc_desc sc7280_lpass_ag_noc = { 1710 + static const struct qcom_icc_desc sc7280_lpass_ag_noc = { 1711 1711 .nodes = lpass_ag_noc_nodes, 1712 1712 .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 1713 1713 .bcms = lpass_ag_noc_bcms, 1714 1714 .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 1715 1715 }; 1716 1716 1717 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 1717 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 1718 1718 &bcm_acv, 1719 1719 &bcm_mc0, 1720 1720 }; 1721 1721 1722 - static struct qcom_icc_node *mc_virt_nodes[] = { 1722 + static struct qcom_icc_node * const mc_virt_nodes[] = { 1723 1723 [MASTER_LLCC] = &llcc_mc, 1724 1724 [SLAVE_EBI1] = &ebi, 1725 1725 }; 1726 1726 1727 - static struct qcom_icc_desc sc7280_mc_virt = { 1727 + static const struct qcom_icc_desc sc7280_mc_virt = { 1728 1728 .nodes = mc_virt_nodes, 1729 1729 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1730 1730 .bcms = mc_virt_bcms, 1731 1731 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1732 1732 }; 1733 1733 1734 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 1734 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 1735 1735 &bcm_mm0, 1736 1736 &bcm_mm1, 1737 1737 &bcm_mm4, 1738 1738 &bcm_mm5, 1739 1739 }; 1740 1740 1741 - static struct qcom_icc_node *mmss_noc_nodes[] = { 1741 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 1742 1742 [MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg, 1743 1743 [MASTER_VIDEO_P0] = &qnm_video0, 1744 1744 [MASTER_VIDEO_PROC] = &qnm_video_cpu, ··· 1751 1751 [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 1752 1752 }; 1753 1753 1754 - static struct qcom_icc_desc sc7280_mmss_noc = { 1754 + static const struct qcom_icc_desc sc7280_mmss_noc = { 1755 1755 .nodes = mmss_noc_nodes, 1756 1756 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1757 1757 .bcms = mmss_noc_bcms, 1758 1758 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1759 1759 }; 1760 1760 1761 - static struct qcom_icc_bcm *nsp_noc_bcms[] = { 1761 + static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 1762 1762 &bcm_co0, 1763 1763 &bcm_co3, 1764 1764 }; 1765 1765 1766 - static struct qcom_icc_node *nsp_noc_nodes[] = { 1766 + static struct qcom_icc_node * const nsp_noc_nodes[] = { 1767 1767 [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 1768 1768 [MASTER_CDSP_PROC] = &qxm_nsp, 1769 1769 [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 1770 1770 [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 1771 1771 }; 1772 1772 1773 - static struct qcom_icc_desc sc7280_nsp_noc = { 1773 + static const struct qcom_icc_desc sc7280_nsp_noc = { 1774 1774 .nodes = nsp_noc_nodes, 1775 1775 .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 1776 1776 .bcms = nsp_noc_bcms, 1777 1777 .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 1778 1778 }; 1779 1779 1780 - static struct qcom_icc_bcm *system_noc_bcms[] = { 1780 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 1781 1781 &bcm_sn0, 1782 1782 &bcm_sn2, 1783 1783 &bcm_sn7, 1784 1784 &bcm_sn8, 1785 1785 }; 1786 1786 1787 - static struct qcom_icc_node *system_noc_nodes[] = { 1787 + static struct qcom_icc_node * const system_noc_nodes[] = { 1788 1788 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 1789 1789 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 1790 1790 [MASTER_SNOC_CFG] = &qnm_snoc_cfg, ··· 1795 1795 [SLAVE_SERVICE_SNOC] = &srvc_snoc, 1796 1796 }; 1797 1797 1798 - static struct qcom_icc_desc sc7280_system_noc = { 1798 + static const struct qcom_icc_desc sc7280_system_noc = { 1799 1799 .nodes = system_noc_nodes, 1800 1800 .num_nodes = ARRAY_SIZE(system_noc_nodes), 1801 1801 .bcms = system_noc_bcms,
+1599 -288
drivers/interconnect/qcom/sc8180x.c
··· 15 15 #include "icc-rpmh.h" 16 16 #include "sc8180x.h" 17 17 18 - DEFINE_QNODE(mas_qhm_a1noc_cfg, SC8180X_MASTER_A1NOC_CFG, 1, 4, SC8180X_SLAVE_SERVICE_A1NOC); 19 - DEFINE_QNODE(mas_xm_ufs_card, SC8180X_MASTER_UFS_CARD, 1, 8, SC8180X_A1NOC_SNOC_SLV); 20 - DEFINE_QNODE(mas_xm_ufs_g4, SC8180X_MASTER_UFS_GEN4, 1, 8, SC8180X_A1NOC_SNOC_SLV); 21 - DEFINE_QNODE(mas_xm_ufs_mem, SC8180X_MASTER_UFS_MEM, 1, 8, SC8180X_A1NOC_SNOC_SLV); 22 - DEFINE_QNODE(mas_xm_usb3_0, SC8180X_MASTER_USB3, 1, 8, SC8180X_A1NOC_SNOC_SLV); 23 - DEFINE_QNODE(mas_xm_usb3_1, SC8180X_MASTER_USB3_1, 1, 8, SC8180X_A1NOC_SNOC_SLV); 24 - DEFINE_QNODE(mas_xm_usb3_2, SC8180X_MASTER_USB3_2, 1, 16, SC8180X_A1NOC_SNOC_SLV); 25 - DEFINE_QNODE(mas_qhm_a2noc_cfg, SC8180X_MASTER_A2NOC_CFG, 1, 4, SC8180X_SLAVE_SERVICE_A2NOC); 26 - DEFINE_QNODE(mas_qhm_qdss_bam, SC8180X_MASTER_QDSS_BAM, 1, 4, SC8180X_A2NOC_SNOC_SLV); 27 - DEFINE_QNODE(mas_qhm_qspi, SC8180X_MASTER_QSPI_0, 1, 4, SC8180X_A2NOC_SNOC_SLV); 28 - DEFINE_QNODE(mas_qhm_qspi1, SC8180X_MASTER_QSPI_1, 1, 4, SC8180X_A2NOC_SNOC_SLV); 29 - DEFINE_QNODE(mas_qhm_qup0, SC8180X_MASTER_QUP_0, 1, 4, SC8180X_A2NOC_SNOC_SLV); 30 - DEFINE_QNODE(mas_qhm_qup1, SC8180X_MASTER_QUP_1, 1, 4, SC8180X_A2NOC_SNOC_SLV); 31 - DEFINE_QNODE(mas_qhm_qup2, SC8180X_MASTER_QUP_2, 1, 4, SC8180X_A2NOC_SNOC_SLV); 32 - DEFINE_QNODE(mas_qhm_sensorss_ahb, SC8180X_MASTER_SENSORS_AHB, 1, 4, SC8180X_A2NOC_SNOC_SLV); 33 - DEFINE_QNODE(mas_qxm_crypto, SC8180X_MASTER_CRYPTO_CORE_0, 1, 8, SC8180X_A2NOC_SNOC_SLV); 34 - DEFINE_QNODE(mas_qxm_ipa, SC8180X_MASTER_IPA, 1, 8, SC8180X_A2NOC_SNOC_SLV); 35 - DEFINE_QNODE(mas_xm_emac, SC8180X_MASTER_EMAC, 1, 8, SC8180X_A2NOC_SNOC_SLV); 36 - DEFINE_QNODE(mas_xm_pcie3_0, SC8180X_MASTER_PCIE, 1, 8, SC8180X_SLAVE_ANOC_PCIE_GEM_NOC); 37 - DEFINE_QNODE(mas_xm_pcie3_1, SC8180X_MASTER_PCIE_1, 1, 16, SC8180X_SLAVE_ANOC_PCIE_GEM_NOC); 38 - DEFINE_QNODE(mas_xm_pcie3_2, SC8180X_MASTER_PCIE_2, 1, 8, SC8180X_SLAVE_ANOC_PCIE_GEM_NOC); 39 - DEFINE_QNODE(mas_xm_pcie3_3, SC8180X_MASTER_PCIE_3, 1, 16, SC8180X_SLAVE_ANOC_PCIE_GEM_NOC); 40 - DEFINE_QNODE(mas_xm_qdss_etr, SC8180X_MASTER_QDSS_ETR, 1, 8, SC8180X_A2NOC_SNOC_SLV); 41 - DEFINE_QNODE(mas_xm_sdc2, SC8180X_MASTER_SDCC_2, 1, 8, SC8180X_A2NOC_SNOC_SLV); 42 - DEFINE_QNODE(mas_xm_sdc4, SC8180X_MASTER_SDCC_4, 1, 8, SC8180X_A2NOC_SNOC_SLV); 43 - DEFINE_QNODE(mas_qxm_camnoc_hf0_uncomp, SC8180X_MASTER_CAMNOC_HF0_UNCOMP, 1, 32, SC8180X_SLAVE_CAMNOC_UNCOMP); 44 - DEFINE_QNODE(mas_qxm_camnoc_hf1_uncomp, SC8180X_MASTER_CAMNOC_HF1_UNCOMP, 1, 32, SC8180X_SLAVE_CAMNOC_UNCOMP); 45 - DEFINE_QNODE(mas_qxm_camnoc_sf_uncomp, SC8180X_MASTER_CAMNOC_SF_UNCOMP, 1, 32, SC8180X_SLAVE_CAMNOC_UNCOMP); 46 - DEFINE_QNODE(mas_qnm_npu, SC8180X_MASTER_NPU, 1, 32, SC8180X_SLAVE_CDSP_MEM_NOC); 47 - DEFINE_QNODE(mas_qnm_snoc, SC8180X_SNOC_CNOC_MAS, 1, 8, SC8180X_SLAVE_TLMM_SOUTH, SC8180X_SLAVE_CDSP_CFG, SC8180X_SLAVE_SPSS_CFG, SC8180X_SLAVE_CAMERA_CFG, SC8180X_SLAVE_SDCC_4, SC8180X_SLAVE_AHB2PHY_CENTER, SC8180X_SLAVE_SDCC_2, SC8180X_SLAVE_PCIE_2_CFG, SC8180X_SLAVE_CNOC_MNOC_CFG, SC8180X_SLAVE_EMAC_CFG, SC8180X_SLAVE_QSPI_0, SC8180X_SLAVE_QSPI_1, SC8180X_SLAVE_TLMM_EAST, SC8180X_SLAVE_SNOC_CFG, SC8180X_SLAVE_AHB2PHY_EAST, SC8180X_SLAVE_GLM, SC8180X_SLAVE_PDM, SC8180X_SLAVE_PCIE_1_CFG, SC8180X_SLAVE_A2NOC_CFG, SC8180X_SLAVE_QDSS_CFG, SC8180X_SLAVE_DISPLAY_CFG, SC8180X_SLAVE_TCSR, SC8180X_SLAVE_UFS_MEM_0_CFG, SC8180X_SLAVE_CNOC_DDRSS, SC8180X_SLAVE_PCIE_0_CFG, SC8180X_SLAVE_QUP_1, SC8180X_SLAVE_QUP_2, SC8180X_SLAVE_NPU_CFG, SC8180X_SLAVE_CRYPTO_0_CFG, SC8180X_SLAVE_GRAPHICS_3D_CFG, SC8180X_SLAVE_VENUS_CFG, SC8180X_SLAVE_TSIF, SC8180X_SLAVE_IPA_CFG, SC8180X_SLAVE_CLK_CTL, SC8180X_SLAVE_SECURITY, SC8180X_SLAVE_AOP, SC8180X_SLAVE_AHB2PHY_WEST, SC8180X_SLAVE_AHB2PHY_SOUTH, SC8180X_SLAVE_SERVICE_CNOC, SC8180X_SLAVE_UFS_CARD_CFG, SC8180X_SLAVE_USB3_1, SC8180X_SLAVE_USB3_2, SC8180X_SLAVE_PCIE_3_CFG, SC8180X_SLAVE_RBCPR_CX_CFG, SC8180X_SLAVE_TLMM_WEST, SC8180X_SLAVE_A1NOC_CFG, SC8180X_SLAVE_AOSS, SC8180X_SLAVE_PRNG, SC8180X_SLAVE_VSENSE_CTRL_CFG, SC8180X_SLAVE_QUP_0, SC8180X_SLAVE_USB3, SC8180X_SLAVE_RBCPR_MMCX_CFG, SC8180X_SLAVE_PIMEM_CFG, SC8180X_SLAVE_UFS_MEM_1_CFG, SC8180X_SLAVE_RBCPR_MX_CFG, SC8180X_SLAVE_IMEM_CFG); 48 - DEFINE_QNODE(mas_qhm_cnoc_dc_noc, SC8180X_MASTER_CNOC_DC_NOC, 1, 4, SC8180X_SLAVE_LLCC_CFG, SC8180X_SLAVE_GEM_NOC_CFG); 49 - DEFINE_QNODE(mas_acm_apps, SC8180X_MASTER_AMPSS_M0, 4, 64, SC8180X_SLAVE_ECC, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 50 - DEFINE_QNODE(mas_acm_gpu_tcu, SC8180X_MASTER_GPU_TCU, 1, 8, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 51 - DEFINE_QNODE(mas_acm_sys_tcu, SC8180X_MASTER_SYS_TCU, 1, 8, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 52 - DEFINE_QNODE(mas_qhm_gemnoc_cfg, SC8180X_MASTER_GEM_NOC_CFG, 1, 4, SC8180X_SLAVE_SERVICE_GEM_NOC_1, SC8180X_SLAVE_SERVICE_GEM_NOC, SC8180X_SLAVE_MSS_PROC_MS_MPU_CFG); 53 - DEFINE_QNODE(mas_qnm_cmpnoc, SC8180X_MASTER_COMPUTE_NOC, 2, 32, SC8180X_SLAVE_ECC, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 54 - DEFINE_QNODE(mas_qnm_gpu, SC8180X_MASTER_GRAPHICS_3D, 4, 32, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 55 - DEFINE_QNODE(mas_qnm_mnoc_hf, SC8180X_MASTER_MNOC_HF_MEM_NOC, 2, 32, SC8180X_SLAVE_LLCC); 56 - DEFINE_QNODE(mas_qnm_mnoc_sf, SC8180X_MASTER_MNOC_SF_MEM_NOC, 1, 32, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 57 - DEFINE_QNODE(mas_qnm_pcie, SC8180X_MASTER_GEM_NOC_PCIE_SNOC, 1, 32, SC8180X_SLAVE_LLCC, SC8180X_SLAVE_GEM_NOC_SNOC); 58 - DEFINE_QNODE(mas_qnm_snoc_gc, SC8180X_MASTER_SNOC_GC_MEM_NOC, 1, 8, SC8180X_SLAVE_LLCC); 59 - DEFINE_QNODE(mas_qnm_snoc_sf, SC8180X_MASTER_SNOC_SF_MEM_NOC, 1, 32, SC8180X_SLAVE_LLCC); 60 - DEFINE_QNODE(mas_qxm_ecc, SC8180X_MASTER_ECC, 2, 32, SC8180X_SLAVE_LLCC); 61 - DEFINE_QNODE(mas_ipa_core_master, SC8180X_MASTER_IPA_CORE, 1, 8, SC8180X_SLAVE_IPA_CORE); 62 - DEFINE_QNODE(mas_llcc_mc, SC8180X_MASTER_LLCC, 8, 4, SC8180X_SLAVE_EBI_CH0); 63 - DEFINE_QNODE(mas_qhm_mnoc_cfg, SC8180X_MASTER_CNOC_MNOC_CFG, 1, 4, SC8180X_SLAVE_SERVICE_MNOC); 64 - DEFINE_QNODE(mas_qxm_camnoc_hf0, SC8180X_MASTER_CAMNOC_HF0, 1, 32, SC8180X_SLAVE_MNOC_HF_MEM_NOC); 65 - DEFINE_QNODE(mas_qxm_camnoc_hf1, SC8180X_MASTER_CAMNOC_HF1, 1, 32, SC8180X_SLAVE_MNOC_HF_MEM_NOC); 66 - DEFINE_QNODE(mas_qxm_camnoc_sf, SC8180X_MASTER_CAMNOC_SF, 1, 32, SC8180X_SLAVE_MNOC_SF_MEM_NOC); 67 - DEFINE_QNODE(mas_qxm_mdp0, SC8180X_MASTER_MDP_PORT0, 1, 32, SC8180X_SLAVE_MNOC_HF_MEM_NOC); 68 - DEFINE_QNODE(mas_qxm_mdp1, SC8180X_MASTER_MDP_PORT1, 1, 32, SC8180X_SLAVE_MNOC_HF_MEM_NOC); 69 - DEFINE_QNODE(mas_qxm_rot, SC8180X_MASTER_ROTATOR, 1, 32, SC8180X_SLAVE_MNOC_SF_MEM_NOC); 70 - DEFINE_QNODE(mas_qxm_venus0, SC8180X_MASTER_VIDEO_P0, 1, 32, SC8180X_SLAVE_MNOC_SF_MEM_NOC); 71 - DEFINE_QNODE(mas_qxm_venus1, SC8180X_MASTER_VIDEO_P1, 1, 32, SC8180X_SLAVE_MNOC_SF_MEM_NOC); 72 - DEFINE_QNODE(mas_qxm_venus_arm9, SC8180X_MASTER_VIDEO_PROC, 1, 8, SC8180X_SLAVE_MNOC_SF_MEM_NOC); 73 - DEFINE_QNODE(mas_qhm_snoc_cfg, SC8180X_MASTER_SNOC_CFG, 1, 4, SC8180X_SLAVE_SERVICE_SNOC); 74 - DEFINE_QNODE(mas_qnm_aggre1_noc, SC8180X_A1NOC_SNOC_MAS, 1, 32, SC8180X_SLAVE_SNOC_GEM_NOC_SF, SC8180X_SLAVE_PIMEM, SC8180X_SLAVE_OCIMEM, SC8180X_SLAVE_APPSS, SC8180X_SNOC_CNOC_SLV, SC8180X_SLAVE_QDSS_STM); 75 - DEFINE_QNODE(mas_qnm_aggre2_noc, SC8180X_A2NOC_SNOC_MAS, 1, 16, SC8180X_SLAVE_SNOC_GEM_NOC_SF, SC8180X_SLAVE_PIMEM, SC8180X_SLAVE_PCIE_3, SC8180X_SLAVE_OCIMEM, SC8180X_SLAVE_APPSS, SC8180X_SLAVE_PCIE_2, SC8180X_SNOC_CNOC_SLV, SC8180X_SLAVE_PCIE_0, SC8180X_SLAVE_PCIE_1, SC8180X_SLAVE_TCU, SC8180X_SLAVE_QDSS_STM); 76 - DEFINE_QNODE(mas_qnm_gemnoc, SC8180X_MASTER_GEM_NOC_SNOC, 1, 8, SC8180X_SLAVE_PIMEM, SC8180X_SLAVE_OCIMEM, SC8180X_SLAVE_APPSS, SC8180X_SNOC_CNOC_SLV, SC8180X_SLAVE_TCU, SC8180X_SLAVE_QDSS_STM); 77 - DEFINE_QNODE(mas_qxm_pimem, SC8180X_MASTER_PIMEM, 1, 8, SC8180X_SLAVE_SNOC_GEM_NOC_GC, SC8180X_SLAVE_OCIMEM); 78 - DEFINE_QNODE(mas_xm_gic, SC8180X_MASTER_GIC, 1, 8, SC8180X_SLAVE_SNOC_GEM_NOC_GC, SC8180X_SLAVE_OCIMEM); 79 - DEFINE_QNODE(slv_qns_a1noc_snoc, SC8180X_A1NOC_SNOC_SLV, 1, 32, SC8180X_A1NOC_SNOC_MAS); 80 - DEFINE_QNODE(slv_srvc_aggre1_noc, SC8180X_SLAVE_SERVICE_A1NOC, 1, 4); 81 - DEFINE_QNODE(slv_qns_a2noc_snoc, SC8180X_A2NOC_SNOC_SLV, 1, 16, SC8180X_A2NOC_SNOC_MAS); 82 - DEFINE_QNODE(slv_qns_pcie_mem_noc, SC8180X_SLAVE_ANOC_PCIE_GEM_NOC, 1, 32, SC8180X_MASTER_GEM_NOC_PCIE_SNOC); 83 - DEFINE_QNODE(slv_srvc_aggre2_noc, SC8180X_SLAVE_SERVICE_A2NOC, 1, 4); 84 - DEFINE_QNODE(slv_qns_camnoc_uncomp, SC8180X_SLAVE_CAMNOC_UNCOMP, 1, 32); 85 - DEFINE_QNODE(slv_qns_cdsp_mem_noc, SC8180X_SLAVE_CDSP_MEM_NOC, 2, 32, SC8180X_MASTER_COMPUTE_NOC); 86 - DEFINE_QNODE(slv_qhs_a1_noc_cfg, SC8180X_SLAVE_A1NOC_CFG, 1, 4, SC8180X_MASTER_A1NOC_CFG); 87 - DEFINE_QNODE(slv_qhs_a2_noc_cfg, SC8180X_SLAVE_A2NOC_CFG, 1, 4, SC8180X_MASTER_A2NOC_CFG); 88 - DEFINE_QNODE(slv_qhs_ahb2phy_refgen_center, SC8180X_SLAVE_AHB2PHY_CENTER, 1, 4); 89 - DEFINE_QNODE(slv_qhs_ahb2phy_refgen_east, SC8180X_SLAVE_AHB2PHY_EAST, 1, 4); 90 - DEFINE_QNODE(slv_qhs_ahb2phy_refgen_west, SC8180X_SLAVE_AHB2PHY_WEST, 1, 4); 91 - DEFINE_QNODE(slv_qhs_ahb2phy_south, SC8180X_SLAVE_AHB2PHY_SOUTH, 1, 4); 92 - DEFINE_QNODE(slv_qhs_aop, SC8180X_SLAVE_AOP, 1, 4); 93 - DEFINE_QNODE(slv_qhs_aoss, SC8180X_SLAVE_AOSS, 1, 4); 94 - DEFINE_QNODE(slv_qhs_camera_cfg, SC8180X_SLAVE_CAMERA_CFG, 1, 4); 95 - DEFINE_QNODE(slv_qhs_clk_ctl, SC8180X_SLAVE_CLK_CTL, 1, 4); 96 - DEFINE_QNODE(slv_qhs_compute_dsp, SC8180X_SLAVE_CDSP_CFG, 1, 4); 97 - DEFINE_QNODE(slv_qhs_cpr_cx, SC8180X_SLAVE_RBCPR_CX_CFG, 1, 4); 98 - DEFINE_QNODE(slv_qhs_cpr_mmcx, SC8180X_SLAVE_RBCPR_MMCX_CFG, 1, 4); 99 - DEFINE_QNODE(slv_qhs_cpr_mx, SC8180X_SLAVE_RBCPR_MX_CFG, 1, 4); 100 - DEFINE_QNODE(slv_qhs_crypto0_cfg, SC8180X_SLAVE_CRYPTO_0_CFG, 1, 4); 101 - DEFINE_QNODE(slv_qhs_ddrss_cfg, SC8180X_SLAVE_CNOC_DDRSS, 1, 4, SC8180X_MASTER_CNOC_DC_NOC); 102 - DEFINE_QNODE(slv_qhs_display_cfg, SC8180X_SLAVE_DISPLAY_CFG, 1, 4); 103 - DEFINE_QNODE(slv_qhs_emac_cfg, SC8180X_SLAVE_EMAC_CFG, 1, 4); 104 - DEFINE_QNODE(slv_qhs_glm, SC8180X_SLAVE_GLM, 1, 4); 105 - DEFINE_QNODE(slv_qhs_gpuss_cfg, SC8180X_SLAVE_GRAPHICS_3D_CFG, 1, 8); 106 - DEFINE_QNODE(slv_qhs_imem_cfg, SC8180X_SLAVE_IMEM_CFG, 1, 4); 107 - DEFINE_QNODE(slv_qhs_ipa, SC8180X_SLAVE_IPA_CFG, 1, 4); 108 - DEFINE_QNODE(slv_qhs_mnoc_cfg, SC8180X_SLAVE_CNOC_MNOC_CFG, 1, 4, SC8180X_MASTER_CNOC_MNOC_CFG); 109 - DEFINE_QNODE(slv_qhs_npu_cfg, SC8180X_SLAVE_NPU_CFG, 1, 4); 110 - DEFINE_QNODE(slv_qhs_pcie0_cfg, SC8180X_SLAVE_PCIE_0_CFG, 1, 4); 111 - DEFINE_QNODE(slv_qhs_pcie1_cfg, SC8180X_SLAVE_PCIE_1_CFG, 1, 4); 112 - DEFINE_QNODE(slv_qhs_pcie2_cfg, SC8180X_SLAVE_PCIE_2_CFG, 1, 4); 113 - DEFINE_QNODE(slv_qhs_pcie3_cfg, SC8180X_SLAVE_PCIE_3_CFG, 1, 4); 114 - DEFINE_QNODE(slv_qhs_pdm, SC8180X_SLAVE_PDM, 1, 4); 115 - DEFINE_QNODE(slv_qhs_pimem_cfg, SC8180X_SLAVE_PIMEM_CFG, 1, 4); 116 - DEFINE_QNODE(slv_qhs_prng, SC8180X_SLAVE_PRNG, 1, 4); 117 - DEFINE_QNODE(slv_qhs_qdss_cfg, SC8180X_SLAVE_QDSS_CFG, 1, 4); 118 - DEFINE_QNODE(slv_qhs_qspi_0, SC8180X_SLAVE_QSPI_0, 1, 4); 119 - DEFINE_QNODE(slv_qhs_qspi_1, SC8180X_SLAVE_QSPI_1, 1, 4); 120 - DEFINE_QNODE(slv_qhs_qupv3_east0, SC8180X_SLAVE_QUP_1, 1, 4); 121 - DEFINE_QNODE(slv_qhs_qupv3_east1, SC8180X_SLAVE_QUP_2, 1, 4); 122 - DEFINE_QNODE(slv_qhs_qupv3_west, SC8180X_SLAVE_QUP_0, 1, 4); 123 - DEFINE_QNODE(slv_qhs_sdc2, SC8180X_SLAVE_SDCC_2, 1, 4); 124 - DEFINE_QNODE(slv_qhs_sdc4, SC8180X_SLAVE_SDCC_4, 1, 4); 125 - DEFINE_QNODE(slv_qhs_security, SC8180X_SLAVE_SECURITY, 1, 4); 126 - DEFINE_QNODE(slv_qhs_snoc_cfg, SC8180X_SLAVE_SNOC_CFG, 1, 4, SC8180X_MASTER_SNOC_CFG); 127 - DEFINE_QNODE(slv_qhs_spss_cfg, SC8180X_SLAVE_SPSS_CFG, 1, 4); 128 - DEFINE_QNODE(slv_qhs_tcsr, SC8180X_SLAVE_TCSR, 1, 4); 129 - DEFINE_QNODE(slv_qhs_tlmm_east, SC8180X_SLAVE_TLMM_EAST, 1, 4); 130 - DEFINE_QNODE(slv_qhs_tlmm_south, SC8180X_SLAVE_TLMM_SOUTH, 1, 4); 131 - DEFINE_QNODE(slv_qhs_tlmm_west, SC8180X_SLAVE_TLMM_WEST, 1, 4); 132 - DEFINE_QNODE(slv_qhs_tsif, SC8180X_SLAVE_TSIF, 1, 4); 133 - DEFINE_QNODE(slv_qhs_ufs_card_cfg, SC8180X_SLAVE_UFS_CARD_CFG, 1, 4); 134 - DEFINE_QNODE(slv_qhs_ufs_mem0_cfg, SC8180X_SLAVE_UFS_MEM_0_CFG, 1, 4); 135 - DEFINE_QNODE(slv_qhs_ufs_mem1_cfg, SC8180X_SLAVE_UFS_MEM_1_CFG, 1, 4); 136 - DEFINE_QNODE(slv_qhs_usb3_0, SC8180X_SLAVE_USB3, 1, 4); 137 - DEFINE_QNODE(slv_qhs_usb3_1, SC8180X_SLAVE_USB3_1, 1, 4); 138 - DEFINE_QNODE(slv_qhs_usb3_2, SC8180X_SLAVE_USB3_2, 1, 4); 139 - DEFINE_QNODE(slv_qhs_venus_cfg, SC8180X_SLAVE_VENUS_CFG, 1, 4); 140 - DEFINE_QNODE(slv_qhs_vsense_ctrl_cfg, SC8180X_SLAVE_VSENSE_CTRL_CFG, 1, 4); 141 - DEFINE_QNODE(slv_srvc_cnoc, SC8180X_SLAVE_SERVICE_CNOC, 1, 4); 142 - DEFINE_QNODE(slv_qhs_gemnoc, SC8180X_SLAVE_GEM_NOC_CFG, 1, 4, SC8180X_MASTER_GEM_NOC_CFG); 143 - DEFINE_QNODE(slv_qhs_llcc, SC8180X_SLAVE_LLCC_CFG, 1, 4); 144 - DEFINE_QNODE(slv_qhs_mdsp_ms_mpu_cfg, SC8180X_SLAVE_MSS_PROC_MS_MPU_CFG, 1, 4); 145 - DEFINE_QNODE(slv_qns_ecc, SC8180X_SLAVE_ECC, 1, 32); 146 - DEFINE_QNODE(slv_qns_gem_noc_snoc, SC8180X_SLAVE_GEM_NOC_SNOC, 1, 8, SC8180X_MASTER_GEM_NOC_SNOC); 147 - DEFINE_QNODE(slv_qns_llcc, SC8180X_SLAVE_LLCC, 8, 16, SC8180X_MASTER_LLCC); 148 - DEFINE_QNODE(slv_srvc_gemnoc, SC8180X_SLAVE_SERVICE_GEM_NOC, 1, 4); 149 - DEFINE_QNODE(slv_srvc_gemnoc1, SC8180X_SLAVE_SERVICE_GEM_NOC_1, 1, 4); 150 - DEFINE_QNODE(slv_ipa_core_slave, SC8180X_SLAVE_IPA_CORE, 1, 8); 151 - DEFINE_QNODE(slv_ebi, SC8180X_SLAVE_EBI_CH0, 8, 4); 152 - DEFINE_QNODE(slv_qns2_mem_noc, SC8180X_SLAVE_MNOC_SF_MEM_NOC, 1, 32, SC8180X_MASTER_MNOC_SF_MEM_NOC); 153 - DEFINE_QNODE(slv_qns_mem_noc_hf, SC8180X_SLAVE_MNOC_HF_MEM_NOC, 2, 32, SC8180X_MASTER_MNOC_HF_MEM_NOC); 154 - DEFINE_QNODE(slv_srvc_mnoc, SC8180X_SLAVE_SERVICE_MNOC, 1, 4); 155 - DEFINE_QNODE(slv_qhs_apss, SC8180X_SLAVE_APPSS, 1, 8); 156 - DEFINE_QNODE(slv_qns_cnoc, SC8180X_SNOC_CNOC_SLV, 1, 8, SC8180X_SNOC_CNOC_MAS); 157 - DEFINE_QNODE(slv_qns_gemnoc_gc, SC8180X_SLAVE_SNOC_GEM_NOC_GC, 1, 8, SC8180X_MASTER_SNOC_GC_MEM_NOC); 158 - DEFINE_QNODE(slv_qns_gemnoc_sf, SC8180X_SLAVE_SNOC_GEM_NOC_SF, 1, 32, SC8180X_MASTER_SNOC_SF_MEM_NOC); 159 - DEFINE_QNODE(slv_qxs_imem, SC8180X_SLAVE_OCIMEM, 1, 8); 160 - DEFINE_QNODE(slv_qxs_pimem, SC8180X_SLAVE_PIMEM, 1, 8); 161 - DEFINE_QNODE(slv_srvc_snoc, SC8180X_SLAVE_SERVICE_SNOC, 1, 4); 162 - DEFINE_QNODE(slv_xs_pcie_0, SC8180X_SLAVE_PCIE_0, 1, 8); 163 - DEFINE_QNODE(slv_xs_pcie_1, SC8180X_SLAVE_PCIE_1, 1, 8); 164 - DEFINE_QNODE(slv_xs_pcie_2, SC8180X_SLAVE_PCIE_2, 1, 8); 165 - DEFINE_QNODE(slv_xs_pcie_3, SC8180X_SLAVE_PCIE_3, 1, 8); 166 - DEFINE_QNODE(slv_xs_qdss_stm, SC8180X_SLAVE_QDSS_STM, 1, 4); 167 - DEFINE_QNODE(slv_xs_sys_tcu_cfg, SC8180X_SLAVE_TCU, 1, 8); 18 + static struct qcom_icc_node mas_qhm_a1noc_cfg = { 19 + .name = "mas_qhm_a1noc_cfg", 20 + .id = SC8180X_MASTER_A1NOC_CFG, 21 + .channels = 1, 22 + .buswidth = 4, 23 + .num_links = 1, 24 + .links = { SC8180X_SLAVE_SERVICE_A1NOC } 25 + }; 168 26 169 - DEFINE_QBCM(bcm_acv, "ACV", false, &slv_ebi); 170 - DEFINE_QBCM(bcm_mc0, "MC0", false, &slv_ebi); 171 - DEFINE_QBCM(bcm_sh0, "SH0", false, &slv_qns_llcc); 172 - DEFINE_QBCM(bcm_mm0, "MM0", false, &slv_qns_mem_noc_hf); 173 - DEFINE_QBCM(bcm_co0, "CO0", false, &slv_qns_cdsp_mem_noc); 174 - DEFINE_QBCM(bcm_ce0, "CE0", false, &mas_qxm_crypto); 175 - DEFINE_QBCM(bcm_cn0, "CN0", false, &mas_qnm_snoc, &slv_qhs_a1_noc_cfg, &slv_qhs_a2_noc_cfg, &slv_qhs_ahb2phy_refgen_center, &slv_qhs_ahb2phy_refgen_east, &slv_qhs_ahb2phy_refgen_west, &slv_qhs_ahb2phy_south, &slv_qhs_aop, &slv_qhs_aoss, &slv_qhs_camera_cfg, &slv_qhs_clk_ctl, &slv_qhs_compute_dsp, &slv_qhs_cpr_cx, &slv_qhs_cpr_mmcx, &slv_qhs_cpr_mx, &slv_qhs_crypto0_cfg, &slv_qhs_ddrss_cfg, &slv_qhs_display_cfg, &slv_qhs_emac_cfg, &slv_qhs_glm, &slv_qhs_gpuss_cfg, &slv_qhs_imem_cfg, &slv_qhs_ipa, &slv_qhs_mnoc_cfg, &slv_qhs_npu_cfg, &slv_qhs_pcie0_cfg, &slv_qhs_pcie1_cfg, &slv_qhs_pcie2_cfg, &slv_qhs_pcie3_cfg, &slv_qhs_pdm, &slv_qhs_pimem_cfg, &slv_qhs_prng, &slv_qhs_qdss_cfg, &slv_qhs_qspi_0, &slv_qhs_qspi_1, &slv_qhs_qupv3_east0, &slv_qhs_qupv3_east1, &slv_qhs_qupv3_west, &slv_qhs_sdc2, &slv_qhs_sdc4, &slv_qhs_security, &slv_qhs_snoc_cfg, &slv_qhs_spss_cfg, &slv_qhs_tcsr, &slv_qhs_tlmm_east, &slv_qhs_tlmm_south, &slv_qhs_tlmm_west, &slv_qhs_tsif, &slv_qhs_ufs_card_cfg, &slv_qhs_ufs_mem0_cfg, &slv_qhs_ufs_mem1_cfg, &slv_qhs_usb3_0, &slv_qhs_usb3_1, &slv_qhs_usb3_2, &slv_qhs_venus_cfg, &slv_qhs_vsense_ctrl_cfg, &slv_srvc_cnoc); 176 - DEFINE_QBCM(bcm_mm1, "MM1", false, &mas_qxm_camnoc_hf0_uncomp, &mas_qxm_camnoc_hf1_uncomp, &mas_qxm_camnoc_sf_uncomp, &mas_qxm_camnoc_hf0, &mas_qxm_camnoc_hf1, &mas_qxm_mdp0, &mas_qxm_mdp1); 177 - DEFINE_QBCM(bcm_qup0, "QUP0", false, &mas_qhm_qup0, &mas_qhm_qup1, &mas_qhm_qup2); 178 - DEFINE_QBCM(bcm_sh2, "SH2", false, &slv_qns_gem_noc_snoc); 179 - DEFINE_QBCM(bcm_mm2, "MM2", false, &mas_qxm_camnoc_sf, &mas_qxm_rot, &mas_qxm_venus0, &mas_qxm_venus1, &mas_qxm_venus_arm9, &slv_qns2_mem_noc); 180 - DEFINE_QBCM(bcm_sh3, "SH3", false, &mas_acm_apps); 181 - DEFINE_QBCM(bcm_sn0, "SN0", false, &slv_qns_gemnoc_sf); 182 - DEFINE_QBCM(bcm_sn1, "SN1", false, &slv_qxs_imem); 183 - DEFINE_QBCM(bcm_sn2, "SN2", false, &slv_qns_gemnoc_gc); 184 - DEFINE_QBCM(bcm_co2, "CO2", false, &mas_qnm_npu); 185 - DEFINE_QBCM(bcm_ip0, "IP0", false, &slv_ipa_core_slave); 186 - DEFINE_QBCM(bcm_sn3, "SN3", false, &slv_srvc_aggre1_noc, &slv_qns_cnoc); 187 - DEFINE_QBCM(bcm_sn4, "SN4", false, &slv_qxs_pimem); 188 - DEFINE_QBCM(bcm_sn8, "SN8", false, &slv_xs_pcie_0, &slv_xs_pcie_1, &slv_xs_pcie_2, &slv_xs_pcie_3); 189 - DEFINE_QBCM(bcm_sn9, "SN9", false, &mas_qnm_aggre1_noc); 190 - DEFINE_QBCM(bcm_sn11, "SN11", false, &mas_qnm_aggre2_noc); 191 - DEFINE_QBCM(bcm_sn14, "SN14", false, &slv_qns_pcie_mem_noc); 192 - DEFINE_QBCM(bcm_sn15, "SN15", false, &mas_qnm_gemnoc); 27 + static struct qcom_icc_node mas_xm_ufs_card = { 28 + .name = "mas_xm_ufs_card", 29 + .id = SC8180X_MASTER_UFS_CARD, 30 + .channels = 1, 31 + .buswidth = 8, 32 + .num_links = 1, 33 + .links = { SC8180X_A1NOC_SNOC_SLV } 34 + }; 193 35 194 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 36 + static struct qcom_icc_node mas_xm_ufs_g4 = { 37 + .name = "mas_xm_ufs_g4", 38 + .id = SC8180X_MASTER_UFS_GEN4, 39 + .channels = 1, 40 + .buswidth = 8, 41 + .num_links = 1, 42 + .links = { SC8180X_A1NOC_SNOC_SLV } 43 + }; 44 + 45 + static struct qcom_icc_node mas_xm_ufs_mem = { 46 + .name = "mas_xm_ufs_mem", 47 + .id = SC8180X_MASTER_UFS_MEM, 48 + .channels = 1, 49 + .buswidth = 8, 50 + .num_links = 1, 51 + .links = { SC8180X_A1NOC_SNOC_SLV } 52 + }; 53 + 54 + static struct qcom_icc_node mas_xm_usb3_0 = { 55 + .name = "mas_xm_usb3_0", 56 + .id = SC8180X_MASTER_USB3, 57 + .channels = 1, 58 + .buswidth = 8, 59 + .num_links = 1, 60 + .links = { SC8180X_A1NOC_SNOC_SLV } 61 + }; 62 + 63 + static struct qcom_icc_node mas_xm_usb3_1 = { 64 + .name = "mas_xm_usb3_1", 65 + .id = SC8180X_MASTER_USB3_1, 66 + .channels = 1, 67 + .buswidth = 8, 68 + .num_links = 1, 69 + .links = { SC8180X_A1NOC_SNOC_SLV } 70 + }; 71 + 72 + static struct qcom_icc_node mas_xm_usb3_2 = { 73 + .name = "mas_xm_usb3_2", 74 + .id = SC8180X_MASTER_USB3_2, 75 + .channels = 1, 76 + .buswidth = 16, 77 + .num_links = 1, 78 + .links = { SC8180X_A1NOC_SNOC_SLV } 79 + }; 80 + 81 + static struct qcom_icc_node mas_qhm_a2noc_cfg = { 82 + .name = "mas_qhm_a2noc_cfg", 83 + .id = SC8180X_MASTER_A2NOC_CFG, 84 + .channels = 1, 85 + .buswidth = 4, 86 + .num_links = 1, 87 + .links = { SC8180X_SLAVE_SERVICE_A2NOC } 88 + }; 89 + 90 + static struct qcom_icc_node mas_qhm_qdss_bam = { 91 + .name = "mas_qhm_qdss_bam", 92 + .id = SC8180X_MASTER_QDSS_BAM, 93 + .channels = 1, 94 + .buswidth = 4, 95 + .num_links = 1, 96 + .links = { SC8180X_A2NOC_SNOC_SLV } 97 + }; 98 + 99 + static struct qcom_icc_node mas_qhm_qspi = { 100 + .name = "mas_qhm_qspi", 101 + .id = SC8180X_MASTER_QSPI_0, 102 + .channels = 1, 103 + .buswidth = 4, 104 + .num_links = 1, 105 + .links = { SC8180X_A2NOC_SNOC_SLV } 106 + }; 107 + 108 + static struct qcom_icc_node mas_qhm_qspi1 = { 109 + .name = "mas_qhm_qspi1", 110 + .id = SC8180X_MASTER_QSPI_1, 111 + .channels = 1, 112 + .buswidth = 4, 113 + .num_links = 1, 114 + .links = { SC8180X_A2NOC_SNOC_SLV } 115 + }; 116 + 117 + static struct qcom_icc_node mas_qhm_qup0 = { 118 + .name = "mas_qhm_qup0", 119 + .id = SC8180X_MASTER_QUP_0, 120 + .channels = 1, 121 + .buswidth = 4, 122 + .num_links = 1, 123 + .links = { SC8180X_A2NOC_SNOC_SLV } 124 + }; 125 + 126 + static struct qcom_icc_node mas_qhm_qup1 = { 127 + .name = "mas_qhm_qup1", 128 + .id = SC8180X_MASTER_QUP_1, 129 + .channels = 1, 130 + .buswidth = 4, 131 + .num_links = 1, 132 + .links = { SC8180X_A2NOC_SNOC_SLV } 133 + }; 134 + 135 + static struct qcom_icc_node mas_qhm_qup2 = { 136 + .name = "mas_qhm_qup2", 137 + .id = SC8180X_MASTER_QUP_2, 138 + .channels = 1, 139 + .buswidth = 4, 140 + .num_links = 1, 141 + .links = { SC8180X_A2NOC_SNOC_SLV } 142 + }; 143 + 144 + static struct qcom_icc_node mas_qhm_sensorss_ahb = { 145 + .name = "mas_qhm_sensorss_ahb", 146 + .id = SC8180X_MASTER_SENSORS_AHB, 147 + .channels = 1, 148 + .buswidth = 4, 149 + .num_links = 1, 150 + .links = { SC8180X_A2NOC_SNOC_SLV } 151 + }; 152 + 153 + static struct qcom_icc_node mas_qxm_crypto = { 154 + .name = "mas_qxm_crypto", 155 + .id = SC8180X_MASTER_CRYPTO_CORE_0, 156 + .channels = 1, 157 + .buswidth = 8, 158 + .num_links = 1, 159 + .links = { SC8180X_A2NOC_SNOC_SLV } 160 + }; 161 + 162 + static struct qcom_icc_node mas_qxm_ipa = { 163 + .name = "mas_qxm_ipa", 164 + .id = SC8180X_MASTER_IPA, 165 + .channels = 1, 166 + .buswidth = 8, 167 + .num_links = 1, 168 + .links = { SC8180X_A2NOC_SNOC_SLV } 169 + }; 170 + 171 + static struct qcom_icc_node mas_xm_emac = { 172 + .name = "mas_xm_emac", 173 + .id = SC8180X_MASTER_EMAC, 174 + .channels = 1, 175 + .buswidth = 8, 176 + .num_links = 1, 177 + .links = { SC8180X_A2NOC_SNOC_SLV } 178 + }; 179 + 180 + static struct qcom_icc_node mas_xm_pcie3_0 = { 181 + .name = "mas_xm_pcie3_0", 182 + .id = SC8180X_MASTER_PCIE, 183 + .channels = 1, 184 + .buswidth = 8, 185 + .num_links = 1, 186 + .links = { SC8180X_SLAVE_ANOC_PCIE_GEM_NOC } 187 + }; 188 + 189 + static struct qcom_icc_node mas_xm_pcie3_1 = { 190 + .name = "mas_xm_pcie3_1", 191 + .id = SC8180X_MASTER_PCIE_1, 192 + .channels = 1, 193 + .buswidth = 16, 194 + .num_links = 1, 195 + .links = { SC8180X_SLAVE_ANOC_PCIE_GEM_NOC } 196 + }; 197 + 198 + static struct qcom_icc_node mas_xm_pcie3_2 = { 199 + .name = "mas_xm_pcie3_2", 200 + .id = SC8180X_MASTER_PCIE_2, 201 + .channels = 1, 202 + .buswidth = 8, 203 + .num_links = 1, 204 + .links = { SC8180X_SLAVE_ANOC_PCIE_GEM_NOC } 205 + }; 206 + 207 + static struct qcom_icc_node mas_xm_pcie3_3 = { 208 + .name = "mas_xm_pcie3_3", 209 + .id = SC8180X_MASTER_PCIE_3, 210 + .channels = 1, 211 + .buswidth = 16, 212 + .num_links = 1, 213 + .links = { SC8180X_SLAVE_ANOC_PCIE_GEM_NOC } 214 + }; 215 + 216 + static struct qcom_icc_node mas_xm_qdss_etr = { 217 + .name = "mas_xm_qdss_etr", 218 + .id = SC8180X_MASTER_QDSS_ETR, 219 + .channels = 1, 220 + .buswidth = 8, 221 + .num_links = 1, 222 + .links = { SC8180X_A2NOC_SNOC_SLV } 223 + }; 224 + 225 + static struct qcom_icc_node mas_xm_sdc2 = { 226 + .name = "mas_xm_sdc2", 227 + .id = SC8180X_MASTER_SDCC_2, 228 + .channels = 1, 229 + .buswidth = 8, 230 + .num_links = 1, 231 + .links = { SC8180X_A2NOC_SNOC_SLV } 232 + }; 233 + 234 + static struct qcom_icc_node mas_xm_sdc4 = { 235 + .name = "mas_xm_sdc4", 236 + .id = SC8180X_MASTER_SDCC_4, 237 + .channels = 1, 238 + .buswidth = 8, 239 + .num_links = 1, 240 + .links = { SC8180X_A2NOC_SNOC_SLV } 241 + }; 242 + 243 + static struct qcom_icc_node mas_qxm_camnoc_hf0_uncomp = { 244 + .name = "mas_qxm_camnoc_hf0_uncomp", 245 + .id = SC8180X_MASTER_CAMNOC_HF0_UNCOMP, 246 + .channels = 1, 247 + .buswidth = 32, 248 + .num_links = 1, 249 + .links = { SC8180X_SLAVE_CAMNOC_UNCOMP } 250 + }; 251 + 252 + static struct qcom_icc_node mas_qxm_camnoc_hf1_uncomp = { 253 + .name = "mas_qxm_camnoc_hf1_uncomp", 254 + .id = SC8180X_MASTER_CAMNOC_HF1_UNCOMP, 255 + .channels = 1, 256 + .buswidth = 32, 257 + .num_links = 1, 258 + .links = { SC8180X_SLAVE_CAMNOC_UNCOMP } 259 + }; 260 + 261 + static struct qcom_icc_node mas_qxm_camnoc_sf_uncomp = { 262 + .name = "mas_qxm_camnoc_sf_uncomp", 263 + .id = SC8180X_MASTER_CAMNOC_SF_UNCOMP, 264 + .channels = 1, 265 + .buswidth = 32, 266 + .num_links = 1, 267 + .links = { SC8180X_SLAVE_CAMNOC_UNCOMP } 268 + }; 269 + 270 + static struct qcom_icc_node mas_qnm_npu = { 271 + .name = "mas_qnm_npu", 272 + .id = SC8180X_MASTER_NPU, 273 + .channels = 1, 274 + .buswidth = 32, 275 + .num_links = 1, 276 + .links = { SC8180X_SLAVE_CDSP_MEM_NOC } 277 + }; 278 + 279 + static struct qcom_icc_node mas_qnm_snoc = { 280 + .name = "mas_qnm_snoc", 281 + .id = SC8180X_SNOC_CNOC_MAS, 282 + .channels = 1, 283 + .buswidth = 8, 284 + .num_links = 56, 285 + .links = { SC8180X_SLAVE_TLMM_SOUTH, 286 + SC8180X_SLAVE_CDSP_CFG, 287 + SC8180X_SLAVE_SPSS_CFG, 288 + SC8180X_SLAVE_CAMERA_CFG, 289 + SC8180X_SLAVE_SDCC_4, 290 + SC8180X_SLAVE_AHB2PHY_CENTER, 291 + SC8180X_SLAVE_SDCC_2, 292 + SC8180X_SLAVE_PCIE_2_CFG, 293 + SC8180X_SLAVE_CNOC_MNOC_CFG, 294 + SC8180X_SLAVE_EMAC_CFG, 295 + SC8180X_SLAVE_QSPI_0, 296 + SC8180X_SLAVE_QSPI_1, 297 + SC8180X_SLAVE_TLMM_EAST, 298 + SC8180X_SLAVE_SNOC_CFG, 299 + SC8180X_SLAVE_AHB2PHY_EAST, 300 + SC8180X_SLAVE_GLM, 301 + SC8180X_SLAVE_PDM, 302 + SC8180X_SLAVE_PCIE_1_CFG, 303 + SC8180X_SLAVE_A2NOC_CFG, 304 + SC8180X_SLAVE_QDSS_CFG, 305 + SC8180X_SLAVE_DISPLAY_CFG, 306 + SC8180X_SLAVE_TCSR, 307 + SC8180X_SLAVE_UFS_MEM_0_CFG, 308 + SC8180X_SLAVE_CNOC_DDRSS, 309 + SC8180X_SLAVE_PCIE_0_CFG, 310 + SC8180X_SLAVE_QUP_1, 311 + SC8180X_SLAVE_QUP_2, 312 + SC8180X_SLAVE_NPU_CFG, 313 + SC8180X_SLAVE_CRYPTO_0_CFG, 314 + SC8180X_SLAVE_GRAPHICS_3D_CFG, 315 + SC8180X_SLAVE_VENUS_CFG, 316 + SC8180X_SLAVE_TSIF, 317 + SC8180X_SLAVE_IPA_CFG, 318 + SC8180X_SLAVE_CLK_CTL, 319 + SC8180X_SLAVE_SECURITY, 320 + SC8180X_SLAVE_AOP, 321 + SC8180X_SLAVE_AHB2PHY_WEST, 322 + SC8180X_SLAVE_AHB2PHY_SOUTH, 323 + SC8180X_SLAVE_SERVICE_CNOC, 324 + SC8180X_SLAVE_UFS_CARD_CFG, 325 + SC8180X_SLAVE_USB3_1, 326 + SC8180X_SLAVE_USB3_2, 327 + SC8180X_SLAVE_PCIE_3_CFG, 328 + SC8180X_SLAVE_RBCPR_CX_CFG, 329 + SC8180X_SLAVE_TLMM_WEST, 330 + SC8180X_SLAVE_A1NOC_CFG, 331 + SC8180X_SLAVE_AOSS, 332 + SC8180X_SLAVE_PRNG, 333 + SC8180X_SLAVE_VSENSE_CTRL_CFG, 334 + SC8180X_SLAVE_QUP_0, 335 + SC8180X_SLAVE_USB3, 336 + SC8180X_SLAVE_RBCPR_MMCX_CFG, 337 + SC8180X_SLAVE_PIMEM_CFG, 338 + SC8180X_SLAVE_UFS_MEM_1_CFG, 339 + SC8180X_SLAVE_RBCPR_MX_CFG, 340 + SC8180X_SLAVE_IMEM_CFG } 341 + }; 342 + 343 + static struct qcom_icc_node mas_qhm_cnoc_dc_noc = { 344 + .name = "mas_qhm_cnoc_dc_noc", 345 + .id = SC8180X_MASTER_CNOC_DC_NOC, 346 + .channels = 1, 347 + .buswidth = 4, 348 + .num_links = 2, 349 + .links = { SC8180X_SLAVE_LLCC_CFG, 350 + SC8180X_SLAVE_GEM_NOC_CFG } 351 + }; 352 + 353 + static struct qcom_icc_node mas_acm_apps = { 354 + .name = "mas_acm_apps", 355 + .id = SC8180X_MASTER_AMPSS_M0, 356 + .channels = 4, 357 + .buswidth = 64, 358 + .num_links = 3, 359 + .links = { SC8180X_SLAVE_ECC, 360 + SC8180X_SLAVE_LLCC, 361 + SC8180X_SLAVE_GEM_NOC_SNOC } 362 + }; 363 + 364 + static struct qcom_icc_node mas_acm_gpu_tcu = { 365 + .name = "mas_acm_gpu_tcu", 366 + .id = SC8180X_MASTER_GPU_TCU, 367 + .channels = 1, 368 + .buswidth = 8, 369 + .num_links = 2, 370 + .links = { SC8180X_SLAVE_LLCC, 371 + SC8180X_SLAVE_GEM_NOC_SNOC } 372 + }; 373 + 374 + static struct qcom_icc_node mas_acm_sys_tcu = { 375 + .name = "mas_acm_sys_tcu", 376 + .id = SC8180X_MASTER_SYS_TCU, 377 + .channels = 1, 378 + .buswidth = 8, 379 + .num_links = 2, 380 + .links = { SC8180X_SLAVE_LLCC, 381 + SC8180X_SLAVE_GEM_NOC_SNOC } 382 + }; 383 + 384 + static struct qcom_icc_node mas_qhm_gemnoc_cfg = { 385 + .name = "mas_qhm_gemnoc_cfg", 386 + .id = SC8180X_MASTER_GEM_NOC_CFG, 387 + .channels = 1, 388 + .buswidth = 4, 389 + .num_links = 3, 390 + .links = { SC8180X_SLAVE_SERVICE_GEM_NOC_1, 391 + SC8180X_SLAVE_SERVICE_GEM_NOC, 392 + SC8180X_SLAVE_MSS_PROC_MS_MPU_CFG } 393 + }; 394 + 395 + static struct qcom_icc_node mas_qnm_cmpnoc = { 396 + .name = "mas_qnm_cmpnoc", 397 + .id = SC8180X_MASTER_COMPUTE_NOC, 398 + .channels = 2, 399 + .buswidth = 32, 400 + .num_links = 3, 401 + .links = { SC8180X_SLAVE_ECC, 402 + SC8180X_SLAVE_LLCC, 403 + SC8180X_SLAVE_GEM_NOC_SNOC } 404 + }; 405 + 406 + static struct qcom_icc_node mas_qnm_gpu = { 407 + .name = "mas_qnm_gpu", 408 + .id = SC8180X_MASTER_GRAPHICS_3D, 409 + .channels = 4, 410 + .buswidth = 32, 411 + .num_links = 2, 412 + .links = { SC8180X_SLAVE_LLCC, 413 + SC8180X_SLAVE_GEM_NOC_SNOC } 414 + }; 415 + 416 + static struct qcom_icc_node mas_qnm_mnoc_hf = { 417 + .name = "mas_qnm_mnoc_hf", 418 + .id = SC8180X_MASTER_MNOC_HF_MEM_NOC, 419 + .channels = 2, 420 + .buswidth = 32, 421 + .num_links = 1, 422 + .links = { SC8180X_SLAVE_LLCC } 423 + }; 424 + 425 + static struct qcom_icc_node mas_qnm_mnoc_sf = { 426 + .name = "mas_qnm_mnoc_sf", 427 + .id = SC8180X_MASTER_MNOC_SF_MEM_NOC, 428 + .channels = 1, 429 + .buswidth = 32, 430 + .num_links = 2, 431 + .links = { SC8180X_SLAVE_LLCC, 432 + SC8180X_SLAVE_GEM_NOC_SNOC } 433 + }; 434 + 435 + static struct qcom_icc_node mas_qnm_pcie = { 436 + .name = "mas_qnm_pcie", 437 + .id = SC8180X_MASTER_GEM_NOC_PCIE_SNOC, 438 + .channels = 1, 439 + .buswidth = 32, 440 + .num_links = 2, 441 + .links = { SC8180X_SLAVE_LLCC, 442 + SC8180X_SLAVE_GEM_NOC_SNOC } 443 + }; 444 + 445 + static struct qcom_icc_node mas_qnm_snoc_gc = { 446 + .name = "mas_qnm_snoc_gc", 447 + .id = SC8180X_MASTER_SNOC_GC_MEM_NOC, 448 + .channels = 1, 449 + .buswidth = 8, 450 + .num_links = 1, 451 + .links = { SC8180X_SLAVE_LLCC } 452 + }; 453 + 454 + static struct qcom_icc_node mas_qnm_snoc_sf = { 455 + .name = "mas_qnm_snoc_sf", 456 + .id = SC8180X_MASTER_SNOC_SF_MEM_NOC, 457 + .channels = 1, 458 + .buswidth = 32, 459 + .num_links = 1, 460 + .links = { SC8180X_SLAVE_LLCC } 461 + }; 462 + 463 + static struct qcom_icc_node mas_qxm_ecc = { 464 + .name = "mas_qxm_ecc", 465 + .id = SC8180X_MASTER_ECC, 466 + .channels = 2, 467 + .buswidth = 32, 468 + .num_links = 1, 469 + .links = { SC8180X_SLAVE_LLCC } 470 + }; 471 + 472 + static struct qcom_icc_node mas_ipa_core_master = { 473 + .name = "mas_ipa_core_master", 474 + .id = SC8180X_MASTER_IPA_CORE, 475 + .channels = 1, 476 + .buswidth = 8, 477 + .num_links = 1, 478 + .links = { SC8180X_SLAVE_IPA_CORE } 479 + }; 480 + 481 + static struct qcom_icc_node mas_llcc_mc = { 482 + .name = "mas_llcc_mc", 483 + .id = SC8180X_MASTER_LLCC, 484 + .channels = 8, 485 + .buswidth = 4, 486 + .num_links = 1, 487 + .links = { SC8180X_SLAVE_EBI_CH0 } 488 + }; 489 + 490 + static struct qcom_icc_node mas_qhm_mnoc_cfg = { 491 + .name = "mas_qhm_mnoc_cfg", 492 + .id = SC8180X_MASTER_CNOC_MNOC_CFG, 493 + .channels = 1, 494 + .buswidth = 4, 495 + .num_links = 1, 496 + .links = { SC8180X_SLAVE_SERVICE_MNOC } 497 + }; 498 + 499 + static struct qcom_icc_node mas_qxm_camnoc_hf0 = { 500 + .name = "mas_qxm_camnoc_hf0", 501 + .id = SC8180X_MASTER_CAMNOC_HF0, 502 + .channels = 1, 503 + .buswidth = 32, 504 + .num_links = 1, 505 + .links = { SC8180X_SLAVE_MNOC_HF_MEM_NOC } 506 + }; 507 + 508 + static struct qcom_icc_node mas_qxm_camnoc_hf1 = { 509 + .name = "mas_qxm_camnoc_hf1", 510 + .id = SC8180X_MASTER_CAMNOC_HF1, 511 + .channels = 1, 512 + .buswidth = 32, 513 + .num_links = 1, 514 + .links = { SC8180X_SLAVE_MNOC_HF_MEM_NOC } 515 + }; 516 + 517 + static struct qcom_icc_node mas_qxm_camnoc_sf = { 518 + .name = "mas_qxm_camnoc_sf", 519 + .id = SC8180X_MASTER_CAMNOC_SF, 520 + .channels = 1, 521 + .buswidth = 32, 522 + .num_links = 1, 523 + .links = { SC8180X_SLAVE_MNOC_SF_MEM_NOC } 524 + }; 525 + 526 + static struct qcom_icc_node mas_qxm_mdp0 = { 527 + .name = "mas_qxm_mdp0", 528 + .id = SC8180X_MASTER_MDP_PORT0, 529 + .channels = 1, 530 + .buswidth = 32, 531 + .num_links = 1, 532 + .links = { SC8180X_SLAVE_MNOC_HF_MEM_NOC } 533 + }; 534 + 535 + static struct qcom_icc_node mas_qxm_mdp1 = { 536 + .name = "mas_qxm_mdp1", 537 + .id = SC8180X_MASTER_MDP_PORT1, 538 + .channels = 1, 539 + .buswidth = 32, 540 + .num_links = 1, 541 + .links = { SC8180X_SLAVE_MNOC_HF_MEM_NOC } 542 + }; 543 + 544 + static struct qcom_icc_node mas_qxm_rot = { 545 + .name = "mas_qxm_rot", 546 + .id = SC8180X_MASTER_ROTATOR, 547 + .channels = 1, 548 + .buswidth = 32, 549 + .num_links = 1, 550 + .links = { SC8180X_SLAVE_MNOC_SF_MEM_NOC } 551 + }; 552 + 553 + static struct qcom_icc_node mas_qxm_venus0 = { 554 + .name = "mas_qxm_venus0", 555 + .id = SC8180X_MASTER_VIDEO_P0, 556 + .channels = 1, 557 + .buswidth = 32, 558 + .num_links = 1, 559 + .links = { SC8180X_SLAVE_MNOC_SF_MEM_NOC } 560 + }; 561 + 562 + static struct qcom_icc_node mas_qxm_venus1 = { 563 + .name = "mas_qxm_venus1", 564 + .id = SC8180X_MASTER_VIDEO_P1, 565 + .channels = 1, 566 + .buswidth = 32, 567 + .num_links = 1, 568 + .links = { SC8180X_SLAVE_MNOC_SF_MEM_NOC } 569 + }; 570 + 571 + static struct qcom_icc_node mas_qxm_venus_arm9 = { 572 + .name = "mas_qxm_venus_arm9", 573 + .id = SC8180X_MASTER_VIDEO_PROC, 574 + .channels = 1, 575 + .buswidth = 8, 576 + .num_links = 1, 577 + .links = { SC8180X_SLAVE_MNOC_SF_MEM_NOC } 578 + }; 579 + 580 + static struct qcom_icc_node mas_qhm_snoc_cfg = { 581 + .name = "mas_qhm_snoc_cfg", 582 + .id = SC8180X_MASTER_SNOC_CFG, 583 + .channels = 1, 584 + .buswidth = 4, 585 + .num_links = 1, 586 + .links = { SC8180X_SLAVE_SERVICE_SNOC } 587 + }; 588 + 589 + static struct qcom_icc_node mas_qnm_aggre1_noc = { 590 + .name = "mas_qnm_aggre1_noc", 591 + .id = SC8180X_A1NOC_SNOC_MAS, 592 + .channels = 1, 593 + .buswidth = 32, 594 + .num_links = 6, 595 + .links = { SC8180X_SLAVE_SNOC_GEM_NOC_SF, 596 + SC8180X_SLAVE_PIMEM, 597 + SC8180X_SLAVE_OCIMEM, 598 + SC8180X_SLAVE_APPSS, 599 + SC8180X_SNOC_CNOC_SLV, 600 + SC8180X_SLAVE_QDSS_STM } 601 + }; 602 + 603 + static struct qcom_icc_node mas_qnm_aggre2_noc = { 604 + .name = "mas_qnm_aggre2_noc", 605 + .id = SC8180X_A2NOC_SNOC_MAS, 606 + .channels = 1, 607 + .buswidth = 16, 608 + .num_links = 11, 609 + .links = { SC8180X_SLAVE_SNOC_GEM_NOC_SF, 610 + SC8180X_SLAVE_PIMEM, 611 + SC8180X_SLAVE_PCIE_3, 612 + SC8180X_SLAVE_OCIMEM, 613 + SC8180X_SLAVE_APPSS, 614 + SC8180X_SLAVE_PCIE_2, 615 + SC8180X_SNOC_CNOC_SLV, 616 + SC8180X_SLAVE_PCIE_0, 617 + SC8180X_SLAVE_PCIE_1, 618 + SC8180X_SLAVE_TCU, 619 + SC8180X_SLAVE_QDSS_STM } 620 + }; 621 + 622 + static struct qcom_icc_node mas_qnm_gemnoc = { 623 + .name = "mas_qnm_gemnoc", 624 + .id = SC8180X_MASTER_GEM_NOC_SNOC, 625 + .channels = 1, 626 + .buswidth = 8, 627 + .num_links = 6, 628 + .links = { SC8180X_SLAVE_PIMEM, 629 + SC8180X_SLAVE_OCIMEM, 630 + SC8180X_SLAVE_APPSS, 631 + SC8180X_SNOC_CNOC_SLV, 632 + SC8180X_SLAVE_TCU, 633 + SC8180X_SLAVE_QDSS_STM } 634 + }; 635 + 636 + static struct qcom_icc_node mas_qxm_pimem = { 637 + .name = "mas_qxm_pimem", 638 + .id = SC8180X_MASTER_PIMEM, 639 + .channels = 1, 640 + .buswidth = 8, 641 + .num_links = 2, 642 + .links = { SC8180X_SLAVE_SNOC_GEM_NOC_GC, 643 + SC8180X_SLAVE_OCIMEM } 644 + }; 645 + 646 + static struct qcom_icc_node mas_xm_gic = { 647 + .name = "mas_xm_gic", 648 + .id = SC8180X_MASTER_GIC, 649 + .channels = 1, 650 + .buswidth = 8, 651 + .num_links = 2, 652 + .links = { SC8180X_SLAVE_SNOC_GEM_NOC_GC, 653 + SC8180X_SLAVE_OCIMEM } 654 + }; 655 + 656 + static struct qcom_icc_node mas_qup_core_0 = { 657 + .name = "mas_qup_core_0", 658 + .id = SC8180X_MASTER_QUP_CORE_0, 659 + .channels = 1, 660 + .buswidth = 4, 661 + .num_links = 1, 662 + .links = { SC8180X_SLAVE_QUP_CORE_0 } 663 + }; 664 + 665 + static struct qcom_icc_node mas_qup_core_1 = { 666 + .name = "mas_qup_core_1", 667 + .id = SC8180X_MASTER_QUP_CORE_1, 668 + .channels = 1, 669 + .buswidth = 4, 670 + .num_links = 1, 671 + .links = { SC8180X_SLAVE_QUP_CORE_1 } 672 + }; 673 + 674 + static struct qcom_icc_node mas_qup_core_2 = { 675 + .name = "mas_qup_core_2", 676 + .id = SC8180X_MASTER_QUP_CORE_2, 677 + .channels = 1, 678 + .buswidth = 4, 679 + .num_links = 1, 680 + .links = { SC8180X_SLAVE_QUP_CORE_2 } 681 + }; 682 + 683 + static struct qcom_icc_node slv_qns_a1noc_snoc = { 684 + .name = "slv_qns_a1noc_snoc", 685 + .id = SC8180X_A1NOC_SNOC_SLV, 686 + .channels = 1, 687 + .buswidth = 32, 688 + .num_links = 1, 689 + .links = { SC8180X_A1NOC_SNOC_MAS } 690 + }; 691 + 692 + static struct qcom_icc_node slv_srvc_aggre1_noc = { 693 + .name = "slv_srvc_aggre1_noc", 694 + .id = SC8180X_SLAVE_SERVICE_A1NOC, 695 + .channels = 1, 696 + .buswidth = 4 697 + }; 698 + 699 + static struct qcom_icc_node slv_qns_a2noc_snoc = { 700 + .name = "slv_qns_a2noc_snoc", 701 + .id = SC8180X_A2NOC_SNOC_SLV, 702 + .channels = 1, 703 + .buswidth = 16, 704 + .num_links = 1, 705 + .links = { SC8180X_A2NOC_SNOC_MAS } 706 + }; 707 + 708 + static struct qcom_icc_node slv_qns_pcie_mem_noc = { 709 + .name = "slv_qns_pcie_mem_noc", 710 + .id = SC8180X_SLAVE_ANOC_PCIE_GEM_NOC, 711 + .channels = 1, 712 + .buswidth = 32, 713 + .num_links = 1, 714 + .links = { SC8180X_MASTER_GEM_NOC_PCIE_SNOC } 715 + }; 716 + 717 + static struct qcom_icc_node slv_srvc_aggre2_noc = { 718 + .name = "slv_srvc_aggre2_noc", 719 + .id = SC8180X_SLAVE_SERVICE_A2NOC, 720 + .channels = 1, 721 + .buswidth = 4 722 + }; 723 + 724 + static struct qcom_icc_node slv_qns_camnoc_uncomp = { 725 + .name = "slv_qns_camnoc_uncomp", 726 + .id = SC8180X_SLAVE_CAMNOC_UNCOMP, 727 + .channels = 1, 728 + .buswidth = 32 729 + }; 730 + 731 + static struct qcom_icc_node slv_qns_cdsp_mem_noc = { 732 + .name = "slv_qns_cdsp_mem_noc", 733 + .id = SC8180X_SLAVE_CDSP_MEM_NOC, 734 + .channels = 2, 735 + .buswidth = 32, 736 + .num_links = 1, 737 + .links = { SC8180X_MASTER_COMPUTE_NOC } 738 + }; 739 + 740 + static struct qcom_icc_node slv_qhs_a1_noc_cfg = { 741 + .name = "slv_qhs_a1_noc_cfg", 742 + .id = SC8180X_SLAVE_A1NOC_CFG, 743 + .channels = 1, 744 + .buswidth = 4, 745 + .num_links = 1, 746 + .links = { SC8180X_MASTER_A1NOC_CFG } 747 + }; 748 + 749 + static struct qcom_icc_node slv_qhs_a2_noc_cfg = { 750 + .name = "slv_qhs_a2_noc_cfg", 751 + .id = SC8180X_SLAVE_A2NOC_CFG, 752 + .channels = 1, 753 + .buswidth = 4, 754 + .num_links = 1, 755 + .links = { SC8180X_MASTER_A2NOC_CFG } 756 + }; 757 + 758 + static struct qcom_icc_node slv_qhs_ahb2phy_refgen_center = { 759 + .name = "slv_qhs_ahb2phy_refgen_center", 760 + .id = SC8180X_SLAVE_AHB2PHY_CENTER, 761 + .channels = 1, 762 + .buswidth = 4 763 + }; 764 + 765 + static struct qcom_icc_node slv_qhs_ahb2phy_refgen_east = { 766 + .name = "slv_qhs_ahb2phy_refgen_east", 767 + .id = SC8180X_SLAVE_AHB2PHY_EAST, 768 + .channels = 1, 769 + .buswidth = 4 770 + }; 771 + 772 + static struct qcom_icc_node slv_qhs_ahb2phy_refgen_west = { 773 + .name = "slv_qhs_ahb2phy_refgen_west", 774 + .id = SC8180X_SLAVE_AHB2PHY_WEST, 775 + .channels = 1, 776 + .buswidth = 4 777 + }; 778 + 779 + static struct qcom_icc_node slv_qhs_ahb2phy_south = { 780 + .name = "slv_qhs_ahb2phy_south", 781 + .id = SC8180X_SLAVE_AHB2PHY_SOUTH, 782 + .channels = 1, 783 + .buswidth = 4 784 + }; 785 + 786 + static struct qcom_icc_node slv_qhs_aop = { 787 + .name = "slv_qhs_aop", 788 + .id = SC8180X_SLAVE_AOP, 789 + .channels = 1, 790 + .buswidth = 4 791 + }; 792 + 793 + static struct qcom_icc_node slv_qhs_aoss = { 794 + .name = "slv_qhs_aoss", 795 + .id = SC8180X_SLAVE_AOSS, 796 + .channels = 1, 797 + .buswidth = 4 798 + }; 799 + 800 + static struct qcom_icc_node slv_qhs_camera_cfg = { 801 + .name = "slv_qhs_camera_cfg", 802 + .id = SC8180X_SLAVE_CAMERA_CFG, 803 + .channels = 1, 804 + .buswidth = 4 805 + }; 806 + 807 + static struct qcom_icc_node slv_qhs_clk_ctl = { 808 + .name = "slv_qhs_clk_ctl", 809 + .id = SC8180X_SLAVE_CLK_CTL, 810 + .channels = 1, 811 + .buswidth = 4 812 + }; 813 + 814 + static struct qcom_icc_node slv_qhs_compute_dsp = { 815 + .name = "slv_qhs_compute_dsp", 816 + .id = SC8180X_SLAVE_CDSP_CFG, 817 + .channels = 1, 818 + .buswidth = 4 819 + }; 820 + 821 + static struct qcom_icc_node slv_qhs_cpr_cx = { 822 + .name = "slv_qhs_cpr_cx", 823 + .id = SC8180X_SLAVE_RBCPR_CX_CFG, 824 + .channels = 1, 825 + .buswidth = 4 826 + }; 827 + 828 + static struct qcom_icc_node slv_qhs_cpr_mmcx = { 829 + .name = "slv_qhs_cpr_mmcx", 830 + .id = SC8180X_SLAVE_RBCPR_MMCX_CFG, 831 + .channels = 1, 832 + .buswidth = 4 833 + }; 834 + 835 + static struct qcom_icc_node slv_qhs_cpr_mx = { 836 + .name = "slv_qhs_cpr_mx", 837 + .id = SC8180X_SLAVE_RBCPR_MX_CFG, 838 + .channels = 1, 839 + .buswidth = 4 840 + }; 841 + 842 + static struct qcom_icc_node slv_qhs_crypto0_cfg = { 843 + .name = "slv_qhs_crypto0_cfg", 844 + .id = SC8180X_SLAVE_CRYPTO_0_CFG, 845 + .channels = 1, 846 + .buswidth = 4 847 + }; 848 + 849 + static struct qcom_icc_node slv_qhs_ddrss_cfg = { 850 + .name = "slv_qhs_ddrss_cfg", 851 + .id = SC8180X_SLAVE_CNOC_DDRSS, 852 + .channels = 1, 853 + .buswidth = 4, 854 + .num_links = 1, 855 + .links = { SC8180X_MASTER_CNOC_DC_NOC } 856 + }; 857 + 858 + static struct qcom_icc_node slv_qhs_display_cfg = { 859 + .name = "slv_qhs_display_cfg", 860 + .id = SC8180X_SLAVE_DISPLAY_CFG, 861 + .channels = 1, 862 + .buswidth = 4 863 + }; 864 + 865 + static struct qcom_icc_node slv_qhs_emac_cfg = { 866 + .name = "slv_qhs_emac_cfg", 867 + .id = SC8180X_SLAVE_EMAC_CFG, 868 + .channels = 1, 869 + .buswidth = 4 870 + }; 871 + 872 + static struct qcom_icc_node slv_qhs_glm = { 873 + .name = "slv_qhs_glm", 874 + .id = SC8180X_SLAVE_GLM, 875 + .channels = 1, 876 + .buswidth = 4 877 + }; 878 + 879 + static struct qcom_icc_node slv_qhs_gpuss_cfg = { 880 + .name = "slv_qhs_gpuss_cfg", 881 + .id = SC8180X_SLAVE_GRAPHICS_3D_CFG, 882 + .channels = 1, 883 + .buswidth = 8 884 + }; 885 + 886 + static struct qcom_icc_node slv_qhs_imem_cfg = { 887 + .name = "slv_qhs_imem_cfg", 888 + .id = SC8180X_SLAVE_IMEM_CFG, 889 + .channels = 1, 890 + .buswidth = 4 891 + }; 892 + 893 + static struct qcom_icc_node slv_qhs_ipa = { 894 + .name = "slv_qhs_ipa", 895 + .id = SC8180X_SLAVE_IPA_CFG, 896 + .channels = 1, 897 + .buswidth = 4 898 + }; 899 + 900 + static struct qcom_icc_node slv_qhs_mnoc_cfg = { 901 + .name = "slv_qhs_mnoc_cfg", 902 + .id = SC8180X_SLAVE_CNOC_MNOC_CFG, 903 + .channels = 1, 904 + .buswidth = 4, 905 + .num_links = 1, 906 + .links = { SC8180X_MASTER_CNOC_MNOC_CFG } 907 + }; 908 + 909 + static struct qcom_icc_node slv_qhs_npu_cfg = { 910 + .name = "slv_qhs_npu_cfg", 911 + .id = SC8180X_SLAVE_NPU_CFG, 912 + .channels = 1, 913 + .buswidth = 4 914 + }; 915 + 916 + static struct qcom_icc_node slv_qhs_pcie0_cfg = { 917 + .name = "slv_qhs_pcie0_cfg", 918 + .id = SC8180X_SLAVE_PCIE_0_CFG, 919 + .channels = 1, 920 + .buswidth = 4 921 + }; 922 + 923 + static struct qcom_icc_node slv_qhs_pcie1_cfg = { 924 + .name = "slv_qhs_pcie1_cfg", 925 + .id = SC8180X_SLAVE_PCIE_1_CFG, 926 + .channels = 1, 927 + .buswidth = 4 928 + }; 929 + 930 + static struct qcom_icc_node slv_qhs_pcie2_cfg = { 931 + .name = "slv_qhs_pcie2_cfg", 932 + .id = SC8180X_SLAVE_PCIE_2_CFG, 933 + .channels = 1, 934 + .buswidth = 4 935 + }; 936 + 937 + static struct qcom_icc_node slv_qhs_pcie3_cfg = { 938 + .name = "slv_qhs_pcie3_cfg", 939 + .id = SC8180X_SLAVE_PCIE_3_CFG, 940 + .channels = 1, 941 + .buswidth = 4 942 + }; 943 + 944 + static struct qcom_icc_node slv_qhs_pdm = { 945 + .name = "slv_qhs_pdm", 946 + .id = SC8180X_SLAVE_PDM, 947 + .channels = 1, 948 + .buswidth = 4 949 + }; 950 + 951 + static struct qcom_icc_node slv_qhs_pimem_cfg = { 952 + .name = "slv_qhs_pimem_cfg", 953 + .id = SC8180X_SLAVE_PIMEM_CFG, 954 + .channels = 1, 955 + .buswidth = 4 956 + }; 957 + 958 + static struct qcom_icc_node slv_qhs_prng = { 959 + .name = "slv_qhs_prng", 960 + .id = SC8180X_SLAVE_PRNG, 961 + .channels = 1, 962 + .buswidth = 4 963 + }; 964 + 965 + static struct qcom_icc_node slv_qhs_qdss_cfg = { 966 + .name = "slv_qhs_qdss_cfg", 967 + .id = SC8180X_SLAVE_QDSS_CFG, 968 + .channels = 1, 969 + .buswidth = 4 970 + }; 971 + 972 + static struct qcom_icc_node slv_qhs_qspi_0 = { 973 + .name = "slv_qhs_qspi_0", 974 + .id = SC8180X_SLAVE_QSPI_0, 975 + .channels = 1, 976 + .buswidth = 4 977 + }; 978 + 979 + static struct qcom_icc_node slv_qhs_qspi_1 = { 980 + .name = "slv_qhs_qspi_1", 981 + .id = SC8180X_SLAVE_QSPI_1, 982 + .channels = 1, 983 + .buswidth = 4 984 + }; 985 + 986 + static struct qcom_icc_node slv_qhs_qupv3_east0 = { 987 + .name = "slv_qhs_qupv3_east0", 988 + .id = SC8180X_SLAVE_QUP_1, 989 + .channels = 1, 990 + .buswidth = 4 991 + }; 992 + 993 + static struct qcom_icc_node slv_qhs_qupv3_east1 = { 994 + .name = "slv_qhs_qupv3_east1", 995 + .id = SC8180X_SLAVE_QUP_2, 996 + .channels = 1, 997 + .buswidth = 4 998 + }; 999 + 1000 + static struct qcom_icc_node slv_qhs_qupv3_west = { 1001 + .name = "slv_qhs_qupv3_west", 1002 + .id = SC8180X_SLAVE_QUP_0, 1003 + .channels = 1, 1004 + .buswidth = 4 1005 + }; 1006 + 1007 + static struct qcom_icc_node slv_qhs_sdc2 = { 1008 + .name = "slv_qhs_sdc2", 1009 + .id = SC8180X_SLAVE_SDCC_2, 1010 + .channels = 1, 1011 + .buswidth = 4 1012 + }; 1013 + 1014 + static struct qcom_icc_node slv_qhs_sdc4 = { 1015 + .name = "slv_qhs_sdc4", 1016 + .id = SC8180X_SLAVE_SDCC_4, 1017 + .channels = 1, 1018 + .buswidth = 4 1019 + }; 1020 + 1021 + static struct qcom_icc_node slv_qhs_security = { 1022 + .name = "slv_qhs_security", 1023 + .id = SC8180X_SLAVE_SECURITY, 1024 + .channels = 1, 1025 + .buswidth = 4 1026 + }; 1027 + 1028 + static struct qcom_icc_node slv_qhs_snoc_cfg = { 1029 + .name = "slv_qhs_snoc_cfg", 1030 + .id = SC8180X_SLAVE_SNOC_CFG, 1031 + .channels = 1, 1032 + .buswidth = 4, 1033 + .num_links = 1, 1034 + .links = { SC8180X_MASTER_SNOC_CFG } 1035 + }; 1036 + 1037 + static struct qcom_icc_node slv_qhs_spss_cfg = { 1038 + .name = "slv_qhs_spss_cfg", 1039 + .id = SC8180X_SLAVE_SPSS_CFG, 1040 + .channels = 1, 1041 + .buswidth = 4 1042 + }; 1043 + 1044 + static struct qcom_icc_node slv_qhs_tcsr = { 1045 + .name = "slv_qhs_tcsr", 1046 + .id = SC8180X_SLAVE_TCSR, 1047 + .channels = 1, 1048 + .buswidth = 4 1049 + }; 1050 + 1051 + static struct qcom_icc_node slv_qhs_tlmm_east = { 1052 + .name = "slv_qhs_tlmm_east", 1053 + .id = SC8180X_SLAVE_TLMM_EAST, 1054 + .channels = 1, 1055 + .buswidth = 4 1056 + }; 1057 + 1058 + static struct qcom_icc_node slv_qhs_tlmm_south = { 1059 + .name = "slv_qhs_tlmm_south", 1060 + .id = SC8180X_SLAVE_TLMM_SOUTH, 1061 + .channels = 1, 1062 + .buswidth = 4 1063 + }; 1064 + 1065 + static struct qcom_icc_node slv_qhs_tlmm_west = { 1066 + .name = "slv_qhs_tlmm_west", 1067 + .id = SC8180X_SLAVE_TLMM_WEST, 1068 + .channels = 1, 1069 + .buswidth = 4 1070 + }; 1071 + 1072 + static struct qcom_icc_node slv_qhs_tsif = { 1073 + .name = "slv_qhs_tsif", 1074 + .id = SC8180X_SLAVE_TSIF, 1075 + .channels = 1, 1076 + .buswidth = 4 1077 + }; 1078 + 1079 + static struct qcom_icc_node slv_qhs_ufs_card_cfg = { 1080 + .name = "slv_qhs_ufs_card_cfg", 1081 + .id = SC8180X_SLAVE_UFS_CARD_CFG, 1082 + .channels = 1, 1083 + .buswidth = 4 1084 + }; 1085 + 1086 + static struct qcom_icc_node slv_qhs_ufs_mem0_cfg = { 1087 + .name = "slv_qhs_ufs_mem0_cfg", 1088 + .id = SC8180X_SLAVE_UFS_MEM_0_CFG, 1089 + .channels = 1, 1090 + .buswidth = 4 1091 + }; 1092 + 1093 + static struct qcom_icc_node slv_qhs_ufs_mem1_cfg = { 1094 + .name = "slv_qhs_ufs_mem1_cfg", 1095 + .id = SC8180X_SLAVE_UFS_MEM_1_CFG, 1096 + .channels = 1, 1097 + .buswidth = 4 1098 + }; 1099 + 1100 + static struct qcom_icc_node slv_qhs_usb3_0 = { 1101 + .name = "slv_qhs_usb3_0", 1102 + .id = SC8180X_SLAVE_USB3, 1103 + .channels = 1, 1104 + .buswidth = 4 1105 + }; 1106 + 1107 + static struct qcom_icc_node slv_qhs_usb3_1 = { 1108 + .name = "slv_qhs_usb3_1", 1109 + .id = SC8180X_SLAVE_USB3_1, 1110 + .channels = 1, 1111 + .buswidth = 4 1112 + }; 1113 + 1114 + static struct qcom_icc_node slv_qhs_usb3_2 = { 1115 + .name = "slv_qhs_usb3_2", 1116 + .id = SC8180X_SLAVE_USB3_2, 1117 + .channels = 1, 1118 + .buswidth = 4 1119 + }; 1120 + 1121 + static struct qcom_icc_node slv_qhs_venus_cfg = { 1122 + .name = "slv_qhs_venus_cfg", 1123 + .id = SC8180X_SLAVE_VENUS_CFG, 1124 + .channels = 1, 1125 + .buswidth = 4 1126 + }; 1127 + 1128 + static struct qcom_icc_node slv_qhs_vsense_ctrl_cfg = { 1129 + .name = "slv_qhs_vsense_ctrl_cfg", 1130 + .id = SC8180X_SLAVE_VSENSE_CTRL_CFG, 1131 + .channels = 1, 1132 + .buswidth = 4 1133 + }; 1134 + 1135 + static struct qcom_icc_node slv_srvc_cnoc = { 1136 + .name = "slv_srvc_cnoc", 1137 + .id = SC8180X_SLAVE_SERVICE_CNOC, 1138 + .channels = 1, 1139 + .buswidth = 4 1140 + }; 1141 + 1142 + static struct qcom_icc_node slv_qhs_gemnoc = { 1143 + .name = "slv_qhs_gemnoc", 1144 + .id = SC8180X_SLAVE_GEM_NOC_CFG, 1145 + .channels = 1, 1146 + .buswidth = 4, 1147 + .num_links = 1, 1148 + .links = { SC8180X_MASTER_GEM_NOC_CFG } 1149 + }; 1150 + 1151 + static struct qcom_icc_node slv_qhs_llcc = { 1152 + .name = "slv_qhs_llcc", 1153 + .id = SC8180X_SLAVE_LLCC_CFG, 1154 + .channels = 1, 1155 + .buswidth = 4 1156 + }; 1157 + 1158 + static struct qcom_icc_node slv_qhs_mdsp_ms_mpu_cfg = { 1159 + .name = "slv_qhs_mdsp_ms_mpu_cfg", 1160 + .id = SC8180X_SLAVE_MSS_PROC_MS_MPU_CFG, 1161 + .channels = 1, 1162 + .buswidth = 4 1163 + }; 1164 + 1165 + static struct qcom_icc_node slv_qns_ecc = { 1166 + .name = "slv_qns_ecc", 1167 + .id = SC8180X_SLAVE_ECC, 1168 + .channels = 1, 1169 + .buswidth = 32 1170 + }; 1171 + 1172 + static struct qcom_icc_node slv_qns_gem_noc_snoc = { 1173 + .name = "slv_qns_gem_noc_snoc", 1174 + .id = SC8180X_SLAVE_GEM_NOC_SNOC, 1175 + .channels = 1, 1176 + .buswidth = 8, 1177 + .num_links = 1, 1178 + .links = { SC8180X_MASTER_GEM_NOC_SNOC } 1179 + }; 1180 + 1181 + static struct qcom_icc_node slv_qns_llcc = { 1182 + .name = "slv_qns_llcc", 1183 + .id = SC8180X_SLAVE_LLCC, 1184 + .channels = 8, 1185 + .buswidth = 16, 1186 + .num_links = 1, 1187 + .links = { SC8180X_MASTER_LLCC } 1188 + }; 1189 + 1190 + static struct qcom_icc_node slv_srvc_gemnoc = { 1191 + .name = "slv_srvc_gemnoc", 1192 + .id = SC8180X_SLAVE_SERVICE_GEM_NOC, 1193 + .channels = 1, 1194 + .buswidth = 4 1195 + }; 1196 + 1197 + static struct qcom_icc_node slv_srvc_gemnoc1 = { 1198 + .name = "slv_srvc_gemnoc1", 1199 + .id = SC8180X_SLAVE_SERVICE_GEM_NOC_1, 1200 + .channels = 1, 1201 + .buswidth = 4 1202 + }; 1203 + 1204 + static struct qcom_icc_node slv_ipa_core_slave = { 1205 + .name = "slv_ipa_core_slave", 1206 + .id = SC8180X_SLAVE_IPA_CORE, 1207 + .channels = 1, 1208 + .buswidth = 8 1209 + }; 1210 + 1211 + static struct qcom_icc_node slv_ebi = { 1212 + .name = "slv_ebi", 1213 + .id = SC8180X_SLAVE_EBI_CH0, 1214 + .channels = 8, 1215 + .buswidth = 4 1216 + }; 1217 + 1218 + static struct qcom_icc_node slv_qns2_mem_noc = { 1219 + .name = "slv_qns2_mem_noc", 1220 + .id = SC8180X_SLAVE_MNOC_SF_MEM_NOC, 1221 + .channels = 1, 1222 + .buswidth = 32, 1223 + .num_links = 1, 1224 + .links = { SC8180X_MASTER_MNOC_SF_MEM_NOC } 1225 + }; 1226 + 1227 + static struct qcom_icc_node slv_qns_mem_noc_hf = { 1228 + .name = "slv_qns_mem_noc_hf", 1229 + .id = SC8180X_SLAVE_MNOC_HF_MEM_NOC, 1230 + .channels = 2, 1231 + .buswidth = 32, 1232 + .num_links = 1, 1233 + .links = { SC8180X_MASTER_MNOC_HF_MEM_NOC } 1234 + }; 1235 + 1236 + static struct qcom_icc_node slv_srvc_mnoc = { 1237 + .name = "slv_srvc_mnoc", 1238 + .id = SC8180X_SLAVE_SERVICE_MNOC, 1239 + .channels = 1, 1240 + .buswidth = 4 1241 + }; 1242 + 1243 + static struct qcom_icc_node slv_qhs_apss = { 1244 + .name = "slv_qhs_apss", 1245 + .id = SC8180X_SLAVE_APPSS, 1246 + .channels = 1, 1247 + .buswidth = 8 1248 + }; 1249 + 1250 + static struct qcom_icc_node slv_qns_cnoc = { 1251 + .name = "slv_qns_cnoc", 1252 + .id = SC8180X_SNOC_CNOC_SLV, 1253 + .channels = 1, 1254 + .buswidth = 8, 1255 + .num_links = 1, 1256 + .links = { SC8180X_SNOC_CNOC_MAS } 1257 + }; 1258 + 1259 + static struct qcom_icc_node slv_qns_gemnoc_gc = { 1260 + .name = "slv_qns_gemnoc_gc", 1261 + .id = SC8180X_SLAVE_SNOC_GEM_NOC_GC, 1262 + .channels = 1, 1263 + .buswidth = 8, 1264 + .num_links = 1, 1265 + .links = { SC8180X_MASTER_SNOC_GC_MEM_NOC } 1266 + }; 1267 + 1268 + static struct qcom_icc_node slv_qns_gemnoc_sf = { 1269 + .name = "slv_qns_gemnoc_sf", 1270 + .id = SC8180X_SLAVE_SNOC_GEM_NOC_SF, 1271 + .channels = 1, 1272 + .buswidth = 32, 1273 + .num_links = 1, 1274 + .links = { SC8180X_MASTER_SNOC_SF_MEM_NOC } 1275 + }; 1276 + 1277 + static struct qcom_icc_node slv_qxs_imem = { 1278 + .name = "slv_qxs_imem", 1279 + .id = SC8180X_SLAVE_OCIMEM, 1280 + .channels = 1, 1281 + .buswidth = 8 1282 + }; 1283 + 1284 + static struct qcom_icc_node slv_qxs_pimem = { 1285 + .name = "slv_qxs_pimem", 1286 + .id = SC8180X_SLAVE_PIMEM, 1287 + .channels = 1, 1288 + .buswidth = 8 1289 + }; 1290 + 1291 + static struct qcom_icc_node slv_srvc_snoc = { 1292 + .name = "slv_srvc_snoc", 1293 + .id = SC8180X_SLAVE_SERVICE_SNOC, 1294 + .channels = 1, 1295 + .buswidth = 4 1296 + }; 1297 + 1298 + static struct qcom_icc_node slv_xs_pcie_0 = { 1299 + .name = "slv_xs_pcie_0", 1300 + .id = SC8180X_SLAVE_PCIE_0, 1301 + .channels = 1, 1302 + .buswidth = 8 1303 + }; 1304 + 1305 + static struct qcom_icc_node slv_xs_pcie_1 = { 1306 + .name = "slv_xs_pcie_1", 1307 + .id = SC8180X_SLAVE_PCIE_1, 1308 + .channels = 1, 1309 + .buswidth = 8 1310 + }; 1311 + 1312 + static struct qcom_icc_node slv_xs_pcie_2 = { 1313 + .name = "slv_xs_pcie_2", 1314 + .id = SC8180X_SLAVE_PCIE_2, 1315 + .channels = 1, 1316 + .buswidth = 8 1317 + }; 1318 + 1319 + static struct qcom_icc_node slv_xs_pcie_3 = { 1320 + .name = "slv_xs_pcie_3", 1321 + .id = SC8180X_SLAVE_PCIE_3, 1322 + .channels = 1, 1323 + .buswidth = 8 1324 + }; 1325 + 1326 + static struct qcom_icc_node slv_xs_qdss_stm = { 1327 + .name = "slv_xs_qdss_stm", 1328 + .id = SC8180X_SLAVE_QDSS_STM, 1329 + .channels = 1, 1330 + .buswidth = 4 1331 + }; 1332 + 1333 + static struct qcom_icc_node slv_xs_sys_tcu_cfg = { 1334 + .name = "slv_xs_sys_tcu_cfg", 1335 + .id = SC8180X_SLAVE_TCU, 1336 + .channels = 1, 1337 + .buswidth = 8 1338 + }; 1339 + 1340 + static struct qcom_icc_node slv_qup_core_0 = { 1341 + .name = "slv_qup_core_0", 1342 + .id = SC8180X_SLAVE_QUP_CORE_0, 1343 + .channels = 1, 1344 + .buswidth = 4 1345 + }; 1346 + 1347 + static struct qcom_icc_node slv_qup_core_1 = { 1348 + .name = "slv_qup_core_1", 1349 + .id = SC8180X_SLAVE_QUP_CORE_1, 1350 + .channels = 1, 1351 + .buswidth = 4 1352 + }; 1353 + 1354 + static struct qcom_icc_node slv_qup_core_2 = { 1355 + .name = "slv_qup_core_2", 1356 + .id = SC8180X_SLAVE_QUP_CORE_2, 1357 + .channels = 1, 1358 + .buswidth = 4 1359 + }; 1360 + 1361 + static struct qcom_icc_bcm bcm_acv = { 1362 + .name = "ACV", 1363 + .num_nodes = 1, 1364 + .nodes = { &slv_ebi } 1365 + }; 1366 + 1367 + static struct qcom_icc_bcm bcm_mc0 = { 1368 + .name = "MC0", 1369 + .keepalive = true, 1370 + .num_nodes = 1, 1371 + .nodes = { &slv_ebi } 1372 + }; 1373 + 1374 + static struct qcom_icc_bcm bcm_sh0 = { 1375 + .name = "SH0", 1376 + .keepalive = true, 1377 + .num_nodes = 1, 1378 + .nodes = { &slv_qns_llcc } 1379 + }; 1380 + 1381 + static struct qcom_icc_bcm bcm_mm0 = { 1382 + .name = "MM0", 1383 + .num_nodes = 1, 1384 + .nodes = { &slv_qns_mem_noc_hf } 1385 + }; 1386 + 1387 + static struct qcom_icc_bcm bcm_co0 = { 1388 + .name = "CO0", 1389 + .num_nodes = 1, 1390 + .nodes = { &slv_qns_cdsp_mem_noc } 1391 + }; 1392 + 1393 + static struct qcom_icc_bcm bcm_ce0 = { 1394 + .name = "CE0", 1395 + .num_nodes = 1, 1396 + .nodes = { &mas_qxm_crypto } 1397 + }; 1398 + 1399 + static struct qcom_icc_bcm bcm_cn0 = { 1400 + .name = "CN0", 1401 + .keepalive = true, 1402 + .num_nodes = 57, 1403 + .nodes = { &mas_qnm_snoc, 1404 + &slv_qhs_a1_noc_cfg, 1405 + &slv_qhs_a2_noc_cfg, 1406 + &slv_qhs_ahb2phy_refgen_center, 1407 + &slv_qhs_ahb2phy_refgen_east, 1408 + &slv_qhs_ahb2phy_refgen_west, 1409 + &slv_qhs_ahb2phy_south, 1410 + &slv_qhs_aop, 1411 + &slv_qhs_aoss, 1412 + &slv_qhs_camera_cfg, 1413 + &slv_qhs_clk_ctl, 1414 + &slv_qhs_compute_dsp, 1415 + &slv_qhs_cpr_cx, 1416 + &slv_qhs_cpr_mmcx, 1417 + &slv_qhs_cpr_mx, 1418 + &slv_qhs_crypto0_cfg, 1419 + &slv_qhs_ddrss_cfg, 1420 + &slv_qhs_display_cfg, 1421 + &slv_qhs_emac_cfg, 1422 + &slv_qhs_glm, 1423 + &slv_qhs_gpuss_cfg, 1424 + &slv_qhs_imem_cfg, 1425 + &slv_qhs_ipa, 1426 + &slv_qhs_mnoc_cfg, 1427 + &slv_qhs_npu_cfg, 1428 + &slv_qhs_pcie0_cfg, 1429 + &slv_qhs_pcie1_cfg, 1430 + &slv_qhs_pcie2_cfg, 1431 + &slv_qhs_pcie3_cfg, 1432 + &slv_qhs_pdm, 1433 + &slv_qhs_pimem_cfg, 1434 + &slv_qhs_prng, 1435 + &slv_qhs_qdss_cfg, 1436 + &slv_qhs_qspi_0, 1437 + &slv_qhs_qspi_1, 1438 + &slv_qhs_qupv3_east0, 1439 + &slv_qhs_qupv3_east1, 1440 + &slv_qhs_qupv3_west, 1441 + &slv_qhs_sdc2, 1442 + &slv_qhs_sdc4, 1443 + &slv_qhs_security, 1444 + &slv_qhs_snoc_cfg, 1445 + &slv_qhs_spss_cfg, 1446 + &slv_qhs_tcsr, 1447 + &slv_qhs_tlmm_east, 1448 + &slv_qhs_tlmm_south, 1449 + &slv_qhs_tlmm_west, 1450 + &slv_qhs_tsif, 1451 + &slv_qhs_ufs_card_cfg, 1452 + &slv_qhs_ufs_mem0_cfg, 1453 + &slv_qhs_ufs_mem1_cfg, 1454 + &slv_qhs_usb3_0, 1455 + &slv_qhs_usb3_1, 1456 + &slv_qhs_usb3_2, 1457 + &slv_qhs_venus_cfg, 1458 + &slv_qhs_vsense_ctrl_cfg, 1459 + &slv_srvc_cnoc } 1460 + }; 1461 + 1462 + static struct qcom_icc_bcm bcm_mm1 = { 1463 + .name = "MM1", 1464 + .num_nodes = 7, 1465 + .nodes = { &mas_qxm_camnoc_hf0_uncomp, 1466 + &mas_qxm_camnoc_hf1_uncomp, 1467 + &mas_qxm_camnoc_sf_uncomp, 1468 + &mas_qxm_camnoc_hf0, 1469 + &mas_qxm_camnoc_hf1, 1470 + &mas_qxm_mdp0, 1471 + &mas_qxm_mdp1 } 1472 + }; 1473 + 1474 + static struct qcom_icc_bcm bcm_qup0 = { 1475 + .name = "QUP0", 1476 + .num_nodes = 3, 1477 + .nodes = { &mas_qup_core_0, 1478 + &mas_qup_core_1, 1479 + &mas_qup_core_2 } 1480 + }; 1481 + 1482 + static struct qcom_icc_bcm bcm_sh2 = { 1483 + .name = "SH2", 1484 + .num_nodes = 1, 1485 + .nodes = { &slv_qns_gem_noc_snoc } 1486 + }; 1487 + 1488 + static struct qcom_icc_bcm bcm_mm2 = { 1489 + .name = "MM2", 1490 + .num_nodes = 6, 1491 + .nodes = { &mas_qxm_camnoc_sf, 1492 + &mas_qxm_rot, 1493 + &mas_qxm_venus0, 1494 + &mas_qxm_venus1, 1495 + &mas_qxm_venus_arm9, 1496 + &slv_qns2_mem_noc } 1497 + }; 1498 + 1499 + static struct qcom_icc_bcm bcm_sh3 = { 1500 + .name = "SH3", 1501 + .keepalive = true, 1502 + .num_nodes = 1, 1503 + .nodes = { &mas_acm_apps } 1504 + }; 1505 + 1506 + static struct qcom_icc_bcm bcm_sn0 = { 1507 + .name = "SN0", 1508 + .nodes = { &slv_qns_gemnoc_sf } 1509 + }; 1510 + 1511 + static struct qcom_icc_bcm bcm_sn1 = { 1512 + .name = "SN1", 1513 + .nodes = { &slv_qxs_imem } 1514 + }; 1515 + 1516 + static struct qcom_icc_bcm bcm_sn2 = { 1517 + .name = "SN2", 1518 + .keepalive = true, 1519 + .nodes = { &slv_qns_gemnoc_gc } 1520 + }; 1521 + 1522 + static struct qcom_icc_bcm bcm_co2 = { 1523 + .name = "CO2", 1524 + .nodes = { &mas_qnm_npu } 1525 + }; 1526 + 1527 + static struct qcom_icc_bcm bcm_ip0 = { 1528 + .name = "IP0", 1529 + .nodes = { &slv_ipa_core_slave } 1530 + }; 1531 + 1532 + static struct qcom_icc_bcm bcm_sn3 = { 1533 + .name = "SN3", 1534 + .keepalive = true, 1535 + .nodes = { &slv_srvc_aggre1_noc, 1536 + &slv_qns_cnoc } 1537 + }; 1538 + 1539 + static struct qcom_icc_bcm bcm_sn4 = { 1540 + .name = "SN4", 1541 + .nodes = { &slv_qxs_pimem } 1542 + }; 1543 + 1544 + static struct qcom_icc_bcm bcm_sn8 = { 1545 + .name = "SN8", 1546 + .num_nodes = 4, 1547 + .nodes = { &slv_xs_pcie_0, 1548 + &slv_xs_pcie_1, 1549 + &slv_xs_pcie_2, 1550 + &slv_xs_pcie_3 } 1551 + }; 1552 + 1553 + static struct qcom_icc_bcm bcm_sn9 = { 1554 + .name = "SN9", 1555 + .num_nodes = 1, 1556 + .nodes = { &mas_qnm_aggre1_noc } 1557 + }; 1558 + 1559 + static struct qcom_icc_bcm bcm_sn11 = { 1560 + .name = "SN11", 1561 + .num_nodes = 1, 1562 + .nodes = { &mas_qnm_aggre2_noc } 1563 + }; 1564 + 1565 + static struct qcom_icc_bcm bcm_sn14 = { 1566 + .name = "SN14", 1567 + .num_nodes = 1, 1568 + .nodes = { &slv_qns_pcie_mem_noc } 1569 + }; 1570 + 1571 + static struct qcom_icc_bcm bcm_sn15 = { 1572 + .name = "SN15", 1573 + .keepalive = true, 1574 + .num_nodes = 1, 1575 + .nodes = { &mas_qnm_gemnoc } 1576 + }; 1577 + 1578 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 195 1579 &bcm_sn3, 196 1580 &bcm_ce0, 197 - &bcm_qup0, 198 1581 }; 199 1582 200 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 1583 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 201 1584 &bcm_sn14, 202 1585 &bcm_ce0, 203 - &bcm_qup0, 204 1586 }; 205 1587 206 - static struct qcom_icc_bcm *camnoc_virt_bcms[] = { 1588 + static struct qcom_icc_bcm * const camnoc_virt_bcms[] = { 207 1589 &bcm_mm1, 208 1590 }; 209 1591 210 - static struct qcom_icc_bcm *compute_noc_bcms[] = { 1592 + static struct qcom_icc_bcm * const compute_noc_bcms[] = { 211 1593 &bcm_co0, 212 1594 &bcm_co2, 213 1595 }; 214 1596 215 - static struct qcom_icc_bcm *config_noc_bcms[] = { 1597 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 216 1598 &bcm_cn0, 217 1599 }; 218 1600 219 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 1601 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 220 1602 &bcm_sh0, 221 1603 &bcm_sh2, 222 1604 &bcm_sh3, 223 1605 }; 224 1606 225 - static struct qcom_icc_bcm *ipa_virt_bcms[] = { 1607 + static struct qcom_icc_bcm * const ipa_virt_bcms[] = { 226 1608 &bcm_ip0, 227 1609 }; 228 1610 229 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 1611 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 230 1612 &bcm_mc0, 231 1613 &bcm_acv, 232 1614 }; 233 1615 234 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 1616 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 235 1617 &bcm_mm0, 236 1618 &bcm_mm1, 237 1619 &bcm_mm2, 238 1620 }; 239 1621 240 - static struct qcom_icc_bcm *system_noc_bcms[] = { 1622 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 241 1623 &bcm_sn0, 242 1624 &bcm_sn1, 243 1625 &bcm_sn2, ··· 1631 249 &bcm_sn15, 1632 250 }; 1633 251 1634 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 252 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1635 253 [MASTER_A1NOC_CFG] = &mas_qhm_a1noc_cfg, 1636 254 [MASTER_UFS_CARD] = &mas_xm_ufs_card, 1637 255 [MASTER_UFS_GEN4] = &mas_xm_ufs_g4, ··· 1643 261 [SLAVE_SERVICE_A1NOC] = &slv_srvc_aggre1_noc, 1644 262 }; 1645 263 1646 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 264 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1647 265 [MASTER_A2NOC_CFG] = &mas_qhm_a2noc_cfg, 1648 266 [MASTER_QDSS_BAM] = &mas_qhm_qdss_bam, 1649 267 [MASTER_QSPI_0] = &mas_qhm_qspi, ··· 1667 285 [SLAVE_SERVICE_A2NOC] = &slv_srvc_aggre2_noc, 1668 286 }; 1669 287 1670 - static struct qcom_icc_node *camnoc_virt_nodes[] = { 288 + static struct qcom_icc_node * const camnoc_virt_nodes[] = { 1671 289 [MASTER_CAMNOC_HF0_UNCOMP] = &mas_qxm_camnoc_hf0_uncomp, 1672 290 [MASTER_CAMNOC_HF1_UNCOMP] = &mas_qxm_camnoc_hf1_uncomp, 1673 291 [MASTER_CAMNOC_SF_UNCOMP] = &mas_qxm_camnoc_sf_uncomp, 1674 292 [SLAVE_CAMNOC_UNCOMP] = &slv_qns_camnoc_uncomp, 1675 293 }; 1676 294 1677 - static struct qcom_icc_node *compute_noc_nodes[] = { 295 + static struct qcom_icc_node * const compute_noc_nodes[] = { 1678 296 [MASTER_NPU] = &mas_qnm_npu, 1679 297 [SLAVE_CDSP_MEM_NOC] = &slv_qns_cdsp_mem_noc, 1680 298 }; 1681 299 1682 - static struct qcom_icc_node *config_noc_nodes[] = { 300 + static struct qcom_icc_node * const config_noc_nodes[] = { 1683 301 [SNOC_CNOC_MAS] = &mas_qnm_snoc, 1684 302 [SLAVE_A1NOC_CFG] = &slv_qhs_a1_noc_cfg, 1685 303 [SLAVE_A2NOC_CFG] = &slv_qhs_a2_noc_cfg, ··· 1739 357 [SLAVE_SERVICE_CNOC] = &slv_srvc_cnoc, 1740 358 }; 1741 359 1742 - static struct qcom_icc_node *dc_noc_nodes[] = { 360 + static struct qcom_icc_node * const dc_noc_nodes[] = { 1743 361 [MASTER_CNOC_DC_NOC] = &mas_qhm_cnoc_dc_noc, 1744 362 [SLAVE_GEM_NOC_CFG] = &slv_qhs_gemnoc, 1745 363 [SLAVE_LLCC_CFG] = &slv_qhs_llcc, 1746 364 }; 1747 365 1748 - static struct qcom_icc_node *gem_noc_nodes[] = { 366 + static struct qcom_icc_node * const gem_noc_nodes[] = { 1749 367 [MASTER_AMPSS_M0] = &mas_acm_apps, 1750 368 [MASTER_GPU_TCU] = &mas_acm_gpu_tcu, 1751 369 [MASTER_SYS_TCU] = &mas_acm_sys_tcu, ··· 1766 384 [SLAVE_SERVICE_GEM_NOC_1] = &slv_srvc_gemnoc1, 1767 385 }; 1768 386 1769 - static struct qcom_icc_node *ipa_virt_nodes[] = { 387 + static struct qcom_icc_node * const ipa_virt_nodes[] = { 1770 388 [MASTER_IPA_CORE] = &mas_ipa_core_master, 1771 389 [SLAVE_IPA_CORE] = &slv_ipa_core_slave, 1772 390 }; 1773 391 1774 - static struct qcom_icc_node *mc_virt_nodes[] = { 392 + static struct qcom_icc_node * const mc_virt_nodes[] = { 1775 393 [MASTER_LLCC] = &mas_llcc_mc, 1776 394 [SLAVE_EBI_CH0] = &slv_ebi, 1777 395 }; 1778 396 1779 - static struct qcom_icc_node *mmss_noc_nodes[] = { 397 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 1780 398 [MASTER_CNOC_MNOC_CFG] = &mas_qhm_mnoc_cfg, 1781 399 [MASTER_CAMNOC_HF0] = &mas_qxm_camnoc_hf0, 1782 400 [MASTER_CAMNOC_HF1] = &mas_qxm_camnoc_hf1, ··· 1792 410 [SLAVE_SERVICE_MNOC] = &slv_srvc_mnoc, 1793 411 }; 1794 412 1795 - static struct qcom_icc_node *system_noc_nodes[] = { 413 + static struct qcom_icc_node * const system_noc_nodes[] = { 1796 414 [MASTER_SNOC_CFG] = &mas_qhm_snoc_cfg, 1797 415 [A1NOC_SNOC_MAS] = &mas_qnm_aggre1_noc, 1798 416 [A2NOC_SNOC_MAS] = &mas_qnm_aggre2_noc, ··· 1885 503 .num_bcms = ARRAY_SIZE(system_noc_bcms), 1886 504 }; 1887 505 1888 - static int qnoc_probe(struct platform_device *pdev) 1889 - { 1890 - const struct qcom_icc_desc *desc; 1891 - struct icc_onecell_data *data; 1892 - struct icc_provider *provider; 1893 - struct qcom_icc_node **qnodes; 1894 - struct qcom_icc_provider *qp; 1895 - struct icc_node *node; 1896 - size_t num_nodes, i; 1897 - int ret; 506 + static struct qcom_icc_bcm * const qup_virt_bcms[] = { 507 + &bcm_qup0, 508 + }; 1898 509 1899 - desc = device_get_match_data(&pdev->dev); 1900 - if (!desc) 1901 - return -EINVAL; 510 + static struct qcom_icc_node *qup_virt_nodes[] = { 511 + [MASTER_QUP_CORE_0] = &mas_qup_core_0, 512 + [MASTER_QUP_CORE_1] = &mas_qup_core_1, 513 + [MASTER_QUP_CORE_2] = &mas_qup_core_2, 514 + [SLAVE_QUP_CORE_0] = &slv_qup_core_0, 515 + [SLAVE_QUP_CORE_1] = &slv_qup_core_1, 516 + [SLAVE_QUP_CORE_2] = &slv_qup_core_2, 517 + }; 1902 518 1903 - qnodes = desc->nodes; 1904 - num_nodes = desc->num_nodes; 1905 - 1906 - qp = devm_kzalloc(&pdev->dev, sizeof(*qp), GFP_KERNEL); 1907 - if (!qp) 1908 - return -ENOMEM; 1909 - 1910 - data = devm_kcalloc(&pdev->dev, num_nodes, sizeof(*node), GFP_KERNEL); 1911 - if (!data) 1912 - return -ENOMEM; 1913 - 1914 - provider = &qp->provider; 1915 - provider->dev = &pdev->dev; 1916 - provider->set = qcom_icc_set; 1917 - provider->pre_aggregate = qcom_icc_pre_aggregate; 1918 - provider->aggregate = qcom_icc_aggregate; 1919 - provider->xlate = of_icc_xlate_onecell; 1920 - INIT_LIST_HEAD(&provider->nodes); 1921 - provider->data = data; 1922 - 1923 - qp->dev = &pdev->dev; 1924 - qp->bcms = desc->bcms; 1925 - qp->num_bcms = desc->num_bcms; 1926 - 1927 - qp->voter = of_bcm_voter_get(qp->dev, NULL); 1928 - if (IS_ERR(qp->voter)) 1929 - return PTR_ERR(qp->voter); 1930 - 1931 - ret = icc_provider_add(provider); 1932 - if (ret) { 1933 - dev_err(&pdev->dev, "error adding interconnect provider\n"); 1934 - return ret; 1935 - } 1936 - 1937 - for (i = 0; i < qp->num_bcms; i++) 1938 - qcom_icc_bcm_init(qp->bcms[i], &pdev->dev); 1939 - 1940 - for (i = 0; i < num_nodes; i++) { 1941 - size_t j; 1942 - 1943 - if (!qnodes[i]) 1944 - continue; 1945 - 1946 - node = icc_node_create(qnodes[i]->id); 1947 - if (IS_ERR(node)) { 1948 - ret = PTR_ERR(node); 1949 - goto err; 1950 - } 1951 - 1952 - node->name = qnodes[i]->name; 1953 - node->data = qnodes[i]; 1954 - icc_node_add(node, provider); 1955 - 1956 - for (j = 0; j < qnodes[i]->num_links; j++) 1957 - icc_link_create(node, qnodes[i]->links[j]); 1958 - 1959 - data->nodes[i] = node; 1960 - } 1961 - data->num_nodes = num_nodes; 1962 - 1963 - platform_set_drvdata(pdev, qp); 1964 - 1965 - return 0; 1966 - err: 1967 - icc_nodes_remove(provider); 1968 - icc_provider_del(provider); 1969 - return ret; 1970 - } 1971 - 1972 - static int qnoc_remove(struct platform_device *pdev) 1973 - { 1974 - struct qcom_icc_provider *qp = platform_get_drvdata(pdev); 1975 - 1976 - icc_nodes_remove(&qp->provider); 1977 - return icc_provider_del(&qp->provider); 1978 - } 519 + static const struct qcom_icc_desc sc8180x_qup_virt = { 520 + .nodes = qup_virt_nodes, 521 + .num_nodes = ARRAY_SIZE(qup_virt_nodes), 522 + .bcms = qup_virt_bcms, 523 + .num_bcms = ARRAY_SIZE(qup_virt_bcms), 524 + }; 1979 525 1980 526 static const struct of_device_id qnoc_of_match[] = { 1981 527 { .compatible = "qcom,sc8180x-aggre1-noc", .data = &sc8180x_aggre1_noc }, ··· 1916 606 { .compatible = "qcom,sc8180x-ipa-virt", .data = &sc8180x_ipa_virt }, 1917 607 { .compatible = "qcom,sc8180x-mc-virt", .data = &sc8180x_mc_virt }, 1918 608 { .compatible = "qcom,sc8180x-mmss-noc", .data = &sc8180x_mmss_noc }, 609 + { .compatible = "qcom,sc8180x-qup-virt", .data = &sc8180x_qup_virt }, 1919 610 { .compatible = "qcom,sc8180x-system-noc", .data = &sc8180x_system_noc }, 1920 611 { } 1921 612 }; 1922 613 MODULE_DEVICE_TABLE(of, qnoc_of_match); 1923 614 1924 615 static struct platform_driver qnoc_driver = { 1925 - .probe = qnoc_probe, 1926 - .remove = qnoc_remove, 616 + .probe = qcom_icc_rpmh_probe, 617 + .remove = qcom_icc_rpmh_remove, 1927 618 .driver = { 1928 619 .name = "qnoc-sc8180x", 1929 620 .of_match_table = qnoc_of_match,
+7
drivers/interconnect/qcom/sc8180x.h
··· 171 171 #define SC8180X_MASTER_OSM_L3_APPS 161 172 172 #define SC8180X_SLAVE_OSM_L3 162 173 173 174 + #define SC8180X_MASTER_QUP_CORE_0 163 175 + #define SC8180X_MASTER_QUP_CORE_1 164 176 + #define SC8180X_MASTER_QUP_CORE_2 165 177 + #define SC8180X_SLAVE_QUP_CORE_0 166 178 + #define SC8180X_SLAVE_QUP_CORE_1 167 179 + #define SC8180X_SLAVE_QUP_CORE_2 168 180 + 174 181 #endif
+2438
drivers/interconnect/qcom/sc8280xp.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4 + * Copyright (c) 2022, Linaro Ltd 5 + */ 6 + 7 + #include <linux/device.h> 8 + #include <linux/interconnect.h> 9 + #include <linux/interconnect-provider.h> 10 + #include <linux/module.h> 11 + #include <linux/of_platform.h> 12 + #include <dt-bindings/interconnect/qcom,sc8280xp.h> 13 + 14 + #include "bcm-voter.h" 15 + #include "icc-rpmh.h" 16 + #include "sc8280xp.h" 17 + 18 + static struct qcom_icc_node qhm_qspi = { 19 + .name = "qhm_qspi", 20 + .id = SC8280XP_MASTER_QSPI_0, 21 + .channels = 1, 22 + .buswidth = 4, 23 + .num_links = 1, 24 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 25 + }; 26 + 27 + static struct qcom_icc_node qhm_qup1 = { 28 + .name = "qhm_qup1", 29 + .id = SC8280XP_MASTER_QUP_1, 30 + .channels = 1, 31 + .buswidth = 4, 32 + .num_links = 1, 33 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 34 + }; 35 + 36 + static struct qcom_icc_node qhm_qup2 = { 37 + .name = "qhm_qup2", 38 + .id = SC8280XP_MASTER_QUP_2, 39 + .channels = 1, 40 + .buswidth = 4, 41 + .num_links = 1, 42 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 43 + }; 44 + 45 + static struct qcom_icc_node qnm_a1noc_cfg = { 46 + .name = "qnm_a1noc_cfg", 47 + .id = SC8280XP_MASTER_A1NOC_CFG, 48 + .channels = 1, 49 + .buswidth = 4, 50 + .links = { SC8280XP_SLAVE_SERVICE_A1NOC }, 51 + }; 52 + 53 + static struct qcom_icc_node qxm_ipa = { 54 + .name = "qxm_ipa", 55 + .id = SC8280XP_MASTER_IPA, 56 + .channels = 1, 57 + .buswidth = 8, 58 + .num_links = 1, 59 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 60 + }; 61 + 62 + static struct qcom_icc_node xm_emac_1 = { 63 + .name = "xm_emac_1", 64 + .id = SC8280XP_MASTER_EMAC_1, 65 + .channels = 1, 66 + .buswidth = 8, 67 + .num_links = 1, 68 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 69 + }; 70 + 71 + static struct qcom_icc_node xm_sdc4 = { 72 + .name = "xm_sdc4", 73 + .id = SC8280XP_MASTER_SDCC_4, 74 + .channels = 1, 75 + .buswidth = 8, 76 + .num_links = 1, 77 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 78 + }; 79 + 80 + static struct qcom_icc_node xm_ufs_mem = { 81 + .name = "xm_ufs_mem", 82 + .id = SC8280XP_MASTER_UFS_MEM, 83 + .channels = 1, 84 + .buswidth = 8, 85 + .num_links = 1, 86 + .links = { SC8280XP_SLAVE_A1NOC_SNOC }, 87 + }; 88 + 89 + static struct qcom_icc_node xm_usb3_0 = { 90 + .name = "xm_usb3_0", 91 + .id = SC8280XP_MASTER_USB3_0, 92 + .channels = 1, 93 + .buswidth = 8, 94 + .num_links = 1, 95 + .links = { SC8280XP_SLAVE_USB_NOC_SNOC }, 96 + }; 97 + 98 + static struct qcom_icc_node xm_usb3_1 = { 99 + .name = "xm_usb3_1", 100 + .id = SC8280XP_MASTER_USB3_1, 101 + .channels = 1, 102 + .buswidth = 8, 103 + .num_links = 1, 104 + .links = { SC8280XP_SLAVE_USB_NOC_SNOC }, 105 + }; 106 + 107 + static struct qcom_icc_node xm_usb3_mp = { 108 + .name = "xm_usb3_mp", 109 + .id = SC8280XP_MASTER_USB3_MP, 110 + .channels = 1, 111 + .buswidth = 16, 112 + .num_links = 1, 113 + .links = { SC8280XP_SLAVE_USB_NOC_SNOC }, 114 + }; 115 + 116 + static struct qcom_icc_node xm_usb4_host0 = { 117 + .name = "xm_usb4_host0", 118 + .id = SC8280XP_MASTER_USB4_0, 119 + .channels = 1, 120 + .buswidth = 16, 121 + .num_links = 1, 122 + .links = { SC8280XP_SLAVE_USB_NOC_SNOC }, 123 + }; 124 + 125 + static struct qcom_icc_node xm_usb4_host1 = { 126 + .name = "xm_usb4_host1", 127 + .id = SC8280XP_MASTER_USB4_1, 128 + .channels = 1, 129 + .buswidth = 16, 130 + .num_links = 1, 131 + .links = { SC8280XP_SLAVE_USB_NOC_SNOC }, 132 + }; 133 + 134 + static struct qcom_icc_node qhm_qdss_bam = { 135 + .name = "qhm_qdss_bam", 136 + .id = SC8280XP_MASTER_QDSS_BAM, 137 + .channels = 1, 138 + .buswidth = 4, 139 + .num_links = 1, 140 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 141 + }; 142 + 143 + static struct qcom_icc_node qhm_qup0 = { 144 + .name = "qhm_qup0", 145 + .id = SC8280XP_MASTER_QUP_0, 146 + .channels = 1, 147 + .buswidth = 4, 148 + .num_links = 1, 149 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 150 + }; 151 + 152 + static struct qcom_icc_node qnm_a2noc_cfg = { 153 + .name = "qnm_a2noc_cfg", 154 + .id = SC8280XP_MASTER_A2NOC_CFG, 155 + .channels = 1, 156 + .buswidth = 4, 157 + .num_links = 1, 158 + .links = { SC8280XP_SLAVE_SERVICE_A2NOC }, 159 + }; 160 + 161 + static struct qcom_icc_node qxm_crypto = { 162 + .name = "qxm_crypto", 163 + .id = SC8280XP_MASTER_CRYPTO, 164 + .channels = 1, 165 + .buswidth = 8, 166 + .num_links = 1, 167 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 168 + }; 169 + 170 + static struct qcom_icc_node qxm_sensorss_q6 = { 171 + .name = "qxm_sensorss_q6", 172 + .id = SC8280XP_MASTER_SENSORS_PROC, 173 + .channels = 1, 174 + .buswidth = 8, 175 + .num_links = 1, 176 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 177 + }; 178 + 179 + static struct qcom_icc_node qxm_sp = { 180 + .name = "qxm_sp", 181 + .id = SC8280XP_MASTER_SP, 182 + .channels = 1, 183 + .buswidth = 8, 184 + .num_links = 1, 185 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 186 + }; 187 + 188 + static struct qcom_icc_node xm_emac_0 = { 189 + .name = "xm_emac_0", 190 + .id = SC8280XP_MASTER_EMAC, 191 + .channels = 1, 192 + .buswidth = 8, 193 + .num_links = 1, 194 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 195 + }; 196 + 197 + static struct qcom_icc_node xm_pcie3_0 = { 198 + .name = "xm_pcie3_0", 199 + .id = SC8280XP_MASTER_PCIE_0, 200 + .channels = 1, 201 + .buswidth = 16, 202 + .num_links = 1, 203 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 204 + }; 205 + 206 + static struct qcom_icc_node xm_pcie3_1 = { 207 + .name = "xm_pcie3_1", 208 + .id = SC8280XP_MASTER_PCIE_1, 209 + .channels = 1, 210 + .buswidth = 16, 211 + .num_links = 1, 212 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 213 + }; 214 + 215 + static struct qcom_icc_node xm_pcie3_2a = { 216 + .name = "xm_pcie3_2a", 217 + .id = SC8280XP_MASTER_PCIE_2A, 218 + .channels = 1, 219 + .buswidth = 16, 220 + .num_links = 1, 221 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 222 + }; 223 + 224 + static struct qcom_icc_node xm_pcie3_2b = { 225 + .name = "xm_pcie3_2b", 226 + .id = SC8280XP_MASTER_PCIE_2B, 227 + .channels = 1, 228 + .buswidth = 8, 229 + .num_links = 1, 230 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 231 + }; 232 + 233 + static struct qcom_icc_node xm_pcie3_3a = { 234 + .name = "xm_pcie3_3a", 235 + .id = SC8280XP_MASTER_PCIE_3A, 236 + .channels = 1, 237 + .buswidth = 16, 238 + .num_links = 1, 239 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 240 + }; 241 + 242 + static struct qcom_icc_node xm_pcie3_3b = { 243 + .name = "xm_pcie3_3b", 244 + .id = SC8280XP_MASTER_PCIE_3B, 245 + .channels = 1, 246 + .buswidth = 8, 247 + .num_links = 1, 248 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 249 + }; 250 + 251 + static struct qcom_icc_node xm_pcie3_4 = { 252 + .name = "xm_pcie3_4", 253 + .id = SC8280XP_MASTER_PCIE_4, 254 + .channels = 1, 255 + .buswidth = 8, 256 + .num_links = 1, 257 + .links = { SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC }, 258 + }; 259 + 260 + static struct qcom_icc_node xm_qdss_etr = { 261 + .name = "xm_qdss_etr", 262 + .id = SC8280XP_MASTER_QDSS_ETR, 263 + .channels = 1, 264 + .buswidth = 8, 265 + .num_links = 1, 266 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 267 + }; 268 + 269 + static struct qcom_icc_node xm_sdc2 = { 270 + .name = "xm_sdc2", 271 + .id = SC8280XP_MASTER_SDCC_2, 272 + .channels = 1, 273 + .buswidth = 8, 274 + .num_links = 1, 275 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 276 + }; 277 + 278 + static struct qcom_icc_node xm_ufs_card = { 279 + .name = "xm_ufs_card", 280 + .id = SC8280XP_MASTER_UFS_CARD, 281 + .channels = 1, 282 + .buswidth = 8, 283 + .num_links = 1, 284 + .links = { SC8280XP_SLAVE_A2NOC_SNOC }, 285 + }; 286 + 287 + static struct qcom_icc_node ipa_core_master = { 288 + .name = "ipa_core_master", 289 + .id = SC8280XP_MASTER_IPA_CORE, 290 + .channels = 1, 291 + .buswidth = 8, 292 + .num_links = 1, 293 + .links = { SC8280XP_SLAVE_IPA_CORE }, 294 + }; 295 + 296 + static struct qcom_icc_node qup0_core_master = { 297 + .name = "qup0_core_master", 298 + .id = SC8280XP_MASTER_QUP_CORE_0, 299 + .channels = 1, 300 + .buswidth = 4, 301 + .num_links = 1, 302 + .links = { SC8280XP_SLAVE_QUP_CORE_0 }, 303 + }; 304 + 305 + static struct qcom_icc_node qup1_core_master = { 306 + .name = "qup1_core_master", 307 + .id = SC8280XP_MASTER_QUP_CORE_1, 308 + .channels = 1, 309 + .buswidth = 4, 310 + .num_links = 1, 311 + .links = { SC8280XP_SLAVE_QUP_CORE_1 }, 312 + }; 313 + 314 + static struct qcom_icc_node qup2_core_master = { 315 + .name = "qup2_core_master", 316 + .id = SC8280XP_MASTER_QUP_CORE_2, 317 + .channels = 1, 318 + .buswidth = 4, 319 + .num_links = 1, 320 + .links = { SC8280XP_SLAVE_QUP_CORE_2 }, 321 + }; 322 + 323 + static struct qcom_icc_node qnm_gemnoc_cnoc = { 324 + .name = "qnm_gemnoc_cnoc", 325 + .id = SC8280XP_MASTER_GEM_NOC_CNOC, 326 + .channels = 1, 327 + .buswidth = 16, 328 + .num_links = 76, 329 + .links = { SC8280XP_SLAVE_AHB2PHY_0, 330 + SC8280XP_SLAVE_AHB2PHY_1, 331 + SC8280XP_SLAVE_AHB2PHY_2, 332 + SC8280XP_SLAVE_AOSS, 333 + SC8280XP_SLAVE_APPSS, 334 + SC8280XP_SLAVE_CAMERA_CFG, 335 + SC8280XP_SLAVE_CLK_CTL, 336 + SC8280XP_SLAVE_CDSP_CFG, 337 + SC8280XP_SLAVE_CDSP1_CFG, 338 + SC8280XP_SLAVE_RBCPR_CX_CFG, 339 + SC8280XP_SLAVE_RBCPR_MMCX_CFG, 340 + SC8280XP_SLAVE_RBCPR_MX_CFG, 341 + SC8280XP_SLAVE_CPR_NSPCX, 342 + SC8280XP_SLAVE_CRYPTO_0_CFG, 343 + SC8280XP_SLAVE_CX_RDPM, 344 + SC8280XP_SLAVE_DCC_CFG, 345 + SC8280XP_SLAVE_DISPLAY_CFG, 346 + SC8280XP_SLAVE_DISPLAY1_CFG, 347 + SC8280XP_SLAVE_EMAC_CFG, 348 + SC8280XP_SLAVE_EMAC1_CFG, 349 + SC8280XP_SLAVE_GFX3D_CFG, 350 + SC8280XP_SLAVE_HWKM, 351 + SC8280XP_SLAVE_IMEM_CFG, 352 + SC8280XP_SLAVE_IPA_CFG, 353 + SC8280XP_SLAVE_IPC_ROUTER_CFG, 354 + SC8280XP_SLAVE_LPASS, 355 + SC8280XP_SLAVE_MX_RDPM, 356 + SC8280XP_SLAVE_MXC_RDPM, 357 + SC8280XP_SLAVE_PCIE_0_CFG, 358 + SC8280XP_SLAVE_PCIE_1_CFG, 359 + SC8280XP_SLAVE_PCIE_2A_CFG, 360 + SC8280XP_SLAVE_PCIE_2B_CFG, 361 + SC8280XP_SLAVE_PCIE_3A_CFG, 362 + SC8280XP_SLAVE_PCIE_3B_CFG, 363 + SC8280XP_SLAVE_PCIE_4_CFG, 364 + SC8280XP_SLAVE_PCIE_RSC_CFG, 365 + SC8280XP_SLAVE_PDM, 366 + SC8280XP_SLAVE_PIMEM_CFG, 367 + SC8280XP_SLAVE_PKA_WRAPPER_CFG, 368 + SC8280XP_SLAVE_PMU_WRAPPER_CFG, 369 + SC8280XP_SLAVE_QDSS_CFG, 370 + SC8280XP_SLAVE_QSPI_0, 371 + SC8280XP_SLAVE_QUP_0, 372 + SC8280XP_SLAVE_QUP_1, 373 + SC8280XP_SLAVE_QUP_2, 374 + SC8280XP_SLAVE_SDCC_2, 375 + SC8280XP_SLAVE_SDCC_4, 376 + SC8280XP_SLAVE_SECURITY, 377 + SC8280XP_SLAVE_SMMUV3_CFG, 378 + SC8280XP_SLAVE_SMSS_CFG, 379 + SC8280XP_SLAVE_SPSS_CFG, 380 + SC8280XP_SLAVE_TCSR, 381 + SC8280XP_SLAVE_TLMM, 382 + SC8280XP_SLAVE_UFS_CARD_CFG, 383 + SC8280XP_SLAVE_UFS_MEM_CFG, 384 + SC8280XP_SLAVE_USB3_0, 385 + SC8280XP_SLAVE_USB3_1, 386 + SC8280XP_SLAVE_USB3_MP, 387 + SC8280XP_SLAVE_USB4_0, 388 + SC8280XP_SLAVE_USB4_1, 389 + SC8280XP_SLAVE_VENUS_CFG, 390 + SC8280XP_SLAVE_VSENSE_CTRL_CFG, 391 + SC8280XP_SLAVE_VSENSE_CTRL_R_CFG, 392 + SC8280XP_SLAVE_A1NOC_CFG, 393 + SC8280XP_SLAVE_A2NOC_CFG, 394 + SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG, 395 + SC8280XP_SLAVE_DDRSS_CFG, 396 + SC8280XP_SLAVE_CNOC_MNOC_CFG, 397 + SC8280XP_SLAVE_SNOC_CFG, 398 + SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG, 399 + SC8280XP_SLAVE_IMEM, 400 + SC8280XP_SLAVE_PIMEM, 401 + SC8280XP_SLAVE_SERVICE_CNOC, 402 + SC8280XP_SLAVE_QDSS_STM, 403 + SC8280XP_SLAVE_SMSS, 404 + SC8280XP_SLAVE_TCU 405 + }, 406 + }; 407 + 408 + static struct qcom_icc_node qnm_gemnoc_pcie = { 409 + .name = "qnm_gemnoc_pcie", 410 + .id = SC8280XP_MASTER_GEM_NOC_PCIE_SNOC, 411 + .channels = 1, 412 + .buswidth = 16, 413 + .num_links = 7, 414 + .links = { SC8280XP_SLAVE_PCIE_0, 415 + SC8280XP_SLAVE_PCIE_1, 416 + SC8280XP_SLAVE_PCIE_2A, 417 + SC8280XP_SLAVE_PCIE_2B, 418 + SC8280XP_SLAVE_PCIE_3A, 419 + SC8280XP_SLAVE_PCIE_3B, 420 + SC8280XP_SLAVE_PCIE_4 421 + }, 422 + }; 423 + 424 + static struct qcom_icc_node qnm_cnoc_dc_noc = { 425 + .name = "qnm_cnoc_dc_noc", 426 + .id = SC8280XP_MASTER_CNOC_DC_NOC, 427 + .channels = 1, 428 + .buswidth = 4, 429 + .num_links = 2, 430 + .links = { SC8280XP_SLAVE_LLCC_CFG, 431 + SC8280XP_SLAVE_GEM_NOC_CFG 432 + }, 433 + }; 434 + 435 + static struct qcom_icc_node alm_gpu_tcu = { 436 + .name = "alm_gpu_tcu", 437 + .id = SC8280XP_MASTER_GPU_TCU, 438 + .channels = 1, 439 + .buswidth = 8, 440 + .num_links = 2, 441 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 442 + SC8280XP_SLAVE_LLCC 443 + }, 444 + }; 445 + 446 + static struct qcom_icc_node alm_pcie_tcu = { 447 + .name = "alm_pcie_tcu", 448 + .id = SC8280XP_MASTER_PCIE_TCU, 449 + .channels = 1, 450 + .buswidth = 8, 451 + .num_links = 2, 452 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 453 + SC8280XP_SLAVE_LLCC 454 + }, 455 + }; 456 + 457 + static struct qcom_icc_node alm_sys_tcu = { 458 + .name = "alm_sys_tcu", 459 + .id = SC8280XP_MASTER_SYS_TCU, 460 + .channels = 1, 461 + .buswidth = 8, 462 + .num_links = 2, 463 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 464 + SC8280XP_SLAVE_LLCC 465 + }, 466 + }; 467 + 468 + static struct qcom_icc_node chm_apps = { 469 + .name = "chm_apps", 470 + .id = SC8280XP_MASTER_APPSS_PROC, 471 + .channels = 2, 472 + .buswidth = 32, 473 + .num_links = 3, 474 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 475 + SC8280XP_SLAVE_LLCC, 476 + SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC 477 + }, 478 + }; 479 + 480 + static struct qcom_icc_node qnm_cmpnoc0 = { 481 + .name = "qnm_cmpnoc0", 482 + .id = SC8280XP_MASTER_COMPUTE_NOC, 483 + .channels = 2, 484 + .buswidth = 32, 485 + .num_links = 2, 486 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 487 + SC8280XP_SLAVE_LLCC 488 + }, 489 + }; 490 + 491 + static struct qcom_icc_node qnm_cmpnoc1 = { 492 + .name = "qnm_cmpnoc1", 493 + .id = SC8280XP_MASTER_COMPUTE_NOC_1, 494 + .channels = 2, 495 + .buswidth = 32, 496 + .num_links = 2, 497 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 498 + SC8280XP_SLAVE_LLCC 499 + }, 500 + }; 501 + 502 + static struct qcom_icc_node qnm_gemnoc_cfg = { 503 + .name = "qnm_gemnoc_cfg", 504 + .id = SC8280XP_MASTER_GEM_NOC_CFG, 505 + .channels = 1, 506 + .buswidth = 4, 507 + .num_links = 3, 508 + .links = { SC8280XP_SLAVE_SERVICE_GEM_NOC_1, 509 + SC8280XP_SLAVE_SERVICE_GEM_NOC_2, 510 + SC8280XP_SLAVE_SERVICE_GEM_NOC 511 + }, 512 + }; 513 + 514 + static struct qcom_icc_node qnm_gpu = { 515 + .name = "qnm_gpu", 516 + .id = SC8280XP_MASTER_GFX3D, 517 + .channels = 4, 518 + .buswidth = 32, 519 + .num_links = 2, 520 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 521 + SC8280XP_SLAVE_LLCC 522 + }, 523 + }; 524 + 525 + static struct qcom_icc_node qnm_mnoc_hf = { 526 + .name = "qnm_mnoc_hf", 527 + .id = SC8280XP_MASTER_MNOC_HF_MEM_NOC, 528 + .channels = 2, 529 + .buswidth = 32, 530 + .num_links = 2, 531 + .links = { SC8280XP_SLAVE_LLCC, 532 + SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC 533 + }, 534 + }; 535 + 536 + static struct qcom_icc_node qnm_mnoc_sf = { 537 + .name = "qnm_mnoc_sf", 538 + .id = SC8280XP_MASTER_MNOC_SF_MEM_NOC, 539 + .channels = 2, 540 + .buswidth = 32, 541 + .num_links = 2, 542 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 543 + SC8280XP_SLAVE_LLCC 544 + }, 545 + }; 546 + 547 + static struct qcom_icc_node qnm_pcie = { 548 + .name = "qnm_pcie", 549 + .id = SC8280XP_MASTER_ANOC_PCIE_GEM_NOC, 550 + .channels = 1, 551 + .buswidth = 32, 552 + .num_links = 2, 553 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 554 + SC8280XP_SLAVE_LLCC 555 + }, 556 + }; 557 + 558 + static struct qcom_icc_node qnm_snoc_gc = { 559 + .name = "qnm_snoc_gc", 560 + .id = SC8280XP_MASTER_SNOC_GC_MEM_NOC, 561 + .channels = 1, 562 + .buswidth = 8, 563 + .num_links = 1, 564 + .links = { SC8280XP_SLAVE_LLCC }, 565 + }; 566 + 567 + static struct qcom_icc_node qnm_snoc_sf = { 568 + .name = "qnm_snoc_sf", 569 + .id = SC8280XP_MASTER_SNOC_SF_MEM_NOC, 570 + .channels = 1, 571 + .buswidth = 16, 572 + .num_links = 3, 573 + .links = { SC8280XP_SLAVE_GEM_NOC_CNOC, 574 + SC8280XP_SLAVE_LLCC, 575 + SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC }, 576 + }; 577 + 578 + static struct qcom_icc_node qhm_config_noc = { 579 + .name = "qhm_config_noc", 580 + .id = SC8280XP_MASTER_CNOC_LPASS_AG_NOC, 581 + .channels = 1, 582 + .buswidth = 4, 583 + .num_links = 6, 584 + .links = { SC8280XP_SLAVE_LPASS_CORE_CFG, 585 + SC8280XP_SLAVE_LPASS_LPI_CFG, 586 + SC8280XP_SLAVE_LPASS_MPU_CFG, 587 + SC8280XP_SLAVE_LPASS_TOP_CFG, 588 + SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC, 589 + SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC 590 + }, 591 + }; 592 + 593 + static struct qcom_icc_node qxm_lpass_dsp = { 594 + .name = "qxm_lpass_dsp", 595 + .id = SC8280XP_MASTER_LPASS_PROC, 596 + .channels = 1, 597 + .buswidth = 8, 598 + .num_links = 4, 599 + .links = { SC8280XP_SLAVE_LPASS_TOP_CFG, 600 + SC8280XP_SLAVE_LPASS_SNOC, 601 + SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC, 602 + SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC 603 + }, 604 + }; 605 + 606 + static struct qcom_icc_node llcc_mc = { 607 + .name = "llcc_mc", 608 + .id = SC8280XP_MASTER_LLCC, 609 + .channels = 8, 610 + .buswidth = 4, 611 + .num_links = 1, 612 + .links = { SC8280XP_SLAVE_EBI1 }, 613 + }; 614 + 615 + static struct qcom_icc_node qnm_camnoc_hf = { 616 + .name = "qnm_camnoc_hf", 617 + .id = SC8280XP_MASTER_CAMNOC_HF, 618 + .channels = 2, 619 + .buswidth = 32, 620 + .num_links = 1, 621 + .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC }, 622 + }; 623 + 624 + static struct qcom_icc_node qnm_mdp0_0 = { 625 + .name = "qnm_mdp0_0", 626 + .id = SC8280XP_MASTER_MDP0, 627 + .channels = 1, 628 + .buswidth = 32, 629 + .num_links = 1, 630 + .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC }, 631 + }; 632 + 633 + static struct qcom_icc_node qnm_mdp0_1 = { 634 + .name = "qnm_mdp0_1", 635 + .id = SC8280XP_MASTER_MDP1, 636 + .channels = 1, 637 + .buswidth = 32, 638 + .num_links = 1, 639 + .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC }, 640 + }; 641 + 642 + static struct qcom_icc_node qnm_mdp1_0 = { 643 + .name = "qnm_mdp1_0", 644 + .id = SC8280XP_MASTER_MDP_CORE1_0, 645 + .channels = 1, 646 + .buswidth = 32, 647 + .num_links = 1, 648 + .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC }, 649 + }; 650 + 651 + static struct qcom_icc_node qnm_mdp1_1 = { 652 + .name = "qnm_mdp1_1", 653 + .id = SC8280XP_MASTER_MDP_CORE1_1, 654 + .channels = 1, 655 + .buswidth = 32, 656 + .num_links = 1, 657 + .links = { SC8280XP_SLAVE_MNOC_HF_MEM_NOC }, 658 + }; 659 + 660 + static struct qcom_icc_node qnm_mnoc_cfg = { 661 + .name = "qnm_mnoc_cfg", 662 + .id = SC8280XP_MASTER_CNOC_MNOC_CFG, 663 + .channels = 1, 664 + .buswidth = 4, 665 + .num_links = 1, 666 + .links = { SC8280XP_SLAVE_SERVICE_MNOC }, 667 + }; 668 + 669 + static struct qcom_icc_node qnm_rot_0 = { 670 + .name = "qnm_rot_0", 671 + .id = SC8280XP_MASTER_ROTATOR, 672 + .channels = 1, 673 + .buswidth = 32, 674 + .num_links = 1, 675 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 676 + }; 677 + 678 + static struct qcom_icc_node qnm_rot_1 = { 679 + .name = "qnm_rot_1", 680 + .id = SC8280XP_MASTER_ROTATOR_1, 681 + .channels = 1, 682 + .buswidth = 32, 683 + .num_links = 1, 684 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 685 + }; 686 + 687 + static struct qcom_icc_node qnm_video0 = { 688 + .name = "qnm_video0", 689 + .id = SC8280XP_MASTER_VIDEO_P0, 690 + .channels = 1, 691 + .buswidth = 32, 692 + .num_links = 1, 693 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 694 + }; 695 + 696 + static struct qcom_icc_node qnm_video1 = { 697 + .name = "qnm_video1", 698 + .id = SC8280XP_MASTER_VIDEO_P1, 699 + .channels = 1, 700 + .buswidth = 32, 701 + .num_links = 1, 702 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 703 + }; 704 + 705 + static struct qcom_icc_node qnm_video_cvp = { 706 + .name = "qnm_video_cvp", 707 + .id = SC8280XP_MASTER_VIDEO_PROC, 708 + .channels = 1, 709 + .buswidth = 32, 710 + .num_links = 1, 711 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 712 + }; 713 + 714 + static struct qcom_icc_node qxm_camnoc_icp = { 715 + .name = "qxm_camnoc_icp", 716 + .id = SC8280XP_MASTER_CAMNOC_ICP, 717 + .channels = 1, 718 + .buswidth = 8, 719 + .num_links = 1, 720 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 721 + }; 722 + 723 + static struct qcom_icc_node qxm_camnoc_sf = { 724 + .name = "qxm_camnoc_sf", 725 + .id = SC8280XP_MASTER_CAMNOC_SF, 726 + .channels = 1, 727 + .buswidth = 32, 728 + .num_links = 1, 729 + .links = { SC8280XP_SLAVE_MNOC_SF_MEM_NOC }, 730 + }; 731 + 732 + static struct qcom_icc_node qhm_nsp_noc_config = { 733 + .name = "qhm_nsp_noc_config", 734 + .id = SC8280XP_MASTER_CDSP_NOC_CFG, 735 + .channels = 1, 736 + .buswidth = 4, 737 + .num_links = 1, 738 + .links = { SC8280XP_SLAVE_SERVICE_NSP_NOC }, 739 + }; 740 + 741 + static struct qcom_icc_node qxm_nsp = { 742 + .name = "qxm_nsp", 743 + .id = SC8280XP_MASTER_CDSP_PROC, 744 + .channels = 2, 745 + .buswidth = 32, 746 + .num_links = 2, 747 + .links = { SC8280XP_SLAVE_CDSP_MEM_NOC, 748 + SC8280XP_SLAVE_NSP_XFR 749 + }, 750 + }; 751 + 752 + static struct qcom_icc_node qhm_nspb_noc_config = { 753 + .name = "qhm_nspb_noc_config", 754 + .id = SC8280XP_MASTER_CDSPB_NOC_CFG, 755 + .channels = 1, 756 + .buswidth = 4, 757 + .num_links = 1, 758 + .links = { SC8280XP_SLAVE_SERVICE_NSPB_NOC }, 759 + }; 760 + 761 + static struct qcom_icc_node qxm_nspb = { 762 + .name = "qxm_nspb", 763 + .id = SC8280XP_MASTER_CDSP_PROC_B, 764 + .channels = 2, 765 + .buswidth = 32, 766 + .num_links = 2, 767 + .links = { SC8280XP_SLAVE_CDSPB_MEM_NOC, 768 + SC8280XP_SLAVE_NSPB_XFR 769 + }, 770 + }; 771 + 772 + static struct qcom_icc_node qnm_aggre1_noc = { 773 + .name = "qnm_aggre1_noc", 774 + .id = SC8280XP_MASTER_A1NOC_SNOC, 775 + .channels = 1, 776 + .buswidth = 16, 777 + .num_links = 1, 778 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF }, 779 + }; 780 + 781 + static struct qcom_icc_node qnm_aggre2_noc = { 782 + .name = "qnm_aggre2_noc", 783 + .id = SC8280XP_MASTER_A2NOC_SNOC, 784 + .channels = 1, 785 + .buswidth = 16, 786 + .num_links = 1, 787 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF }, 788 + }; 789 + 790 + static struct qcom_icc_node qnm_aggre_usb_noc = { 791 + .name = "qnm_aggre_usb_noc", 792 + .id = SC8280XP_MASTER_USB_NOC_SNOC, 793 + .channels = 1, 794 + .buswidth = 16, 795 + .num_links = 1, 796 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF }, 797 + }; 798 + 799 + static struct qcom_icc_node qnm_lpass_noc = { 800 + .name = "qnm_lpass_noc", 801 + .id = SC8280XP_MASTER_LPASS_ANOC, 802 + .channels = 1, 803 + .buswidth = 16, 804 + .num_links = 1, 805 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_SF }, 806 + }; 807 + 808 + static struct qcom_icc_node qnm_snoc_cfg = { 809 + .name = "qnm_snoc_cfg", 810 + .id = SC8280XP_MASTER_SNOC_CFG, 811 + .channels = 1, 812 + .buswidth = 4, 813 + .num_links = 1, 814 + .links = { SC8280XP_SLAVE_SERVICE_SNOC }, 815 + }; 816 + 817 + static struct qcom_icc_node qxm_pimem = { 818 + .name = "qxm_pimem", 819 + .id = SC8280XP_MASTER_PIMEM, 820 + .channels = 1, 821 + .buswidth = 8, 822 + .num_links = 1, 823 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_GC }, 824 + }; 825 + 826 + static struct qcom_icc_node xm_gic = { 827 + .name = "xm_gic", 828 + .id = SC8280XP_MASTER_GIC, 829 + .channels = 1, 830 + .buswidth = 8, 831 + .num_links = 1, 832 + .links = { SC8280XP_SLAVE_SNOC_GEM_NOC_GC }, 833 + }; 834 + 835 + static struct qcom_icc_node qns_a1noc_snoc = { 836 + .name = "qns_a1noc_snoc", 837 + .id = SC8280XP_SLAVE_A1NOC_SNOC, 838 + .channels = 1, 839 + .buswidth = 16, 840 + .num_links = 1, 841 + .links = { SC8280XP_MASTER_A1NOC_SNOC }, 842 + }; 843 + 844 + static struct qcom_icc_node qns_aggre_usb_snoc = { 845 + .name = "qns_aggre_usb_snoc", 846 + .id = SC8280XP_SLAVE_USB_NOC_SNOC, 847 + .channels = 1, 848 + .buswidth = 16, 849 + .num_links = 1, 850 + .links = { SC8280XP_MASTER_USB_NOC_SNOC }, 851 + }; 852 + 853 + static struct qcom_icc_node srvc_aggre1_noc = { 854 + .name = "srvc_aggre1_noc", 855 + .id = SC8280XP_SLAVE_SERVICE_A1NOC, 856 + .channels = 1, 857 + .buswidth = 4, 858 + }; 859 + 860 + static struct qcom_icc_node qns_a2noc_snoc = { 861 + .name = "qns_a2noc_snoc", 862 + .id = SC8280XP_SLAVE_A2NOC_SNOC, 863 + .channels = 1, 864 + .buswidth = 16, 865 + .num_links = 1, 866 + .links = { SC8280XP_MASTER_A2NOC_SNOC }, 867 + }; 868 + 869 + static struct qcom_icc_node qns_pcie_gem_noc = { 870 + .name = "qns_pcie_gem_noc", 871 + .id = SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC, 872 + .channels = 1, 873 + .buswidth = 32, 874 + .num_links = 1, 875 + .links = { SC8280XP_MASTER_ANOC_PCIE_GEM_NOC }, 876 + }; 877 + 878 + static struct qcom_icc_node srvc_aggre2_noc = { 879 + .name = "srvc_aggre2_noc", 880 + .id = SC8280XP_SLAVE_SERVICE_A2NOC, 881 + .channels = 1, 882 + .buswidth = 4, 883 + }; 884 + 885 + static struct qcom_icc_node ipa_core_slave = { 886 + .name = "ipa_core_slave", 887 + .id = SC8280XP_SLAVE_IPA_CORE, 888 + .channels = 1, 889 + .buswidth = 8, 890 + }; 891 + 892 + static struct qcom_icc_node qup0_core_slave = { 893 + .name = "qup0_core_slave", 894 + .id = SC8280XP_SLAVE_QUP_CORE_0, 895 + .channels = 1, 896 + .buswidth = 4, 897 + }; 898 + 899 + static struct qcom_icc_node qup1_core_slave = { 900 + .name = "qup1_core_slave", 901 + .id = SC8280XP_SLAVE_QUP_CORE_1, 902 + .channels = 1, 903 + .buswidth = 4, 904 + }; 905 + 906 + static struct qcom_icc_node qup2_core_slave = { 907 + .name = "qup2_core_slave", 908 + .id = SC8280XP_SLAVE_QUP_CORE_2, 909 + .channels = 1, 910 + .buswidth = 4, 911 + }; 912 + 913 + static struct qcom_icc_node qhs_ahb2phy0 = { 914 + .name = "qhs_ahb2phy0", 915 + .id = SC8280XP_SLAVE_AHB2PHY_0, 916 + .channels = 1, 917 + .buswidth = 4, 918 + }; 919 + 920 + static struct qcom_icc_node qhs_ahb2phy1 = { 921 + .name = "qhs_ahb2phy1", 922 + .id = SC8280XP_SLAVE_AHB2PHY_1, 923 + .channels = 1, 924 + .buswidth = 4, 925 + }; 926 + 927 + static struct qcom_icc_node qhs_ahb2phy2 = { 928 + .name = "qhs_ahb2phy2", 929 + .id = SC8280XP_SLAVE_AHB2PHY_2, 930 + .channels = 1, 931 + .buswidth = 4, 932 + }; 933 + 934 + static struct qcom_icc_node qhs_aoss = { 935 + .name = "qhs_aoss", 936 + .id = SC8280XP_SLAVE_AOSS, 937 + .channels = 1, 938 + .buswidth = 4, 939 + }; 940 + 941 + static struct qcom_icc_node qhs_apss = { 942 + .name = "qhs_apss", 943 + .id = SC8280XP_SLAVE_APPSS, 944 + .channels = 1, 945 + .buswidth = 8, 946 + }; 947 + 948 + static struct qcom_icc_node qhs_camera_cfg = { 949 + .name = "qhs_camera_cfg", 950 + .id = SC8280XP_SLAVE_CAMERA_CFG, 951 + .channels = 1, 952 + .buswidth = 4, 953 + }; 954 + 955 + static struct qcom_icc_node qhs_clk_ctl = { 956 + .name = "qhs_clk_ctl", 957 + .id = SC8280XP_SLAVE_CLK_CTL, 958 + .channels = 1, 959 + .buswidth = 4, 960 + }; 961 + 962 + static struct qcom_icc_node qhs_compute0_cfg = { 963 + .name = "qhs_compute0_cfg", 964 + .id = SC8280XP_SLAVE_CDSP_CFG, 965 + .channels = 1, 966 + .buswidth = 4, 967 + .num_links = 1, 968 + .links = { SC8280XP_MASTER_CDSP_NOC_CFG }, 969 + }; 970 + 971 + static struct qcom_icc_node qhs_compute1_cfg = { 972 + .name = "qhs_compute1_cfg", 973 + .id = SC8280XP_SLAVE_CDSP1_CFG, 974 + .channels = 1, 975 + .buswidth = 4, 976 + .num_links = 1, 977 + .links = { SC8280XP_MASTER_CDSPB_NOC_CFG }, 978 + }; 979 + 980 + static struct qcom_icc_node qhs_cpr_cx = { 981 + .name = "qhs_cpr_cx", 982 + .id = SC8280XP_SLAVE_RBCPR_CX_CFG, 983 + .channels = 1, 984 + .buswidth = 4, 985 + }; 986 + 987 + static struct qcom_icc_node qhs_cpr_mmcx = { 988 + .name = "qhs_cpr_mmcx", 989 + .id = SC8280XP_SLAVE_RBCPR_MMCX_CFG, 990 + .channels = 1, 991 + .buswidth = 4, 992 + }; 993 + 994 + static struct qcom_icc_node qhs_cpr_mx = { 995 + .name = "qhs_cpr_mx", 996 + .id = SC8280XP_SLAVE_RBCPR_MX_CFG, 997 + .channels = 1, 998 + .buswidth = 4, 999 + }; 1000 + 1001 + static struct qcom_icc_node qhs_cpr_nspcx = { 1002 + .name = "qhs_cpr_nspcx", 1003 + .id = SC8280XP_SLAVE_CPR_NSPCX, 1004 + .channels = 1, 1005 + .buswidth = 4, 1006 + }; 1007 + 1008 + static struct qcom_icc_node qhs_crypto0_cfg = { 1009 + .name = "qhs_crypto0_cfg", 1010 + .id = SC8280XP_SLAVE_CRYPTO_0_CFG, 1011 + .channels = 1, 1012 + .buswidth = 4, 1013 + }; 1014 + 1015 + static struct qcom_icc_node qhs_cx_rdpm = { 1016 + .name = "qhs_cx_rdpm", 1017 + .id = SC8280XP_SLAVE_CX_RDPM, 1018 + .channels = 1, 1019 + .buswidth = 4, 1020 + }; 1021 + 1022 + static struct qcom_icc_node qhs_dcc_cfg = { 1023 + .name = "qhs_dcc_cfg", 1024 + .id = SC8280XP_SLAVE_DCC_CFG, 1025 + .channels = 1, 1026 + .buswidth = 4, 1027 + }; 1028 + 1029 + static struct qcom_icc_node qhs_display0_cfg = { 1030 + .name = "qhs_display0_cfg", 1031 + .id = SC8280XP_SLAVE_DISPLAY_CFG, 1032 + .channels = 1, 1033 + .buswidth = 4, 1034 + }; 1035 + 1036 + static struct qcom_icc_node qhs_display1_cfg = { 1037 + .name = "qhs_display1_cfg", 1038 + .id = SC8280XP_SLAVE_DISPLAY1_CFG, 1039 + .channels = 1, 1040 + .buswidth = 4, 1041 + }; 1042 + 1043 + static struct qcom_icc_node qhs_emac0_cfg = { 1044 + .name = "qhs_emac0_cfg", 1045 + .id = SC8280XP_SLAVE_EMAC_CFG, 1046 + .channels = 1, 1047 + .buswidth = 4, 1048 + }; 1049 + 1050 + static struct qcom_icc_node qhs_emac1_cfg = { 1051 + .name = "qhs_emac1_cfg", 1052 + .id = SC8280XP_SLAVE_EMAC1_CFG, 1053 + .channels = 1, 1054 + .buswidth = 4, 1055 + }; 1056 + 1057 + static struct qcom_icc_node qhs_gpuss_cfg = { 1058 + .name = "qhs_gpuss_cfg", 1059 + .id = SC8280XP_SLAVE_GFX3D_CFG, 1060 + .channels = 1, 1061 + .buswidth = 8, 1062 + }; 1063 + 1064 + static struct qcom_icc_node qhs_hwkm = { 1065 + .name = "qhs_hwkm", 1066 + .id = SC8280XP_SLAVE_HWKM, 1067 + .channels = 1, 1068 + .buswidth = 4, 1069 + }; 1070 + 1071 + static struct qcom_icc_node qhs_imem_cfg = { 1072 + .name = "qhs_imem_cfg", 1073 + .id = SC8280XP_SLAVE_IMEM_CFG, 1074 + .channels = 1, 1075 + .buswidth = 4, 1076 + }; 1077 + 1078 + static struct qcom_icc_node qhs_ipa = { 1079 + .name = "qhs_ipa", 1080 + .id = SC8280XP_SLAVE_IPA_CFG, 1081 + .channels = 1, 1082 + .buswidth = 4, 1083 + }; 1084 + 1085 + static struct qcom_icc_node qhs_ipc_router = { 1086 + .name = "qhs_ipc_router", 1087 + .id = SC8280XP_SLAVE_IPC_ROUTER_CFG, 1088 + .channels = 1, 1089 + .buswidth = 4, 1090 + }; 1091 + 1092 + static struct qcom_icc_node qhs_lpass_cfg = { 1093 + .name = "qhs_lpass_cfg", 1094 + .id = SC8280XP_SLAVE_LPASS, 1095 + .channels = 1, 1096 + .buswidth = 4, 1097 + .num_links = 1, 1098 + .links = { SC8280XP_MASTER_CNOC_LPASS_AG_NOC }, 1099 + }; 1100 + 1101 + static struct qcom_icc_node qhs_mx_rdpm = { 1102 + .name = "qhs_mx_rdpm", 1103 + .id = SC8280XP_SLAVE_MX_RDPM, 1104 + .channels = 1, 1105 + .buswidth = 4, 1106 + }; 1107 + 1108 + static struct qcom_icc_node qhs_mxc_rdpm = { 1109 + .name = "qhs_mxc_rdpm", 1110 + .id = SC8280XP_SLAVE_MXC_RDPM, 1111 + .channels = 1, 1112 + .buswidth = 4, 1113 + }; 1114 + 1115 + static struct qcom_icc_node qhs_pcie0_cfg = { 1116 + .name = "qhs_pcie0_cfg", 1117 + .id = SC8280XP_SLAVE_PCIE_0_CFG, 1118 + .channels = 1, 1119 + .buswidth = 4, 1120 + }; 1121 + 1122 + static struct qcom_icc_node qhs_pcie1_cfg = { 1123 + .name = "qhs_pcie1_cfg", 1124 + .id = SC8280XP_SLAVE_PCIE_1_CFG, 1125 + .channels = 1, 1126 + .buswidth = 4, 1127 + }; 1128 + 1129 + static struct qcom_icc_node qhs_pcie2a_cfg = { 1130 + .name = "qhs_pcie2a_cfg", 1131 + .id = SC8280XP_SLAVE_PCIE_2A_CFG, 1132 + .channels = 1, 1133 + .buswidth = 4, 1134 + }; 1135 + 1136 + static struct qcom_icc_node qhs_pcie2b_cfg = { 1137 + .name = "qhs_pcie2b_cfg", 1138 + .id = SC8280XP_SLAVE_PCIE_2B_CFG, 1139 + .channels = 1, 1140 + .buswidth = 4, 1141 + }; 1142 + 1143 + static struct qcom_icc_node qhs_pcie3a_cfg = { 1144 + .name = "qhs_pcie3a_cfg", 1145 + .id = SC8280XP_SLAVE_PCIE_3A_CFG, 1146 + .channels = 1, 1147 + .buswidth = 4, 1148 + }; 1149 + 1150 + static struct qcom_icc_node qhs_pcie3b_cfg = { 1151 + .name = "qhs_pcie3b_cfg", 1152 + .id = SC8280XP_SLAVE_PCIE_3B_CFG, 1153 + .channels = 1, 1154 + .buswidth = 4, 1155 + }; 1156 + 1157 + static struct qcom_icc_node qhs_pcie4_cfg = { 1158 + .name = "qhs_pcie4_cfg", 1159 + .id = SC8280XP_SLAVE_PCIE_4_CFG, 1160 + .channels = 1, 1161 + .buswidth = 4, 1162 + }; 1163 + 1164 + static struct qcom_icc_node qhs_pcie_rsc_cfg = { 1165 + .name = "qhs_pcie_rsc_cfg", 1166 + .id = SC8280XP_SLAVE_PCIE_RSC_CFG, 1167 + .channels = 1, 1168 + .buswidth = 4, 1169 + }; 1170 + 1171 + static struct qcom_icc_node qhs_pdm = { 1172 + .name = "qhs_pdm", 1173 + .id = SC8280XP_SLAVE_PDM, 1174 + .channels = 1, 1175 + .buswidth = 4, 1176 + }; 1177 + 1178 + static struct qcom_icc_node qhs_pimem_cfg = { 1179 + .name = "qhs_pimem_cfg", 1180 + .id = SC8280XP_SLAVE_PIMEM_CFG, 1181 + .channels = 1, 1182 + .buswidth = 4, 1183 + }; 1184 + 1185 + static struct qcom_icc_node qhs_pka_wrapper_cfg = { 1186 + .name = "qhs_pka_wrapper_cfg", 1187 + .id = SC8280XP_SLAVE_PKA_WRAPPER_CFG, 1188 + .channels = 1, 1189 + .buswidth = 4, 1190 + }; 1191 + 1192 + static struct qcom_icc_node qhs_pmu_wrapper_cfg = { 1193 + .name = "qhs_pmu_wrapper_cfg", 1194 + .id = SC8280XP_SLAVE_PMU_WRAPPER_CFG, 1195 + .channels = 1, 1196 + .buswidth = 4, 1197 + }; 1198 + 1199 + static struct qcom_icc_node qhs_qdss_cfg = { 1200 + .name = "qhs_qdss_cfg", 1201 + .id = SC8280XP_SLAVE_QDSS_CFG, 1202 + .channels = 1, 1203 + .buswidth = 4, 1204 + }; 1205 + 1206 + static struct qcom_icc_node qhs_qspi = { 1207 + .name = "qhs_qspi", 1208 + .id = SC8280XP_SLAVE_QSPI_0, 1209 + .channels = 1, 1210 + .buswidth = 4, 1211 + }; 1212 + 1213 + static struct qcom_icc_node qhs_qup0 = { 1214 + .name = "qhs_qup0", 1215 + .id = SC8280XP_SLAVE_QUP_0, 1216 + .channels = 1, 1217 + .buswidth = 4, 1218 + }; 1219 + 1220 + static struct qcom_icc_node qhs_qup1 = { 1221 + .name = "qhs_qup1", 1222 + .id = SC8280XP_SLAVE_QUP_1, 1223 + .channels = 1, 1224 + .buswidth = 4, 1225 + }; 1226 + 1227 + static struct qcom_icc_node qhs_qup2 = { 1228 + .name = "qhs_qup2", 1229 + .id = SC8280XP_SLAVE_QUP_2, 1230 + .channels = 1, 1231 + .buswidth = 4, 1232 + }; 1233 + 1234 + static struct qcom_icc_node qhs_sdc2 = { 1235 + .name = "qhs_sdc2", 1236 + .id = SC8280XP_SLAVE_SDCC_2, 1237 + .channels = 1, 1238 + .buswidth = 4, 1239 + }; 1240 + 1241 + static struct qcom_icc_node qhs_sdc4 = { 1242 + .name = "qhs_sdc4", 1243 + .id = SC8280XP_SLAVE_SDCC_4, 1244 + .channels = 1, 1245 + .buswidth = 4, 1246 + }; 1247 + 1248 + static struct qcom_icc_node qhs_security = { 1249 + .name = "qhs_security", 1250 + .id = SC8280XP_SLAVE_SECURITY, 1251 + .channels = 1, 1252 + .buswidth = 4, 1253 + }; 1254 + 1255 + static struct qcom_icc_node qhs_smmuv3_cfg = { 1256 + .name = "qhs_smmuv3_cfg", 1257 + .id = SC8280XP_SLAVE_SMMUV3_CFG, 1258 + .channels = 1, 1259 + .buswidth = 8, 1260 + }; 1261 + 1262 + static struct qcom_icc_node qhs_smss_cfg = { 1263 + .name = "qhs_smss_cfg", 1264 + .id = SC8280XP_SLAVE_SMSS_CFG, 1265 + .channels = 1, 1266 + .buswidth = 4, 1267 + }; 1268 + 1269 + static struct qcom_icc_node qhs_spss_cfg = { 1270 + .name = "qhs_spss_cfg", 1271 + .id = SC8280XP_SLAVE_SPSS_CFG, 1272 + .channels = 1, 1273 + .buswidth = 4, 1274 + }; 1275 + 1276 + static struct qcom_icc_node qhs_tcsr = { 1277 + .name = "qhs_tcsr", 1278 + .id = SC8280XP_SLAVE_TCSR, 1279 + .channels = 1, 1280 + .buswidth = 4, 1281 + }; 1282 + 1283 + static struct qcom_icc_node qhs_tlmm = { 1284 + .name = "qhs_tlmm", 1285 + .id = SC8280XP_SLAVE_TLMM, 1286 + .channels = 1, 1287 + .buswidth = 4, 1288 + }; 1289 + 1290 + static struct qcom_icc_node qhs_ufs_card_cfg = { 1291 + .name = "qhs_ufs_card_cfg", 1292 + .id = SC8280XP_SLAVE_UFS_CARD_CFG, 1293 + .channels = 1, 1294 + .buswidth = 4, 1295 + }; 1296 + 1297 + static struct qcom_icc_node qhs_ufs_mem_cfg = { 1298 + .name = "qhs_ufs_mem_cfg", 1299 + .id = SC8280XP_SLAVE_UFS_MEM_CFG, 1300 + .channels = 1, 1301 + .buswidth = 4, 1302 + }; 1303 + 1304 + static struct qcom_icc_node qhs_usb3_0 = { 1305 + .name = "qhs_usb3_0", 1306 + .id = SC8280XP_SLAVE_USB3_0, 1307 + .channels = 1, 1308 + .buswidth = 4, 1309 + }; 1310 + 1311 + static struct qcom_icc_node qhs_usb3_1 = { 1312 + .name = "qhs_usb3_1", 1313 + .id = SC8280XP_SLAVE_USB3_1, 1314 + .channels = 1, 1315 + .buswidth = 4, 1316 + }; 1317 + 1318 + static struct qcom_icc_node qhs_usb3_mp = { 1319 + .name = "qhs_usb3_mp", 1320 + .id = SC8280XP_SLAVE_USB3_MP, 1321 + .channels = 1, 1322 + .buswidth = 4, 1323 + }; 1324 + 1325 + static struct qcom_icc_node qhs_usb4_host_0 = { 1326 + .name = "qhs_usb4_host_0", 1327 + .id = SC8280XP_SLAVE_USB4_0, 1328 + .channels = 1, 1329 + .buswidth = 4, 1330 + }; 1331 + 1332 + static struct qcom_icc_node qhs_usb4_host_1 = { 1333 + .name = "qhs_usb4_host_1", 1334 + .id = SC8280XP_SLAVE_USB4_1, 1335 + .channels = 1, 1336 + .buswidth = 4, 1337 + }; 1338 + 1339 + static struct qcom_icc_node qhs_venus_cfg = { 1340 + .name = "qhs_venus_cfg", 1341 + .id = SC8280XP_SLAVE_VENUS_CFG, 1342 + .channels = 1, 1343 + .buswidth = 4, 1344 + }; 1345 + 1346 + static struct qcom_icc_node qhs_vsense_ctrl_cfg = { 1347 + .name = "qhs_vsense_ctrl_cfg", 1348 + .id = SC8280XP_SLAVE_VSENSE_CTRL_CFG, 1349 + .channels = 1, 1350 + .buswidth = 4, 1351 + }; 1352 + 1353 + static struct qcom_icc_node qhs_vsense_ctrl_r_cfg = { 1354 + .name = "qhs_vsense_ctrl_r_cfg", 1355 + .id = SC8280XP_SLAVE_VSENSE_CTRL_R_CFG, 1356 + .channels = 1, 1357 + .buswidth = 4, 1358 + }; 1359 + 1360 + static struct qcom_icc_node qns_a1_noc_cfg = { 1361 + .name = "qns_a1_noc_cfg", 1362 + .id = SC8280XP_SLAVE_A1NOC_CFG, 1363 + .channels = 1, 1364 + .buswidth = 4, 1365 + .num_links = 1, 1366 + .links = { SC8280XP_MASTER_A1NOC_CFG }, 1367 + }; 1368 + 1369 + static struct qcom_icc_node qns_a2_noc_cfg = { 1370 + .name = "qns_a2_noc_cfg", 1371 + .id = SC8280XP_SLAVE_A2NOC_CFG, 1372 + .channels = 1, 1373 + .buswidth = 4, 1374 + .num_links = 1, 1375 + .links = { SC8280XP_MASTER_A2NOC_CFG }, 1376 + }; 1377 + 1378 + static struct qcom_icc_node qns_anoc_pcie_bridge_cfg = { 1379 + .name = "qns_anoc_pcie_bridge_cfg", 1380 + .id = SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG, 1381 + .channels = 1, 1382 + .buswidth = 4, 1383 + }; 1384 + 1385 + static struct qcom_icc_node qns_ddrss_cfg = { 1386 + .name = "qns_ddrss_cfg", 1387 + .id = SC8280XP_SLAVE_DDRSS_CFG, 1388 + .channels = 1, 1389 + .buswidth = 4, 1390 + .num_links = 1, 1391 + .links = { SC8280XP_MASTER_CNOC_DC_NOC }, 1392 + }; 1393 + 1394 + static struct qcom_icc_node qns_mnoc_cfg = { 1395 + .name = "qns_mnoc_cfg", 1396 + .id = SC8280XP_SLAVE_CNOC_MNOC_CFG, 1397 + .channels = 1, 1398 + .buswidth = 4, 1399 + .num_links = 1, 1400 + .links = { SC8280XP_MASTER_CNOC_MNOC_CFG }, 1401 + }; 1402 + 1403 + static struct qcom_icc_node qns_snoc_cfg = { 1404 + .name = "qns_snoc_cfg", 1405 + .id = SC8280XP_SLAVE_SNOC_CFG, 1406 + .channels = 1, 1407 + .buswidth = 4, 1408 + .num_links = 1, 1409 + .links = { SC8280XP_MASTER_SNOC_CFG }, 1410 + }; 1411 + 1412 + static struct qcom_icc_node qns_snoc_sf_bridge_cfg = { 1413 + .name = "qns_snoc_sf_bridge_cfg", 1414 + .id = SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG, 1415 + .channels = 1, 1416 + .buswidth = 4, 1417 + }; 1418 + 1419 + static struct qcom_icc_node qxs_imem = { 1420 + .name = "qxs_imem", 1421 + .id = SC8280XP_SLAVE_IMEM, 1422 + .channels = 1, 1423 + .buswidth = 8, 1424 + }; 1425 + 1426 + static struct qcom_icc_node qxs_pimem = { 1427 + .name = "qxs_pimem", 1428 + .id = SC8280XP_SLAVE_PIMEM, 1429 + .channels = 1, 1430 + .buswidth = 8, 1431 + }; 1432 + 1433 + static struct qcom_icc_node srvc_cnoc = { 1434 + .name = "srvc_cnoc", 1435 + .id = SC8280XP_SLAVE_SERVICE_CNOC, 1436 + .channels = 1, 1437 + .buswidth = 4, 1438 + }; 1439 + 1440 + static struct qcom_icc_node xs_pcie_0 = { 1441 + .name = "xs_pcie_0", 1442 + .id = SC8280XP_SLAVE_PCIE_0, 1443 + .channels = 1, 1444 + .buswidth = 16, 1445 + }; 1446 + 1447 + static struct qcom_icc_node xs_pcie_1 = { 1448 + .name = "xs_pcie_1", 1449 + .id = SC8280XP_SLAVE_PCIE_1, 1450 + .channels = 1, 1451 + .buswidth = 16, 1452 + }; 1453 + 1454 + static struct qcom_icc_node xs_pcie_2a = { 1455 + .name = "xs_pcie_2a", 1456 + .id = SC8280XP_SLAVE_PCIE_2A, 1457 + .channels = 1, 1458 + .buswidth = 16, 1459 + }; 1460 + 1461 + static struct qcom_icc_node xs_pcie_2b = { 1462 + .name = "xs_pcie_2b", 1463 + .id = SC8280XP_SLAVE_PCIE_2B, 1464 + .channels = 1, 1465 + .buswidth = 8, 1466 + }; 1467 + 1468 + static struct qcom_icc_node xs_pcie_3a = { 1469 + .name = "xs_pcie_3a", 1470 + .id = SC8280XP_SLAVE_PCIE_3A, 1471 + .channels = 1, 1472 + .buswidth = 16, 1473 + }; 1474 + 1475 + static struct qcom_icc_node xs_pcie_3b = { 1476 + .name = "xs_pcie_3b", 1477 + .id = SC8280XP_SLAVE_PCIE_3B, 1478 + .channels = 1, 1479 + .buswidth = 8, 1480 + }; 1481 + 1482 + static struct qcom_icc_node xs_pcie_4 = { 1483 + .name = "xs_pcie_4", 1484 + .id = SC8280XP_SLAVE_PCIE_4, 1485 + .channels = 1, 1486 + .buswidth = 8, 1487 + }; 1488 + 1489 + static struct qcom_icc_node xs_qdss_stm = { 1490 + .name = "xs_qdss_stm", 1491 + .id = SC8280XP_SLAVE_QDSS_STM, 1492 + .channels = 1, 1493 + .buswidth = 4, 1494 + }; 1495 + 1496 + static struct qcom_icc_node xs_smss = { 1497 + .name = "xs_smss", 1498 + .id = SC8280XP_SLAVE_SMSS, 1499 + .channels = 1, 1500 + .buswidth = 8, 1501 + }; 1502 + 1503 + static struct qcom_icc_node xs_sys_tcu_cfg = { 1504 + .name = "xs_sys_tcu_cfg", 1505 + .id = SC8280XP_SLAVE_TCU, 1506 + .channels = 1, 1507 + .buswidth = 8, 1508 + }; 1509 + 1510 + static struct qcom_icc_node qhs_llcc = { 1511 + .name = "qhs_llcc", 1512 + .id = SC8280XP_SLAVE_LLCC_CFG, 1513 + .channels = 1, 1514 + .buswidth = 4, 1515 + }; 1516 + 1517 + static struct qcom_icc_node qns_gemnoc = { 1518 + .name = "qns_gemnoc", 1519 + .id = SC8280XP_SLAVE_GEM_NOC_CFG, 1520 + .channels = 1, 1521 + .buswidth = 4, 1522 + .num_links = 1, 1523 + .links = { SC8280XP_MASTER_GEM_NOC_CFG }, 1524 + }; 1525 + 1526 + static struct qcom_icc_node qns_gem_noc_cnoc = { 1527 + .name = "qns_gem_noc_cnoc", 1528 + .id = SC8280XP_SLAVE_GEM_NOC_CNOC, 1529 + .channels = 1, 1530 + .buswidth = 16, 1531 + .num_links = 1, 1532 + .links = { SC8280XP_MASTER_GEM_NOC_CNOC }, 1533 + }; 1534 + 1535 + static struct qcom_icc_node qns_llcc = { 1536 + .name = "qns_llcc", 1537 + .id = SC8280XP_SLAVE_LLCC, 1538 + .channels = 8, 1539 + .buswidth = 16, 1540 + .num_links = 1, 1541 + .links = { SC8280XP_MASTER_LLCC }, 1542 + }; 1543 + 1544 + static struct qcom_icc_node qns_pcie = { 1545 + .name = "qns_pcie", 1546 + .id = SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC, 1547 + .channels = 1, 1548 + .buswidth = 16, 1549 + .num_links = 1, 1550 + .links = { SC8280XP_MASTER_GEM_NOC_PCIE_SNOC }, 1551 + }; 1552 + 1553 + static struct qcom_icc_node srvc_even_gemnoc = { 1554 + .name = "srvc_even_gemnoc", 1555 + .id = SC8280XP_SLAVE_SERVICE_GEM_NOC_1, 1556 + .channels = 1, 1557 + .buswidth = 4, 1558 + }; 1559 + 1560 + static struct qcom_icc_node srvc_odd_gemnoc = { 1561 + .name = "srvc_odd_gemnoc", 1562 + .id = SC8280XP_SLAVE_SERVICE_GEM_NOC_2, 1563 + .channels = 1, 1564 + .buswidth = 4, 1565 + }; 1566 + 1567 + static struct qcom_icc_node srvc_sys_gemnoc = { 1568 + .name = "srvc_sys_gemnoc", 1569 + .id = SC8280XP_SLAVE_SERVICE_GEM_NOC, 1570 + .channels = 1, 1571 + .buswidth = 4, 1572 + }; 1573 + 1574 + static struct qcom_icc_node qhs_lpass_core = { 1575 + .name = "qhs_lpass_core", 1576 + .id = SC8280XP_SLAVE_LPASS_CORE_CFG, 1577 + .channels = 1, 1578 + .buswidth = 4, 1579 + }; 1580 + 1581 + static struct qcom_icc_node qhs_lpass_lpi = { 1582 + .name = "qhs_lpass_lpi", 1583 + .id = SC8280XP_SLAVE_LPASS_LPI_CFG, 1584 + .channels = 1, 1585 + .buswidth = 4, 1586 + }; 1587 + 1588 + static struct qcom_icc_node qhs_lpass_mpu = { 1589 + .name = "qhs_lpass_mpu", 1590 + .id = SC8280XP_SLAVE_LPASS_MPU_CFG, 1591 + .channels = 1, 1592 + .buswidth = 4, 1593 + }; 1594 + 1595 + static struct qcom_icc_node qhs_lpass_top = { 1596 + .name = "qhs_lpass_top", 1597 + .id = SC8280XP_SLAVE_LPASS_TOP_CFG, 1598 + .channels = 1, 1599 + .buswidth = 4, 1600 + }; 1601 + 1602 + static struct qcom_icc_node qns_sysnoc = { 1603 + .name = "qns_sysnoc", 1604 + .id = SC8280XP_SLAVE_LPASS_SNOC, 1605 + .channels = 1, 1606 + .buswidth = 16, 1607 + .num_links = 1, 1608 + .links = { SC8280XP_MASTER_LPASS_ANOC }, 1609 + }; 1610 + 1611 + static struct qcom_icc_node srvc_niu_aml_noc = { 1612 + .name = "srvc_niu_aml_noc", 1613 + .id = SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC, 1614 + .channels = 1, 1615 + .buswidth = 4, 1616 + }; 1617 + 1618 + static struct qcom_icc_node srvc_niu_lpass_agnoc = { 1619 + .name = "srvc_niu_lpass_agnoc", 1620 + .id = SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC, 1621 + .channels = 1, 1622 + .buswidth = 4, 1623 + }; 1624 + 1625 + static struct qcom_icc_node ebi = { 1626 + .name = "ebi", 1627 + .id = SC8280XP_SLAVE_EBI1, 1628 + .channels = 8, 1629 + .buswidth = 4, 1630 + }; 1631 + 1632 + static struct qcom_icc_node qns_mem_noc_hf = { 1633 + .name = "qns_mem_noc_hf", 1634 + .id = SC8280XP_SLAVE_MNOC_HF_MEM_NOC, 1635 + .channels = 2, 1636 + .buswidth = 32, 1637 + .num_links = 1, 1638 + .links = { SC8280XP_MASTER_MNOC_HF_MEM_NOC }, 1639 + }; 1640 + 1641 + static struct qcom_icc_node qns_mem_noc_sf = { 1642 + .name = "qns_mem_noc_sf", 1643 + .id = SC8280XP_SLAVE_MNOC_SF_MEM_NOC, 1644 + .channels = 2, 1645 + .buswidth = 32, 1646 + .num_links = 1, 1647 + .links = { SC8280XP_MASTER_MNOC_SF_MEM_NOC }, 1648 + }; 1649 + 1650 + static struct qcom_icc_node srvc_mnoc = { 1651 + .name = "srvc_mnoc", 1652 + .id = SC8280XP_SLAVE_SERVICE_MNOC, 1653 + .channels = 1, 1654 + .buswidth = 4, 1655 + }; 1656 + 1657 + static struct qcom_icc_node qns_nsp_gemnoc = { 1658 + .name = "qns_nsp_gemnoc", 1659 + .id = SC8280XP_SLAVE_CDSP_MEM_NOC, 1660 + .channels = 2, 1661 + .buswidth = 32, 1662 + .num_links = 1, 1663 + .links = { SC8280XP_MASTER_COMPUTE_NOC }, 1664 + }; 1665 + 1666 + static struct qcom_icc_node qxs_nsp_xfr = { 1667 + .name = "qxs_nsp_xfr", 1668 + .id = SC8280XP_SLAVE_NSP_XFR, 1669 + .channels = 1, 1670 + .buswidth = 32, 1671 + }; 1672 + 1673 + static struct qcom_icc_node service_nsp_noc = { 1674 + .name = "service_nsp_noc", 1675 + .id = SC8280XP_SLAVE_SERVICE_NSP_NOC, 1676 + .channels = 1, 1677 + .buswidth = 4, 1678 + }; 1679 + 1680 + static struct qcom_icc_node qns_nspb_gemnoc = { 1681 + .name = "qns_nspb_gemnoc", 1682 + .id = SC8280XP_SLAVE_CDSPB_MEM_NOC, 1683 + .channels = 2, 1684 + .buswidth = 32, 1685 + .num_links = 1, 1686 + .links = { SC8280XP_MASTER_COMPUTE_NOC_1 }, 1687 + }; 1688 + 1689 + static struct qcom_icc_node qxs_nspb_xfr = { 1690 + .name = "qxs_nspb_xfr", 1691 + .id = SC8280XP_SLAVE_NSPB_XFR, 1692 + .channels = 1, 1693 + .buswidth = 32, 1694 + }; 1695 + 1696 + static struct qcom_icc_node service_nspb_noc = { 1697 + .name = "service_nspb_noc", 1698 + .id = SC8280XP_SLAVE_SERVICE_NSPB_NOC, 1699 + .channels = 1, 1700 + .buswidth = 4, 1701 + }; 1702 + 1703 + static struct qcom_icc_node qns_gemnoc_gc = { 1704 + .name = "qns_gemnoc_gc", 1705 + .id = SC8280XP_SLAVE_SNOC_GEM_NOC_GC, 1706 + .channels = 1, 1707 + .buswidth = 8, 1708 + .num_links = 1, 1709 + .links = { SC8280XP_MASTER_SNOC_GC_MEM_NOC }, 1710 + }; 1711 + 1712 + static struct qcom_icc_node qns_gemnoc_sf = { 1713 + .name = "qns_gemnoc_sf", 1714 + .id = SC8280XP_SLAVE_SNOC_GEM_NOC_SF, 1715 + .channels = 1, 1716 + .buswidth = 16, 1717 + .num_links = 1, 1718 + .links = { SC8280XP_MASTER_SNOC_SF_MEM_NOC }, 1719 + }; 1720 + 1721 + static struct qcom_icc_node srvc_snoc = { 1722 + .name = "srvc_snoc", 1723 + .id = SC8280XP_SLAVE_SERVICE_SNOC, 1724 + .channels = 1, 1725 + .buswidth = 4, 1726 + }; 1727 + 1728 + static struct qcom_icc_bcm bcm_acv = { 1729 + .name = "ACV", 1730 + .num_nodes = 1, 1731 + .nodes = { &ebi }, 1732 + }; 1733 + 1734 + static struct qcom_icc_bcm bcm_ce0 = { 1735 + .name = "CE0", 1736 + .num_nodes = 1, 1737 + .nodes = { &qxm_crypto }, 1738 + }; 1739 + 1740 + static struct qcom_icc_bcm bcm_cn0 = { 1741 + .name = "CN0", 1742 + .keepalive = true, 1743 + .num_nodes = 9, 1744 + .nodes = { &qnm_gemnoc_cnoc, 1745 + &qnm_gemnoc_pcie, 1746 + &xs_pcie_0, 1747 + &xs_pcie_1, 1748 + &xs_pcie_2a, 1749 + &xs_pcie_2b, 1750 + &xs_pcie_3a, 1751 + &xs_pcie_3b, 1752 + &xs_pcie_4 1753 + }, 1754 + }; 1755 + 1756 + static struct qcom_icc_bcm bcm_cn1 = { 1757 + .name = "CN1", 1758 + .num_nodes = 67, 1759 + .nodes = { &qhs_ahb2phy0, 1760 + &qhs_ahb2phy1, 1761 + &qhs_ahb2phy2, 1762 + &qhs_aoss, 1763 + &qhs_apss, 1764 + &qhs_camera_cfg, 1765 + &qhs_clk_ctl, 1766 + &qhs_compute0_cfg, 1767 + &qhs_compute1_cfg, 1768 + &qhs_cpr_cx, 1769 + &qhs_cpr_mmcx, 1770 + &qhs_cpr_mx, 1771 + &qhs_cpr_nspcx, 1772 + &qhs_crypto0_cfg, 1773 + &qhs_cx_rdpm, 1774 + &qhs_dcc_cfg, 1775 + &qhs_display0_cfg, 1776 + &qhs_display1_cfg, 1777 + &qhs_emac0_cfg, 1778 + &qhs_emac1_cfg, 1779 + &qhs_gpuss_cfg, 1780 + &qhs_hwkm, 1781 + &qhs_imem_cfg, 1782 + &qhs_ipa, 1783 + &qhs_ipc_router, 1784 + &qhs_lpass_cfg, 1785 + &qhs_mx_rdpm, 1786 + &qhs_mxc_rdpm, 1787 + &qhs_pcie0_cfg, 1788 + &qhs_pcie1_cfg, 1789 + &qhs_pcie2a_cfg, 1790 + &qhs_pcie2b_cfg, 1791 + &qhs_pcie3a_cfg, 1792 + &qhs_pcie3b_cfg, 1793 + &qhs_pcie4_cfg, 1794 + &qhs_pcie_rsc_cfg, 1795 + &qhs_pdm, 1796 + &qhs_pimem_cfg, 1797 + &qhs_pka_wrapper_cfg, 1798 + &qhs_pmu_wrapper_cfg, 1799 + &qhs_qdss_cfg, 1800 + &qhs_sdc2, 1801 + &qhs_sdc4, 1802 + &qhs_security, 1803 + &qhs_smmuv3_cfg, 1804 + &qhs_smss_cfg, 1805 + &qhs_spss_cfg, 1806 + &qhs_tcsr, 1807 + &qhs_tlmm, 1808 + &qhs_ufs_card_cfg, 1809 + &qhs_ufs_mem_cfg, 1810 + &qhs_usb3_0, 1811 + &qhs_usb3_1, 1812 + &qhs_usb3_mp, 1813 + &qhs_usb4_host_0, 1814 + &qhs_usb4_host_1, 1815 + &qhs_venus_cfg, 1816 + &qhs_vsense_ctrl_cfg, 1817 + &qhs_vsense_ctrl_r_cfg, 1818 + &qns_a1_noc_cfg, 1819 + &qns_a2_noc_cfg, 1820 + &qns_anoc_pcie_bridge_cfg, 1821 + &qns_ddrss_cfg, 1822 + &qns_mnoc_cfg, 1823 + &qns_snoc_cfg, 1824 + &qns_snoc_sf_bridge_cfg, 1825 + &srvc_cnoc 1826 + }, 1827 + }; 1828 + 1829 + static struct qcom_icc_bcm bcm_cn2 = { 1830 + .name = "CN2", 1831 + .num_nodes = 4, 1832 + .nodes = { &qhs_qspi, 1833 + &qhs_qup0, 1834 + &qhs_qup1, 1835 + &qhs_qup2 1836 + }, 1837 + }; 1838 + 1839 + static struct qcom_icc_bcm bcm_cn3 = { 1840 + .name = "CN3", 1841 + .num_nodes = 3, 1842 + .nodes = { &qxs_imem, 1843 + &xs_smss, 1844 + &xs_sys_tcu_cfg 1845 + }, 1846 + }; 1847 + 1848 + static struct qcom_icc_bcm bcm_ip0 = { 1849 + .name = "IP0", 1850 + .num_nodes = 1, 1851 + .nodes = { &ipa_core_slave }, 1852 + }; 1853 + 1854 + static struct qcom_icc_bcm bcm_mc0 = { 1855 + .name = "MC0", 1856 + .keepalive = true, 1857 + .num_nodes = 1, 1858 + .nodes = { &ebi }, 1859 + }; 1860 + 1861 + static struct qcom_icc_bcm bcm_mm0 = { 1862 + .name = "MM0", 1863 + .keepalive = true, 1864 + .num_nodes = 5, 1865 + .nodes = { &qnm_camnoc_hf, 1866 + &qnm_mdp0_0, 1867 + &qnm_mdp0_1, 1868 + &qnm_mdp1_0, 1869 + &qns_mem_noc_hf 1870 + }, 1871 + }; 1872 + 1873 + static struct qcom_icc_bcm bcm_mm1 = { 1874 + .name = "MM1", 1875 + .num_nodes = 8, 1876 + .nodes = { &qnm_rot_0, 1877 + &qnm_rot_1, 1878 + &qnm_video0, 1879 + &qnm_video1, 1880 + &qnm_video_cvp, 1881 + &qxm_camnoc_icp, 1882 + &qxm_camnoc_sf, 1883 + &qns_mem_noc_sf 1884 + }, 1885 + }; 1886 + 1887 + static struct qcom_icc_bcm bcm_nsa0 = { 1888 + .name = "NSA0", 1889 + .num_nodes = 2, 1890 + .nodes = { &qns_nsp_gemnoc, 1891 + &qxs_nsp_xfr 1892 + }, 1893 + }; 1894 + 1895 + static struct qcom_icc_bcm bcm_nsa1 = { 1896 + .name = "NSA1", 1897 + .num_nodes = 1, 1898 + .nodes = { &qxm_nsp }, 1899 + }; 1900 + 1901 + static struct qcom_icc_bcm bcm_nsb0 = { 1902 + .name = "NSB0", 1903 + .num_nodes = 2, 1904 + .nodes = { &qns_nspb_gemnoc, 1905 + &qxs_nspb_xfr 1906 + }, 1907 + }; 1908 + 1909 + static struct qcom_icc_bcm bcm_nsb1 = { 1910 + .name = "NSB1", 1911 + .num_nodes = 1, 1912 + .nodes = { &qxm_nspb }, 1913 + }; 1914 + 1915 + static struct qcom_icc_bcm bcm_pci0 = { 1916 + .name = "PCI0", 1917 + .num_nodes = 1, 1918 + .nodes = { &qns_pcie_gem_noc }, 1919 + }; 1920 + 1921 + static struct qcom_icc_bcm bcm_qup0 = { 1922 + .name = "QUP0", 1923 + .vote_scale = 1, 1924 + .num_nodes = 1, 1925 + .nodes = { &qup0_core_slave }, 1926 + }; 1927 + 1928 + static struct qcom_icc_bcm bcm_qup1 = { 1929 + .name = "QUP1", 1930 + .vote_scale = 1, 1931 + .num_nodes = 1, 1932 + .nodes = { &qup1_core_slave }, 1933 + }; 1934 + 1935 + static struct qcom_icc_bcm bcm_qup2 = { 1936 + .name = "QUP2", 1937 + .vote_scale = 1, 1938 + .num_nodes = 1, 1939 + .nodes = { &qup2_core_slave }, 1940 + }; 1941 + 1942 + static struct qcom_icc_bcm bcm_sh0 = { 1943 + .name = "SH0", 1944 + .keepalive = true, 1945 + .num_nodes = 1, 1946 + .nodes = { &qns_llcc }, 1947 + }; 1948 + 1949 + static struct qcom_icc_bcm bcm_sh2 = { 1950 + .name = "SH2", 1951 + .num_nodes = 1, 1952 + .nodes = { &chm_apps }, 1953 + }; 1954 + 1955 + static struct qcom_icc_bcm bcm_sn0 = { 1956 + .name = "SN0", 1957 + .keepalive = true, 1958 + .num_nodes = 1, 1959 + .nodes = { &qns_gemnoc_sf }, 1960 + }; 1961 + 1962 + static struct qcom_icc_bcm bcm_sn1 = { 1963 + .name = "SN1", 1964 + .num_nodes = 1, 1965 + .nodes = { &qns_gemnoc_gc }, 1966 + }; 1967 + 1968 + static struct qcom_icc_bcm bcm_sn2 = { 1969 + .name = "SN2", 1970 + .num_nodes = 1, 1971 + .nodes = { &qxs_pimem }, 1972 + }; 1973 + 1974 + static struct qcom_icc_bcm bcm_sn3 = { 1975 + .name = "SN3", 1976 + .num_nodes = 2, 1977 + .nodes = { &qns_a1noc_snoc, 1978 + &qnm_aggre1_noc 1979 + }, 1980 + }; 1981 + 1982 + static struct qcom_icc_bcm bcm_sn4 = { 1983 + .name = "SN4", 1984 + .num_nodes = 2, 1985 + .nodes = { &qns_a2noc_snoc, 1986 + &qnm_aggre2_noc 1987 + }, 1988 + }; 1989 + 1990 + static struct qcom_icc_bcm bcm_sn5 = { 1991 + .name = "SN5", 1992 + .num_nodes = 2, 1993 + .nodes = { &qns_aggre_usb_snoc, 1994 + &qnm_aggre_usb_noc 1995 + }, 1996 + }; 1997 + 1998 + static struct qcom_icc_bcm bcm_sn9 = { 1999 + .name = "SN9", 2000 + .num_nodes = 2, 2001 + .nodes = { &qns_sysnoc, 2002 + &qnm_lpass_noc 2003 + }, 2004 + }; 2005 + 2006 + static struct qcom_icc_bcm bcm_sn10 = { 2007 + .name = "SN10", 2008 + .num_nodes = 1, 2009 + .nodes = { &xs_qdss_stm }, 2010 + }; 2011 + 2012 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 2013 + &bcm_sn3, 2014 + &bcm_sn5, 2015 + }; 2016 + 2017 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 2018 + [MASTER_QSPI_0] = &qhm_qspi, 2019 + [MASTER_QUP_1] = &qhm_qup1, 2020 + [MASTER_QUP_2] = &qhm_qup2, 2021 + [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg, 2022 + [MASTER_IPA] = &qxm_ipa, 2023 + [MASTER_EMAC_1] = &xm_emac_1, 2024 + [MASTER_SDCC_4] = &xm_sdc4, 2025 + [MASTER_UFS_MEM] = &xm_ufs_mem, 2026 + [MASTER_USB3_0] = &xm_usb3_0, 2027 + [MASTER_USB3_1] = &xm_usb3_1, 2028 + [MASTER_USB3_MP] = &xm_usb3_mp, 2029 + [MASTER_USB4_0] = &xm_usb4_host0, 2030 + [MASTER_USB4_1] = &xm_usb4_host1, 2031 + [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc, 2032 + [SLAVE_USB_NOC_SNOC] = &qns_aggre_usb_snoc, 2033 + [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 2034 + }; 2035 + 2036 + static const struct qcom_icc_desc sc8280xp_aggre1_noc = { 2037 + .nodes = aggre1_noc_nodes, 2038 + .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 2039 + .bcms = aggre1_noc_bcms, 2040 + .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 2041 + }; 2042 + 2043 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 2044 + &bcm_ce0, 2045 + &bcm_pci0, 2046 + &bcm_sn4, 2047 + }; 2048 + 2049 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 2050 + [MASTER_QDSS_BAM] = &qhm_qdss_bam, 2051 + [MASTER_QUP_0] = &qhm_qup0, 2052 + [MASTER_A2NOC_CFG] = &qnm_a2noc_cfg, 2053 + [MASTER_CRYPTO] = &qxm_crypto, 2054 + [MASTER_SENSORS_PROC] = &qxm_sensorss_q6, 2055 + [MASTER_SP] = &qxm_sp, 2056 + [MASTER_EMAC] = &xm_emac_0, 2057 + [MASTER_PCIE_0] = &xm_pcie3_0, 2058 + [MASTER_PCIE_1] = &xm_pcie3_1, 2059 + [MASTER_PCIE_2A] = &xm_pcie3_2a, 2060 + [MASTER_PCIE_2B] = &xm_pcie3_2b, 2061 + [MASTER_PCIE_3A] = &xm_pcie3_3a, 2062 + [MASTER_PCIE_3B] = &xm_pcie3_3b, 2063 + [MASTER_PCIE_4] = &xm_pcie3_4, 2064 + [MASTER_QDSS_ETR] = &xm_qdss_etr, 2065 + [MASTER_SDCC_2] = &xm_sdc2, 2066 + [MASTER_UFS_CARD] = &xm_ufs_card, 2067 + [SLAVE_A2NOC_SNOC] = &qns_a2noc_snoc, 2068 + [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gem_noc, 2069 + [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 2070 + }; 2071 + 2072 + static const struct qcom_icc_desc sc8280xp_aggre2_noc = { 2073 + .nodes = aggre2_noc_nodes, 2074 + .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 2075 + .bcms = aggre2_noc_bcms, 2076 + .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 2077 + }; 2078 + 2079 + static struct qcom_icc_bcm * const clk_virt_bcms[] = { 2080 + &bcm_ip0, 2081 + &bcm_qup0, 2082 + &bcm_qup1, 2083 + &bcm_qup2, 2084 + }; 2085 + 2086 + static struct qcom_icc_node * const clk_virt_nodes[] = { 2087 + [MASTER_IPA_CORE] = &ipa_core_master, 2088 + [MASTER_QUP_CORE_0] = &qup0_core_master, 2089 + [MASTER_QUP_CORE_1] = &qup1_core_master, 2090 + [MASTER_QUP_CORE_2] = &qup2_core_master, 2091 + [SLAVE_IPA_CORE] = &ipa_core_slave, 2092 + [SLAVE_QUP_CORE_0] = &qup0_core_slave, 2093 + [SLAVE_QUP_CORE_1] = &qup1_core_slave, 2094 + [SLAVE_QUP_CORE_2] = &qup2_core_slave, 2095 + }; 2096 + 2097 + static const struct qcom_icc_desc sc8280xp_clk_virt = { 2098 + .nodes = clk_virt_nodes, 2099 + .num_nodes = ARRAY_SIZE(clk_virt_nodes), 2100 + .bcms = clk_virt_bcms, 2101 + .num_bcms = ARRAY_SIZE(clk_virt_bcms), 2102 + }; 2103 + 2104 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 2105 + &bcm_cn0, 2106 + &bcm_cn1, 2107 + &bcm_cn2, 2108 + &bcm_cn3, 2109 + &bcm_sn2, 2110 + &bcm_sn10, 2111 + }; 2112 + 2113 + static struct qcom_icc_node * const config_noc_nodes[] = { 2114 + [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 2115 + [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 2116 + [SLAVE_AHB2PHY_0] = &qhs_ahb2phy0, 2117 + [SLAVE_AHB2PHY_1] = &qhs_ahb2phy1, 2118 + [SLAVE_AHB2PHY_2] = &qhs_ahb2phy2, 2119 + [SLAVE_AOSS] = &qhs_aoss, 2120 + [SLAVE_APPSS] = &qhs_apss, 2121 + [SLAVE_CAMERA_CFG] = &qhs_camera_cfg, 2122 + [SLAVE_CLK_CTL] = &qhs_clk_ctl, 2123 + [SLAVE_CDSP_CFG] = &qhs_compute0_cfg, 2124 + [SLAVE_CDSP1_CFG] = &qhs_compute1_cfg, 2125 + [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx, 2126 + [SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx, 2127 + [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx, 2128 + [SLAVE_CPR_NSPCX] = &qhs_cpr_nspcx, 2129 + [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 2130 + [SLAVE_CX_RDPM] = &qhs_cx_rdpm, 2131 + [SLAVE_DCC_CFG] = &qhs_dcc_cfg, 2132 + [SLAVE_DISPLAY_CFG] = &qhs_display0_cfg, 2133 + [SLAVE_DISPLAY1_CFG] = &qhs_display1_cfg, 2134 + [SLAVE_EMAC_CFG] = &qhs_emac0_cfg, 2135 + [SLAVE_EMAC1_CFG] = &qhs_emac1_cfg, 2136 + [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg, 2137 + [SLAVE_HWKM] = &qhs_hwkm, 2138 + [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 2139 + [SLAVE_IPA_CFG] = &qhs_ipa, 2140 + [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router, 2141 + [SLAVE_LPASS] = &qhs_lpass_cfg, 2142 + [SLAVE_MX_RDPM] = &qhs_mx_rdpm, 2143 + [SLAVE_MXC_RDPM] = &qhs_mxc_rdpm, 2144 + [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg, 2145 + [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg, 2146 + [SLAVE_PCIE_2A_CFG] = &qhs_pcie2a_cfg, 2147 + [SLAVE_PCIE_2B_CFG] = &qhs_pcie2b_cfg, 2148 + [SLAVE_PCIE_3A_CFG] = &qhs_pcie3a_cfg, 2149 + [SLAVE_PCIE_3B_CFG] = &qhs_pcie3b_cfg, 2150 + [SLAVE_PCIE_4_CFG] = &qhs_pcie4_cfg, 2151 + [SLAVE_PCIE_RSC_CFG] = &qhs_pcie_rsc_cfg, 2152 + [SLAVE_PDM] = &qhs_pdm, 2153 + [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg, 2154 + [SLAVE_PKA_WRAPPER_CFG] = &qhs_pka_wrapper_cfg, 2155 + [SLAVE_PMU_WRAPPER_CFG] = &qhs_pmu_wrapper_cfg, 2156 + [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 2157 + [SLAVE_QSPI_0] = &qhs_qspi, 2158 + [SLAVE_QUP_0] = &qhs_qup0, 2159 + [SLAVE_QUP_1] = &qhs_qup1, 2160 + [SLAVE_QUP_2] = &qhs_qup2, 2161 + [SLAVE_SDCC_2] = &qhs_sdc2, 2162 + [SLAVE_SDCC_4] = &qhs_sdc4, 2163 + [SLAVE_SECURITY] = &qhs_security, 2164 + [SLAVE_SMMUV3_CFG] = &qhs_smmuv3_cfg, 2165 + [SLAVE_SMSS_CFG] = &qhs_smss_cfg, 2166 + [SLAVE_SPSS_CFG] = &qhs_spss_cfg, 2167 + [SLAVE_TCSR] = &qhs_tcsr, 2168 + [SLAVE_TLMM] = &qhs_tlmm, 2169 + [SLAVE_UFS_CARD_CFG] = &qhs_ufs_card_cfg, 2170 + [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg, 2171 + [SLAVE_USB3_0] = &qhs_usb3_0, 2172 + [SLAVE_USB3_1] = &qhs_usb3_1, 2173 + [SLAVE_USB3_MP] = &qhs_usb3_mp, 2174 + [SLAVE_USB4_0] = &qhs_usb4_host_0, 2175 + [SLAVE_USB4_1] = &qhs_usb4_host_1, 2176 + [SLAVE_VENUS_CFG] = &qhs_venus_cfg, 2177 + [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg, 2178 + [SLAVE_VSENSE_CTRL_R_CFG] = &qhs_vsense_ctrl_r_cfg, 2179 + [SLAVE_A1NOC_CFG] = &qns_a1_noc_cfg, 2180 + [SLAVE_A2NOC_CFG] = &qns_a2_noc_cfg, 2181 + [SLAVE_ANOC_PCIE_BRIDGE_CFG] = &qns_anoc_pcie_bridge_cfg, 2182 + [SLAVE_DDRSS_CFG] = &qns_ddrss_cfg, 2183 + [SLAVE_CNOC_MNOC_CFG] = &qns_mnoc_cfg, 2184 + [SLAVE_SNOC_CFG] = &qns_snoc_cfg, 2185 + [SLAVE_SNOC_SF_BRIDGE_CFG] = &qns_snoc_sf_bridge_cfg, 2186 + [SLAVE_IMEM] = &qxs_imem, 2187 + [SLAVE_PIMEM] = &qxs_pimem, 2188 + [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 2189 + [SLAVE_PCIE_0] = &xs_pcie_0, 2190 + [SLAVE_PCIE_1] = &xs_pcie_1, 2191 + [SLAVE_PCIE_2A] = &xs_pcie_2a, 2192 + [SLAVE_PCIE_2B] = &xs_pcie_2b, 2193 + [SLAVE_PCIE_3A] = &xs_pcie_3a, 2194 + [SLAVE_PCIE_3B] = &xs_pcie_3b, 2195 + [SLAVE_PCIE_4] = &xs_pcie_4, 2196 + [SLAVE_QDSS_STM] = &xs_qdss_stm, 2197 + [SLAVE_SMSS] = &xs_smss, 2198 + [SLAVE_TCU] = &xs_sys_tcu_cfg, 2199 + }; 2200 + 2201 + static const struct qcom_icc_desc sc8280xp_config_noc = { 2202 + .nodes = config_noc_nodes, 2203 + .num_nodes = ARRAY_SIZE(config_noc_nodes), 2204 + .bcms = config_noc_bcms, 2205 + .num_bcms = ARRAY_SIZE(config_noc_bcms), 2206 + }; 2207 + 2208 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 2209 + }; 2210 + 2211 + static struct qcom_icc_node * const dc_noc_nodes[] = { 2212 + [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc, 2213 + [SLAVE_LLCC_CFG] = &qhs_llcc, 2214 + [SLAVE_GEM_NOC_CFG] = &qns_gemnoc, 2215 + }; 2216 + 2217 + static const struct qcom_icc_desc sc8280xp_dc_noc = { 2218 + .nodes = dc_noc_nodes, 2219 + .num_nodes = ARRAY_SIZE(dc_noc_nodes), 2220 + .bcms = dc_noc_bcms, 2221 + .num_bcms = ARRAY_SIZE(dc_noc_bcms), 2222 + }; 2223 + 2224 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 2225 + &bcm_sh0, 2226 + &bcm_sh2, 2227 + }; 2228 + 2229 + static struct qcom_icc_node * const gem_noc_nodes[] = { 2230 + [MASTER_GPU_TCU] = &alm_gpu_tcu, 2231 + [MASTER_PCIE_TCU] = &alm_pcie_tcu, 2232 + [MASTER_SYS_TCU] = &alm_sys_tcu, 2233 + [MASTER_APPSS_PROC] = &chm_apps, 2234 + [MASTER_COMPUTE_NOC] = &qnm_cmpnoc0, 2235 + [MASTER_COMPUTE_NOC_1] = &qnm_cmpnoc1, 2236 + [MASTER_GEM_NOC_CFG] = &qnm_gemnoc_cfg, 2237 + [MASTER_GFX3D] = &qnm_gpu, 2238 + [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf, 2239 + [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf, 2240 + [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie, 2241 + [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 2242 + [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf, 2243 + [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc, 2244 + [SLAVE_LLCC] = &qns_llcc, 2245 + [SLAVE_GEM_NOC_PCIE_CNOC] = &qns_pcie, 2246 + [SLAVE_SERVICE_GEM_NOC_1] = &srvc_even_gemnoc, 2247 + [SLAVE_SERVICE_GEM_NOC_2] = &srvc_odd_gemnoc, 2248 + [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc, 2249 + }; 2250 + 2251 + static const struct qcom_icc_desc sc8280xp_gem_noc = { 2252 + .nodes = gem_noc_nodes, 2253 + .num_nodes = ARRAY_SIZE(gem_noc_nodes), 2254 + .bcms = gem_noc_bcms, 2255 + .num_bcms = ARRAY_SIZE(gem_noc_bcms), 2256 + }; 2257 + 2258 + static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = { 2259 + &bcm_sn9, 2260 + }; 2261 + 2262 + static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 2263 + [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 2264 + [MASTER_LPASS_PROC] = &qxm_lpass_dsp, 2265 + [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, 2266 + [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi, 2267 + [SLAVE_LPASS_MPU_CFG] = &qhs_lpass_mpu, 2268 + [SLAVE_LPASS_TOP_CFG] = &qhs_lpass_top, 2269 + [SLAVE_LPASS_SNOC] = &qns_sysnoc, 2270 + [SLAVE_SERVICES_LPASS_AML_NOC] = &srvc_niu_aml_noc, 2271 + [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 2272 + }; 2273 + 2274 + static const struct qcom_icc_desc sc8280xp_lpass_ag_noc = { 2275 + .nodes = lpass_ag_noc_nodes, 2276 + .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 2277 + .bcms = lpass_ag_noc_bcms, 2278 + .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 2279 + }; 2280 + 2281 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 2282 + &bcm_acv, 2283 + &bcm_mc0, 2284 + }; 2285 + 2286 + static struct qcom_icc_node * const mc_virt_nodes[] = { 2287 + [MASTER_LLCC] = &llcc_mc, 2288 + [SLAVE_EBI1] = &ebi, 2289 + }; 2290 + 2291 + static const struct qcom_icc_desc sc8280xp_mc_virt = { 2292 + .nodes = mc_virt_nodes, 2293 + .num_nodes = ARRAY_SIZE(mc_virt_nodes), 2294 + .bcms = mc_virt_bcms, 2295 + .num_bcms = ARRAY_SIZE(mc_virt_bcms), 2296 + }; 2297 + 2298 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 2299 + &bcm_mm0, 2300 + &bcm_mm1, 2301 + }; 2302 + 2303 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 2304 + [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 2305 + [MASTER_MDP0] = &qnm_mdp0_0, 2306 + [MASTER_MDP1] = &qnm_mdp0_1, 2307 + [MASTER_MDP_CORE1_0] = &qnm_mdp1_0, 2308 + [MASTER_MDP_CORE1_1] = &qnm_mdp1_1, 2309 + [MASTER_CNOC_MNOC_CFG] = &qnm_mnoc_cfg, 2310 + [MASTER_ROTATOR] = &qnm_rot_0, 2311 + [MASTER_ROTATOR_1] = &qnm_rot_1, 2312 + [MASTER_VIDEO_P0] = &qnm_video0, 2313 + [MASTER_VIDEO_P1] = &qnm_video1, 2314 + [MASTER_VIDEO_PROC] = &qnm_video_cvp, 2315 + [MASTER_CAMNOC_ICP] = &qxm_camnoc_icp, 2316 + [MASTER_CAMNOC_SF] = &qxm_camnoc_sf, 2317 + [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf, 2318 + [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf, 2319 + [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 2320 + }; 2321 + 2322 + static const struct qcom_icc_desc sc8280xp_mmss_noc = { 2323 + .nodes = mmss_noc_nodes, 2324 + .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 2325 + .bcms = mmss_noc_bcms, 2326 + .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 2327 + }; 2328 + 2329 + static struct qcom_icc_bcm * const nspa_noc_bcms[] = { 2330 + &bcm_nsa0, 2331 + &bcm_nsa1, 2332 + }; 2333 + 2334 + static struct qcom_icc_node * const nspa_noc_nodes[] = { 2335 + [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 2336 + [MASTER_CDSP_PROC] = &qxm_nsp, 2337 + [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 2338 + [SLAVE_NSP_XFR] = &qxs_nsp_xfr, 2339 + [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 2340 + }; 2341 + 2342 + static const struct qcom_icc_desc sc8280xp_nspa_noc = { 2343 + .nodes = nspa_noc_nodes, 2344 + .num_nodes = ARRAY_SIZE(nspa_noc_nodes), 2345 + .bcms = nspa_noc_bcms, 2346 + .num_bcms = ARRAY_SIZE(nspa_noc_bcms), 2347 + }; 2348 + 2349 + static struct qcom_icc_bcm * const nspb_noc_bcms[] = { 2350 + &bcm_nsb0, 2351 + &bcm_nsb1, 2352 + }; 2353 + 2354 + static struct qcom_icc_node * const nspb_noc_nodes[] = { 2355 + [MASTER_CDSPB_NOC_CFG] = &qhm_nspb_noc_config, 2356 + [MASTER_CDSP_PROC_B] = &qxm_nspb, 2357 + [SLAVE_CDSPB_MEM_NOC] = &qns_nspb_gemnoc, 2358 + [SLAVE_NSPB_XFR] = &qxs_nspb_xfr, 2359 + [SLAVE_SERVICE_NSPB_NOC] = &service_nspb_noc, 2360 + }; 2361 + 2362 + static const struct qcom_icc_desc sc8280xp_nspb_noc = { 2363 + .nodes = nspb_noc_nodes, 2364 + .num_nodes = ARRAY_SIZE(nspb_noc_nodes), 2365 + .bcms = nspb_noc_bcms, 2366 + .num_bcms = ARRAY_SIZE(nspb_noc_bcms), 2367 + }; 2368 + 2369 + static struct qcom_icc_bcm * const system_noc_main_bcms[] = { 2370 + &bcm_sn0, 2371 + &bcm_sn1, 2372 + &bcm_sn3, 2373 + &bcm_sn4, 2374 + &bcm_sn5, 2375 + &bcm_sn9, 2376 + }; 2377 + 2378 + static struct qcom_icc_node * const system_noc_main_nodes[] = { 2379 + [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 2380 + [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 2381 + [MASTER_USB_NOC_SNOC] = &qnm_aggre_usb_noc, 2382 + [MASTER_LPASS_ANOC] = &qnm_lpass_noc, 2383 + [MASTER_SNOC_CFG] = &qnm_snoc_cfg, 2384 + [MASTER_PIMEM] = &qxm_pimem, 2385 + [MASTER_GIC] = &xm_gic, 2386 + [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc, 2387 + [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf, 2388 + [SLAVE_SERVICE_SNOC] = &srvc_snoc, 2389 + }; 2390 + 2391 + static const struct qcom_icc_desc sc8280xp_system_noc_main = { 2392 + .nodes = system_noc_main_nodes, 2393 + .num_nodes = ARRAY_SIZE(system_noc_main_nodes), 2394 + .bcms = system_noc_main_bcms, 2395 + .num_bcms = ARRAY_SIZE(system_noc_main_bcms), 2396 + }; 2397 + 2398 + static const struct of_device_id qnoc_of_match[] = { 2399 + { .compatible = "qcom,sc8280xp-aggre1-noc", .data = &sc8280xp_aggre1_noc, }, 2400 + { .compatible = "qcom,sc8280xp-aggre2-noc", .data = &sc8280xp_aggre2_noc, }, 2401 + { .compatible = "qcom,sc8280xp-clk-virt", .data = &sc8280xp_clk_virt, }, 2402 + { .compatible = "qcom,sc8280xp-config-noc", .data = &sc8280xp_config_noc, }, 2403 + { .compatible = "qcom,sc8280xp-dc-noc", .data = &sc8280xp_dc_noc, }, 2404 + { .compatible = "qcom,sc8280xp-gem-noc", .data = &sc8280xp_gem_noc, }, 2405 + { .compatible = "qcom,sc8280xp-lpass-ag-noc", .data = &sc8280xp_lpass_ag_noc, }, 2406 + { .compatible = "qcom,sc8280xp-mc-virt", .data = &sc8280xp_mc_virt, }, 2407 + { .compatible = "qcom,sc8280xp-mmss-noc", .data = &sc8280xp_mmss_noc, }, 2408 + { .compatible = "qcom,sc8280xp-nspa-noc", .data = &sc8280xp_nspa_noc, }, 2409 + { .compatible = "qcom,sc8280xp-nspb-noc", .data = &sc8280xp_nspb_noc, }, 2410 + { .compatible = "qcom,sc8280xp-system-noc", .data = &sc8280xp_system_noc_main, }, 2411 + { } 2412 + }; 2413 + MODULE_DEVICE_TABLE(of, qnoc_of_match); 2414 + 2415 + static struct platform_driver qnoc_driver = { 2416 + .probe = qcom_icc_rpmh_probe, 2417 + .remove = qcom_icc_rpmh_remove, 2418 + .driver = { 2419 + .name = "qnoc-sc8280xp", 2420 + .of_match_table = qnoc_of_match, 2421 + .sync_state = icc_sync_state, 2422 + }, 2423 + }; 2424 + 2425 + static int __init qnoc_driver_init(void) 2426 + { 2427 + return platform_driver_register(&qnoc_driver); 2428 + } 2429 + core_initcall(qnoc_driver_init); 2430 + 2431 + static void __exit qnoc_driver_exit(void) 2432 + { 2433 + platform_driver_unregister(&qnoc_driver); 2434 + } 2435 + module_exit(qnoc_driver_exit); 2436 + 2437 + MODULE_DESCRIPTION("Qualcomm SC8280XP NoC driver"); 2438 + MODULE_LICENSE("GPL");
+209
drivers/interconnect/qcom/sc8280xp.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only */ 2 + /* 3 + * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4 + */ 5 + 6 + #ifndef __DRIVERS_INTERCONNECT_QCOM_SC8280XP_H 7 + #define __DRIVERS_INTERCONNECT_QCOM_SC8280XP_H 8 + 9 + #define SC8280XP_MASTER_GPU_TCU 0 10 + #define SC8280XP_MASTER_PCIE_TCU 1 11 + #define SC8280XP_MASTER_SYS_TCU 2 12 + #define SC8280XP_MASTER_APPSS_PROC 3 13 + #define SC8280XP_MASTER_IPA_CORE 4 14 + #define SC8280XP_MASTER_LLCC 5 15 + #define SC8280XP_MASTER_CNOC_LPASS_AG_NOC 6 16 + #define SC8280XP_MASTER_CDSP_NOC_CFG 7 17 + #define SC8280XP_MASTER_CDSPB_NOC_CFG 8 18 + #define SC8280XP_MASTER_QDSS_BAM 9 19 + #define SC8280XP_MASTER_QSPI_0 10 20 + #define SC8280XP_MASTER_QUP_0 11 21 + #define SC8280XP_MASTER_QUP_1 12 22 + #define SC8280XP_MASTER_QUP_2 13 23 + #define SC8280XP_MASTER_A1NOC_CFG 14 24 + #define SC8280XP_MASTER_A2NOC_CFG 15 25 + #define SC8280XP_MASTER_A1NOC_SNOC 16 26 + #define SC8280XP_MASTER_A2NOC_SNOC 17 27 + #define SC8280XP_MASTER_USB_NOC_SNOC 18 28 + #define SC8280XP_MASTER_CAMNOC_HF 19 29 + #define SC8280XP_MASTER_COMPUTE_NOC 20 30 + #define SC8280XP_MASTER_COMPUTE_NOC_1 21 31 + #define SC8280XP_MASTER_CNOC_DC_NOC 22 32 + #define SC8280XP_MASTER_GEM_NOC_CFG 23 33 + #define SC8280XP_MASTER_GEM_NOC_CNOC 24 34 + #define SC8280XP_MASTER_GEM_NOC_PCIE_SNOC 25 35 + #define SC8280XP_MASTER_GFX3D 26 36 + #define SC8280XP_MASTER_LPASS_ANOC 27 37 + #define SC8280XP_MASTER_MDP0 28 38 + #define SC8280XP_MASTER_MDP1 29 39 + #define SC8280XP_MASTER_MDP_CORE1_0 30 40 + #define SC8280XP_MASTER_MDP_CORE1_1 31 41 + #define SC8280XP_MASTER_CNOC_MNOC_CFG 32 42 + #define SC8280XP_MASTER_MNOC_HF_MEM_NOC 33 43 + #define SC8280XP_MASTER_MNOC_SF_MEM_NOC 34 44 + #define SC8280XP_MASTER_ANOC_PCIE_GEM_NOC 35 45 + #define SC8280XP_MASTER_ROTATOR 36 46 + #define SC8280XP_MASTER_ROTATOR_1 37 47 + #define SC8280XP_MASTER_SNOC_CFG 38 48 + #define SC8280XP_MASTER_SNOC_GC_MEM_NOC 39 49 + #define SC8280XP_MASTER_SNOC_SF_MEM_NOC 40 50 + #define SC8280XP_MASTER_VIDEO_P0 41 51 + #define SC8280XP_MASTER_VIDEO_P1 42 52 + #define SC8280XP_MASTER_VIDEO_PROC 43 53 + #define SC8280XP_MASTER_QUP_CORE_0 44 54 + #define SC8280XP_MASTER_QUP_CORE_1 45 55 + #define SC8280XP_MASTER_QUP_CORE_2 46 56 + #define SC8280XP_MASTER_CAMNOC_ICP 47 57 + #define SC8280XP_MASTER_CAMNOC_SF 48 58 + #define SC8280XP_MASTER_CRYPTO 49 59 + #define SC8280XP_MASTER_IPA 50 60 + #define SC8280XP_MASTER_LPASS_PROC 51 61 + #define SC8280XP_MASTER_CDSP_PROC 52 62 + #define SC8280XP_MASTER_CDSP_PROC_B 53 63 + #define SC8280XP_MASTER_PIMEM 54 64 + #define SC8280XP_MASTER_SENSORS_PROC 55 65 + #define SC8280XP_MASTER_SP 56 66 + #define SC8280XP_MASTER_EMAC 57 67 + #define SC8280XP_MASTER_EMAC_1 58 68 + #define SC8280XP_MASTER_GIC 59 69 + #define SC8280XP_MASTER_PCIE_0 60 70 + #define SC8280XP_MASTER_PCIE_1 61 71 + #define SC8280XP_MASTER_PCIE_2A 62 72 + #define SC8280XP_MASTER_PCIE_2B 63 73 + #define SC8280XP_MASTER_PCIE_3A 64 74 + #define SC8280XP_MASTER_PCIE_3B 65 75 + #define SC8280XP_MASTER_PCIE_4 66 76 + #define SC8280XP_MASTER_QDSS_ETR 67 77 + #define SC8280XP_MASTER_SDCC_2 68 78 + #define SC8280XP_MASTER_SDCC_4 69 79 + #define SC8280XP_MASTER_UFS_CARD 70 80 + #define SC8280XP_MASTER_UFS_MEM 71 81 + #define SC8280XP_MASTER_USB3_0 72 82 + #define SC8280XP_MASTER_USB3_1 73 83 + #define SC8280XP_MASTER_USB3_MP 74 84 + #define SC8280XP_MASTER_USB4_0 75 85 + #define SC8280XP_MASTER_USB4_1 76 86 + #define SC8280XP_SLAVE_EBI1 512 87 + #define SC8280XP_SLAVE_IPA_CORE 513 88 + #define SC8280XP_SLAVE_AHB2PHY_0 514 89 + #define SC8280XP_SLAVE_AHB2PHY_1 515 90 + #define SC8280XP_SLAVE_AHB2PHY_2 516 91 + #define SC8280XP_SLAVE_AOSS 517 92 + #define SC8280XP_SLAVE_APPSS 518 93 + #define SC8280XP_SLAVE_CAMERA_CFG 519 94 + #define SC8280XP_SLAVE_CLK_CTL 520 95 + #define SC8280XP_SLAVE_CDSP_CFG 521 96 + #define SC8280XP_SLAVE_CDSP1_CFG 522 97 + #define SC8280XP_SLAVE_RBCPR_CX_CFG 523 98 + #define SC8280XP_SLAVE_RBCPR_MMCX_CFG 524 99 + #define SC8280XP_SLAVE_RBCPR_MX_CFG 525 100 + #define SC8280XP_SLAVE_CPR_NSPCX 526 101 + #define SC8280XP_SLAVE_CRYPTO_0_CFG 527 102 + #define SC8280XP_SLAVE_CX_RDPM 528 103 + #define SC8280XP_SLAVE_DCC_CFG 529 104 + #define SC8280XP_SLAVE_DISPLAY_CFG 530 105 + #define SC8280XP_SLAVE_DISPLAY1_CFG 531 106 + #define SC8280XP_SLAVE_EMAC_CFG 532 107 + #define SC8280XP_SLAVE_EMAC1_CFG 533 108 + #define SC8280XP_SLAVE_GFX3D_CFG 534 109 + #define SC8280XP_SLAVE_HWKM 535 110 + #define SC8280XP_SLAVE_IMEM_CFG 536 111 + #define SC8280XP_SLAVE_IPA_CFG 537 112 + #define SC8280XP_SLAVE_IPC_ROUTER_CFG 538 113 + #define SC8280XP_SLAVE_LLCC_CFG 539 114 + #define SC8280XP_SLAVE_LPASS 540 115 + #define SC8280XP_SLAVE_LPASS_CORE_CFG 541 116 + #define SC8280XP_SLAVE_LPASS_LPI_CFG 542 117 + #define SC8280XP_SLAVE_LPASS_MPU_CFG 543 118 + #define SC8280XP_SLAVE_LPASS_TOP_CFG 544 119 + #define SC8280XP_SLAVE_MX_RDPM 545 120 + #define SC8280XP_SLAVE_MXC_RDPM 546 121 + #define SC8280XP_SLAVE_PCIE_0_CFG 547 122 + #define SC8280XP_SLAVE_PCIE_1_CFG 548 123 + #define SC8280XP_SLAVE_PCIE_2A_CFG 549 124 + #define SC8280XP_SLAVE_PCIE_2B_CFG 550 125 + #define SC8280XP_SLAVE_PCIE_3A_CFG 551 126 + #define SC8280XP_SLAVE_PCIE_3B_CFG 552 127 + #define SC8280XP_SLAVE_PCIE_4_CFG 553 128 + #define SC8280XP_SLAVE_PCIE_RSC_CFG 554 129 + #define SC8280XP_SLAVE_PDM 555 130 + #define SC8280XP_SLAVE_PIMEM_CFG 556 131 + #define SC8280XP_SLAVE_PKA_WRAPPER_CFG 557 132 + #define SC8280XP_SLAVE_PMU_WRAPPER_CFG 558 133 + #define SC8280XP_SLAVE_QDSS_CFG 559 134 + #define SC8280XP_SLAVE_QSPI_0 560 135 + #define SC8280XP_SLAVE_QUP_0 561 136 + #define SC8280XP_SLAVE_QUP_1 562 137 + #define SC8280XP_SLAVE_QUP_2 563 138 + #define SC8280XP_SLAVE_SDCC_2 564 139 + #define SC8280XP_SLAVE_SDCC_4 565 140 + #define SC8280XP_SLAVE_SECURITY 566 141 + #define SC8280XP_SLAVE_SMMUV3_CFG 567 142 + #define SC8280XP_SLAVE_SMSS_CFG 568 143 + #define SC8280XP_SLAVE_SPSS_CFG 569 144 + #define SC8280XP_SLAVE_TCSR 570 145 + #define SC8280XP_SLAVE_TLMM 571 146 + #define SC8280XP_SLAVE_UFS_CARD_CFG 572 147 + #define SC8280XP_SLAVE_UFS_MEM_CFG 573 148 + #define SC8280XP_SLAVE_USB3_0 574 149 + #define SC8280XP_SLAVE_USB3_1 575 150 + #define SC8280XP_SLAVE_USB3_MP 576 151 + #define SC8280XP_SLAVE_USB4_0 577 152 + #define SC8280XP_SLAVE_USB4_1 578 153 + #define SC8280XP_SLAVE_VENUS_CFG 579 154 + #define SC8280XP_SLAVE_VSENSE_CTRL_CFG 580 155 + #define SC8280XP_SLAVE_VSENSE_CTRL_R_CFG 581 156 + #define SC8280XP_SLAVE_A1NOC_CFG 582 157 + #define SC8280XP_SLAVE_A1NOC_SNOC 583 158 + #define SC8280XP_SLAVE_A2NOC_CFG 584 159 + #define SC8280XP_SLAVE_A2NOC_SNOC 585 160 + #define SC8280XP_SLAVE_USB_NOC_SNOC 586 161 + #define SC8280XP_SLAVE_ANOC_PCIE_BRIDGE_CFG 587 162 + #define SC8280XP_SLAVE_DDRSS_CFG 588 163 + #define SC8280XP_SLAVE_GEM_NOC_CNOC 589 164 + #define SC8280XP_SLAVE_GEM_NOC_CFG 590 165 + #define SC8280XP_SLAVE_SNOC_GEM_NOC_GC 591 166 + #define SC8280XP_SLAVE_SNOC_GEM_NOC_SF 592 167 + #define SC8280XP_SLAVE_LLCC 593 168 + #define SC8280XP_SLAVE_MNOC_HF_MEM_NOC 594 169 + #define SC8280XP_SLAVE_MNOC_SF_MEM_NOC 595 170 + #define SC8280XP_SLAVE_CNOC_MNOC_CFG 596 171 + #define SC8280XP_SLAVE_CDSP_MEM_NOC 597 172 + #define SC8280XP_SLAVE_CDSPB_MEM_NOC 598 173 + #define SC8280XP_SLAVE_GEM_NOC_PCIE_CNOC 599 174 + #define SC8280XP_SLAVE_ANOC_PCIE_GEM_NOC 600 175 + #define SC8280XP_SLAVE_SNOC_CFG 601 176 + #define SC8280XP_SLAVE_SNOC_SF_BRIDGE_CFG 602 177 + #define SC8280XP_SLAVE_LPASS_SNOC 603 178 + #define SC8280XP_SLAVE_QUP_CORE_0 604 179 + #define SC8280XP_SLAVE_QUP_CORE_1 605 180 + #define SC8280XP_SLAVE_QUP_CORE_2 606 181 + #define SC8280XP_SLAVE_IMEM 607 182 + #define SC8280XP_SLAVE_NSP_XFR 608 183 + #define SC8280XP_SLAVE_NSPB_XFR 609 184 + #define SC8280XP_SLAVE_PIMEM 610 185 + #define SC8280XP_SLAVE_SERVICE_NSP_NOC 611 186 + #define SC8280XP_SLAVE_SERVICE_NSPB_NOC 612 187 + #define SC8280XP_SLAVE_SERVICE_A1NOC 613 188 + #define SC8280XP_SLAVE_SERVICE_A2NOC 614 189 + #define SC8280XP_SLAVE_SERVICE_CNOC 615 190 + #define SC8280XP_SLAVE_SERVICE_GEM_NOC_1 616 191 + #define SC8280XP_SLAVE_SERVICE_MNOC 617 192 + #define SC8280XP_SLAVE_SERVICES_LPASS_AML_NOC 618 193 + #define SC8280XP_SLAVE_SERVICE_LPASS_AG_NOC 619 194 + #define SC8280XP_SLAVE_SERVICE_GEM_NOC_2 620 195 + #define SC8280XP_SLAVE_SERVICE_SNOC 621 196 + #define SC8280XP_SLAVE_SERVICE_GEM_NOC 622 197 + #define SC8280XP_SLAVE_PCIE_0 623 198 + #define SC8280XP_SLAVE_PCIE_1 624 199 + #define SC8280XP_SLAVE_PCIE_2A 625 200 + #define SC8280XP_SLAVE_PCIE_2B 626 201 + #define SC8280XP_SLAVE_PCIE_3A 627 202 + #define SC8280XP_SLAVE_PCIE_3B 628 203 + #define SC8280XP_SLAVE_PCIE_4 629 204 + #define SC8280XP_SLAVE_QDSS_STM 630 205 + #define SC8280XP_SLAVE_SMSS 631 206 + #define SC8280XP_SLAVE_TCU 632 207 + 208 + #endif 209 +
+12 -12
drivers/interconnect/qcom/sdm660.c
··· 1490 1490 .slv_rpm_id = 29, 1491 1491 }; 1492 1492 1493 - static struct qcom_icc_node *sdm660_a2noc_nodes[] = { 1493 + static struct qcom_icc_node * const sdm660_a2noc_nodes[] = { 1494 1494 [MASTER_IPA] = &mas_ipa, 1495 1495 [MASTER_CNOC_A2NOC] = &mas_cnoc_a2noc, 1496 1496 [MASTER_SDCC_1] = &mas_sdcc_1, ··· 1512 1512 .fast_io = true, 1513 1513 }; 1514 1514 1515 - static struct qcom_icc_desc sdm660_a2noc = { 1515 + static const struct qcom_icc_desc sdm660_a2noc = { 1516 1516 .type = QCOM_ICC_NOC, 1517 1517 .nodes = sdm660_a2noc_nodes, 1518 1518 .num_nodes = ARRAY_SIZE(sdm660_a2noc_nodes), ··· 1521 1521 .regmap_cfg = &sdm660_a2noc_regmap_config, 1522 1522 }; 1523 1523 1524 - static struct qcom_icc_node *sdm660_bimc_nodes[] = { 1524 + static struct qcom_icc_node * const sdm660_bimc_nodes[] = { 1525 1525 [MASTER_GNOC_BIMC] = &mas_gnoc_bimc, 1526 1526 [MASTER_OXILI] = &mas_oxili, 1527 1527 [MASTER_MNOC_BIMC] = &mas_mnoc_bimc, ··· 1540 1540 .fast_io = true, 1541 1541 }; 1542 1542 1543 - static struct qcom_icc_desc sdm660_bimc = { 1543 + static const struct qcom_icc_desc sdm660_bimc = { 1544 1544 .type = QCOM_ICC_BIMC, 1545 1545 .nodes = sdm660_bimc_nodes, 1546 1546 .num_nodes = ARRAY_SIZE(sdm660_bimc_nodes), 1547 1547 .regmap_cfg = &sdm660_bimc_regmap_config, 1548 1548 }; 1549 1549 1550 - static struct qcom_icc_node *sdm660_cnoc_nodes[] = { 1550 + static struct qcom_icc_node * const sdm660_cnoc_nodes[] = { 1551 1551 [MASTER_SNOC_CNOC] = &mas_snoc_cnoc, 1552 1552 [MASTER_QDSS_DAP] = &mas_qdss_dap, 1553 1553 [SLAVE_CNOC_A2NOC] = &slv_cnoc_a2noc, ··· 1594 1594 .fast_io = true, 1595 1595 }; 1596 1596 1597 - static struct qcom_icc_desc sdm660_cnoc = { 1597 + static const struct qcom_icc_desc sdm660_cnoc = { 1598 1598 .type = QCOM_ICC_NOC, 1599 1599 .nodes = sdm660_cnoc_nodes, 1600 1600 .num_nodes = ARRAY_SIZE(sdm660_cnoc_nodes), 1601 1601 .regmap_cfg = &sdm660_cnoc_regmap_config, 1602 1602 }; 1603 1603 1604 - static struct qcom_icc_node *sdm660_gnoc_nodes[] = { 1604 + static struct qcom_icc_node * const sdm660_gnoc_nodes[] = { 1605 1605 [MASTER_APSS_PROC] = &mas_apss_proc, 1606 1606 [SLAVE_GNOC_BIMC] = &slv_gnoc_bimc, 1607 1607 [SLAVE_GNOC_SNOC] = &slv_gnoc_snoc, ··· 1615 1615 .fast_io = true, 1616 1616 }; 1617 1617 1618 - static struct qcom_icc_desc sdm660_gnoc = { 1618 + static const struct qcom_icc_desc sdm660_gnoc = { 1619 1619 .type = QCOM_ICC_NOC, 1620 1620 .nodes = sdm660_gnoc_nodes, 1621 1621 .num_nodes = ARRAY_SIZE(sdm660_gnoc_nodes), 1622 1622 .regmap_cfg = &sdm660_gnoc_regmap_config, 1623 1623 }; 1624 1624 1625 - static struct qcom_icc_node *sdm660_mnoc_nodes[] = { 1625 + static struct qcom_icc_node * const sdm660_mnoc_nodes[] = { 1626 1626 [MASTER_CPP] = &mas_cpp, 1627 1627 [MASTER_JPEG] = &mas_jpeg, 1628 1628 [MASTER_MDP_P0] = &mas_mdp_p0, ··· 1655 1655 .fast_io = true, 1656 1656 }; 1657 1657 1658 - static struct qcom_icc_desc sdm660_mnoc = { 1658 + static const struct qcom_icc_desc sdm660_mnoc = { 1659 1659 .type = QCOM_ICC_NOC, 1660 1660 .nodes = sdm660_mnoc_nodes, 1661 1661 .num_nodes = ARRAY_SIZE(sdm660_mnoc_nodes), ··· 1664 1664 .regmap_cfg = &sdm660_mnoc_regmap_config, 1665 1665 }; 1666 1666 1667 - static struct qcom_icc_node *sdm660_snoc_nodes[] = { 1667 + static struct qcom_icc_node * const sdm660_snoc_nodes[] = { 1668 1668 [MASTER_QDSS_ETR] = &mas_qdss_etr, 1669 1669 [MASTER_QDSS_BAM] = &mas_qdss_bam, 1670 1670 [MASTER_SNOC_CFG] = &mas_snoc_cfg, ··· 1692 1692 .fast_io = true, 1693 1693 }; 1694 1694 1695 - static struct qcom_icc_desc sdm660_snoc = { 1695 + static const struct qcom_icc_desc sdm660_snoc = { 1696 1696 .type = QCOM_ICC_NOC, 1697 1697 .nodes = sdm660_snoc_nodes, 1698 1698 .num_nodes = ARRAY_SIZE(sdm660_snoc_nodes),
+16 -16
drivers/interconnect/qcom/sdm845.c
··· 175 175 DEFINE_QBCM(bcm_sn14, "SN14", false, &qnm_pcie_anoc); 176 176 DEFINE_QBCM(bcm_sn15, "SN15", false, &qnm_memnoc); 177 177 178 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 178 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 179 179 &bcm_sn9, 180 180 &bcm_qup0, 181 181 }; 182 182 183 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 183 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 184 184 [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg, 185 185 [MASTER_TSIF] = &qhm_tsif, 186 186 [MASTER_SDCC_2] = &xm_sdc2, ··· 201 201 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 202 202 }; 203 203 204 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 204 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 205 205 &bcm_ce0, 206 206 &bcm_sn11, 207 207 &bcm_qup0, 208 208 }; 209 209 210 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 210 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 211 211 [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg, 212 212 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 213 213 [MASTER_CNOC_A2NOC] = &qnm_cnoc, ··· 230 230 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 231 231 }; 232 232 233 - static struct qcom_icc_bcm *config_noc_bcms[] = { 233 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 234 234 &bcm_cn0, 235 235 }; 236 236 237 - static struct qcom_icc_node *config_noc_nodes[] = { 237 + static struct qcom_icc_node * const config_noc_nodes[] = { 238 238 [MASTER_SPDM] = &qhm_spdm, 239 239 [MASTER_TIC] = &qhm_tic, 240 240 [MASTER_SNOC_CNOC] = &qnm_snoc, ··· 291 291 .num_bcms = ARRAY_SIZE(config_noc_bcms), 292 292 }; 293 293 294 - static struct qcom_icc_bcm *dc_noc_bcms[] = { 294 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 295 295 }; 296 296 297 - static struct qcom_icc_node *dc_noc_nodes[] = { 297 + static struct qcom_icc_node * const dc_noc_nodes[] = { 298 298 [MASTER_CNOC_DC_NOC] = &qhm_cnoc, 299 299 [SLAVE_LLCC_CFG] = &qhs_llcc, 300 300 [SLAVE_MEM_NOC_CFG] = &qhs_memnoc, ··· 307 307 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 308 308 }; 309 309 310 - static struct qcom_icc_bcm *gladiator_noc_bcms[] = { 310 + static struct qcom_icc_bcm * const gladiator_noc_bcms[] = { 311 311 }; 312 312 313 - static struct qcom_icc_node *gladiator_noc_nodes[] = { 313 + static struct qcom_icc_node * const gladiator_noc_nodes[] = { 314 314 [MASTER_APPSS_PROC] = &acm_l3, 315 315 [MASTER_GNOC_CFG] = &pm_gnoc_cfg, 316 316 [SLAVE_GNOC_SNOC] = &qns_gladiator_sodv, ··· 325 325 .num_bcms = ARRAY_SIZE(gladiator_noc_bcms), 326 326 }; 327 327 328 - static struct qcom_icc_bcm *mem_noc_bcms[] = { 328 + static struct qcom_icc_bcm * const mem_noc_bcms[] = { 329 329 &bcm_mc0, 330 330 &bcm_acv, 331 331 &bcm_sh0, ··· 335 335 &bcm_sh5, 336 336 }; 337 337 338 - static struct qcom_icc_node *mem_noc_nodes[] = { 338 + static struct qcom_icc_node * const mem_noc_nodes[] = { 339 339 [MASTER_TCU_0] = &acm_tcu, 340 340 [MASTER_MEM_NOC_CFG] = &qhm_memnoc_cfg, 341 341 [MASTER_GNOC_MEM_NOC] = &qnm_apps, ··· 360 360 .num_bcms = ARRAY_SIZE(mem_noc_bcms), 361 361 }; 362 362 363 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 363 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 364 364 &bcm_mm0, 365 365 &bcm_mm1, 366 366 &bcm_mm2, 367 367 &bcm_mm3, 368 368 }; 369 369 370 - static struct qcom_icc_node *mmss_noc_nodes[] = { 370 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 371 371 [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg, 372 372 [MASTER_CAMNOC_HF0] = &qxm_camnoc_hf0, 373 373 [MASTER_CAMNOC_HF1] = &qxm_camnoc_hf1, ··· 394 394 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 395 395 }; 396 396 397 - static struct qcom_icc_bcm *system_noc_bcms[] = { 397 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 398 398 &bcm_sn0, 399 399 &bcm_sn1, 400 400 &bcm_sn2, ··· 411 411 &bcm_sn15, 412 412 }; 413 413 414 - static struct qcom_icc_node *system_noc_nodes[] = { 414 + static struct qcom_icc_node * const system_noc_nodes[] = { 415 415 [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 416 416 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 417 417 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc,
+6 -6
drivers/interconnect/qcom/sdx55.c
··· 99 99 DEFINE_QBCM(bcm_sn10, "SN10", false, &qnm_memnoc_pcie); 100 100 DEFINE_QBCM(bcm_sn11, "SN11", false, &qnm_ipa, &xm_ipa2pcie_slv); 101 101 102 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 102 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 103 103 &bcm_mc0, 104 104 }; 105 105 106 - static struct qcom_icc_node *mc_virt_nodes[] = { 106 + static struct qcom_icc_node * const mc_virt_nodes[] = { 107 107 [MASTER_LLCC] = &llcc_mc, 108 108 [SLAVE_EBI_CH0] = &ebi, 109 109 }; ··· 115 115 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 116 116 }; 117 117 118 - static struct qcom_icc_bcm *mem_noc_bcms[] = { 118 + static struct qcom_icc_bcm * const mem_noc_bcms[] = { 119 119 &bcm_sh0, 120 120 &bcm_sh3, 121 121 &bcm_sh4, 122 122 }; 123 123 124 - static struct qcom_icc_node *mem_noc_nodes[] = { 124 + static struct qcom_icc_node * const mem_noc_nodes[] = { 125 125 [MASTER_TCU_0] = &acm_tcu, 126 126 [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 127 127 [MASTER_AMPSS_M0] = &xm_apps_rdwr, ··· 137 137 .num_bcms = ARRAY_SIZE(mem_noc_bcms), 138 138 }; 139 139 140 - static struct qcom_icc_bcm *system_noc_bcms[] = { 140 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 141 141 &bcm_ce0, 142 142 &bcm_pn0, 143 143 &bcm_pn1, ··· 156 156 &bcm_sn11, 157 157 }; 158 158 159 - static struct qcom_icc_node *system_noc_nodes[] = { 159 + static struct qcom_icc_node * const system_noc_nodes[] = { 160 160 [MASTER_AUDIO] = &qhm_audio, 161 161 [MASTER_BLSP_1] = &qhm_blsp1, 162 162 [MASTER_QDSS_BAM] = &qhm_qdss_bam,
+231
drivers/interconnect/qcom/sdx65.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-only 2 + /* 3 + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 4 + */ 5 + 6 + #include <linux/device.h> 7 + #include <linux/interconnect.h> 8 + #include <linux/interconnect-provider.h> 9 + #include <linux/module.h> 10 + #include <linux/of_platform.h> 11 + #include <dt-bindings/interconnect/qcom,sdx65.h> 12 + 13 + #include "bcm-voter.h" 14 + #include "icc-rpmh.h" 15 + #include "sdx65.h" 16 + 17 + DEFINE_QNODE(llcc_mc, SDX65_MASTER_LLCC, 1, 4, SDX65_SLAVE_EBI1); 18 + DEFINE_QNODE(acm_tcu, SDX65_MASTER_TCU_0, 1, 8, SDX65_SLAVE_LLCC, SDX65_SLAVE_MEM_NOC_SNOC, SDX65_SLAVE_MEM_NOC_PCIE_SNOC); 19 + DEFINE_QNODE(qnm_snoc_gc, SDX65_MASTER_SNOC_GC_MEM_NOC, 1, 16, SDX65_SLAVE_LLCC); 20 + DEFINE_QNODE(xm_apps_rdwr, SDX65_MASTER_APPSS_PROC, 1, 16, SDX65_SLAVE_LLCC, SDX65_SLAVE_MEM_NOC_SNOC, SDX65_SLAVE_MEM_NOC_PCIE_SNOC); 21 + DEFINE_QNODE(qhm_audio, SDX65_MASTER_AUDIO, 1, 4, SDX65_SLAVE_ANOC_SNOC); 22 + DEFINE_QNODE(qhm_blsp1, SDX65_MASTER_BLSP_1, 1, 4, SDX65_SLAVE_ANOC_SNOC); 23 + DEFINE_QNODE(qhm_qdss_bam, SDX65_MASTER_QDSS_BAM, 1, 4, SDX65_SLAVE_AOSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_BLSP_1, SDX65_SLAVE_CLK_CTL, SDX65_SLAVE_CRYPTO_0_CFG, SDX65_SLAVE_CNOC_DDRSS, SDX65_SLAVE_ECC_CFG, SDX65_SLAVE_IMEM_CFG, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_CNOC_MSS, SDX65_SLAVE_PCIE_PARF, SDX65_SLAVE_PDM, SDX65_SLAVE_PRNG, SDX65_SLAVE_QDSS_CFG, SDX65_SLAVE_QPIC, SDX65_SLAVE_SDCC_1, SDX65_SLAVE_SNOC_CFG, SDX65_SLAVE_SPMI_FETCHER, SDX65_SLAVE_SPMI_VGI_COEX, SDX65_SLAVE_TCSR, SDX65_SLAVE_TLMM, SDX65_SLAVE_USB3, SDX65_SLAVE_USB3_PHY_CFG, SDX65_SLAVE_SNOC_MEM_NOC_GC, SDX65_SLAVE_IMEM, SDX65_SLAVE_TCU); 24 + DEFINE_QNODE(qhm_qpic, SDX65_MASTER_QPIC, 1, 4, SDX65_SLAVE_AOSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_ANOC_SNOC); 25 + DEFINE_QNODE(qhm_snoc_cfg, SDX65_MASTER_SNOC_CFG, 1, 4, SDX65_SLAVE_SERVICE_SNOC); 26 + DEFINE_QNODE(qhm_spmi_fetcher1, SDX65_MASTER_SPMI_FETCHER, 1, 4, SDX65_SLAVE_AOSS, SDX65_SLAVE_ANOC_SNOC); 27 + DEFINE_QNODE(qnm_aggre_noc, SDX65_MASTER_ANOC_SNOC, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_APPSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_BLSP_1, SDX65_SLAVE_CLK_CTL, SDX65_SLAVE_CRYPTO_0_CFG, SDX65_SLAVE_CNOC_DDRSS, SDX65_SLAVE_ECC_CFG, SDX65_SLAVE_IMEM_CFG, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_CNOC_MSS, SDX65_SLAVE_PCIE_PARF, SDX65_SLAVE_PDM, SDX65_SLAVE_PRNG, SDX65_SLAVE_QDSS_CFG, SDX65_SLAVE_QPIC, SDX65_SLAVE_SDCC_1, SDX65_SLAVE_SNOC_CFG, SDX65_SLAVE_SPMI_FETCHER, SDX65_SLAVE_SPMI_VGI_COEX, SDX65_SLAVE_TCSR, SDX65_SLAVE_TLMM, SDX65_SLAVE_USB3, SDX65_SLAVE_USB3_PHY_CFG, SDX65_SLAVE_SNOC_MEM_NOC_GC, SDX65_SLAVE_IMEM, SDX65_SLAVE_PCIE_0, SDX65_SLAVE_QDSS_STM, SDX65_SLAVE_TCU); 28 + DEFINE_QNODE(qnm_ipa, SDX65_MASTER_IPA, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_BLSP_1, SDX65_SLAVE_CLK_CTL, SDX65_SLAVE_CRYPTO_0_CFG, SDX65_SLAVE_CNOC_DDRSS, SDX65_SLAVE_ECC_CFG, SDX65_SLAVE_IMEM_CFG, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_CNOC_MSS, SDX65_SLAVE_PCIE_PARF, SDX65_SLAVE_PDM, SDX65_SLAVE_PRNG, SDX65_SLAVE_QDSS_CFG, SDX65_SLAVE_QPIC, SDX65_SLAVE_SDCC_1, SDX65_SLAVE_SNOC_CFG, SDX65_SLAVE_SPMI_FETCHER, SDX65_SLAVE_TCSR, SDX65_SLAVE_TLMM, SDX65_SLAVE_USB3, SDX65_SLAVE_USB3_PHY_CFG, SDX65_SLAVE_SNOC_MEM_NOC_GC, SDX65_SLAVE_IMEM, SDX65_SLAVE_PCIE_0, SDX65_SLAVE_QDSS_STM); 29 + DEFINE_QNODE(qnm_memnoc, SDX65_MASTER_MEM_NOC_SNOC, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_APPSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_BLSP_1, SDX65_SLAVE_CLK_CTL, SDX65_SLAVE_CRYPTO_0_CFG, SDX65_SLAVE_CNOC_DDRSS, SDX65_SLAVE_ECC_CFG, SDX65_SLAVE_IMEM_CFG, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_CNOC_MSS, SDX65_SLAVE_PCIE_PARF, SDX65_SLAVE_PDM, SDX65_SLAVE_PRNG, SDX65_SLAVE_QDSS_CFG, SDX65_SLAVE_QPIC, SDX65_SLAVE_SDCC_1, SDX65_SLAVE_SNOC_CFG, SDX65_SLAVE_SPMI_FETCHER, SDX65_SLAVE_SPMI_VGI_COEX, SDX65_SLAVE_TCSR, SDX65_SLAVE_TLMM, SDX65_SLAVE_USB3, SDX65_SLAVE_USB3_PHY_CFG, SDX65_SLAVE_IMEM, SDX65_SLAVE_QDSS_STM, SDX65_SLAVE_TCU); 30 + DEFINE_QNODE(qnm_memnoc_pcie, SDX65_MASTER_MEM_NOC_PCIE_SNOC, 1, 8, SDX65_SLAVE_PCIE_0); 31 + DEFINE_QNODE(qxm_crypto, SDX65_MASTER_CRYPTO, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_ANOC_SNOC); 32 + DEFINE_QNODE(xm_ipa2pcie_slv, SDX65_MASTER_IPA_PCIE, 1, 8, SDX65_SLAVE_PCIE_0); 33 + DEFINE_QNODE(xm_pcie, SDX65_MASTER_PCIE_0, 1, 8, SDX65_SLAVE_ANOC_SNOC); 34 + DEFINE_QNODE(xm_qdss_etr, SDX65_MASTER_QDSS_ETR, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_BLSP_1, SDX65_SLAVE_CLK_CTL, SDX65_SLAVE_CRYPTO_0_CFG, SDX65_SLAVE_CNOC_DDRSS, SDX65_SLAVE_ECC_CFG, SDX65_SLAVE_IMEM_CFG, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_CNOC_MSS, SDX65_SLAVE_PCIE_PARF, SDX65_SLAVE_PDM, SDX65_SLAVE_PRNG, SDX65_SLAVE_QDSS_CFG, SDX65_SLAVE_QPIC, SDX65_SLAVE_SDCC_1, SDX65_SLAVE_SNOC_CFG, SDX65_SLAVE_SPMI_FETCHER, SDX65_SLAVE_SPMI_VGI_COEX, SDX65_SLAVE_TCSR, SDX65_SLAVE_TLMM, SDX65_SLAVE_USB3, SDX65_SLAVE_USB3_PHY_CFG, SDX65_SLAVE_SNOC_MEM_NOC_GC, SDX65_SLAVE_IMEM, SDX65_SLAVE_TCU); 35 + DEFINE_QNODE(xm_sdc1, SDX65_MASTER_SDCC_1, 1, 8, SDX65_SLAVE_AOSS, SDX65_SLAVE_AUDIO, SDX65_SLAVE_IPA_CFG, SDX65_SLAVE_ANOC_SNOC); 36 + DEFINE_QNODE(xm_usb3, SDX65_MASTER_USB3, 1, 8, SDX65_SLAVE_ANOC_SNOC); 37 + DEFINE_QNODE(ebi, SDX65_SLAVE_EBI1, 1, 4); 38 + DEFINE_QNODE(qns_llcc, SDX65_SLAVE_LLCC, 1, 16, SDX65_MASTER_LLCC); 39 + DEFINE_QNODE(qns_memnoc_snoc, SDX65_SLAVE_MEM_NOC_SNOC, 1, 8, SDX65_MASTER_MEM_NOC_SNOC); 40 + DEFINE_QNODE(qns_sys_pcie, SDX65_SLAVE_MEM_NOC_PCIE_SNOC, 1, 8, SDX65_MASTER_MEM_NOC_PCIE_SNOC); 41 + DEFINE_QNODE(qhs_aoss, SDX65_SLAVE_AOSS, 1, 4); 42 + DEFINE_QNODE(qhs_apss, SDX65_SLAVE_APPSS, 1, 4); 43 + DEFINE_QNODE(qhs_audio, SDX65_SLAVE_AUDIO, 1, 4); 44 + DEFINE_QNODE(qhs_blsp1, SDX65_SLAVE_BLSP_1, 1, 4); 45 + DEFINE_QNODE(qhs_clk_ctl, SDX65_SLAVE_CLK_CTL, 1, 4); 46 + DEFINE_QNODE(qhs_crypto0_cfg, SDX65_SLAVE_CRYPTO_0_CFG, 1, 4); 47 + DEFINE_QNODE(qhs_ddrss_cfg, SDX65_SLAVE_CNOC_DDRSS, 1, 4); 48 + DEFINE_QNODE(qhs_ecc_cfg, SDX65_SLAVE_ECC_CFG, 1, 4); 49 + DEFINE_QNODE(qhs_imem_cfg, SDX65_SLAVE_IMEM_CFG, 1, 4); 50 + DEFINE_QNODE(qhs_ipa, SDX65_SLAVE_IPA_CFG, 1, 4); 51 + DEFINE_QNODE(qhs_mss_cfg, SDX65_SLAVE_CNOC_MSS, 1, 4); 52 + DEFINE_QNODE(qhs_pcie_parf, SDX65_SLAVE_PCIE_PARF, 1, 4); 53 + DEFINE_QNODE(qhs_pdm, SDX65_SLAVE_PDM, 1, 4); 54 + DEFINE_QNODE(qhs_prng, SDX65_SLAVE_PRNG, 1, 4); 55 + DEFINE_QNODE(qhs_qdss_cfg, SDX65_SLAVE_QDSS_CFG, 1, 4); 56 + DEFINE_QNODE(qhs_qpic, SDX65_SLAVE_QPIC, 1, 4); 57 + DEFINE_QNODE(qhs_sdc1, SDX65_SLAVE_SDCC_1, 1, 4); 58 + DEFINE_QNODE(qhs_snoc_cfg, SDX65_SLAVE_SNOC_CFG, 1, 4, SDX65_MASTER_SNOC_CFG); 59 + DEFINE_QNODE(qhs_spmi_fetcher, SDX65_SLAVE_SPMI_FETCHER, 1, 4); 60 + DEFINE_QNODE(qhs_spmi_vgi_coex, SDX65_SLAVE_SPMI_VGI_COEX, 1, 4); 61 + DEFINE_QNODE(qhs_tcsr, SDX65_SLAVE_TCSR, 1, 4); 62 + DEFINE_QNODE(qhs_tlmm, SDX65_SLAVE_TLMM, 1, 4); 63 + DEFINE_QNODE(qhs_usb3, SDX65_SLAVE_USB3, 1, 4); 64 + DEFINE_QNODE(qhs_usb3_phy, SDX65_SLAVE_USB3_PHY_CFG, 1, 4); 65 + DEFINE_QNODE(qns_aggre_noc, SDX65_SLAVE_ANOC_SNOC, 1, 8, SDX65_MASTER_ANOC_SNOC); 66 + DEFINE_QNODE(qns_snoc_memnoc, SDX65_SLAVE_SNOC_MEM_NOC_GC, 1, 16, SDX65_MASTER_SNOC_GC_MEM_NOC); 67 + DEFINE_QNODE(qxs_imem, SDX65_SLAVE_IMEM, 1, 8); 68 + DEFINE_QNODE(srvc_snoc, SDX65_SLAVE_SERVICE_SNOC, 1, 4); 69 + DEFINE_QNODE(xs_pcie, SDX65_SLAVE_PCIE_0, 1, 8); 70 + DEFINE_QNODE(xs_qdss_stm, SDX65_SLAVE_QDSS_STM, 1, 4); 71 + DEFINE_QNODE(xs_sys_tcu_cfg, SDX65_SLAVE_TCU, 1, 8); 72 + 73 + DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); 74 + DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); 75 + DEFINE_QBCM(bcm_pn0, "PN0", true, &qhm_snoc_cfg, &qhs_aoss, &qhs_apss, &qhs_audio, &qhs_blsp1, &qhs_clk_ctl, &qhs_crypto0_cfg, &qhs_ddrss_cfg, &qhs_ecc_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mss_cfg, &qhs_pcie_parf, &qhs_pdm, &qhs_prng, &qhs_qdss_cfg, &qhs_qpic, &qhs_sdc1, &qhs_snoc_cfg, &qhs_spmi_fetcher, &qhs_spmi_vgi_coex, &qhs_tcsr, &qhs_tlmm, &qhs_usb3, &qhs_usb3_phy, &srvc_snoc); 76 + DEFINE_QBCM(bcm_pn1, "PN1", false, &xm_sdc1); 77 + DEFINE_QBCM(bcm_pn2, "PN2", false, &qhm_audio, &qhm_spmi_fetcher1); 78 + DEFINE_QBCM(bcm_pn3, "PN3", false, &qhm_blsp1, &qhm_qpic); 79 + DEFINE_QBCM(bcm_pn4, "PN4", false, &qxm_crypto); 80 + DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); 81 + DEFINE_QBCM(bcm_sh1, "SH1", false, &qns_memnoc_snoc); 82 + DEFINE_QBCM(bcm_sh3, "SH3", false, &xm_apps_rdwr); 83 + DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_snoc_memnoc); 84 + DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); 85 + DEFINE_QBCM(bcm_sn2, "SN2", false, &xs_qdss_stm); 86 + DEFINE_QBCM(bcm_sn3, "SN3", false, &xs_sys_tcu_cfg); 87 + DEFINE_QBCM(bcm_sn5, "SN5", false, &xs_pcie); 88 + DEFINE_QBCM(bcm_sn6, "SN6", false, &qhm_qdss_bam, &xm_qdss_etr); 89 + DEFINE_QBCM(bcm_sn7, "SN7", false, &qnm_aggre_noc, &xm_pcie, &xm_usb3, &qns_aggre_noc); 90 + DEFINE_QBCM(bcm_sn8, "SN8", false, &qnm_memnoc); 91 + DEFINE_QBCM(bcm_sn9, "SN9", false, &qnm_memnoc_pcie); 92 + DEFINE_QBCM(bcm_sn10, "SN10", false, &qnm_ipa, &xm_ipa2pcie_slv); 93 + 94 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 95 + &bcm_mc0, 96 + }; 97 + 98 + static struct qcom_icc_node * const mc_virt_nodes[] = { 99 + [MASTER_LLCC] = &llcc_mc, 100 + [SLAVE_EBI1] = &ebi, 101 + }; 102 + 103 + static const struct qcom_icc_desc sdx65_mc_virt = { 104 + .nodes = mc_virt_nodes, 105 + .num_nodes = ARRAY_SIZE(mc_virt_nodes), 106 + .bcms = mc_virt_bcms, 107 + .num_bcms = ARRAY_SIZE(mc_virt_bcms), 108 + }; 109 + 110 + static struct qcom_icc_bcm * const mem_noc_bcms[] = { 111 + &bcm_sh0, 112 + &bcm_sh1, 113 + &bcm_sh3, 114 + }; 115 + 116 + static struct qcom_icc_node * const mem_noc_nodes[] = { 117 + [MASTER_TCU_0] = &acm_tcu, 118 + [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc, 119 + [MASTER_APPSS_PROC] = &xm_apps_rdwr, 120 + [SLAVE_LLCC] = &qns_llcc, 121 + [SLAVE_MEM_NOC_SNOC] = &qns_memnoc_snoc, 122 + [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_sys_pcie, 123 + }; 124 + 125 + static const struct qcom_icc_desc sdx65_mem_noc = { 126 + .nodes = mem_noc_nodes, 127 + .num_nodes = ARRAY_SIZE(mem_noc_nodes), 128 + .bcms = mem_noc_bcms, 129 + .num_bcms = ARRAY_SIZE(mem_noc_bcms), 130 + }; 131 + 132 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 133 + &bcm_ce0, 134 + &bcm_pn0, 135 + &bcm_pn1, 136 + &bcm_pn2, 137 + &bcm_pn3, 138 + &bcm_pn4, 139 + &bcm_sn0, 140 + &bcm_sn1, 141 + &bcm_sn2, 142 + &bcm_sn3, 143 + &bcm_sn5, 144 + &bcm_sn6, 145 + &bcm_sn7, 146 + &bcm_sn8, 147 + &bcm_sn9, 148 + &bcm_sn10, 149 + }; 150 + 151 + static struct qcom_icc_node * const system_noc_nodes[] = { 152 + [MASTER_AUDIO] = &qhm_audio, 153 + [MASTER_BLSP_1] = &qhm_blsp1, 154 + [MASTER_QDSS_BAM] = &qhm_qdss_bam, 155 + [MASTER_QPIC] = &qhm_qpic, 156 + [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 157 + [MASTER_SPMI_FETCHER] = &qhm_spmi_fetcher1, 158 + [MASTER_ANOC_SNOC] = &qnm_aggre_noc, 159 + [MASTER_IPA] = &qnm_ipa, 160 + [MASTER_MEM_NOC_SNOC] = &qnm_memnoc, 161 + [MASTER_MEM_NOC_PCIE_SNOC] = &qnm_memnoc_pcie, 162 + [MASTER_CRYPTO] = &qxm_crypto, 163 + [MASTER_IPA_PCIE] = &xm_ipa2pcie_slv, 164 + [MASTER_PCIE_0] = &xm_pcie, 165 + [MASTER_QDSS_ETR] = &xm_qdss_etr, 166 + [MASTER_SDCC_1] = &xm_sdc1, 167 + [MASTER_USB3] = &xm_usb3, 168 + [SLAVE_AOSS] = &qhs_aoss, 169 + [SLAVE_APPSS] = &qhs_apss, 170 + [SLAVE_AUDIO] = &qhs_audio, 171 + [SLAVE_BLSP_1] = &qhs_blsp1, 172 + [SLAVE_CLK_CTL] = &qhs_clk_ctl, 173 + [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg, 174 + [SLAVE_CNOC_DDRSS] = &qhs_ddrss_cfg, 175 + [SLAVE_ECC_CFG] = &qhs_ecc_cfg, 176 + [SLAVE_IMEM_CFG] = &qhs_imem_cfg, 177 + [SLAVE_IPA_CFG] = &qhs_ipa, 178 + [SLAVE_CNOC_MSS] = &qhs_mss_cfg, 179 + [SLAVE_PCIE_PARF] = &qhs_pcie_parf, 180 + [SLAVE_PDM] = &qhs_pdm, 181 + [SLAVE_PRNG] = &qhs_prng, 182 + [SLAVE_QDSS_CFG] = &qhs_qdss_cfg, 183 + [SLAVE_QPIC] = &qhs_qpic, 184 + [SLAVE_SDCC_1] = &qhs_sdc1, 185 + [SLAVE_SNOC_CFG] = &qhs_snoc_cfg, 186 + [SLAVE_SPMI_FETCHER] = &qhs_spmi_fetcher, 187 + [SLAVE_SPMI_VGI_COEX] = &qhs_spmi_vgi_coex, 188 + [SLAVE_TCSR] = &qhs_tcsr, 189 + [SLAVE_TLMM] = &qhs_tlmm, 190 + [SLAVE_USB3] = &qhs_usb3, 191 + [SLAVE_USB3_PHY_CFG] = &qhs_usb3_phy, 192 + [SLAVE_ANOC_SNOC] = &qns_aggre_noc, 193 + [SLAVE_SNOC_MEM_NOC_GC] = &qns_snoc_memnoc, 194 + [SLAVE_IMEM] = &qxs_imem, 195 + [SLAVE_SERVICE_SNOC] = &srvc_snoc, 196 + [SLAVE_PCIE_0] = &xs_pcie, 197 + [SLAVE_QDSS_STM] = &xs_qdss_stm, 198 + [SLAVE_TCU] = &xs_sys_tcu_cfg, 199 + }; 200 + 201 + static const struct qcom_icc_desc sdx65_system_noc = { 202 + .nodes = system_noc_nodes, 203 + .num_nodes = ARRAY_SIZE(system_noc_nodes), 204 + .bcms = system_noc_bcms, 205 + .num_bcms = ARRAY_SIZE(system_noc_bcms), 206 + }; 207 + 208 + static const struct of_device_id qnoc_of_match[] = { 209 + { .compatible = "qcom,sdx65-mc-virt", 210 + .data = &sdx65_mc_virt}, 211 + { .compatible = "qcom,sdx65-mem-noc", 212 + .data = &sdx65_mem_noc}, 213 + { .compatible = "qcom,sdx65-system-noc", 214 + .data = &sdx65_system_noc}, 215 + { } 216 + }; 217 + MODULE_DEVICE_TABLE(of, qnoc_of_match); 218 + 219 + static struct platform_driver qnoc_driver = { 220 + .probe = qcom_icc_rpmh_probe, 221 + .remove = qcom_icc_rpmh_remove, 222 + .driver = { 223 + .name = "qnoc-sdx65", 224 + .of_match_table = qnoc_of_match, 225 + .sync_state = icc_sync_state, 226 + }, 227 + }; 228 + module_platform_driver(qnoc_driver); 229 + 230 + MODULE_DESCRIPTION("Qualcomm SDX65 NoC driver"); 231 + MODULE_LICENSE("GPL v2");
+65
drivers/interconnect/qcom/sdx65.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-only */ 2 + /* 3 + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 4 + */ 5 + 6 + #ifndef __DRIVERS_INTERCONNECT_QCOM_SDX65_H 7 + #define __DRIVERS_INTERCONNECT_QCOM_SDX65_H 8 + 9 + #define SDX65_MASTER_TCU_0 0 10 + #define SDX65_MASTER_LLCC 1 11 + #define SDX65_MASTER_AUDIO 2 12 + #define SDX65_MASTER_BLSP_1 3 13 + #define SDX65_MASTER_QDSS_BAM 4 14 + #define SDX65_MASTER_QPIC 5 15 + #define SDX65_MASTER_SNOC_CFG 6 16 + #define SDX65_MASTER_SPMI_FETCHER 7 17 + #define SDX65_MASTER_ANOC_SNOC 8 18 + #define SDX65_MASTER_IPA 9 19 + #define SDX65_MASTER_MEM_NOC_SNOC 10 20 + #define SDX65_MASTER_MEM_NOC_PCIE_SNOC 11 21 + #define SDX65_MASTER_SNOC_GC_MEM_NOC 12 22 + #define SDX65_MASTER_CRYPTO 13 23 + #define SDX65_MASTER_APPSS_PROC 14 24 + #define SDX65_MASTER_IPA_PCIE 15 25 + #define SDX65_MASTER_PCIE_0 16 26 + #define SDX65_MASTER_QDSS_ETR 17 27 + #define SDX65_MASTER_SDCC_1 18 28 + #define SDX65_MASTER_USB3 19 29 + #define SDX65_SLAVE_EBI1 512 30 + #define SDX65_SLAVE_AOSS 513 31 + #define SDX65_SLAVE_APPSS 514 32 + #define SDX65_SLAVE_AUDIO 515 33 + #define SDX65_SLAVE_BLSP_1 516 34 + #define SDX65_SLAVE_CLK_CTL 517 35 + #define SDX65_SLAVE_CRYPTO_0_CFG 518 36 + #define SDX65_SLAVE_CNOC_DDRSS 519 37 + #define SDX65_SLAVE_ECC_CFG 520 38 + #define SDX65_SLAVE_IMEM_CFG 521 39 + #define SDX65_SLAVE_IPA_CFG 522 40 + #define SDX65_SLAVE_CNOC_MSS 523 41 + #define SDX65_SLAVE_PCIE_PARF 524 42 + #define SDX65_SLAVE_PDM 525 43 + #define SDX65_SLAVE_PRNG 526 44 + #define SDX65_SLAVE_QDSS_CFG 527 45 + #define SDX65_SLAVE_QPIC 528 46 + #define SDX65_SLAVE_SDCC_1 529 47 + #define SDX65_SLAVE_SNOC_CFG 530 48 + #define SDX65_SLAVE_SPMI_FETCHER 531 49 + #define SDX65_SLAVE_SPMI_VGI_COEX 532 50 + #define SDX65_SLAVE_TCSR 533 51 + #define SDX65_SLAVE_TLMM 534 52 + #define SDX65_SLAVE_USB3 535 53 + #define SDX65_SLAVE_USB3_PHY_CFG 536 54 + #define SDX65_SLAVE_ANOC_SNOC 537 55 + #define SDX65_SLAVE_LLCC 538 56 + #define SDX65_SLAVE_MEM_NOC_SNOC 539 57 + #define SDX65_SLAVE_SNOC_MEM_NOC_GC 540 58 + #define SDX65_SLAVE_MEM_NOC_PCIE_SNOC 541 59 + #define SDX65_SLAVE_IMEM 542 60 + #define SDX65_SLAVE_SERVICE_SNOC 543 61 + #define SDX65_SLAVE_PCIE_0 544 62 + #define SDX65_SLAVE_QDSS_STM 545 63 + #define SDX65_SLAVE_TCU 546 64 + 65 + #endif
+33 -33
drivers/interconnect/qcom/sm8150.c
··· 186 186 DEFINE_QBCM(bcm_sn14, "SN14", false, &qns_pcie_mem_noc); 187 187 DEFINE_QBCM(bcm_sn15, "SN15", false, &qnm_gemnoc); 188 188 189 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 189 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 190 190 &bcm_qup0, 191 191 &bcm_sn3, 192 192 }; 193 193 194 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 194 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 195 195 [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg, 196 196 [MASTER_QUP_0] = &qhm_qup0, 197 197 [MASTER_EMAC] = &xm_emac, ··· 202 202 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 203 203 }; 204 204 205 - static struct qcom_icc_desc sm8150_aggre1_noc = { 205 + static const struct qcom_icc_desc sm8150_aggre1_noc = { 206 206 .nodes = aggre1_noc_nodes, 207 207 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 208 208 .bcms = aggre1_noc_bcms, 209 209 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 210 210 }; 211 211 212 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 212 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 213 213 &bcm_ce0, 214 214 &bcm_qup0, 215 215 &bcm_sn14, 216 216 &bcm_sn3, 217 217 }; 218 218 219 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 219 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 220 220 [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg, 221 221 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 222 222 [MASTER_QSPI] = &qhm_qspi, ··· 237 237 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 238 238 }; 239 239 240 - static struct qcom_icc_desc sm8150_aggre2_noc = { 240 + static const struct qcom_icc_desc sm8150_aggre2_noc = { 241 241 .nodes = aggre2_noc_nodes, 242 242 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 243 243 .bcms = aggre2_noc_bcms, 244 244 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 245 245 }; 246 246 247 - static struct qcom_icc_bcm *camnoc_virt_bcms[] = { 247 + static struct qcom_icc_bcm * const camnoc_virt_bcms[] = { 248 248 &bcm_mm1, 249 249 }; 250 250 251 - static struct qcom_icc_node *camnoc_virt_nodes[] = { 251 + static struct qcom_icc_node * const camnoc_virt_nodes[] = { 252 252 [MASTER_CAMNOC_HF0_UNCOMP] = &qxm_camnoc_hf0_uncomp, 253 253 [MASTER_CAMNOC_HF1_UNCOMP] = &qxm_camnoc_hf1_uncomp, 254 254 [MASTER_CAMNOC_SF_UNCOMP] = &qxm_camnoc_sf_uncomp, 255 255 [SLAVE_CAMNOC_UNCOMP] = &qns_camnoc_uncomp, 256 256 }; 257 257 258 - static struct qcom_icc_desc sm8150_camnoc_virt = { 258 + static const struct qcom_icc_desc sm8150_camnoc_virt = { 259 259 .nodes = camnoc_virt_nodes, 260 260 .num_nodes = ARRAY_SIZE(camnoc_virt_nodes), 261 261 .bcms = camnoc_virt_bcms, 262 262 .num_bcms = ARRAY_SIZE(camnoc_virt_bcms), 263 263 }; 264 264 265 - static struct qcom_icc_bcm *compute_noc_bcms[] = { 265 + static struct qcom_icc_bcm * const compute_noc_bcms[] = { 266 266 &bcm_co0, 267 267 &bcm_co1, 268 268 }; 269 269 270 - static struct qcom_icc_node *compute_noc_nodes[] = { 270 + static struct qcom_icc_node * const compute_noc_nodes[] = { 271 271 [MASTER_NPU] = &qnm_npu, 272 272 [SLAVE_CDSP_MEM_NOC] = &qns_cdsp_mem_noc, 273 273 }; 274 274 275 - static struct qcom_icc_desc sm8150_compute_noc = { 275 + static const struct qcom_icc_desc sm8150_compute_noc = { 276 276 .nodes = compute_noc_nodes, 277 277 .num_nodes = ARRAY_SIZE(compute_noc_nodes), 278 278 .bcms = compute_noc_bcms, 279 279 .num_bcms = ARRAY_SIZE(compute_noc_bcms), 280 280 }; 281 281 282 - static struct qcom_icc_bcm *config_noc_bcms[] = { 282 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 283 283 &bcm_cn0, 284 284 }; 285 285 286 - static struct qcom_icc_node *config_noc_nodes[] = { 286 + static struct qcom_icc_node * const config_noc_nodes[] = { 287 287 [MASTER_SPDM] = &qhm_spdm, 288 288 [SNOC_CNOC_MAS] = &qnm_snoc, 289 289 [MASTER_QDSS_DAP] = &xm_qdss_dap, ··· 340 340 [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 341 341 }; 342 342 343 - static struct qcom_icc_desc sm8150_config_noc = { 343 + static const struct qcom_icc_desc sm8150_config_noc = { 344 344 .nodes = config_noc_nodes, 345 345 .num_nodes = ARRAY_SIZE(config_noc_nodes), 346 346 .bcms = config_noc_bcms, 347 347 .num_bcms = ARRAY_SIZE(config_noc_bcms), 348 348 }; 349 349 350 - static struct qcom_icc_bcm *dc_noc_bcms[] = { 350 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 351 351 }; 352 352 353 - static struct qcom_icc_node *dc_noc_nodes[] = { 353 + static struct qcom_icc_node * const dc_noc_nodes[] = { 354 354 [MASTER_CNOC_DC_NOC] = &qhm_cnoc_dc_noc, 355 355 [SLAVE_LLCC_CFG] = &qhs_llcc, 356 356 [SLAVE_GEM_NOC_CFG] = &qhs_memnoc, 357 357 }; 358 358 359 - static struct qcom_icc_desc sm8150_dc_noc = { 359 + static const struct qcom_icc_desc sm8150_dc_noc = { 360 360 .nodes = dc_noc_nodes, 361 361 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 362 362 .bcms = dc_noc_bcms, 363 363 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 364 364 }; 365 365 366 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 366 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 367 367 &bcm_sh0, 368 368 &bcm_sh2, 369 369 &bcm_sh3, ··· 371 371 &bcm_sh5, 372 372 }; 373 373 374 - static struct qcom_icc_node *gem_noc_nodes[] = { 374 + static struct qcom_icc_node * const gem_noc_nodes[] = { 375 375 [MASTER_AMPSS_M0] = &acm_apps, 376 376 [MASTER_GPU_TCU] = &acm_gpu_tcu, 377 377 [MASTER_SYS_TCU] = &acm_sys_tcu, ··· 391 391 [SLAVE_SERVICE_GEM_NOC] = &srvc_gemnoc, 392 392 }; 393 393 394 - static struct qcom_icc_desc sm8150_gem_noc = { 394 + static const struct qcom_icc_desc sm8150_gem_noc = { 395 395 .nodes = gem_noc_nodes, 396 396 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 397 397 .bcms = gem_noc_bcms, 398 398 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 399 399 }; 400 400 401 - static struct qcom_icc_bcm *ipa_virt_bcms[] = { 401 + static struct qcom_icc_bcm * const ipa_virt_bcms[] = { 402 402 &bcm_ip0, 403 403 }; 404 404 405 - static struct qcom_icc_node *ipa_virt_nodes[] = { 405 + static struct qcom_icc_node * const ipa_virt_nodes[] = { 406 406 [MASTER_IPA_CORE] = &ipa_core_master, 407 407 [SLAVE_IPA_CORE] = &ipa_core_slave, 408 408 }; 409 409 410 - static struct qcom_icc_desc sm8150_ipa_virt = { 410 + static const struct qcom_icc_desc sm8150_ipa_virt = { 411 411 .nodes = ipa_virt_nodes, 412 412 .num_nodes = ARRAY_SIZE(ipa_virt_nodes), 413 413 .bcms = ipa_virt_bcms, 414 414 .num_bcms = ARRAY_SIZE(ipa_virt_bcms), 415 415 }; 416 416 417 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 417 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 418 418 &bcm_acv, 419 419 &bcm_mc0, 420 420 }; 421 421 422 - static struct qcom_icc_node *mc_virt_nodes[] = { 422 + static struct qcom_icc_node * const mc_virt_nodes[] = { 423 423 [MASTER_LLCC] = &llcc_mc, 424 424 [SLAVE_EBI_CH0] = &ebi, 425 425 }; 426 426 427 - static struct qcom_icc_desc sm8150_mc_virt = { 427 + static const struct qcom_icc_desc sm8150_mc_virt = { 428 428 .nodes = mc_virt_nodes, 429 429 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 430 430 .bcms = mc_virt_bcms, 431 431 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 432 432 }; 433 433 434 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 434 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 435 435 &bcm_mm0, 436 436 &bcm_mm1, 437 437 &bcm_mm2, 438 438 &bcm_mm3, 439 439 }; 440 440 441 - static struct qcom_icc_node *mmss_noc_nodes[] = { 441 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 442 442 [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg, 443 443 [MASTER_CAMNOC_HF0] = &qxm_camnoc_hf0, 444 444 [MASTER_CAMNOC_HF1] = &qxm_camnoc_hf1, ··· 454 454 [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 455 455 }; 456 456 457 - static struct qcom_icc_desc sm8150_mmss_noc = { 457 + static const struct qcom_icc_desc sm8150_mmss_noc = { 458 458 .nodes = mmss_noc_nodes, 459 459 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 460 460 .bcms = mmss_noc_bcms, 461 461 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 462 462 }; 463 463 464 - static struct qcom_icc_bcm *system_noc_bcms[] = { 464 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 465 465 &bcm_sn0, 466 466 &bcm_sn1, 467 467 &bcm_sn11, ··· 475 475 &bcm_sn9, 476 476 }; 477 477 478 - static struct qcom_icc_node *system_noc_nodes[] = { 478 + static struct qcom_icc_node * const system_noc_nodes[] = { 479 479 [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 480 480 [A1NOC_SNOC_MAS] = &qnm_aggre1_noc, 481 481 [A2NOC_SNOC_MAS] = &qnm_aggre2_noc, ··· 495 495 [SLAVE_TCU] = &xs_sys_tcu_cfg, 496 496 }; 497 497 498 - static struct qcom_icc_desc sm8150_system_noc = { 498 + static const struct qcom_icc_desc sm8150_system_noc = { 499 499 .nodes = system_noc_nodes, 500 500 .num_nodes = ARRAY_SIZE(system_noc_nodes), 501 501 .bcms = system_noc_bcms,
+33 -33
drivers/interconnect/qcom/sm8250.c
··· 195 195 DEFINE_QBCM(bcm_sn11, "SN11", false, &qnm_gemnoc); 196 196 DEFINE_QBCM(bcm_sn12, "SN12", false, &qns_pcie_modem_mem_noc, &qns_pcie_mem_noc); 197 197 198 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 198 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 199 199 &bcm_qup0, 200 200 &bcm_sn12, 201 201 }; 202 202 203 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 203 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 204 204 [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg, 205 205 [MASTER_QSPI_0] = &qhm_qspi, 206 206 [MASTER_QUP_1] = &qhm_qup1, ··· 216 216 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 217 217 }; 218 218 219 - static struct qcom_icc_desc sm8250_aggre1_noc = { 219 + static const struct qcom_icc_desc sm8250_aggre1_noc = { 220 220 .nodes = aggre1_noc_nodes, 221 221 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 222 222 .bcms = aggre1_noc_bcms, 223 223 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 224 224 }; 225 225 226 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 226 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 227 227 &bcm_ce0, 228 228 &bcm_qup0, 229 229 &bcm_sn12, 230 230 }; 231 231 232 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 232 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 233 233 [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg, 234 234 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 235 235 [MASTER_QUP_0] = &qhm_qup0, ··· 246 246 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 247 247 }; 248 248 249 - static struct qcom_icc_desc sm8250_aggre2_noc = { 249 + static const struct qcom_icc_desc sm8250_aggre2_noc = { 250 250 .nodes = aggre2_noc_nodes, 251 251 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 252 252 .bcms = aggre2_noc_bcms, 253 253 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 254 254 }; 255 255 256 - static struct qcom_icc_bcm *compute_noc_bcms[] = { 256 + static struct qcom_icc_bcm * const compute_noc_bcms[] = { 257 257 &bcm_co0, 258 258 &bcm_co2, 259 259 }; 260 260 261 - static struct qcom_icc_node *compute_noc_nodes[] = { 261 + static struct qcom_icc_node * const compute_noc_nodes[] = { 262 262 [MASTER_NPU] = &qnm_npu, 263 263 [SLAVE_CDSP_MEM_NOC] = &qns_cdsp_mem_noc, 264 264 }; 265 265 266 - static struct qcom_icc_desc sm8250_compute_noc = { 266 + static const struct qcom_icc_desc sm8250_compute_noc = { 267 267 .nodes = compute_noc_nodes, 268 268 .num_nodes = ARRAY_SIZE(compute_noc_nodes), 269 269 .bcms = compute_noc_bcms, 270 270 .num_bcms = ARRAY_SIZE(compute_noc_bcms), 271 271 }; 272 272 273 - static struct qcom_icc_bcm *config_noc_bcms[] = { 273 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 274 274 &bcm_cn0, 275 275 }; 276 276 277 - static struct qcom_icc_node *config_noc_nodes[] = { 277 + static struct qcom_icc_node * const config_noc_nodes[] = { 278 278 [SNOC_CNOC_MAS] = &qnm_snoc, 279 279 [MASTER_QDSS_DAP] = &xm_qdss_dap, 280 280 [SLAVE_A1NOC_CFG] = &qhs_a1_noc_cfg, ··· 329 329 [SLAVE_SERVICE_CNOC] = &srvc_cnoc, 330 330 }; 331 331 332 - static struct qcom_icc_desc sm8250_config_noc = { 332 + static const struct qcom_icc_desc sm8250_config_noc = { 333 333 .nodes = config_noc_nodes, 334 334 .num_nodes = ARRAY_SIZE(config_noc_nodes), 335 335 .bcms = config_noc_bcms, 336 336 .num_bcms = ARRAY_SIZE(config_noc_bcms), 337 337 }; 338 338 339 - static struct qcom_icc_bcm *dc_noc_bcms[] = { 339 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 340 340 }; 341 341 342 - static struct qcom_icc_node *dc_noc_nodes[] = { 342 + static struct qcom_icc_node * const dc_noc_nodes[] = { 343 343 [MASTER_CNOC_DC_NOC] = &qhm_cnoc_dc_noc, 344 344 [SLAVE_LLCC_CFG] = &qhs_llcc, 345 345 [SLAVE_GEM_NOC_CFG] = &qhs_memnoc, 346 346 }; 347 347 348 - static struct qcom_icc_desc sm8250_dc_noc = { 348 + static const struct qcom_icc_desc sm8250_dc_noc = { 349 349 .nodes = dc_noc_nodes, 350 350 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 351 351 .bcms = dc_noc_bcms, 352 352 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 353 353 }; 354 354 355 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 355 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 356 356 &bcm_sh0, 357 357 &bcm_sh2, 358 358 &bcm_sh3, 359 359 &bcm_sh4, 360 360 }; 361 361 362 - static struct qcom_icc_node *gem_noc_nodes[] = { 362 + static struct qcom_icc_node * const gem_noc_nodes[] = { 363 363 [MASTER_GPU_TCU] = &alm_gpu_tcu, 364 364 [MASTER_SYS_TCU] = &alm_sys_tcu, 365 365 [MASTER_AMPSS_M0] = &chm_apps, ··· 379 379 [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc, 380 380 }; 381 381 382 - static struct qcom_icc_desc sm8250_gem_noc = { 382 + static const struct qcom_icc_desc sm8250_gem_noc = { 383 383 .nodes = gem_noc_nodes, 384 384 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 385 385 .bcms = gem_noc_bcms, 386 386 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 387 387 }; 388 388 389 - static struct qcom_icc_bcm *ipa_virt_bcms[] = { 389 + static struct qcom_icc_bcm * const ipa_virt_bcms[] = { 390 390 &bcm_ip0, 391 391 }; 392 392 393 - static struct qcom_icc_node *ipa_virt_nodes[] = { 393 + static struct qcom_icc_node * const ipa_virt_nodes[] = { 394 394 [MASTER_IPA_CORE] = &ipa_core_master, 395 395 [SLAVE_IPA_CORE] = &ipa_core_slave, 396 396 }; 397 397 398 - static struct qcom_icc_desc sm8250_ipa_virt = { 398 + static const struct qcom_icc_desc sm8250_ipa_virt = { 399 399 .nodes = ipa_virt_nodes, 400 400 .num_nodes = ARRAY_SIZE(ipa_virt_nodes), 401 401 .bcms = ipa_virt_bcms, 402 402 .num_bcms = ARRAY_SIZE(ipa_virt_bcms), 403 403 }; 404 404 405 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 405 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 406 406 &bcm_acv, 407 407 &bcm_mc0, 408 408 }; 409 409 410 - static struct qcom_icc_node *mc_virt_nodes[] = { 410 + static struct qcom_icc_node * const mc_virt_nodes[] = { 411 411 [MASTER_LLCC] = &llcc_mc, 412 412 [SLAVE_EBI_CH0] = &ebi, 413 413 }; 414 414 415 - static struct qcom_icc_desc sm8250_mc_virt = { 415 + static const struct qcom_icc_desc sm8250_mc_virt = { 416 416 .nodes = mc_virt_nodes, 417 417 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 418 418 .bcms = mc_virt_bcms, 419 419 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 420 420 }; 421 421 422 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 422 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 423 423 &bcm_mm0, 424 424 &bcm_mm1, 425 425 &bcm_mm2, 426 426 &bcm_mm3, 427 427 }; 428 428 429 - static struct qcom_icc_node *mmss_noc_nodes[] = { 429 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 430 430 [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg, 431 431 [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 432 432 [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp, ··· 442 442 [SLAVE_SERVICE_MNOC] = &srvc_mnoc, 443 443 }; 444 444 445 - static struct qcom_icc_desc sm8250_mmss_noc = { 445 + static const struct qcom_icc_desc sm8250_mmss_noc = { 446 446 .nodes = mmss_noc_nodes, 447 447 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 448 448 .bcms = mmss_noc_bcms, 449 449 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 450 450 }; 451 451 452 - static struct qcom_icc_bcm *npu_noc_bcms[] = { 452 + static struct qcom_icc_bcm * const npu_noc_bcms[] = { 453 453 }; 454 454 455 - static struct qcom_icc_node *npu_noc_nodes[] = { 455 + static struct qcom_icc_node * const npu_noc_nodes[] = { 456 456 [MASTER_NPU_SYS] = &amm_npu_sys, 457 457 [MASTER_NPU_CDP] = &amm_npu_sys_cdp_w, 458 458 [MASTER_NPU_NOC_CFG] = &qhm_cfg, ··· 468 468 [SLAVE_SERVICE_NPU_NOC] = &srvc_noc, 469 469 }; 470 470 471 - static struct qcom_icc_desc sm8250_npu_noc = { 471 + static const struct qcom_icc_desc sm8250_npu_noc = { 472 472 .nodes = npu_noc_nodes, 473 473 .num_nodes = ARRAY_SIZE(npu_noc_nodes), 474 474 .bcms = npu_noc_bcms, 475 475 .num_bcms = ARRAY_SIZE(npu_noc_bcms), 476 476 }; 477 477 478 - static struct qcom_icc_bcm *system_noc_bcms[] = { 478 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 479 479 &bcm_sn0, 480 480 &bcm_sn1, 481 481 &bcm_sn11, ··· 489 489 &bcm_sn9, 490 490 }; 491 491 492 - static struct qcom_icc_node *system_noc_nodes[] = { 492 + static struct qcom_icc_node * const system_noc_nodes[] = { 493 493 [MASTER_SNOC_CFG] = &qhm_snoc_cfg, 494 494 [A1NOC_SNOC_MAS] = &qnm_aggre1_noc, 495 495 [A2NOC_SNOC_MAS] = &qnm_aggre2_noc, ··· 511 511 [SLAVE_TCU] = &xs_sys_tcu_cfg, 512 512 }; 513 513 514 - static struct qcom_icc_desc sm8250_system_noc = { 514 + static const struct qcom_icc_desc sm8250_system_noc = { 515 515 .nodes = system_noc_nodes, 516 516 .num_nodes = ARRAY_SIZE(system_noc_nodes), 517 517 .bcms = system_noc_bcms,
+30 -30
drivers/interconnect/qcom/sm8350.c
··· 198 198 DEFINE_QBCM(bcm_mm5_disp, "MM5", false, &qxm_rot_disp); 199 199 DEFINE_QBCM(bcm_sh0_disp, "SH0", false, &qns_llcc_disp); 200 200 201 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 201 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 202 202 }; 203 203 204 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 204 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 205 205 [MASTER_QSPI_0] = &qhm_qspi, 206 206 [MASTER_QUP_1] = &qhm_qup1, 207 207 [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg, ··· 213 213 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 214 214 }; 215 215 216 - static struct qcom_icc_desc sm8350_aggre1_noc = { 216 + static const struct qcom_icc_desc sm8350_aggre1_noc = { 217 217 .nodes = aggre1_noc_nodes, 218 218 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 219 219 .bcms = aggre1_noc_bcms, 220 220 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 221 221 }; 222 222 223 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 223 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 224 224 &bcm_ce0, 225 225 &bcm_sn5, 226 226 &bcm_sn6, 227 227 &bcm_sn14, 228 228 }; 229 229 230 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 230 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 231 231 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 232 232 [MASTER_QUP_0] = &qhm_qup0, 233 233 [MASTER_QUP_2] = &qhm_qup2, ··· 244 244 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 245 245 }; 246 246 247 - static struct qcom_icc_desc sm8350_aggre2_noc = { 247 + static const struct qcom_icc_desc sm8350_aggre2_noc = { 248 248 .nodes = aggre2_noc_nodes, 249 249 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 250 250 .bcms = aggre2_noc_bcms, 251 251 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 252 252 }; 253 253 254 - static struct qcom_icc_bcm *config_noc_bcms[] = { 254 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 255 255 &bcm_cn0, 256 256 &bcm_cn1, 257 257 &bcm_cn2, ··· 259 259 &bcm_sn4, 260 260 }; 261 261 262 - static struct qcom_icc_node *config_noc_nodes[] = { 262 + static struct qcom_icc_node * const config_noc_nodes[] = { 263 263 [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 264 264 [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 265 265 [MASTER_QDSS_DAP] = &xm_qdss_dap, ··· 323 323 [SLAVE_TCU] = &xs_sys_tcu_cfg, 324 324 }; 325 325 326 - static struct qcom_icc_desc sm8350_config_noc = { 326 + static const struct qcom_icc_desc sm8350_config_noc = { 327 327 .nodes = config_noc_nodes, 328 328 .num_nodes = ARRAY_SIZE(config_noc_nodes), 329 329 .bcms = config_noc_bcms, 330 330 .num_bcms = ARRAY_SIZE(config_noc_bcms), 331 331 }; 332 332 333 - static struct qcom_icc_bcm *dc_noc_bcms[] = { 333 + static struct qcom_icc_bcm * const dc_noc_bcms[] = { 334 334 }; 335 335 336 - static struct qcom_icc_node *dc_noc_nodes[] = { 336 + static struct qcom_icc_node * const dc_noc_nodes[] = { 337 337 [MASTER_CNOC_DC_NOC] = &qnm_cnoc_dc_noc, 338 338 [SLAVE_LLCC_CFG] = &qhs_llcc, 339 339 [SLAVE_GEM_NOC_CFG] = &qns_gemnoc, 340 340 }; 341 341 342 - static struct qcom_icc_desc sm8350_dc_noc = { 342 + static const struct qcom_icc_desc sm8350_dc_noc = { 343 343 .nodes = dc_noc_nodes, 344 344 .num_nodes = ARRAY_SIZE(dc_noc_nodes), 345 345 .bcms = dc_noc_bcms, 346 346 .num_bcms = ARRAY_SIZE(dc_noc_bcms), 347 347 }; 348 348 349 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 349 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 350 350 &bcm_sh0, 351 351 &bcm_sh2, 352 352 &bcm_sh3, ··· 354 354 &bcm_sh0_disp, 355 355 }; 356 356 357 - static struct qcom_icc_node *gem_noc_nodes[] = { 357 + static struct qcom_icc_node * const gem_noc_nodes[] = { 358 358 [MASTER_GPU_TCU] = &alm_gpu_tcu, 359 359 [MASTER_SYS_TCU] = &alm_sys_tcu, 360 360 [MASTER_APPSS_PROC] = &chm_apps, ··· 379 379 [SLAVE_LLCC_DISP] = &qns_llcc_disp, 380 380 }; 381 381 382 - static struct qcom_icc_desc sm8350_gem_noc = { 382 + static const struct qcom_icc_desc sm8350_gem_noc = { 383 383 .nodes = gem_noc_nodes, 384 384 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 385 385 .bcms = gem_noc_bcms, 386 386 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 387 387 }; 388 388 389 - static struct qcom_icc_bcm *lpass_ag_noc_bcms[] = { 389 + static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = { 390 390 }; 391 391 392 - static struct qcom_icc_node *lpass_ag_noc_nodes[] = { 392 + static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 393 393 [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 394 394 [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, 395 395 [SLAVE_LPASS_LPI_CFG] = &qhs_lpass_lpi, ··· 399 399 [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 400 400 }; 401 401 402 - static struct qcom_icc_desc sm8350_lpass_ag_noc = { 402 + static const struct qcom_icc_desc sm8350_lpass_ag_noc = { 403 403 .nodes = lpass_ag_noc_nodes, 404 404 .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 405 405 .bcms = lpass_ag_noc_bcms, 406 406 .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 407 407 }; 408 408 409 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 409 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 410 410 &bcm_acv, 411 411 &bcm_mc0, 412 412 &bcm_acv_disp, 413 413 &bcm_mc0_disp, 414 414 }; 415 415 416 - static struct qcom_icc_node *mc_virt_nodes[] = { 416 + static struct qcom_icc_node * const mc_virt_nodes[] = { 417 417 [MASTER_LLCC] = &llcc_mc, 418 418 [SLAVE_EBI1] = &ebi, 419 419 [MASTER_LLCC_DISP] = &llcc_mc_disp, 420 420 [SLAVE_EBI1_DISP] = &ebi_disp, 421 421 }; 422 422 423 - static struct qcom_icc_desc sm8350_mc_virt = { 423 + static const struct qcom_icc_desc sm8350_mc_virt = { 424 424 .nodes = mc_virt_nodes, 425 425 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 426 426 .bcms = mc_virt_bcms, 427 427 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 428 428 }; 429 429 430 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 430 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 431 431 &bcm_mm0, 432 432 &bcm_mm1, 433 433 &bcm_mm4, ··· 438 438 &bcm_mm5_disp, 439 439 }; 440 440 441 - static struct qcom_icc_node *mmss_noc_nodes[] = { 441 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 442 442 [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 443 443 [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp, 444 444 [MASTER_CAMNOC_SF] = &qnm_camnoc_sf, ··· 459 459 [SLAVE_MNOC_SF_MEM_NOC_DISP] = &qns_mem_noc_sf_disp, 460 460 }; 461 461 462 - static struct qcom_icc_desc sm8350_mmss_noc = { 462 + static const struct qcom_icc_desc sm8350_mmss_noc = { 463 463 .nodes = mmss_noc_nodes, 464 464 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 465 465 .bcms = mmss_noc_bcms, 466 466 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 467 467 }; 468 468 469 - static struct qcom_icc_bcm *nsp_noc_bcms[] = { 469 + static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 470 470 &bcm_co0, 471 471 &bcm_co3, 472 472 }; 473 473 474 - static struct qcom_icc_node *nsp_noc_nodes[] = { 474 + static struct qcom_icc_node * const nsp_noc_nodes[] = { 475 475 [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 476 476 [MASTER_CDSP_PROC] = &qxm_nsp, 477 477 [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 478 478 [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 479 479 }; 480 480 481 - static struct qcom_icc_desc sm8350_compute_noc = { 481 + static const struct qcom_icc_desc sm8350_compute_noc = { 482 482 .nodes = nsp_noc_nodes, 483 483 .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 484 484 .bcms = nsp_noc_bcms, 485 485 .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 486 486 }; 487 487 488 - static struct qcom_icc_bcm *system_noc_bcms[] = { 488 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 489 489 &bcm_sn0, 490 490 &bcm_sn2, 491 491 &bcm_sn7, 492 492 &bcm_sn8, 493 493 }; 494 494 495 - static struct qcom_icc_node *system_noc_nodes[] = { 495 + static struct qcom_icc_node * const system_noc_nodes[] = { 496 496 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 497 497 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, 498 498 [MASTER_SNOC_CFG] = &qnm_snoc_cfg, ··· 503 503 [SLAVE_SERVICE_SNOC] = &srvc_snoc, 504 504 }; 505 505 506 - static struct qcom_icc_desc sm8350_system_noc = { 506 + static const struct qcom_icc_desc sm8350_system_noc = { 507 507 .nodes = system_noc_nodes, 508 508 .num_nodes = ARRAY_SIZE(system_noc_nodes), 509 509 .bcms = system_noc_bcms,
+34 -34
drivers/interconnect/qcom/sm8450.c
··· 1526 1526 .nodes = { &qnm_pcie_disp }, 1527 1527 }; 1528 1528 1529 - static struct qcom_icc_bcm *aggre1_noc_bcms[] = { 1529 + static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { 1530 1530 }; 1531 1531 1532 - static struct qcom_icc_node *aggre1_noc_nodes[] = { 1532 + static struct qcom_icc_node * const aggre1_noc_nodes[] = { 1533 1533 [MASTER_QSPI_0] = &qhm_qspi, 1534 1534 [MASTER_QUP_1] = &qhm_qup1, 1535 1535 [MASTER_A1NOC_CFG] = &qnm_a1noc_cfg, ··· 1540 1540 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc, 1541 1541 }; 1542 1542 1543 - static struct qcom_icc_desc sm8450_aggre1_noc = { 1543 + static const struct qcom_icc_desc sm8450_aggre1_noc = { 1544 1544 .nodes = aggre1_noc_nodes, 1545 1545 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes), 1546 1546 .bcms = aggre1_noc_bcms, 1547 1547 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms), 1548 1548 }; 1549 1549 1550 - static struct qcom_icc_bcm *aggre2_noc_bcms[] = { 1550 + static struct qcom_icc_bcm * const aggre2_noc_bcms[] = { 1551 1551 &bcm_ce0, 1552 1552 }; 1553 1553 1554 - static struct qcom_icc_node *aggre2_noc_nodes[] = { 1554 + static struct qcom_icc_node * const aggre2_noc_nodes[] = { 1555 1555 [MASTER_QDSS_BAM] = &qhm_qdss_bam, 1556 1556 [MASTER_QUP_0] = &qhm_qup0, 1557 1557 [MASTER_QUP_2] = &qhm_qup2, ··· 1567 1567 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc, 1568 1568 }; 1569 1569 1570 - static struct qcom_icc_desc sm8450_aggre2_noc = { 1570 + static const struct qcom_icc_desc sm8450_aggre2_noc = { 1571 1571 .nodes = aggre2_noc_nodes, 1572 1572 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes), 1573 1573 .bcms = aggre2_noc_bcms, 1574 1574 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms), 1575 1575 }; 1576 1576 1577 - static struct qcom_icc_bcm *clk_virt_bcms[] = { 1577 + static struct qcom_icc_bcm * const clk_virt_bcms[] = { 1578 1578 &bcm_qup0, 1579 1579 &bcm_qup1, 1580 1580 &bcm_qup2, 1581 1581 }; 1582 1582 1583 - static struct qcom_icc_node *clk_virt_nodes[] = { 1583 + static struct qcom_icc_node * const clk_virt_nodes[] = { 1584 1584 [MASTER_QUP_CORE_0] = &qup0_core_master, 1585 1585 [MASTER_QUP_CORE_1] = &qup1_core_master, 1586 1586 [MASTER_QUP_CORE_2] = &qup2_core_master, ··· 1589 1589 [SLAVE_QUP_CORE_2] = &qup2_core_slave, 1590 1590 }; 1591 1591 1592 - static struct qcom_icc_desc sm8450_clk_virt = { 1592 + static const struct qcom_icc_desc sm8450_clk_virt = { 1593 1593 .nodes = clk_virt_nodes, 1594 1594 .num_nodes = ARRAY_SIZE(clk_virt_nodes), 1595 1595 .bcms = clk_virt_bcms, 1596 1596 .num_bcms = ARRAY_SIZE(clk_virt_bcms), 1597 1597 }; 1598 1598 1599 - static struct qcom_icc_bcm *config_noc_bcms[] = { 1599 + static struct qcom_icc_bcm * const config_noc_bcms[] = { 1600 1600 &bcm_cn0, 1601 1601 }; 1602 1602 1603 - static struct qcom_icc_node *config_noc_nodes[] = { 1603 + static struct qcom_icc_node * const config_noc_nodes[] = { 1604 1604 [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc, 1605 1605 [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie, 1606 1606 [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0, ··· 1658 1658 [SLAVE_TCU] = &xs_sys_tcu_cfg, 1659 1659 }; 1660 1660 1661 - static struct qcom_icc_desc sm8450_config_noc = { 1661 + static const struct qcom_icc_desc sm8450_config_noc = { 1662 1662 .nodes = config_noc_nodes, 1663 1663 .num_nodes = ARRAY_SIZE(config_noc_nodes), 1664 1664 .bcms = config_noc_bcms, 1665 1665 .num_bcms = ARRAY_SIZE(config_noc_bcms), 1666 1666 }; 1667 1667 1668 - static struct qcom_icc_bcm *gem_noc_bcms[] = { 1668 + static struct qcom_icc_bcm * const gem_noc_bcms[] = { 1669 1669 &bcm_sh0, 1670 1670 &bcm_sh1, 1671 1671 &bcm_sh0_disp, 1672 1672 &bcm_sh1_disp, 1673 1673 }; 1674 1674 1675 - static struct qcom_icc_node *gem_noc_nodes[] = { 1675 + static struct qcom_icc_node * const gem_noc_nodes[] = { 1676 1676 [MASTER_GPU_TCU] = &alm_gpu_tcu, 1677 1677 [MASTER_SYS_TCU] = &alm_sys_tcu, 1678 1678 [MASTER_APPSS_PROC] = &chm_apps, ··· 1693 1693 [SLAVE_LLCC_DISP] = &qns_llcc_disp, 1694 1694 }; 1695 1695 1696 - static struct qcom_icc_desc sm8450_gem_noc = { 1696 + static const struct qcom_icc_desc sm8450_gem_noc = { 1697 1697 .nodes = gem_noc_nodes, 1698 1698 .num_nodes = ARRAY_SIZE(gem_noc_nodes), 1699 1699 .bcms = gem_noc_bcms, 1700 1700 .num_bcms = ARRAY_SIZE(gem_noc_bcms), 1701 1701 }; 1702 1702 1703 - static struct qcom_icc_bcm *lpass_ag_noc_bcms[] = { 1703 + static struct qcom_icc_bcm * const lpass_ag_noc_bcms[] = { 1704 1704 }; 1705 1705 1706 - static struct qcom_icc_node *lpass_ag_noc_nodes[] = { 1706 + static struct qcom_icc_node * const lpass_ag_noc_nodes[] = { 1707 1707 [MASTER_CNOC_LPASS_AG_NOC] = &qhm_config_noc, 1708 1708 [MASTER_LPASS_PROC] = &qxm_lpass_dsp, 1709 1709 [SLAVE_LPASS_CORE_CFG] = &qhs_lpass_core, ··· 1715 1715 [SLAVE_SERVICE_LPASS_AG_NOC] = &srvc_niu_lpass_agnoc, 1716 1716 }; 1717 1717 1718 - static struct qcom_icc_desc sm8450_lpass_ag_noc = { 1718 + static const struct qcom_icc_desc sm8450_lpass_ag_noc = { 1719 1719 .nodes = lpass_ag_noc_nodes, 1720 1720 .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes), 1721 1721 .bcms = lpass_ag_noc_bcms, 1722 1722 .num_bcms = ARRAY_SIZE(lpass_ag_noc_bcms), 1723 1723 }; 1724 1724 1725 - static struct qcom_icc_bcm *mc_virt_bcms[] = { 1725 + static struct qcom_icc_bcm * const mc_virt_bcms[] = { 1726 1726 &bcm_acv, 1727 1727 &bcm_mc0, 1728 1728 &bcm_acv_disp, 1729 1729 &bcm_mc0_disp, 1730 1730 }; 1731 1731 1732 - static struct qcom_icc_node *mc_virt_nodes[] = { 1732 + static struct qcom_icc_node * const mc_virt_nodes[] = { 1733 1733 [MASTER_LLCC] = &llcc_mc, 1734 1734 [SLAVE_EBI1] = &ebi, 1735 1735 [MASTER_LLCC_DISP] = &llcc_mc_disp, 1736 1736 [SLAVE_EBI1_DISP] = &ebi_disp, 1737 1737 }; 1738 1738 1739 - static struct qcom_icc_desc sm8450_mc_virt = { 1739 + static const struct qcom_icc_desc sm8450_mc_virt = { 1740 1740 .nodes = mc_virt_nodes, 1741 1741 .num_nodes = ARRAY_SIZE(mc_virt_nodes), 1742 1742 .bcms = mc_virt_bcms, 1743 1743 .num_bcms = ARRAY_SIZE(mc_virt_bcms), 1744 1744 }; 1745 1745 1746 - static struct qcom_icc_bcm *mmss_noc_bcms[] = { 1746 + static struct qcom_icc_bcm * const mmss_noc_bcms[] = { 1747 1747 &bcm_mm0, 1748 1748 &bcm_mm1, 1749 1749 &bcm_mm0_disp, 1750 1750 &bcm_mm1_disp, 1751 1751 }; 1752 1752 1753 - static struct qcom_icc_node *mmss_noc_nodes[] = { 1753 + static struct qcom_icc_node * const mmss_noc_nodes[] = { 1754 1754 [MASTER_CAMNOC_HF] = &qnm_camnoc_hf, 1755 1755 [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp, 1756 1756 [MASTER_CAMNOC_SF] = &qnm_camnoc_sf, ··· 1771 1771 [SLAVE_MNOC_SF_MEM_NOC_DISP] = &qns_mem_noc_sf_disp, 1772 1772 }; 1773 1773 1774 - static struct qcom_icc_desc sm8450_mmss_noc = { 1774 + static const struct qcom_icc_desc sm8450_mmss_noc = { 1775 1775 .nodes = mmss_noc_nodes, 1776 1776 .num_nodes = ARRAY_SIZE(mmss_noc_nodes), 1777 1777 .bcms = mmss_noc_bcms, 1778 1778 .num_bcms = ARRAY_SIZE(mmss_noc_bcms), 1779 1779 }; 1780 1780 1781 - static struct qcom_icc_bcm *nsp_noc_bcms[] = { 1781 + static struct qcom_icc_bcm * const nsp_noc_bcms[] = { 1782 1782 &bcm_co0, 1783 1783 }; 1784 1784 1785 - static struct qcom_icc_node *nsp_noc_nodes[] = { 1785 + static struct qcom_icc_node * const nsp_noc_nodes[] = { 1786 1786 [MASTER_CDSP_NOC_CFG] = &qhm_nsp_noc_config, 1787 1787 [MASTER_CDSP_PROC] = &qxm_nsp, 1788 1788 [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc, 1789 1789 [SLAVE_SERVICE_NSP_NOC] = &service_nsp_noc, 1790 1790 }; 1791 1791 1792 - static struct qcom_icc_desc sm8450_nsp_noc = { 1792 + static const struct qcom_icc_desc sm8450_nsp_noc = { 1793 1793 .nodes = nsp_noc_nodes, 1794 1794 .num_nodes = ARRAY_SIZE(nsp_noc_nodes), 1795 1795 .bcms = nsp_noc_bcms, 1796 1796 .num_bcms = ARRAY_SIZE(nsp_noc_bcms), 1797 1797 }; 1798 1798 1799 - static struct qcom_icc_bcm *pcie_anoc_bcms[] = { 1799 + static struct qcom_icc_bcm * const pcie_anoc_bcms[] = { 1800 1800 &bcm_sn7, 1801 1801 }; 1802 1802 1803 - static struct qcom_icc_node *pcie_anoc_nodes[] = { 1803 + static struct qcom_icc_node * const pcie_anoc_nodes[] = { 1804 1804 [MASTER_PCIE_ANOC_CFG] = &qnm_pcie_anoc_cfg, 1805 1805 [MASTER_PCIE_0] = &xm_pcie3_0, 1806 1806 [MASTER_PCIE_1] = &xm_pcie3_1, ··· 1808 1808 [SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc, 1809 1809 }; 1810 1810 1811 - static struct qcom_icc_desc sm8450_pcie_anoc = { 1811 + static const struct qcom_icc_desc sm8450_pcie_anoc = { 1812 1812 .nodes = pcie_anoc_nodes, 1813 1813 .num_nodes = ARRAY_SIZE(pcie_anoc_nodes), 1814 1814 .bcms = pcie_anoc_bcms, 1815 1815 .num_bcms = ARRAY_SIZE(pcie_anoc_bcms), 1816 1816 }; 1817 1817 1818 - static struct qcom_icc_bcm *system_noc_bcms[] = { 1818 + static struct qcom_icc_bcm * const system_noc_bcms[] = { 1819 1819 &bcm_sn0, 1820 1820 &bcm_sn1, 1821 1821 &bcm_sn2, ··· 1823 1823 &bcm_sn4, 1824 1824 }; 1825 1825 1826 - static struct qcom_icc_node *system_noc_nodes[] = { 1826 + static struct qcom_icc_node * const system_noc_nodes[] = { 1827 1827 [MASTER_GIC_AHB] = &qhm_gic, 1828 1828 [MASTER_A1NOC_SNOC] = &qnm_aggre1_noc, 1829 1829 [MASTER_A2NOC_SNOC] = &qnm_aggre2_noc, ··· 1836 1836 [SLAVE_SERVICE_SNOC] = &srvc_snoc, 1837 1837 }; 1838 1838 1839 - static struct qcom_icc_desc sm8450_system_noc = { 1839 + static const struct qcom_icc_desc sm8450_system_noc = { 1840 1840 .nodes = system_noc_nodes, 1841 1841 .num_nodes = ARRAY_SIZE(system_noc_nodes), 1842 1842 .bcms = system_noc_bcms, ··· 1848 1848 const struct qcom_icc_desc *desc; 1849 1849 struct icc_onecell_data *data; 1850 1850 struct icc_provider *provider; 1851 - struct qcom_icc_node **qnodes; 1851 + struct qcom_icc_node * const *qnodes; 1852 1852 struct qcom_icc_provider *qp; 1853 1853 struct icc_node *node; 1854 1854 size_t num_nodes, i;
+7
include/dt-bindings/interconnect/qcom,sc8180x.h
··· 182 182 #define SLAVE_MNOC_SF_MEM_NOC_DISPLAY 3 183 183 #define SLAVE_MNOC_HF_MEM_NOC_DISPLAY 4 184 184 185 + #define MASTER_QUP_CORE_0 0 186 + #define MASTER_QUP_CORE_1 1 187 + #define MASTER_QUP_CORE_2 2 188 + #define SLAVE_QUP_CORE_0 3 189 + #define SLAVE_QUP_CORE_1 4 190 + #define SLAVE_QUP_CORE_2 5 191 + 185 192 #endif
+232
include/dt-bindings/interconnect/qcom,sc8280xp.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) 2021, The Linux Foundation. All rights reserved. 4 + * Copyright (c) 2022, Linaro Ltd. 5 + */ 6 + 7 + #ifndef __DT_BINDINGS_INTERCONNECT_QCOM_SC8280XP_H 8 + #define __DT_BINDINGS_INTERCONNECT_QCOM_SC8280XP_H 9 + 10 + /* aggre1_noc */ 11 + #define MASTER_QSPI_0 0 12 + #define MASTER_QUP_1 1 13 + #define MASTER_QUP_2 2 14 + #define MASTER_A1NOC_CFG 3 15 + #define MASTER_IPA 4 16 + #define MASTER_EMAC_1 5 17 + #define MASTER_SDCC_4 6 18 + #define MASTER_UFS_MEM 7 19 + #define MASTER_USB3_0 8 20 + #define MASTER_USB3_1 9 21 + #define MASTER_USB3_MP 10 22 + #define MASTER_USB4_0 11 23 + #define MASTER_USB4_1 12 24 + #define SLAVE_A1NOC_SNOC 13 25 + #define SLAVE_USB_NOC_SNOC 14 26 + #define SLAVE_SERVICE_A1NOC 15 27 + 28 + /* aggre2_noc */ 29 + #define MASTER_QDSS_BAM 0 30 + #define MASTER_QUP_0 1 31 + #define MASTER_A2NOC_CFG 2 32 + #define MASTER_CRYPTO 3 33 + #define MASTER_SENSORS_PROC 4 34 + #define MASTER_SP 5 35 + #define MASTER_EMAC 6 36 + #define MASTER_PCIE_0 7 37 + #define MASTER_PCIE_1 8 38 + #define MASTER_PCIE_2A 9 39 + #define MASTER_PCIE_2B 10 40 + #define MASTER_PCIE_3A 11 41 + #define MASTER_PCIE_3B 12 42 + #define MASTER_PCIE_4 13 43 + #define MASTER_QDSS_ETR 14 44 + #define MASTER_SDCC_2 15 45 + #define MASTER_UFS_CARD 16 46 + #define SLAVE_A2NOC_SNOC 17 47 + #define SLAVE_ANOC_PCIE_GEM_NOC 18 48 + #define SLAVE_SERVICE_A2NOC 19 49 + 50 + /* clk_virt */ 51 + #define MASTER_IPA_CORE 0 52 + #define MASTER_QUP_CORE_0 1 53 + #define MASTER_QUP_CORE_1 2 54 + #define MASTER_QUP_CORE_2 3 55 + #define SLAVE_IPA_CORE 4 56 + #define SLAVE_QUP_CORE_0 5 57 + #define SLAVE_QUP_CORE_1 6 58 + #define SLAVE_QUP_CORE_2 7 59 + 60 + /* config_noc */ 61 + #define MASTER_GEM_NOC_CNOC 0 62 + #define MASTER_GEM_NOC_PCIE_SNOC 1 63 + #define SLAVE_AHB2PHY_0 2 64 + #define SLAVE_AHB2PHY_1 3 65 + #define SLAVE_AHB2PHY_2 4 66 + #define SLAVE_AOSS 5 67 + #define SLAVE_APPSS 6 68 + #define SLAVE_CAMERA_CFG 7 69 + #define SLAVE_CLK_CTL 8 70 + #define SLAVE_CDSP_CFG 9 71 + #define SLAVE_CDSP1_CFG 10 72 + #define SLAVE_RBCPR_CX_CFG 11 73 + #define SLAVE_RBCPR_MMCX_CFG 12 74 + #define SLAVE_RBCPR_MX_CFG 13 75 + #define SLAVE_CPR_NSPCX 14 76 + #define SLAVE_CRYPTO_0_CFG 15 77 + #define SLAVE_CX_RDPM 16 78 + #define SLAVE_DCC_CFG 17 79 + #define SLAVE_DISPLAY_CFG 18 80 + #define SLAVE_DISPLAY1_CFG 19 81 + #define SLAVE_EMAC_CFG 20 82 + #define SLAVE_EMAC1_CFG 21 83 + #define SLAVE_GFX3D_CFG 22 84 + #define SLAVE_HWKM 23 85 + #define SLAVE_IMEM_CFG 24 86 + #define SLAVE_IPA_CFG 25 87 + #define SLAVE_IPC_ROUTER_CFG 26 88 + #define SLAVE_LPASS 27 89 + #define SLAVE_MX_RDPM 28 90 + #define SLAVE_MXC_RDPM 29 91 + #define SLAVE_PCIE_0_CFG 30 92 + #define SLAVE_PCIE_1_CFG 31 93 + #define SLAVE_PCIE_2A_CFG 32 94 + #define SLAVE_PCIE_2B_CFG 33 95 + #define SLAVE_PCIE_3A_CFG 34 96 + #define SLAVE_PCIE_3B_CFG 35 97 + #define SLAVE_PCIE_4_CFG 36 98 + #define SLAVE_PCIE_RSC_CFG 37 99 + #define SLAVE_PDM 38 100 + #define SLAVE_PIMEM_CFG 39 101 + #define SLAVE_PKA_WRAPPER_CFG 40 102 + #define SLAVE_PMU_WRAPPER_CFG 41 103 + #define SLAVE_QDSS_CFG 42 104 + #define SLAVE_QSPI_0 43 105 + #define SLAVE_QUP_0 44 106 + #define SLAVE_QUP_1 45 107 + #define SLAVE_QUP_2 46 108 + #define SLAVE_SDCC_2 47 109 + #define SLAVE_SDCC_4 48 110 + #define SLAVE_SECURITY 49 111 + #define SLAVE_SMMUV3_CFG 50 112 + #define SLAVE_SMSS_CFG 51 113 + #define SLAVE_SPSS_CFG 52 114 + #define SLAVE_TCSR 53 115 + #define SLAVE_TLMM 54 116 + #define SLAVE_UFS_CARD_CFG 55 117 + #define SLAVE_UFS_MEM_CFG 56 118 + #define SLAVE_USB3_0 57 119 + #define SLAVE_USB3_1 58 120 + #define SLAVE_USB3_MP 59 121 + #define SLAVE_USB4_0 60 122 + #define SLAVE_USB4_1 61 123 + #define SLAVE_VENUS_CFG 62 124 + #define SLAVE_VSENSE_CTRL_CFG 63 125 + #define SLAVE_VSENSE_CTRL_R_CFG 64 126 + #define SLAVE_A1NOC_CFG 65 127 + #define SLAVE_A2NOC_CFG 66 128 + #define SLAVE_ANOC_PCIE_BRIDGE_CFG 67 129 + #define SLAVE_DDRSS_CFG 68 130 + #define SLAVE_CNOC_MNOC_CFG 69 131 + #define SLAVE_SNOC_CFG 70 132 + #define SLAVE_SNOC_SF_BRIDGE_CFG 71 133 + #define SLAVE_IMEM 72 134 + #define SLAVE_PIMEM 73 135 + #define SLAVE_SERVICE_CNOC 74 136 + #define SLAVE_PCIE_0 75 137 + #define SLAVE_PCIE_1 76 138 + #define SLAVE_PCIE_2A 77 139 + #define SLAVE_PCIE_2B 78 140 + #define SLAVE_PCIE_3A 79 141 + #define SLAVE_PCIE_3B 80 142 + #define SLAVE_PCIE_4 81 143 + #define SLAVE_QDSS_STM 82 144 + #define SLAVE_SMSS 83 145 + #define SLAVE_TCU 84 146 + 147 + /* dc_noc */ 148 + #define MASTER_CNOC_DC_NOC 0 149 + #define SLAVE_LLCC_CFG 1 150 + #define SLAVE_GEM_NOC_CFG 2 151 + 152 + /* gem_noc */ 153 + #define MASTER_GPU_TCU 0 154 + #define MASTER_PCIE_TCU 1 155 + #define MASTER_SYS_TCU 2 156 + #define MASTER_APPSS_PROC 3 157 + #define MASTER_COMPUTE_NOC 4 158 + #define MASTER_COMPUTE_NOC_1 5 159 + #define MASTER_GEM_NOC_CFG 6 160 + #define MASTER_GFX3D 7 161 + #define MASTER_MNOC_HF_MEM_NOC 8 162 + #define MASTER_MNOC_SF_MEM_NOC 9 163 + #define MASTER_ANOC_PCIE_GEM_NOC 10 164 + #define MASTER_SNOC_GC_MEM_NOC 11 165 + #define MASTER_SNOC_SF_MEM_NOC 12 166 + #define SLAVE_GEM_NOC_CNOC 13 167 + #define SLAVE_LLCC 14 168 + #define SLAVE_GEM_NOC_PCIE_CNOC 15 169 + #define SLAVE_SERVICE_GEM_NOC_1 16 170 + #define SLAVE_SERVICE_GEM_NOC_2 17 171 + #define SLAVE_SERVICE_GEM_NOC 18 172 + 173 + /* lpass_ag_noc */ 174 + #define MASTER_CNOC_LPASS_AG_NOC 0 175 + #define MASTER_LPASS_PROC 1 176 + #define SLAVE_LPASS_CORE_CFG 2 177 + #define SLAVE_LPASS_LPI_CFG 3 178 + #define SLAVE_LPASS_MPU_CFG 4 179 + #define SLAVE_LPASS_TOP_CFG 5 180 + #define SLAVE_LPASS_SNOC 6 181 + #define SLAVE_SERVICES_LPASS_AML_NOC 7 182 + #define SLAVE_SERVICE_LPASS_AG_NOC 8 183 + 184 + /* mc_virt */ 185 + #define MASTER_LLCC 0 186 + #define SLAVE_EBI1 1 187 + 188 + /*mmss_noc */ 189 + #define MASTER_CAMNOC_HF 0 190 + #define MASTER_MDP0 1 191 + #define MASTER_MDP1 2 192 + #define MASTER_MDP_CORE1_0 3 193 + #define MASTER_MDP_CORE1_1 4 194 + #define MASTER_CNOC_MNOC_CFG 5 195 + #define MASTER_ROTATOR 6 196 + #define MASTER_ROTATOR_1 7 197 + #define MASTER_VIDEO_P0 8 198 + #define MASTER_VIDEO_P1 9 199 + #define MASTER_VIDEO_PROC 10 200 + #define MASTER_CAMNOC_ICP 11 201 + #define MASTER_CAMNOC_SF 12 202 + #define SLAVE_MNOC_HF_MEM_NOC 13 203 + #define SLAVE_MNOC_SF_MEM_NOC 14 204 + #define SLAVE_SERVICE_MNOC 15 205 + 206 + /* nspa_noc */ 207 + #define MASTER_CDSP_NOC_CFG 0 208 + #define MASTER_CDSP_PROC 1 209 + #define SLAVE_CDSP_MEM_NOC 2 210 + #define SLAVE_NSP_XFR 3 211 + #define SLAVE_SERVICE_NSP_NOC 4 212 + 213 + /* nspb_noc */ 214 + #define MASTER_CDSPB_NOC_CFG 0 215 + #define MASTER_CDSP_PROC_B 1 216 + #define SLAVE_CDSPB_MEM_NOC 2 217 + #define SLAVE_NSPB_XFR 3 218 + #define SLAVE_SERVICE_NSPB_NOC 4 219 + 220 + /* system_noc */ 221 + #define MASTER_A1NOC_SNOC 0 222 + #define MASTER_A2NOC_SNOC 1 223 + #define MASTER_USB_NOC_SNOC 2 224 + #define MASTER_LPASS_ANOC 3 225 + #define MASTER_SNOC_CFG 4 226 + #define MASTER_PIMEM 5 227 + #define MASTER_GIC 6 228 + #define SLAVE_SNOC_GEM_NOC_GC 7 229 + #define SLAVE_SNOC_GEM_NOC_SF 8 230 + #define SLAVE_SERVICE_SNOC 9 231 + 232 + #endif
+67
include/dt-bindings/interconnect/qcom,sdx65.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 4 + */ 5 + 6 + #ifndef __DT_BINDINGS_INTERCONNECT_QCOM_SDX65_H 7 + #define __DT_BINDINGS_INTERCONNECT_QCOM_SDX65_H 8 + 9 + #define MASTER_LLCC 0 10 + #define SLAVE_EBI1 1 11 + 12 + #define MASTER_TCU_0 0 13 + #define MASTER_SNOC_GC_MEM_NOC 1 14 + #define MASTER_APPSS_PROC 2 15 + #define SLAVE_LLCC 3 16 + #define SLAVE_MEM_NOC_SNOC 4 17 + #define SLAVE_MEM_NOC_PCIE_SNOC 5 18 + 19 + #define MASTER_AUDIO 0 20 + #define MASTER_BLSP_1 1 21 + #define MASTER_QDSS_BAM 2 22 + #define MASTER_QPIC 3 23 + #define MASTER_SNOC_CFG 4 24 + #define MASTER_SPMI_FETCHER 5 25 + #define MASTER_ANOC_SNOC 6 26 + #define MASTER_IPA 7 27 + #define MASTER_MEM_NOC_SNOC 8 28 + #define MASTER_MEM_NOC_PCIE_SNOC 9 29 + #define MASTER_CRYPTO 10 30 + #define MASTER_IPA_PCIE 11 31 + #define MASTER_PCIE_0 12 32 + #define MASTER_QDSS_ETR 13 33 + #define MASTER_SDCC_1 14 34 + #define MASTER_USB3 15 35 + #define SLAVE_AOSS 16 36 + #define SLAVE_APPSS 17 37 + #define SLAVE_AUDIO 18 38 + #define SLAVE_BLSP_1 19 39 + #define SLAVE_CLK_CTL 20 40 + #define SLAVE_CRYPTO_0_CFG 21 41 + #define SLAVE_CNOC_DDRSS 22 42 + #define SLAVE_ECC_CFG 23 43 + #define SLAVE_IMEM_CFG 24 44 + #define SLAVE_IPA_CFG 25 45 + #define SLAVE_CNOC_MSS 26 46 + #define SLAVE_PCIE_PARF 27 47 + #define SLAVE_PDM 28 48 + #define SLAVE_PRNG 29 49 + #define SLAVE_QDSS_CFG 30 50 + #define SLAVE_QPIC 31 51 + #define SLAVE_SDCC_1 32 52 + #define SLAVE_SNOC_CFG 33 53 + #define SLAVE_SPMI_FETCHER 34 54 + #define SLAVE_SPMI_VGI_COEX 35 55 + #define SLAVE_TCSR 36 56 + #define SLAVE_TLMM 37 57 + #define SLAVE_USB3 38 58 + #define SLAVE_USB3_PHY_CFG 39 59 + #define SLAVE_ANOC_SNOC 40 60 + #define SLAVE_SNOC_MEM_NOC_GC 41 61 + #define SLAVE_IMEM 42 62 + #define SLAVE_SERVICE_SNOC 43 63 + #define SLAVE_PCIE_0 44 64 + #define SLAVE_QDSS_STM 45 65 + #define SLAVE_TCU 46 66 + 67 + #endif