162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include <linux/device.h>
862306a36Sopenharmony_ci#include <linux/interconnect.h>
962306a36Sopenharmony_ci#include <linux/interconnect-provider.h>
1062306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1162306a36Sopenharmony_ci#include <linux/module.h>
1262306a36Sopenharmony_ci#include <linux/platform_device.h>
1362306a36Sopenharmony_ci#include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "bcm-voter.h"
1662306a36Sopenharmony_ci#include "icc-common.h"
1762306a36Sopenharmony_ci#include "icc-rpmh.h"
1862306a36Sopenharmony_ci#include "qdu1000.h"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistatic struct qcom_icc_node qup0_core_master = {
2162306a36Sopenharmony_ci	.name = "qup0_core_master",
2262306a36Sopenharmony_ci	.id = QDU1000_MASTER_QUP_CORE_0,
2362306a36Sopenharmony_ci	.channels = 1,
2462306a36Sopenharmony_ci	.buswidth = 4,
2562306a36Sopenharmony_ci	.num_links = 1,
2662306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_QUP_CORE_0 },
2762306a36Sopenharmony_ci};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistatic struct qcom_icc_node qup1_core_master = {
3062306a36Sopenharmony_ci	.name = "qup1_core_master",
3162306a36Sopenharmony_ci	.id = QDU1000_MASTER_QUP_CORE_1,
3262306a36Sopenharmony_ci	.channels = 1,
3362306a36Sopenharmony_ci	.buswidth = 4,
3462306a36Sopenharmony_ci	.num_links = 1,
3562306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_QUP_CORE_1 },
3662306a36Sopenharmony_ci};
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_cistatic struct qcom_icc_node alm_sys_tcu = {
3962306a36Sopenharmony_ci	.name = "alm_sys_tcu",
4062306a36Sopenharmony_ci	.id = QDU1000_MASTER_SYS_TCU,
4162306a36Sopenharmony_ci	.channels = 1,
4262306a36Sopenharmony_ci	.buswidth = 8,
4362306a36Sopenharmony_ci	.num_links = 2,
4462306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cistatic struct qcom_icc_node chm_apps = {
4862306a36Sopenharmony_ci	.name = "chm_apps",
4962306a36Sopenharmony_ci	.id = QDU1000_MASTER_APPSS_PROC,
5062306a36Sopenharmony_ci	.channels = 1,
5162306a36Sopenharmony_ci	.buswidth = 16,
5262306a36Sopenharmony_ci	.num_links = 4,
5362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
5462306a36Sopenharmony_ci		   QDU1000_SLAVE_GEMNOC_MODEM_CNOC, QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
5562306a36Sopenharmony_ci	},
5662306a36Sopenharmony_ci};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_cistatic struct qcom_icc_node qnm_ecpri_dma = {
5962306a36Sopenharmony_ci	.name = "qnm_ecpri_dma",
6062306a36Sopenharmony_ci	.id = QDU1000_MASTER_GEMNOC_ECPRI_DMA,
6162306a36Sopenharmony_ci	.channels = 2,
6262306a36Sopenharmony_ci	.buswidth = 32,
6362306a36Sopenharmony_ci	.num_links = 2,
6462306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
6562306a36Sopenharmony_ci};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cistatic struct qcom_icc_node qnm_fec_2_gemnoc = {
6862306a36Sopenharmony_ci	.name = "qnm_fec_2_gemnoc",
6962306a36Sopenharmony_ci	.id = QDU1000_MASTER_FEC_2_GEMNOC,
7062306a36Sopenharmony_ci	.channels = 2,
7162306a36Sopenharmony_ci	.buswidth = 32,
7262306a36Sopenharmony_ci	.num_links = 2,
7362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
7462306a36Sopenharmony_ci};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cistatic struct qcom_icc_node qnm_pcie = {
7762306a36Sopenharmony_ci	.name = "qnm_pcie",
7862306a36Sopenharmony_ci	.id = QDU1000_MASTER_ANOC_PCIE_GEM_NOC,
7962306a36Sopenharmony_ci	.channels = 1,
8062306a36Sopenharmony_ci	.buswidth = 64,
8162306a36Sopenharmony_ci	.num_links = 3,
8262306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
8362306a36Sopenharmony_ci		   QDU1000_SLAVE_GEMNOC_MODEM_CNOC
8462306a36Sopenharmony_ci	},
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_cistatic struct qcom_icc_node qnm_snoc_gc = {
8862306a36Sopenharmony_ci	.name = "qnm_snoc_gc",
8962306a36Sopenharmony_ci	.id = QDU1000_MASTER_SNOC_GC_MEM_NOC,
9062306a36Sopenharmony_ci	.channels = 1,
9162306a36Sopenharmony_ci	.buswidth = 8,
9262306a36Sopenharmony_ci	.num_links = 1,
9362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_LLCC },
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cistatic struct qcom_icc_node qnm_snoc_sf = {
9762306a36Sopenharmony_ci	.name = "qnm_snoc_sf",
9862306a36Sopenharmony_ci	.id = QDU1000_MASTER_SNOC_SF_MEM_NOC,
9962306a36Sopenharmony_ci	.channels = 1,
10062306a36Sopenharmony_ci	.buswidth = 16,
10162306a36Sopenharmony_ci	.num_links = 4,
10262306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
10362306a36Sopenharmony_ci		   QDU1000_SLAVE_GEMNOC_MODEM_CNOC, QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
10462306a36Sopenharmony_ci	},
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_cistatic struct qcom_icc_node qxm_mdsp = {
10862306a36Sopenharmony_ci	.name = "qxm_mdsp",
10962306a36Sopenharmony_ci	.id = QDU1000_MASTER_MSS_PROC,
11062306a36Sopenharmony_ci	.channels = 1,
11162306a36Sopenharmony_ci	.buswidth = 16,
11262306a36Sopenharmony_ci	.num_links = 3,
11362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
11462306a36Sopenharmony_ci		   QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
11562306a36Sopenharmony_ci	},
11662306a36Sopenharmony_ci};
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_cistatic struct qcom_icc_node llcc_mc = {
11962306a36Sopenharmony_ci	.name = "llcc_mc",
12062306a36Sopenharmony_ci	.id = QDU1000_MASTER_LLCC,
12162306a36Sopenharmony_ci	.channels = 8,
12262306a36Sopenharmony_ci	.buswidth = 4,
12362306a36Sopenharmony_ci	.num_links = 1,
12462306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_EBI1 },
12562306a36Sopenharmony_ci};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_cistatic struct qcom_icc_node qhm_gic = {
12862306a36Sopenharmony_ci	.name = "qhm_gic",
12962306a36Sopenharmony_ci	.id = QDU1000_MASTER_GIC_AHB,
13062306a36Sopenharmony_ci	.channels = 1,
13162306a36Sopenharmony_ci	.buswidth = 4,
13262306a36Sopenharmony_ci	.num_links = 1,
13362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
13462306a36Sopenharmony_ci};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_cistatic struct qcom_icc_node qhm_qdss_bam = {
13762306a36Sopenharmony_ci	.name = "qhm_qdss_bam",
13862306a36Sopenharmony_ci	.id = QDU1000_MASTER_QDSS_BAM,
13962306a36Sopenharmony_ci	.channels = 1,
14062306a36Sopenharmony_ci	.buswidth = 4,
14162306a36Sopenharmony_ci	.num_links = 1,
14262306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
14362306a36Sopenharmony_ci};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_cistatic struct qcom_icc_node qhm_qpic = {
14662306a36Sopenharmony_ci	.name = "qhm_qpic",
14762306a36Sopenharmony_ci	.id = QDU1000_MASTER_QPIC,
14862306a36Sopenharmony_ci	.channels = 1,
14962306a36Sopenharmony_ci	.buswidth = 4,
15062306a36Sopenharmony_ci	.num_links = 1,
15162306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_cistatic struct qcom_icc_node qhm_qspi = {
15562306a36Sopenharmony_ci	.name = "qhm_qspi",
15662306a36Sopenharmony_ci	.id = QDU1000_MASTER_QSPI_0,
15762306a36Sopenharmony_ci	.channels = 1,
15862306a36Sopenharmony_ci	.buswidth = 4,
15962306a36Sopenharmony_ci	.num_links = 1,
16062306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
16162306a36Sopenharmony_ci};
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_cistatic struct qcom_icc_node qhm_qup0 = {
16462306a36Sopenharmony_ci	.name = "qhm_qup0",
16562306a36Sopenharmony_ci	.id = QDU1000_MASTER_QUP_0,
16662306a36Sopenharmony_ci	.channels = 1,
16762306a36Sopenharmony_ci	.buswidth = 4,
16862306a36Sopenharmony_ci	.num_links = 1,
16962306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
17062306a36Sopenharmony_ci};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_cistatic struct qcom_icc_node qhm_qup1 = {
17362306a36Sopenharmony_ci	.name = "qhm_qup1",
17462306a36Sopenharmony_ci	.id = QDU1000_MASTER_QUP_1,
17562306a36Sopenharmony_ci	.channels = 1,
17662306a36Sopenharmony_ci	.buswidth = 4,
17762306a36Sopenharmony_ci	.num_links = 1,
17862306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic struct qcom_icc_node qhm_system_noc_cfg = {
18262306a36Sopenharmony_ci	.name = "qhm_system_noc_cfg",
18362306a36Sopenharmony_ci	.id = QDU1000_MASTER_SNOC_CFG,
18462306a36Sopenharmony_ci	.channels = 1,
18562306a36Sopenharmony_ci	.buswidth = 4,
18662306a36Sopenharmony_ci	.num_links = 1,
18762306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SERVICE_SNOC },
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_cistatic struct qcom_icc_node qnm_aggre_noc = {
19162306a36Sopenharmony_ci	.name = "qnm_aggre_noc",
19262306a36Sopenharmony_ci	.id = QDU1000_MASTER_ANOC_SNOC,
19362306a36Sopenharmony_ci	.channels = 1,
19462306a36Sopenharmony_ci	.buswidth = 8,
19562306a36Sopenharmony_ci	.num_links = 1,
19662306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
19762306a36Sopenharmony_ci};
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_cistatic struct qcom_icc_node qnm_aggre_noc_gsi = {
20062306a36Sopenharmony_ci	.name = "qnm_aggre_noc_gsi",
20162306a36Sopenharmony_ci	.id = QDU1000_MASTER_ANOC_GSI,
20262306a36Sopenharmony_ci	.channels = 1,
20362306a36Sopenharmony_ci	.buswidth = 8,
20462306a36Sopenharmony_ci	.num_links = 1,
20562306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
20662306a36Sopenharmony_ci};
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_cistatic struct qcom_icc_node qnm_gemnoc_cnoc = {
20962306a36Sopenharmony_ci	.name = "qnm_gemnoc_cnoc",
21062306a36Sopenharmony_ci	.id = QDU1000_MASTER_GEM_NOC_CNOC,
21162306a36Sopenharmony_ci	.channels = 1,
21262306a36Sopenharmony_ci	.buswidth = 16,
21362306a36Sopenharmony_ci	.num_links = 36,
21462306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_AHB2PHY_SOUTH, QDU1000_SLAVE_AHB2PHY_NORTH,
21562306a36Sopenharmony_ci		   QDU1000_SLAVE_AHB2PHY_EAST, QDU1000_SLAVE_AOSS,
21662306a36Sopenharmony_ci		   QDU1000_SLAVE_CLK_CTL, QDU1000_SLAVE_RBCPR_CX_CFG,
21762306a36Sopenharmony_ci		   QDU1000_SLAVE_RBCPR_MX_CFG, QDU1000_SLAVE_CRYPTO_0_CFG,
21862306a36Sopenharmony_ci		   QDU1000_SLAVE_ECPRI_CFG, QDU1000_SLAVE_IMEM_CFG,
21962306a36Sopenharmony_ci		   QDU1000_SLAVE_IPC_ROUTER_CFG, QDU1000_SLAVE_CNOC_MSS,
22062306a36Sopenharmony_ci		   QDU1000_SLAVE_PCIE_CFG, QDU1000_SLAVE_PDM,
22162306a36Sopenharmony_ci		   QDU1000_SLAVE_PIMEM_CFG, QDU1000_SLAVE_PRNG,
22262306a36Sopenharmony_ci		   QDU1000_SLAVE_QDSS_CFG, QDU1000_SLAVE_QPIC,
22362306a36Sopenharmony_ci		   QDU1000_SLAVE_QSPI_0, QDU1000_SLAVE_QUP_0,
22462306a36Sopenharmony_ci		   QDU1000_SLAVE_QUP_1, QDU1000_SLAVE_SDCC_2,
22562306a36Sopenharmony_ci		   QDU1000_SLAVE_SMBUS_CFG, QDU1000_SLAVE_SNOC_CFG,
22662306a36Sopenharmony_ci		   QDU1000_SLAVE_TCSR, QDU1000_SLAVE_TLMM,
22762306a36Sopenharmony_ci		   QDU1000_SLAVE_TME_CFG, QDU1000_SLAVE_TSC_CFG,
22862306a36Sopenharmony_ci		   QDU1000_SLAVE_USB3_0, QDU1000_SLAVE_VSENSE_CTRL_CFG,
22962306a36Sopenharmony_ci		   QDU1000_SLAVE_DDRSS_CFG, QDU1000_SLAVE_IMEM,
23062306a36Sopenharmony_ci		   QDU1000_SLAVE_PIMEM, QDU1000_SLAVE_ETHERNET_SS,
23162306a36Sopenharmony_ci		   QDU1000_SLAVE_QDSS_STM, QDU1000_SLAVE_TCU
23262306a36Sopenharmony_ci	},
23362306a36Sopenharmony_ci};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_cistatic struct qcom_icc_node qnm_gemnoc_modem_slave = {
23662306a36Sopenharmony_ci	.name = "qnm_gemnoc_modem_slave",
23762306a36Sopenharmony_ci	.id = QDU1000_MASTER_GEMNOC_MODEM_CNOC,
23862306a36Sopenharmony_ci	.channels = 1,
23962306a36Sopenharmony_ci	.buswidth = 16,
24062306a36Sopenharmony_ci	.num_links = 1,
24162306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_MODEM_OFFLINE },
24262306a36Sopenharmony_ci};
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_cistatic struct qcom_icc_node qnm_gemnoc_pcie = {
24562306a36Sopenharmony_ci	.name = "qnm_gemnoc_pcie",
24662306a36Sopenharmony_ci	.id = QDU1000_MASTER_GEM_NOC_PCIE_SNOC,
24762306a36Sopenharmony_ci	.channels = 1,
24862306a36Sopenharmony_ci	.buswidth = 16,
24962306a36Sopenharmony_ci	.num_links = 1,
25062306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_PCIE_0 },
25162306a36Sopenharmony_ci};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_cistatic struct qcom_icc_node qxm_crypto = {
25462306a36Sopenharmony_ci	.name = "qxm_crypto",
25562306a36Sopenharmony_ci	.id = QDU1000_MASTER_CRYPTO,
25662306a36Sopenharmony_ci	.channels = 1,
25762306a36Sopenharmony_ci	.buswidth = 8,
25862306a36Sopenharmony_ci	.num_links = 1,
25962306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
26062306a36Sopenharmony_ci};
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_cistatic struct qcom_icc_node qxm_ecpri_gsi = {
26362306a36Sopenharmony_ci	.name = "qxm_ecpri_gsi",
26462306a36Sopenharmony_ci	.id = QDU1000_MASTER_ECPRI_GSI,
26562306a36Sopenharmony_ci	.channels = 1,
26662306a36Sopenharmony_ci	.buswidth = 8,
26762306a36Sopenharmony_ci	.num_links = 2,
26862306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_ANOC_SNOC_GSI, QDU1000_SLAVE_PCIE_0 },
26962306a36Sopenharmony_ci};
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_cistatic struct qcom_icc_node qxm_pimem = {
27262306a36Sopenharmony_ci	.name = "qxm_pimem",
27362306a36Sopenharmony_ci	.id = QDU1000_MASTER_PIMEM,
27462306a36Sopenharmony_ci	.channels = 1,
27562306a36Sopenharmony_ci	.buswidth = 8,
27662306a36Sopenharmony_ci	.num_links = 1,
27762306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
27862306a36Sopenharmony_ci};
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_cistatic struct qcom_icc_node xm_ecpri_dma = {
28162306a36Sopenharmony_ci	.name = "xm_ecpri_dma",
28262306a36Sopenharmony_ci	.id = QDU1000_MASTER_SNOC_ECPRI_DMA,
28362306a36Sopenharmony_ci	.channels = 2,
28462306a36Sopenharmony_ci	.buswidth = 32,
28562306a36Sopenharmony_ci	.num_links = 2,
28662306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_ECPRI_GEMNOC, QDU1000_SLAVE_PCIE_0 },
28762306a36Sopenharmony_ci};
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_cistatic struct qcom_icc_node xm_gic = {
29062306a36Sopenharmony_ci	.name = "xm_gic",
29162306a36Sopenharmony_ci	.id = QDU1000_MASTER_GIC,
29262306a36Sopenharmony_ci	.channels = 1,
29362306a36Sopenharmony_ci	.buswidth = 8,
29462306a36Sopenharmony_ci	.num_links = 1,
29562306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
29662306a36Sopenharmony_ci};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_cistatic struct qcom_icc_node xm_pcie = {
29962306a36Sopenharmony_ci	.name = "xm_pcie",
30062306a36Sopenharmony_ci	.id = QDU1000_MASTER_PCIE,
30162306a36Sopenharmony_ci	.channels = 1,
30262306a36Sopenharmony_ci	.buswidth = 64,
30362306a36Sopenharmony_ci	.num_links = 1,
30462306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_ANOC_PCIE_GEM_NOC },
30562306a36Sopenharmony_ci};
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_cistatic struct qcom_icc_node xm_qdss_etr0 = {
30862306a36Sopenharmony_ci	.name = "xm_qdss_etr0",
30962306a36Sopenharmony_ci	.id = QDU1000_MASTER_QDSS_ETR,
31062306a36Sopenharmony_ci	.channels = 1,
31162306a36Sopenharmony_ci	.buswidth = 8,
31262306a36Sopenharmony_ci	.num_links = 1,
31362306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
31462306a36Sopenharmony_ci};
31562306a36Sopenharmony_ci
31662306a36Sopenharmony_cistatic struct qcom_icc_node xm_qdss_etr1 = {
31762306a36Sopenharmony_ci	.name = "xm_qdss_etr1",
31862306a36Sopenharmony_ci	.id = QDU1000_MASTER_QDSS_ETR_1,
31962306a36Sopenharmony_ci	.channels = 1,
32062306a36Sopenharmony_ci	.buswidth = 8,
32162306a36Sopenharmony_ci	.num_links = 1,
32262306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
32362306a36Sopenharmony_ci};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_cistatic struct qcom_icc_node xm_sdc = {
32662306a36Sopenharmony_ci	.name = "xm_sdc",
32762306a36Sopenharmony_ci	.id = QDU1000_MASTER_SDCC_1,
32862306a36Sopenharmony_ci	.channels = 1,
32962306a36Sopenharmony_ci	.buswidth = 8,
33062306a36Sopenharmony_ci	.num_links = 1,
33162306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_cistatic struct qcom_icc_node xm_usb3 = {
33562306a36Sopenharmony_ci	.name = "xm_usb3",
33662306a36Sopenharmony_ci	.id = QDU1000_MASTER_USB3,
33762306a36Sopenharmony_ci	.channels = 1,
33862306a36Sopenharmony_ci	.buswidth = 8,
33962306a36Sopenharmony_ci	.num_links = 1,
34062306a36Sopenharmony_ci	.links = { QDU1000_SLAVE_A1NOC_SNOC },
34162306a36Sopenharmony_ci};
34262306a36Sopenharmony_ci
34362306a36Sopenharmony_cistatic struct qcom_icc_node qup0_core_slave = {
34462306a36Sopenharmony_ci	.name = "qup0_core_slave",
34562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QUP_CORE_0,
34662306a36Sopenharmony_ci	.channels = 1,
34762306a36Sopenharmony_ci	.buswidth = 4,
34862306a36Sopenharmony_ci	.num_links = 0,
34962306a36Sopenharmony_ci};
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_cistatic struct qcom_icc_node qup1_core_slave = {
35262306a36Sopenharmony_ci	.name = "qup1_core_slave",
35362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QUP_CORE_1,
35462306a36Sopenharmony_ci	.channels = 1,
35562306a36Sopenharmony_ci	.buswidth = 4,
35662306a36Sopenharmony_ci	.num_links = 0,
35762306a36Sopenharmony_ci};
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_cistatic struct qcom_icc_node qns_gem_noc_cnoc = {
36062306a36Sopenharmony_ci	.name = "qns_gem_noc_cnoc",
36162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_GEM_NOC_CNOC,
36262306a36Sopenharmony_ci	.channels = 1,
36362306a36Sopenharmony_ci	.buswidth = 16,
36462306a36Sopenharmony_ci	.num_links = 1,
36562306a36Sopenharmony_ci	.links = { QDU1000_MASTER_GEM_NOC_CNOC },
36662306a36Sopenharmony_ci};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_cistatic struct qcom_icc_node qns_llcc = {
36962306a36Sopenharmony_ci	.name = "qns_llcc",
37062306a36Sopenharmony_ci	.id = QDU1000_SLAVE_LLCC,
37162306a36Sopenharmony_ci	.channels = 8,
37262306a36Sopenharmony_ci	.buswidth = 16,
37362306a36Sopenharmony_ci	.num_links = 1,
37462306a36Sopenharmony_ci	.links = { QDU1000_MASTER_LLCC },
37562306a36Sopenharmony_ci};
37662306a36Sopenharmony_ci
37762306a36Sopenharmony_cistatic struct qcom_icc_node qns_modem_slave = {
37862306a36Sopenharmony_ci	.name = "qns_modem_slave",
37962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_GEMNOC_MODEM_CNOC,
38062306a36Sopenharmony_ci	.channels = 1,
38162306a36Sopenharmony_ci	.buswidth = 16,
38262306a36Sopenharmony_ci	.num_links = 1,
38362306a36Sopenharmony_ci	.links = { QDU1000_MASTER_GEMNOC_MODEM_CNOC },
38462306a36Sopenharmony_ci};
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_cistatic struct qcom_icc_node qns_pcie = {
38762306a36Sopenharmony_ci	.name = "qns_pcie",
38862306a36Sopenharmony_ci	.id = QDU1000_SLAVE_MEM_NOC_PCIE_SNOC,
38962306a36Sopenharmony_ci	.channels = 1,
39062306a36Sopenharmony_ci	.buswidth = 16,
39162306a36Sopenharmony_ci	.num_links = 1,
39262306a36Sopenharmony_ci	.links = { QDU1000_MASTER_GEM_NOC_PCIE_SNOC },
39362306a36Sopenharmony_ci};
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_cistatic struct qcom_icc_node ebi = {
39662306a36Sopenharmony_ci	.name = "ebi",
39762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_EBI1,
39862306a36Sopenharmony_ci	.channels = 8,
39962306a36Sopenharmony_ci	.buswidth = 4,
40062306a36Sopenharmony_ci	.num_links = 0,
40162306a36Sopenharmony_ci};
40262306a36Sopenharmony_ci
40362306a36Sopenharmony_cistatic struct qcom_icc_node qhs_ahb2phy0_south = {
40462306a36Sopenharmony_ci	.name = "qhs_ahb2phy0_south",
40562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_AHB2PHY_SOUTH,
40662306a36Sopenharmony_ci	.channels = 1,
40762306a36Sopenharmony_ci	.buswidth = 4,
40862306a36Sopenharmony_ci	.num_links = 0,
40962306a36Sopenharmony_ci};
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_cistatic struct qcom_icc_node qhs_ahb2phy1_north = {
41262306a36Sopenharmony_ci	.name = "qhs_ahb2phy1_north",
41362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_AHB2PHY_NORTH,
41462306a36Sopenharmony_ci	.channels = 1,
41562306a36Sopenharmony_ci	.buswidth = 4,
41662306a36Sopenharmony_ci	.num_links = 0,
41762306a36Sopenharmony_ci};
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_cistatic struct qcom_icc_node qhs_ahb2phy2_east = {
42062306a36Sopenharmony_ci	.name = "qhs_ahb2phy2_east",
42162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_AHB2PHY_EAST,
42262306a36Sopenharmony_ci	.channels = 1,
42362306a36Sopenharmony_ci	.buswidth = 4,
42462306a36Sopenharmony_ci	.num_links = 0,
42562306a36Sopenharmony_ci};
42662306a36Sopenharmony_ci
42762306a36Sopenharmony_cistatic struct qcom_icc_node qhs_aoss = {
42862306a36Sopenharmony_ci	.name = "qhs_aoss",
42962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_AOSS,
43062306a36Sopenharmony_ci	.channels = 1,
43162306a36Sopenharmony_ci	.buswidth = 4,
43262306a36Sopenharmony_ci	.num_links = 0,
43362306a36Sopenharmony_ci};
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_cistatic struct qcom_icc_node qhs_clk_ctl = {
43662306a36Sopenharmony_ci	.name = "qhs_clk_ctl",
43762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_CLK_CTL,
43862306a36Sopenharmony_ci	.channels = 1,
43962306a36Sopenharmony_ci	.buswidth = 4,
44062306a36Sopenharmony_ci	.num_links = 0,
44162306a36Sopenharmony_ci};
44262306a36Sopenharmony_ci
44362306a36Sopenharmony_cistatic struct qcom_icc_node qhs_cpr_cx = {
44462306a36Sopenharmony_ci	.name = "qhs_cpr_cx",
44562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_RBCPR_CX_CFG,
44662306a36Sopenharmony_ci	.channels = 1,
44762306a36Sopenharmony_ci	.buswidth = 4,
44862306a36Sopenharmony_ci	.num_links = 0,
44962306a36Sopenharmony_ci};
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_cistatic struct qcom_icc_node qhs_cpr_mx = {
45262306a36Sopenharmony_ci	.name = "qhs_cpr_mx",
45362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_RBCPR_MX_CFG,
45462306a36Sopenharmony_ci	.channels = 1,
45562306a36Sopenharmony_ci	.buswidth = 4,
45662306a36Sopenharmony_ci	.num_links = 0,
45762306a36Sopenharmony_ci};
45862306a36Sopenharmony_ci
45962306a36Sopenharmony_cistatic struct qcom_icc_node qhs_crypto_cfg = {
46062306a36Sopenharmony_ci	.name = "qhs_crypto_cfg",
46162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_CRYPTO_0_CFG,
46262306a36Sopenharmony_ci	.channels = 1,
46362306a36Sopenharmony_ci	.buswidth = 4,
46462306a36Sopenharmony_ci	.num_links = 0,
46562306a36Sopenharmony_ci};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_cistatic struct qcom_icc_node qhs_ecpri_cfg = {
46862306a36Sopenharmony_ci	.name = "qhs_ecpri_cfg",
46962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_ECPRI_CFG,
47062306a36Sopenharmony_ci	.channels = 1,
47162306a36Sopenharmony_ci	.buswidth = 4,
47262306a36Sopenharmony_ci	.num_links = 0,
47362306a36Sopenharmony_ci};
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_cistatic struct qcom_icc_node qhs_imem_cfg = {
47662306a36Sopenharmony_ci	.name = "qhs_imem_cfg",
47762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_IMEM_CFG,
47862306a36Sopenharmony_ci	.channels = 1,
47962306a36Sopenharmony_ci	.buswidth = 4,
48062306a36Sopenharmony_ci	.num_links = 0,
48162306a36Sopenharmony_ci};
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_cistatic struct qcom_icc_node qhs_ipc_router = {
48462306a36Sopenharmony_ci	.name = "qhs_ipc_router",
48562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_IPC_ROUTER_CFG,
48662306a36Sopenharmony_ci	.channels = 1,
48762306a36Sopenharmony_ci	.buswidth = 4,
48862306a36Sopenharmony_ci	.num_links = 0,
48962306a36Sopenharmony_ci};
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_cistatic struct qcom_icc_node qhs_mss_cfg = {
49262306a36Sopenharmony_ci	.name = "qhs_mss_cfg",
49362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_CNOC_MSS,
49462306a36Sopenharmony_ci	.channels = 1,
49562306a36Sopenharmony_ci	.buswidth = 4,
49662306a36Sopenharmony_ci	.num_links = 0,
49762306a36Sopenharmony_ci};
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_cistatic struct qcom_icc_node qhs_pcie_cfg = {
50062306a36Sopenharmony_ci	.name = "qhs_pcie_cfg",
50162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PCIE_CFG,
50262306a36Sopenharmony_ci	.channels = 1,
50362306a36Sopenharmony_ci	.buswidth = 4,
50462306a36Sopenharmony_ci	.num_links = 0,
50562306a36Sopenharmony_ci};
50662306a36Sopenharmony_ci
50762306a36Sopenharmony_cistatic struct qcom_icc_node qhs_pdm = {
50862306a36Sopenharmony_ci	.name = "qhs_pdm",
50962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PDM,
51062306a36Sopenharmony_ci	.channels = 1,
51162306a36Sopenharmony_ci	.buswidth = 4,
51262306a36Sopenharmony_ci	.num_links = 0,
51362306a36Sopenharmony_ci};
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_cistatic struct qcom_icc_node qhs_pimem_cfg = {
51662306a36Sopenharmony_ci	.name = "qhs_pimem_cfg",
51762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PIMEM_CFG,
51862306a36Sopenharmony_ci	.channels = 1,
51962306a36Sopenharmony_ci	.buswidth = 4,
52062306a36Sopenharmony_ci	.num_links = 0,
52162306a36Sopenharmony_ci};
52262306a36Sopenharmony_ci
52362306a36Sopenharmony_cistatic struct qcom_icc_node qhs_prng = {
52462306a36Sopenharmony_ci	.name = "qhs_prng",
52562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PRNG,
52662306a36Sopenharmony_ci	.channels = 1,
52762306a36Sopenharmony_ci	.buswidth = 4,
52862306a36Sopenharmony_ci	.num_links = 0,
52962306a36Sopenharmony_ci};
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_cistatic struct qcom_icc_node qhs_qdss_cfg = {
53262306a36Sopenharmony_ci	.name = "qhs_qdss_cfg",
53362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QDSS_CFG,
53462306a36Sopenharmony_ci	.channels = 1,
53562306a36Sopenharmony_ci	.buswidth = 4,
53662306a36Sopenharmony_ci	.num_links = 0,
53762306a36Sopenharmony_ci};
53862306a36Sopenharmony_ci
53962306a36Sopenharmony_cistatic struct qcom_icc_node qhs_qpic = {
54062306a36Sopenharmony_ci	.name = "qhs_qpic",
54162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QPIC,
54262306a36Sopenharmony_ci	.channels = 1,
54362306a36Sopenharmony_ci	.buswidth = 4,
54462306a36Sopenharmony_ci	.num_links = 0,
54562306a36Sopenharmony_ci};
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_cistatic struct qcom_icc_node qhs_qspi = {
54862306a36Sopenharmony_ci	.name = "qhs_qspi",
54962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QSPI_0,
55062306a36Sopenharmony_ci	.channels = 1,
55162306a36Sopenharmony_ci	.buswidth = 4,
55262306a36Sopenharmony_ci	.num_links = 0,
55362306a36Sopenharmony_ci};
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_cistatic struct qcom_icc_node qhs_qup0 = {
55662306a36Sopenharmony_ci	.name = "qhs_qup0",
55762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QUP_0,
55862306a36Sopenharmony_ci	.channels = 1,
55962306a36Sopenharmony_ci	.buswidth = 4,
56062306a36Sopenharmony_ci	.num_links = 0,
56162306a36Sopenharmony_ci};
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_cistatic struct qcom_icc_node qhs_qup1 = {
56462306a36Sopenharmony_ci	.name = "qhs_qup1",
56562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QUP_1,
56662306a36Sopenharmony_ci	.channels = 1,
56762306a36Sopenharmony_ci	.buswidth = 4,
56862306a36Sopenharmony_ci	.num_links = 0,
56962306a36Sopenharmony_ci};
57062306a36Sopenharmony_ci
57162306a36Sopenharmony_cistatic struct qcom_icc_node qhs_sdc2 = {
57262306a36Sopenharmony_ci	.name = "qhs_sdc2",
57362306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SDCC_2,
57462306a36Sopenharmony_ci	.channels = 1,
57562306a36Sopenharmony_ci	.buswidth = 4,
57662306a36Sopenharmony_ci	.num_links = 0,
57762306a36Sopenharmony_ci};
57862306a36Sopenharmony_ci
57962306a36Sopenharmony_cistatic struct qcom_icc_node qhs_smbus_cfg = {
58062306a36Sopenharmony_ci	.name = "qhs_smbus_cfg",
58162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SMBUS_CFG,
58262306a36Sopenharmony_ci	.channels = 1,
58362306a36Sopenharmony_ci	.buswidth = 4,
58462306a36Sopenharmony_ci	.num_links = 0,
58562306a36Sopenharmony_ci};
58662306a36Sopenharmony_ci
58762306a36Sopenharmony_cistatic struct qcom_icc_node qhs_system_noc_cfg = {
58862306a36Sopenharmony_ci	.name = "qhs_system_noc_cfg",
58962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SNOC_CFG,
59062306a36Sopenharmony_ci	.channels = 1,
59162306a36Sopenharmony_ci	.buswidth = 4,
59262306a36Sopenharmony_ci	.num_links = 1,
59362306a36Sopenharmony_ci	.links = { QDU1000_MASTER_SNOC_CFG },
59462306a36Sopenharmony_ci};
59562306a36Sopenharmony_ci
59662306a36Sopenharmony_cistatic struct qcom_icc_node qhs_tcsr = {
59762306a36Sopenharmony_ci	.name = "qhs_tcsr",
59862306a36Sopenharmony_ci	.id = QDU1000_SLAVE_TCSR,
59962306a36Sopenharmony_ci	.channels = 1,
60062306a36Sopenharmony_ci	.buswidth = 4,
60162306a36Sopenharmony_ci	.num_links = 0,
60262306a36Sopenharmony_ci};
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_cistatic struct qcom_icc_node qhs_tlmm = {
60562306a36Sopenharmony_ci	.name = "qhs_tlmm",
60662306a36Sopenharmony_ci	.id = QDU1000_SLAVE_TLMM,
60762306a36Sopenharmony_ci	.channels = 1,
60862306a36Sopenharmony_ci	.buswidth = 4,
60962306a36Sopenharmony_ci	.num_links = 0,
61062306a36Sopenharmony_ci};
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_cistatic struct qcom_icc_node qhs_tme_cfg = {
61362306a36Sopenharmony_ci	.name = "qhs_tme_cfg",
61462306a36Sopenharmony_ci	.id = QDU1000_SLAVE_TME_CFG,
61562306a36Sopenharmony_ci	.channels = 1,
61662306a36Sopenharmony_ci	.buswidth = 4,
61762306a36Sopenharmony_ci	.num_links = 0,
61862306a36Sopenharmony_ci};
61962306a36Sopenharmony_ci
62062306a36Sopenharmony_cistatic struct qcom_icc_node qhs_tsc_cfg = {
62162306a36Sopenharmony_ci	.name = "qhs_tsc_cfg",
62262306a36Sopenharmony_ci	.id = QDU1000_SLAVE_TSC_CFG,
62362306a36Sopenharmony_ci	.channels = 1,
62462306a36Sopenharmony_ci	.buswidth = 4,
62562306a36Sopenharmony_ci	.num_links = 0,
62662306a36Sopenharmony_ci};
62762306a36Sopenharmony_ci
62862306a36Sopenharmony_cistatic struct qcom_icc_node qhs_usb3 = {
62962306a36Sopenharmony_ci	.name = "qhs_usb3",
63062306a36Sopenharmony_ci	.id = QDU1000_SLAVE_USB3_0,
63162306a36Sopenharmony_ci	.channels = 1,
63262306a36Sopenharmony_ci	.buswidth = 4,
63362306a36Sopenharmony_ci	.num_links = 0,
63462306a36Sopenharmony_ci};
63562306a36Sopenharmony_ci
63662306a36Sopenharmony_cistatic struct qcom_icc_node qhs_vsense_ctrl_cfg = {
63762306a36Sopenharmony_ci	.name = "qhs_vsense_ctrl_cfg",
63862306a36Sopenharmony_ci	.id = QDU1000_SLAVE_VSENSE_CTRL_CFG,
63962306a36Sopenharmony_ci	.channels = 1,
64062306a36Sopenharmony_ci	.buswidth = 4,
64162306a36Sopenharmony_ci	.num_links = 0,
64262306a36Sopenharmony_ci};
64362306a36Sopenharmony_ci
64462306a36Sopenharmony_cistatic struct qcom_icc_node qns_a1noc_snoc = {
64562306a36Sopenharmony_ci	.name = "qns_a1noc_snoc",
64662306a36Sopenharmony_ci	.id = QDU1000_SLAVE_A1NOC_SNOC,
64762306a36Sopenharmony_ci	.channels = 1,
64862306a36Sopenharmony_ci	.buswidth = 8,
64962306a36Sopenharmony_ci	.num_links = 1,
65062306a36Sopenharmony_ci	.links = { QDU1000_MASTER_ANOC_SNOC },
65162306a36Sopenharmony_ci};
65262306a36Sopenharmony_ci
65362306a36Sopenharmony_cistatic struct qcom_icc_node qns_anoc_snoc_gsi = {
65462306a36Sopenharmony_ci	.name = "qns_anoc_snoc_gsi",
65562306a36Sopenharmony_ci	.id = QDU1000_SLAVE_ANOC_SNOC_GSI,
65662306a36Sopenharmony_ci	.channels = 1,
65762306a36Sopenharmony_ci	.buswidth = 8,
65862306a36Sopenharmony_ci	.num_links = 1,
65962306a36Sopenharmony_ci	.links = { QDU1000_MASTER_ANOC_GSI },
66062306a36Sopenharmony_ci};
66162306a36Sopenharmony_ci
66262306a36Sopenharmony_cistatic struct qcom_icc_node qns_ddrss_cfg = {
66362306a36Sopenharmony_ci	.name = "qns_ddrss_cfg",
66462306a36Sopenharmony_ci	.id = QDU1000_SLAVE_DDRSS_CFG,
66562306a36Sopenharmony_ci	.channels = 1,
66662306a36Sopenharmony_ci	.buswidth = 4,
66762306a36Sopenharmony_ci	.num_links = 0,
66862306a36Sopenharmony_ci};
66962306a36Sopenharmony_ci
67062306a36Sopenharmony_cistatic struct qcom_icc_node qns_ecpri_gemnoc = {
67162306a36Sopenharmony_ci	.name = "qns_ecpri_gemnoc",
67262306a36Sopenharmony_ci	.id = QDU1000_SLAVE_ECPRI_GEMNOC,
67362306a36Sopenharmony_ci	.channels = 2,
67462306a36Sopenharmony_ci	.buswidth = 32,
67562306a36Sopenharmony_ci	.num_links = 1,
67662306a36Sopenharmony_ci	.links = { QDU1000_MASTER_GEMNOC_ECPRI_DMA },
67762306a36Sopenharmony_ci};
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_cistatic struct qcom_icc_node qns_gemnoc_gc = {
68062306a36Sopenharmony_ci	.name = "qns_gemnoc_gc",
68162306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SNOC_GEM_NOC_GC,
68262306a36Sopenharmony_ci	.channels = 1,
68362306a36Sopenharmony_ci	.buswidth = 8,
68462306a36Sopenharmony_ci	.num_links = 1,
68562306a36Sopenharmony_ci	.links = { QDU1000_MASTER_SNOC_GC_MEM_NOC },
68662306a36Sopenharmony_ci};
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_cistatic struct qcom_icc_node qns_gemnoc_sf = {
68962306a36Sopenharmony_ci	.name = "qns_gemnoc_sf",
69062306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SNOC_GEM_NOC_SF,
69162306a36Sopenharmony_ci	.channels = 1,
69262306a36Sopenharmony_ci	.buswidth = 16,
69362306a36Sopenharmony_ci	.num_links = 1,
69462306a36Sopenharmony_ci	.links = { QDU1000_MASTER_SNOC_SF_MEM_NOC },
69562306a36Sopenharmony_ci};
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_cistatic struct qcom_icc_node qns_modem = {
69862306a36Sopenharmony_ci	.name = "qns_modem",
69962306a36Sopenharmony_ci	.id = QDU1000_SLAVE_MODEM_OFFLINE,
70062306a36Sopenharmony_ci	.channels = 1,
70162306a36Sopenharmony_ci	.buswidth = 32,
70262306a36Sopenharmony_ci	.num_links = 0,
70362306a36Sopenharmony_ci};
70462306a36Sopenharmony_ci
70562306a36Sopenharmony_cistatic struct qcom_icc_node qns_pcie_gemnoc = {
70662306a36Sopenharmony_ci	.name = "qns_pcie_gemnoc",
70762306a36Sopenharmony_ci	.id = QDU1000_SLAVE_ANOC_PCIE_GEM_NOC,
70862306a36Sopenharmony_ci	.channels = 1,
70962306a36Sopenharmony_ci	.buswidth = 64,
71062306a36Sopenharmony_ci	.num_links = 1,
71162306a36Sopenharmony_ci	.links = { QDU1000_MASTER_ANOC_PCIE_GEM_NOC },
71262306a36Sopenharmony_ci};
71362306a36Sopenharmony_ci
71462306a36Sopenharmony_cistatic struct qcom_icc_node qxs_imem = {
71562306a36Sopenharmony_ci	.name = "qxs_imem",
71662306a36Sopenharmony_ci	.id = QDU1000_SLAVE_IMEM,
71762306a36Sopenharmony_ci	.channels = 1,
71862306a36Sopenharmony_ci	.buswidth = 8,
71962306a36Sopenharmony_ci	.num_links = 0,
72062306a36Sopenharmony_ci};
72162306a36Sopenharmony_ci
72262306a36Sopenharmony_cistatic struct qcom_icc_node qxs_pimem = {
72362306a36Sopenharmony_ci	.name = "qxs_pimem",
72462306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PIMEM,
72562306a36Sopenharmony_ci	.channels = 1,
72662306a36Sopenharmony_ci	.buswidth = 8,
72762306a36Sopenharmony_ci	.num_links = 0,
72862306a36Sopenharmony_ci};
72962306a36Sopenharmony_ci
73062306a36Sopenharmony_cistatic struct qcom_icc_node srvc_system_noc = {
73162306a36Sopenharmony_ci	.name = "srvc_system_noc",
73262306a36Sopenharmony_ci	.id = QDU1000_SLAVE_SERVICE_SNOC,
73362306a36Sopenharmony_ci	.channels = 1,
73462306a36Sopenharmony_ci	.buswidth = 4,
73562306a36Sopenharmony_ci	.num_links = 0,
73662306a36Sopenharmony_ci};
73762306a36Sopenharmony_ci
73862306a36Sopenharmony_cistatic struct qcom_icc_node xs_ethernet_ss = {
73962306a36Sopenharmony_ci	.name = "xs_ethernet_ss",
74062306a36Sopenharmony_ci	.id = QDU1000_SLAVE_ETHERNET_SS,
74162306a36Sopenharmony_ci	.channels = 1,
74262306a36Sopenharmony_ci	.buswidth = 32,
74362306a36Sopenharmony_ci	.num_links = 0,
74462306a36Sopenharmony_ci};
74562306a36Sopenharmony_ci
74662306a36Sopenharmony_cistatic struct qcom_icc_node xs_pcie = {
74762306a36Sopenharmony_ci	.name = "xs_pcie",
74862306a36Sopenharmony_ci	.id = QDU1000_SLAVE_PCIE_0,
74962306a36Sopenharmony_ci	.channels = 1,
75062306a36Sopenharmony_ci	.buswidth = 64,
75162306a36Sopenharmony_ci	.num_links = 0,
75262306a36Sopenharmony_ci};
75362306a36Sopenharmony_ci
75462306a36Sopenharmony_cistatic struct qcom_icc_node xs_qdss_stm = {
75562306a36Sopenharmony_ci	.name = "xs_qdss_stm",
75662306a36Sopenharmony_ci	.id = QDU1000_SLAVE_QDSS_STM,
75762306a36Sopenharmony_ci	.channels = 1,
75862306a36Sopenharmony_ci	.buswidth = 4,
75962306a36Sopenharmony_ci	.num_links = 0,
76062306a36Sopenharmony_ci};
76162306a36Sopenharmony_ci
76262306a36Sopenharmony_cistatic struct qcom_icc_node xs_sys_tcu_cfg = {
76362306a36Sopenharmony_ci	.name = "xs_sys_tcu_cfg",
76462306a36Sopenharmony_ci	.id = QDU1000_SLAVE_TCU,
76562306a36Sopenharmony_ci	.channels = 1,
76662306a36Sopenharmony_ci	.buswidth = 8,
76762306a36Sopenharmony_ci	.num_links = 0,
76862306a36Sopenharmony_ci};
76962306a36Sopenharmony_ci
77062306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_acv = {
77162306a36Sopenharmony_ci	.name = "ACV",
77262306a36Sopenharmony_ci	.enable_mask = BIT(3),
77362306a36Sopenharmony_ci	.num_nodes = 1,
77462306a36Sopenharmony_ci	.nodes = { &ebi },
77562306a36Sopenharmony_ci};
77662306a36Sopenharmony_ci
77762306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_ce0 = {
77862306a36Sopenharmony_ci	.name = "CE0",
77962306a36Sopenharmony_ci	.num_nodes = 1,
78062306a36Sopenharmony_ci	.nodes = { &qxm_crypto },
78162306a36Sopenharmony_ci};
78262306a36Sopenharmony_ci
78362306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_cn0 = {
78462306a36Sopenharmony_ci	.name = "CN0",
78562306a36Sopenharmony_ci	.num_nodes = 44,
78662306a36Sopenharmony_ci	.nodes = { &qhm_qpic, &qhm_qspi,
78762306a36Sopenharmony_ci		   &qnm_gemnoc_cnoc, &qnm_gemnoc_modem_slave,
78862306a36Sopenharmony_ci		   &qnm_gemnoc_pcie, &xm_sdc,
78962306a36Sopenharmony_ci		   &xm_usb3, &qhs_ahb2phy0_south,
79062306a36Sopenharmony_ci		   &qhs_ahb2phy1_north, &qhs_ahb2phy2_east,
79162306a36Sopenharmony_ci		   &qhs_aoss, &qhs_clk_ctl,
79262306a36Sopenharmony_ci		   &qhs_cpr_cx, &qhs_cpr_mx,
79362306a36Sopenharmony_ci		   &qhs_crypto_cfg, &qhs_ecpri_cfg,
79462306a36Sopenharmony_ci		   &qhs_imem_cfg, &qhs_ipc_router,
79562306a36Sopenharmony_ci		   &qhs_mss_cfg, &qhs_pcie_cfg,
79662306a36Sopenharmony_ci		   &qhs_pdm, &qhs_pimem_cfg,
79762306a36Sopenharmony_ci		   &qhs_prng, &qhs_qdss_cfg,
79862306a36Sopenharmony_ci		   &qhs_qpic, &qhs_qspi,
79962306a36Sopenharmony_ci		   &qhs_qup0, &qhs_qup1,
80062306a36Sopenharmony_ci		   &qhs_sdc2, &qhs_smbus_cfg,
80162306a36Sopenharmony_ci		   &qhs_system_noc_cfg, &qhs_tcsr,
80262306a36Sopenharmony_ci		   &qhs_tlmm, &qhs_tme_cfg,
80362306a36Sopenharmony_ci		   &qhs_tsc_cfg, &qhs_usb3,
80462306a36Sopenharmony_ci		   &qhs_vsense_ctrl_cfg, &qns_ddrss_cfg,
80562306a36Sopenharmony_ci		   &qns_modem, &qxs_imem,
80662306a36Sopenharmony_ci		   &qxs_pimem, &xs_ethernet_ss,
80762306a36Sopenharmony_ci		   &xs_qdss_stm, &xs_sys_tcu_cfg
80862306a36Sopenharmony_ci	},
80962306a36Sopenharmony_ci};
81062306a36Sopenharmony_ci
81162306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_mc0 = {
81262306a36Sopenharmony_ci	.name = "MC0",
81362306a36Sopenharmony_ci	.num_nodes = 1,
81462306a36Sopenharmony_ci	.nodes = { &ebi },
81562306a36Sopenharmony_ci};
81662306a36Sopenharmony_ci
81762306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_qup0 = {
81862306a36Sopenharmony_ci	.name = "QUP0",
81962306a36Sopenharmony_ci	.num_nodes = 2,
82062306a36Sopenharmony_ci	.nodes = { &qup0_core_slave, &qup1_core_slave },
82162306a36Sopenharmony_ci};
82262306a36Sopenharmony_ci
82362306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sh0 = {
82462306a36Sopenharmony_ci	.name = "SH0",
82562306a36Sopenharmony_ci	.num_nodes = 1,
82662306a36Sopenharmony_ci	.nodes = { &qns_llcc },
82762306a36Sopenharmony_ci};
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sh1 = {
83062306a36Sopenharmony_ci	.name = "SH1",
83162306a36Sopenharmony_ci	.num_nodes = 11,
83262306a36Sopenharmony_ci	.nodes = { &alm_sys_tcu, &chm_apps,
83362306a36Sopenharmony_ci		   &qnm_ecpri_dma, &qnm_fec_2_gemnoc,
83462306a36Sopenharmony_ci		   &qnm_pcie, &qnm_snoc_gc,
83562306a36Sopenharmony_ci		   &qnm_snoc_sf, &qxm_mdsp,
83662306a36Sopenharmony_ci		   &qns_gem_noc_cnoc, &qns_modem_slave,
83762306a36Sopenharmony_ci		   &qns_pcie
83862306a36Sopenharmony_ci	},
83962306a36Sopenharmony_ci};
84062306a36Sopenharmony_ci
84162306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sn0 = {
84262306a36Sopenharmony_ci	.name = "SN0",
84362306a36Sopenharmony_ci	.num_nodes = 1,
84462306a36Sopenharmony_ci	.nodes = { &qns_gemnoc_sf },
84562306a36Sopenharmony_ci};
84662306a36Sopenharmony_ci
84762306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sn1 = {
84862306a36Sopenharmony_ci	.name = "SN1",
84962306a36Sopenharmony_ci	.num_nodes = 6,
85062306a36Sopenharmony_ci	.nodes = { &qhm_gic, &qxm_pimem,
85162306a36Sopenharmony_ci		   &xm_gic, &xm_qdss_etr0,
85262306a36Sopenharmony_ci		   &xm_qdss_etr1, &qns_gemnoc_gc
85362306a36Sopenharmony_ci	},
85462306a36Sopenharmony_ci};
85562306a36Sopenharmony_ci
85662306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sn2 = {
85762306a36Sopenharmony_ci	.name = "SN2",
85862306a36Sopenharmony_ci	.num_nodes = 5,
85962306a36Sopenharmony_ci	.nodes = { &qnm_aggre_noc, &qxm_ecpri_gsi,
86062306a36Sopenharmony_ci		   &xm_ecpri_dma, &qns_anoc_snoc_gsi,
86162306a36Sopenharmony_ci		   &qns_ecpri_gemnoc
86262306a36Sopenharmony_ci	},
86362306a36Sopenharmony_ci};
86462306a36Sopenharmony_ci
86562306a36Sopenharmony_cistatic struct qcom_icc_bcm bcm_sn7 = {
86662306a36Sopenharmony_ci	.name = "SN7",
86762306a36Sopenharmony_ci	.num_nodes = 2,
86862306a36Sopenharmony_ci	.nodes = { &qns_pcie_gemnoc, &xs_pcie },
86962306a36Sopenharmony_ci};
87062306a36Sopenharmony_ci
87162306a36Sopenharmony_cistatic struct qcom_icc_bcm * const clk_virt_bcms[] = {
87262306a36Sopenharmony_ci	&bcm_qup0,
87362306a36Sopenharmony_ci};
87462306a36Sopenharmony_ci
87562306a36Sopenharmony_cistatic struct qcom_icc_node * const clk_virt_nodes[] = {
87662306a36Sopenharmony_ci	[MASTER_QUP_CORE_0] = &qup0_core_master,
87762306a36Sopenharmony_ci	[MASTER_QUP_CORE_1] = &qup1_core_master,
87862306a36Sopenharmony_ci	[SLAVE_QUP_CORE_0] = &qup0_core_slave,
87962306a36Sopenharmony_ci	[SLAVE_QUP_CORE_1] = &qup1_core_slave,
88062306a36Sopenharmony_ci};
88162306a36Sopenharmony_ci
88262306a36Sopenharmony_cistatic const struct qcom_icc_desc qdu1000_clk_virt = {
88362306a36Sopenharmony_ci	.nodes = clk_virt_nodes,
88462306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(clk_virt_nodes),
88562306a36Sopenharmony_ci	.bcms = clk_virt_bcms,
88662306a36Sopenharmony_ci	.num_bcms = ARRAY_SIZE(clk_virt_bcms),
88762306a36Sopenharmony_ci};
88862306a36Sopenharmony_ci
88962306a36Sopenharmony_cistatic struct qcom_icc_bcm * const gem_noc_bcms[] = {
89062306a36Sopenharmony_ci	&bcm_sh0,
89162306a36Sopenharmony_ci	&bcm_sh1,
89262306a36Sopenharmony_ci};
89362306a36Sopenharmony_ci
89462306a36Sopenharmony_cistatic struct qcom_icc_node * const gem_noc_nodes[] = {
89562306a36Sopenharmony_ci	[MASTER_SYS_TCU] = &alm_sys_tcu,
89662306a36Sopenharmony_ci	[MASTER_APPSS_PROC] = &chm_apps,
89762306a36Sopenharmony_ci	[MASTER_GEMNOC_ECPRI_DMA] = &qnm_ecpri_dma,
89862306a36Sopenharmony_ci	[MASTER_FEC_2_GEMNOC] = &qnm_fec_2_gemnoc,
89962306a36Sopenharmony_ci	[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
90062306a36Sopenharmony_ci	[MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
90162306a36Sopenharmony_ci	[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
90262306a36Sopenharmony_ci	[MASTER_MSS_PROC] = &qxm_mdsp,
90362306a36Sopenharmony_ci	[SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
90462306a36Sopenharmony_ci	[SLAVE_LLCC] = &qns_llcc,
90562306a36Sopenharmony_ci	[SLAVE_GEMNOC_MODEM_CNOC] = &qns_modem_slave,
90662306a36Sopenharmony_ci	[SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
90762306a36Sopenharmony_ci};
90862306a36Sopenharmony_ci
90962306a36Sopenharmony_cistatic const struct qcom_icc_desc qdu1000_gem_noc = {
91062306a36Sopenharmony_ci	.nodes = gem_noc_nodes,
91162306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(gem_noc_nodes),
91262306a36Sopenharmony_ci	.bcms = gem_noc_bcms,
91362306a36Sopenharmony_ci	.num_bcms = ARRAY_SIZE(gem_noc_bcms),
91462306a36Sopenharmony_ci};
91562306a36Sopenharmony_ci
91662306a36Sopenharmony_cistatic struct qcom_icc_bcm * const mc_virt_bcms[] = {
91762306a36Sopenharmony_ci	&bcm_acv,
91862306a36Sopenharmony_ci	&bcm_mc0,
91962306a36Sopenharmony_ci};
92062306a36Sopenharmony_ci
92162306a36Sopenharmony_cistatic struct qcom_icc_node * const mc_virt_nodes[] = {
92262306a36Sopenharmony_ci	[MASTER_LLCC] = &llcc_mc,
92362306a36Sopenharmony_ci	[SLAVE_EBI1] = &ebi,
92462306a36Sopenharmony_ci};
92562306a36Sopenharmony_ci
92662306a36Sopenharmony_cistatic const struct qcom_icc_desc qdu1000_mc_virt = {
92762306a36Sopenharmony_ci	.nodes = mc_virt_nodes,
92862306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(mc_virt_nodes),
92962306a36Sopenharmony_ci	.bcms = mc_virt_bcms,
93062306a36Sopenharmony_ci	.num_bcms = ARRAY_SIZE(mc_virt_bcms),
93162306a36Sopenharmony_ci};
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_cistatic struct qcom_icc_bcm * const system_noc_bcms[] = {
93462306a36Sopenharmony_ci	&bcm_ce0,
93562306a36Sopenharmony_ci	&bcm_cn0,
93662306a36Sopenharmony_ci	&bcm_sn0,
93762306a36Sopenharmony_ci	&bcm_sn1,
93862306a36Sopenharmony_ci	&bcm_sn2,
93962306a36Sopenharmony_ci	&bcm_sn7,
94062306a36Sopenharmony_ci};
94162306a36Sopenharmony_ci
94262306a36Sopenharmony_cistatic struct qcom_icc_node * const system_noc_nodes[] = {
94362306a36Sopenharmony_ci	[MASTER_GIC_AHB] = &qhm_gic,
94462306a36Sopenharmony_ci	[MASTER_QDSS_BAM] = &qhm_qdss_bam,
94562306a36Sopenharmony_ci	[MASTER_QPIC] = &qhm_qpic,
94662306a36Sopenharmony_ci	[MASTER_QSPI_0] = &qhm_qspi,
94762306a36Sopenharmony_ci	[MASTER_QUP_0] = &qhm_qup0,
94862306a36Sopenharmony_ci	[MASTER_QUP_1] = &qhm_qup1,
94962306a36Sopenharmony_ci	[MASTER_SNOC_CFG] = &qhm_system_noc_cfg,
95062306a36Sopenharmony_ci	[MASTER_ANOC_SNOC] = &qnm_aggre_noc,
95162306a36Sopenharmony_ci	[MASTER_ANOC_GSI] = &qnm_aggre_noc_gsi,
95262306a36Sopenharmony_ci	[MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
95362306a36Sopenharmony_ci	[MASTER_GEMNOC_MODEM_CNOC] = &qnm_gemnoc_modem_slave,
95462306a36Sopenharmony_ci	[MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
95562306a36Sopenharmony_ci	[MASTER_CRYPTO] = &qxm_crypto,
95662306a36Sopenharmony_ci	[MASTER_ECPRI_GSI] = &qxm_ecpri_gsi,
95762306a36Sopenharmony_ci	[MASTER_PIMEM] = &qxm_pimem,
95862306a36Sopenharmony_ci	[MASTER_SNOC_ECPRI_DMA] = &xm_ecpri_dma,
95962306a36Sopenharmony_ci	[MASTER_GIC] = &xm_gic,
96062306a36Sopenharmony_ci	[MASTER_PCIE] = &xm_pcie,
96162306a36Sopenharmony_ci	[MASTER_QDSS_ETR] = &xm_qdss_etr0,
96262306a36Sopenharmony_ci	[MASTER_QDSS_ETR_1] = &xm_qdss_etr1,
96362306a36Sopenharmony_ci	[MASTER_SDCC_1] = &xm_sdc,
96462306a36Sopenharmony_ci	[MASTER_USB3] = &xm_usb3,
96562306a36Sopenharmony_ci	[SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0_south,
96662306a36Sopenharmony_ci	[SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1_north,
96762306a36Sopenharmony_ci	[SLAVE_AHB2PHY_EAST] = &qhs_ahb2phy2_east,
96862306a36Sopenharmony_ci	[SLAVE_AOSS] = &qhs_aoss,
96962306a36Sopenharmony_ci	[SLAVE_CLK_CTL] = &qhs_clk_ctl,
97062306a36Sopenharmony_ci	[SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
97162306a36Sopenharmony_ci	[SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx,
97262306a36Sopenharmony_ci	[SLAVE_CRYPTO_0_CFG] = &qhs_crypto_cfg,
97362306a36Sopenharmony_ci	[SLAVE_ECPRI_CFG] = &qhs_ecpri_cfg,
97462306a36Sopenharmony_ci	[SLAVE_IMEM_CFG] = &qhs_imem_cfg,
97562306a36Sopenharmony_ci	[SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
97662306a36Sopenharmony_ci	[SLAVE_CNOC_MSS] = &qhs_mss_cfg,
97762306a36Sopenharmony_ci	[SLAVE_PCIE_CFG] = &qhs_pcie_cfg,
97862306a36Sopenharmony_ci	[SLAVE_PDM] = &qhs_pdm,
97962306a36Sopenharmony_ci	[SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
98062306a36Sopenharmony_ci	[SLAVE_PRNG] = &qhs_prng,
98162306a36Sopenharmony_ci	[SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
98262306a36Sopenharmony_ci	[SLAVE_QPIC] = &qhs_qpic,
98362306a36Sopenharmony_ci	[SLAVE_QSPI_0] = &qhs_qspi,
98462306a36Sopenharmony_ci	[SLAVE_QUP_0] = &qhs_qup0,
98562306a36Sopenharmony_ci	[SLAVE_QUP_1] = &qhs_qup1,
98662306a36Sopenharmony_ci	[SLAVE_SDCC_2] = &qhs_sdc2,
98762306a36Sopenharmony_ci	[SLAVE_SMBUS_CFG] = &qhs_smbus_cfg,
98862306a36Sopenharmony_ci	[SLAVE_SNOC_CFG] = &qhs_system_noc_cfg,
98962306a36Sopenharmony_ci	[SLAVE_TCSR] = &qhs_tcsr,
99062306a36Sopenharmony_ci	[SLAVE_TLMM] = &qhs_tlmm,
99162306a36Sopenharmony_ci	[SLAVE_TME_CFG] = &qhs_tme_cfg,
99262306a36Sopenharmony_ci	[SLAVE_TSC_CFG] = &qhs_tsc_cfg,
99362306a36Sopenharmony_ci	[SLAVE_USB3_0] = &qhs_usb3,
99462306a36Sopenharmony_ci	[SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
99562306a36Sopenharmony_ci	[SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
99662306a36Sopenharmony_ci	[SLAVE_ANOC_SNOC_GSI] = &qns_anoc_snoc_gsi,
99762306a36Sopenharmony_ci	[SLAVE_DDRSS_CFG] = &qns_ddrss_cfg,
99862306a36Sopenharmony_ci	[SLAVE_ECPRI_GEMNOC] = &qns_ecpri_gemnoc,
99962306a36Sopenharmony_ci	[SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
100062306a36Sopenharmony_ci	[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
100162306a36Sopenharmony_ci	[SLAVE_MODEM_OFFLINE] = &qns_modem,
100262306a36Sopenharmony_ci	[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc,
100362306a36Sopenharmony_ci	[SLAVE_IMEM] = &qxs_imem,
100462306a36Sopenharmony_ci	[SLAVE_PIMEM] = &qxs_pimem,
100562306a36Sopenharmony_ci	[SLAVE_SERVICE_SNOC] = &srvc_system_noc,
100662306a36Sopenharmony_ci	[SLAVE_ETHERNET_SS] = &xs_ethernet_ss,
100762306a36Sopenharmony_ci	[SLAVE_PCIE_0] = &xs_pcie,
100862306a36Sopenharmony_ci	[SLAVE_QDSS_STM] = &xs_qdss_stm,
100962306a36Sopenharmony_ci	[SLAVE_TCU] = &xs_sys_tcu_cfg,
101062306a36Sopenharmony_ci};
101162306a36Sopenharmony_ci
101262306a36Sopenharmony_cistatic const struct qcom_icc_desc qdu1000_system_noc = {
101362306a36Sopenharmony_ci	.nodes = system_noc_nodes,
101462306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(system_noc_nodes),
101562306a36Sopenharmony_ci	.bcms = system_noc_bcms,
101662306a36Sopenharmony_ci	.num_bcms = ARRAY_SIZE(system_noc_bcms),
101762306a36Sopenharmony_ci};
101862306a36Sopenharmony_ci
101962306a36Sopenharmony_cistatic int qnoc_probe(struct platform_device *pdev)
102062306a36Sopenharmony_ci{
102162306a36Sopenharmony_ci	int ret;
102262306a36Sopenharmony_ci
102362306a36Sopenharmony_ci	ret = qcom_icc_rpmh_probe(pdev);
102462306a36Sopenharmony_ci	if (ret)
102562306a36Sopenharmony_ci		dev_err(&pdev->dev, "failed to register ICC provider\n");
102662306a36Sopenharmony_ci
102762306a36Sopenharmony_ci	return ret;
102862306a36Sopenharmony_ci}
102962306a36Sopenharmony_ci
103062306a36Sopenharmony_cistatic const struct of_device_id qnoc_of_match[] = {
103162306a36Sopenharmony_ci	{ .compatible = "qcom,qdu1000-clk-virt",
103262306a36Sopenharmony_ci	  .data = &qdu1000_clk_virt
103362306a36Sopenharmony_ci	},
103462306a36Sopenharmony_ci	{ .compatible = "qcom,qdu1000-gem-noc",
103562306a36Sopenharmony_ci	  .data = &qdu1000_gem_noc
103662306a36Sopenharmony_ci	},
103762306a36Sopenharmony_ci	{ .compatible = "qcom,qdu1000-mc-virt",
103862306a36Sopenharmony_ci	  .data = &qdu1000_mc_virt
103962306a36Sopenharmony_ci	},
104062306a36Sopenharmony_ci	{ .compatible = "qcom,qdu1000-system-noc",
104162306a36Sopenharmony_ci	  .data = &qdu1000_system_noc
104262306a36Sopenharmony_ci	},
104362306a36Sopenharmony_ci	{ }
104462306a36Sopenharmony_ci};
104562306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, qnoc_of_match);
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_cistatic struct platform_driver qnoc_driver = {
104862306a36Sopenharmony_ci	.probe = qnoc_probe,
104962306a36Sopenharmony_ci	.remove = qcom_icc_rpmh_remove,
105062306a36Sopenharmony_ci	.driver = {
105162306a36Sopenharmony_ci		.name = "qnoc-qdu1000",
105262306a36Sopenharmony_ci		.of_match_table = qnoc_of_match,
105362306a36Sopenharmony_ci	},
105462306a36Sopenharmony_ci};
105562306a36Sopenharmony_ci
105662306a36Sopenharmony_cistatic int __init qnoc_driver_init(void)
105762306a36Sopenharmony_ci{
105862306a36Sopenharmony_ci	return platform_driver_register(&qnoc_driver);
105962306a36Sopenharmony_ci}
106062306a36Sopenharmony_cicore_initcall(qnoc_driver_init);
106162306a36Sopenharmony_ci
106262306a36Sopenharmony_cistatic void __exit qnoc_driver_exit(void)
106362306a36Sopenharmony_ci{
106462306a36Sopenharmony_ci	platform_driver_unregister(&qnoc_driver);
106562306a36Sopenharmony_ci}
106662306a36Sopenharmony_cimodule_exit(qnoc_driver_exit);
106762306a36Sopenharmony_ci
106862306a36Sopenharmony_ciMODULE_DESCRIPTION("QDU1000 NoC driver");
106962306a36Sopenharmony_ciMODULE_LICENSE("GPL");
1070