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