xref: /linux/drivers/interconnect/qcom/sdx75.c (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
13642b4e5SRohit Agarwal // SPDX-License-Identifier: GPL-2.0-only
23642b4e5SRohit Agarwal /*
33642b4e5SRohit Agarwal  * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
43642b4e5SRohit Agarwal  *
53642b4e5SRohit Agarwal  */
63642b4e5SRohit Agarwal 
73642b4e5SRohit Agarwal #include <linux/device.h>
83642b4e5SRohit Agarwal #include <linux/interconnect.h>
93642b4e5SRohit Agarwal #include <linux/interconnect-provider.h>
103642b4e5SRohit Agarwal #include <linux/module.h>
113642b4e5SRohit Agarwal #include <linux/of_platform.h>
123642b4e5SRohit Agarwal #include <dt-bindings/interconnect/qcom,sdx75.h>
133642b4e5SRohit Agarwal 
143642b4e5SRohit Agarwal #include "bcm-voter.h"
153642b4e5SRohit Agarwal #include "icc-common.h"
163642b4e5SRohit Agarwal #include "icc-rpmh.h"
173642b4e5SRohit Agarwal #include "sdx75.h"
183642b4e5SRohit Agarwal 
193642b4e5SRohit Agarwal static struct qcom_icc_node qpic_core_master = {
203642b4e5SRohit Agarwal 	.name = "qpic_core_master",
213642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QPIC_CORE,
223642b4e5SRohit Agarwal 	.channels = 1,
233642b4e5SRohit Agarwal 	.buswidth = 4,
243642b4e5SRohit Agarwal 	.num_links = 1,
253642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_QPIC_CORE },
263642b4e5SRohit Agarwal };
273642b4e5SRohit Agarwal 
283642b4e5SRohit Agarwal static struct qcom_icc_node qup0_core_master = {
293642b4e5SRohit Agarwal 	.name = "qup0_core_master",
303642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QUP_CORE_0,
313642b4e5SRohit Agarwal 	.channels = 1,
323642b4e5SRohit Agarwal 	.buswidth = 4,
333642b4e5SRohit Agarwal 	.num_links = 1,
343642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_QUP_CORE_0 },
353642b4e5SRohit Agarwal };
363642b4e5SRohit Agarwal 
373642b4e5SRohit Agarwal static struct qcom_icc_node qnm_cnoc = {
383642b4e5SRohit Agarwal 	.name = "qnm_cnoc",
393642b4e5SRohit Agarwal 	.id = SDX75_MASTER_CNOC_DC_NOC,
403642b4e5SRohit Agarwal 	.channels = 1,
413642b4e5SRohit Agarwal 	.buswidth = 4,
423642b4e5SRohit Agarwal 	.num_links = 4,
433642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_LAGG_CFG, SDX75_SLAVE_MCCC_MASTER,
443642b4e5SRohit Agarwal 		   SDX75_SLAVE_GEM_NOC_CFG, SDX75_SLAVE_SNOOP_BWMON },
453642b4e5SRohit Agarwal };
463642b4e5SRohit Agarwal 
473642b4e5SRohit Agarwal static struct qcom_icc_node alm_sys_tcu = {
483642b4e5SRohit Agarwal 	.name = "alm_sys_tcu",
493642b4e5SRohit Agarwal 	.id = SDX75_MASTER_SYS_TCU,
503642b4e5SRohit Agarwal 	.channels = 1,
513642b4e5SRohit Agarwal 	.buswidth = 8,
523642b4e5SRohit Agarwal 	.num_links = 2,
533642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_GEM_NOC_CNOC, SDX75_SLAVE_LLCC },
543642b4e5SRohit Agarwal };
553642b4e5SRohit Agarwal 
563642b4e5SRohit Agarwal static struct qcom_icc_node chm_apps = {
573642b4e5SRohit Agarwal 	.name = "chm_apps",
583642b4e5SRohit Agarwal 	.id = SDX75_MASTER_APPSS_PROC,
593642b4e5SRohit Agarwal 	.channels = 1,
603642b4e5SRohit Agarwal 	.buswidth = 16,
613642b4e5SRohit Agarwal 	.num_links = 3,
623642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_GEM_NOC_CNOC, SDX75_SLAVE_LLCC,
633642b4e5SRohit Agarwal 		   SDX75_SLAVE_MEM_NOC_PCIE_SNOC },
643642b4e5SRohit Agarwal };
653642b4e5SRohit Agarwal 
663642b4e5SRohit Agarwal static struct qcom_icc_node qnm_gemnoc_cfg = {
673642b4e5SRohit Agarwal 	.name = "qnm_gemnoc_cfg",
683642b4e5SRohit Agarwal 	.id = SDX75_MASTER_GEM_NOC_CFG,
693642b4e5SRohit Agarwal 	.channels = 1,
703642b4e5SRohit Agarwal 	.buswidth = 4,
713642b4e5SRohit Agarwal 	.num_links = 1,
723642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SERVICE_GEM_NOC },
733642b4e5SRohit Agarwal };
743642b4e5SRohit Agarwal 
753642b4e5SRohit Agarwal static struct qcom_icc_node qnm_mdsp = {
763642b4e5SRohit Agarwal 	.name = "qnm_mdsp",
773642b4e5SRohit Agarwal 	.id = SDX75_MASTER_MSS_PROC,
783642b4e5SRohit Agarwal 	.channels = 1,
793642b4e5SRohit Agarwal 	.buswidth = 16,
803642b4e5SRohit Agarwal 	.num_links = 3,
813642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_GEM_NOC_CNOC, SDX75_SLAVE_LLCC,
823642b4e5SRohit Agarwal 		   SDX75_SLAVE_MEM_NOC_PCIE_SNOC },
833642b4e5SRohit Agarwal };
843642b4e5SRohit Agarwal 
853642b4e5SRohit Agarwal static struct qcom_icc_node qnm_pcie = {
863642b4e5SRohit Agarwal 	.name = "qnm_pcie",
873642b4e5SRohit Agarwal 	.id = SDX75_MASTER_ANOC_PCIE_GEM_NOC,
883642b4e5SRohit Agarwal 	.channels = 1,
893642b4e5SRohit Agarwal 	.buswidth = 16,
903642b4e5SRohit Agarwal 	.num_links = 2,
913642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_GEM_NOC_CNOC, SDX75_SLAVE_LLCC },
923642b4e5SRohit Agarwal };
933642b4e5SRohit Agarwal 
943642b4e5SRohit Agarwal static struct qcom_icc_node qnm_snoc_sf = {
953642b4e5SRohit Agarwal 	.name = "qnm_snoc_sf",
963642b4e5SRohit Agarwal 	.id = SDX75_MASTER_SNOC_SF_MEM_NOC,
973642b4e5SRohit Agarwal 	.channels = 1,
983642b4e5SRohit Agarwal 	.buswidth = 16,
993642b4e5SRohit Agarwal 	.num_links = 3,
1003642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_GEM_NOC_CNOC, SDX75_SLAVE_LLCC,
1013642b4e5SRohit Agarwal 		   SDX75_SLAVE_MEM_NOC_PCIE_SNOC },
1023642b4e5SRohit Agarwal };
1033642b4e5SRohit Agarwal 
1043642b4e5SRohit Agarwal static struct qcom_icc_node xm_gic = {
1053642b4e5SRohit Agarwal 	.name = "xm_gic",
1063642b4e5SRohit Agarwal 	.id = SDX75_MASTER_GIC,
1073642b4e5SRohit Agarwal 	.channels = 1,
1083642b4e5SRohit Agarwal 	.buswidth = 8,
1093642b4e5SRohit Agarwal 	.num_links = 1,
1103642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_LLCC },
1113642b4e5SRohit Agarwal };
1123642b4e5SRohit Agarwal 
1133642b4e5SRohit Agarwal static struct qcom_icc_node xm_ipa2pcie = {
1143642b4e5SRohit Agarwal 	.name = "xm_ipa2pcie",
1153642b4e5SRohit Agarwal 	.id = SDX75_MASTER_IPA_PCIE,
1163642b4e5SRohit Agarwal 	.channels = 1,
1173642b4e5SRohit Agarwal 	.buswidth = 8,
1183642b4e5SRohit Agarwal 	.num_links = 1,
1193642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_MEM_NOC_PCIE_SNOC },
1203642b4e5SRohit Agarwal };
1213642b4e5SRohit Agarwal 
1223642b4e5SRohit Agarwal static struct qcom_icc_node llcc_mc = {
1233642b4e5SRohit Agarwal 	.name = "llcc_mc",
1243642b4e5SRohit Agarwal 	.id = SDX75_MASTER_LLCC,
1253642b4e5SRohit Agarwal 	.channels = 1,
1263642b4e5SRohit Agarwal 	.buswidth = 4,
1273642b4e5SRohit Agarwal 	.num_links = 1,
1283642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_EBI1 },
1293642b4e5SRohit Agarwal };
1303642b4e5SRohit Agarwal 
1313642b4e5SRohit Agarwal static struct qcom_icc_node xm_pcie3_0 = {
1323642b4e5SRohit Agarwal 	.name = "xm_pcie3_0",
1333642b4e5SRohit Agarwal 	.id = SDX75_MASTER_PCIE_0,
1343642b4e5SRohit Agarwal 	.channels = 1,
1353642b4e5SRohit Agarwal 	.buswidth = 8,
1363642b4e5SRohit Agarwal 	.num_links = 1,
1373642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_ANOC_PCIE_GEM_NOC },
1383642b4e5SRohit Agarwal };
1393642b4e5SRohit Agarwal 
1403642b4e5SRohit Agarwal static struct qcom_icc_node xm_pcie3_1 = {
1413642b4e5SRohit Agarwal 	.name = "xm_pcie3_1",
1423642b4e5SRohit Agarwal 	.id = SDX75_MASTER_PCIE_1,
1433642b4e5SRohit Agarwal 	.channels = 1,
1443642b4e5SRohit Agarwal 	.buswidth = 8,
1453642b4e5SRohit Agarwal 	.num_links = 1,
1463642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_ANOC_PCIE_GEM_NOC },
1473642b4e5SRohit Agarwal };
1483642b4e5SRohit Agarwal 
1493642b4e5SRohit Agarwal static struct qcom_icc_node xm_pcie3_2 = {
1503642b4e5SRohit Agarwal 	.name = "xm_pcie3_2",
1513642b4e5SRohit Agarwal 	.id = SDX75_MASTER_PCIE_2,
1523642b4e5SRohit Agarwal 	.channels = 1,
1533642b4e5SRohit Agarwal 	.buswidth = 8,
1543642b4e5SRohit Agarwal 	.num_links = 1,
1553642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_ANOC_PCIE_GEM_NOC },
1563642b4e5SRohit Agarwal };
1573642b4e5SRohit Agarwal 
1583642b4e5SRohit Agarwal static struct qcom_icc_node qhm_audio = {
1593642b4e5SRohit Agarwal 	.name = "qhm_audio",
1603642b4e5SRohit Agarwal 	.id = SDX75_MASTER_AUDIO,
1613642b4e5SRohit Agarwal 	.channels = 1,
1623642b4e5SRohit Agarwal 	.buswidth = 4,
1633642b4e5SRohit Agarwal 	.num_links = 1,
1643642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SNOC_GEM_NOC_SF },
1653642b4e5SRohit Agarwal };
1663642b4e5SRohit Agarwal 
1673642b4e5SRohit Agarwal static struct qcom_icc_node qhm_gic = {
1683642b4e5SRohit Agarwal 	.name = "qhm_gic",
1693642b4e5SRohit Agarwal 	.id = SDX75_MASTER_GIC_AHB,
1703642b4e5SRohit Agarwal 	.channels = 1,
1713642b4e5SRohit Agarwal 	.buswidth = 4,
1723642b4e5SRohit Agarwal 	.num_links = 1,
1733642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SNOC_GEM_NOC_SF },
1743642b4e5SRohit Agarwal };
1753642b4e5SRohit Agarwal 
1763642b4e5SRohit Agarwal static struct qcom_icc_node qhm_pcie_rscc = {
1773642b4e5SRohit Agarwal 	.name = "qhm_pcie_rscc",
1783642b4e5SRohit Agarwal 	.id = SDX75_MASTER_PCIE_RSCC,
1793642b4e5SRohit Agarwal 	.channels = 1,
1803642b4e5SRohit Agarwal 	.buswidth = 4,
1813642b4e5SRohit Agarwal 	.num_links = 31,
1823642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_ETH0_CFG, SDX75_SLAVE_ETH1_CFG,
1833642b4e5SRohit Agarwal 		   SDX75_SLAVE_AUDIO, SDX75_SLAVE_CLK_CTL,
1843642b4e5SRohit Agarwal 		   SDX75_SLAVE_CRYPTO_0_CFG, SDX75_SLAVE_IMEM_CFG,
1853642b4e5SRohit Agarwal 		   SDX75_SLAVE_IPA_CFG, SDX75_SLAVE_IPC_ROUTER_CFG,
1863642b4e5SRohit Agarwal 		   SDX75_SLAVE_CNOC_MSS, SDX75_SLAVE_ICBDI_MVMSS_CFG,
1873642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_0_CFG, SDX75_SLAVE_PCIE_1_CFG,
1883642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_2_CFG, SDX75_SLAVE_PDM,
1893642b4e5SRohit Agarwal 		   SDX75_SLAVE_PRNG, SDX75_SLAVE_QDSS_CFG,
1903642b4e5SRohit Agarwal 		   SDX75_SLAVE_QPIC, SDX75_SLAVE_QUP_0,
1913642b4e5SRohit Agarwal 		   SDX75_SLAVE_SDCC_1, SDX75_SLAVE_SDCC_4,
1923642b4e5SRohit Agarwal 		   SDX75_SLAVE_SPMI_VGI_COEX, SDX75_SLAVE_TCSR,
1933642b4e5SRohit Agarwal 		   SDX75_SLAVE_TLMM, SDX75_SLAVE_USB3,
1943642b4e5SRohit Agarwal 		   SDX75_SLAVE_USB3_PHY_CFG, SDX75_SLAVE_DDRSS_CFG,
1953642b4e5SRohit Agarwal 		   SDX75_SLAVE_SNOC_CFG, SDX75_SLAVE_PCIE_ANOC_CFG,
1963642b4e5SRohit Agarwal 		   SDX75_SLAVE_IMEM, SDX75_SLAVE_QDSS_STM,
1973642b4e5SRohit Agarwal 		   SDX75_SLAVE_TCU },
1983642b4e5SRohit Agarwal };
1993642b4e5SRohit Agarwal 
2003642b4e5SRohit Agarwal static struct qcom_icc_node qhm_qdss_bam = {
2013642b4e5SRohit Agarwal 	.name = "qhm_qdss_bam",
2023642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QDSS_BAM,
2033642b4e5SRohit Agarwal 	.channels = 1,
2043642b4e5SRohit Agarwal 	.buswidth = 4,
2053642b4e5SRohit Agarwal 	.num_links = 1,
2063642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
2073642b4e5SRohit Agarwal };
2083642b4e5SRohit Agarwal 
2093642b4e5SRohit Agarwal static struct qcom_icc_node qhm_qpic = {
2103642b4e5SRohit Agarwal 	.name = "qhm_qpic",
2113642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QPIC,
2123642b4e5SRohit Agarwal 	.channels = 1,
2133642b4e5SRohit Agarwal 	.buswidth = 4,
2143642b4e5SRohit Agarwal 	.num_links = 1,
2153642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
2163642b4e5SRohit Agarwal };
2173642b4e5SRohit Agarwal 
2183642b4e5SRohit Agarwal static struct qcom_icc_node qhm_qup0 = {
2193642b4e5SRohit Agarwal 	.name = "qhm_qup0",
2203642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QUP_0,
2213642b4e5SRohit Agarwal 	.channels = 1,
2223642b4e5SRohit Agarwal 	.buswidth = 4,
2233642b4e5SRohit Agarwal 	.num_links = 1,
2243642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
2253642b4e5SRohit Agarwal };
2263642b4e5SRohit Agarwal 
2273642b4e5SRohit Agarwal static struct qcom_icc_node qnm_aggre_noc = {
2283642b4e5SRohit Agarwal 	.name = "qnm_aggre_noc",
2293642b4e5SRohit Agarwal 	.id = SDX75_MASTER_ANOC_SNOC,
2303642b4e5SRohit Agarwal 	.channels = 1,
2313642b4e5SRohit Agarwal 	.buswidth = 8,
2323642b4e5SRohit Agarwal 	.num_links = 1,
2333642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SNOC_GEM_NOC_SF },
2343642b4e5SRohit Agarwal };
2353642b4e5SRohit Agarwal 
2363642b4e5SRohit Agarwal static struct qcom_icc_node qnm_gemnoc_cnoc = {
2373642b4e5SRohit Agarwal 	.name = "qnm_gemnoc_cnoc",
2383642b4e5SRohit Agarwal 	.id = SDX75_MASTER_GEM_NOC_CNOC,
2393642b4e5SRohit Agarwal 	.channels = 1,
2403642b4e5SRohit Agarwal 	.buswidth = 8,
2413642b4e5SRohit Agarwal 	.num_links = 32,
2423642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_ETH0_CFG, SDX75_SLAVE_ETH1_CFG,
2433642b4e5SRohit Agarwal 		   SDX75_SLAVE_AUDIO, SDX75_SLAVE_CLK_CTL,
2443642b4e5SRohit Agarwal 		   SDX75_SLAVE_CRYPTO_0_CFG, SDX75_SLAVE_IMEM_CFG,
2453642b4e5SRohit Agarwal 		   SDX75_SLAVE_IPA_CFG, SDX75_SLAVE_IPC_ROUTER_CFG,
2463642b4e5SRohit Agarwal 		   SDX75_SLAVE_CNOC_MSS, SDX75_SLAVE_ICBDI_MVMSS_CFG,
2473642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_0_CFG, SDX75_SLAVE_PCIE_1_CFG,
2483642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_2_CFG, SDX75_SLAVE_PCIE_RSC_CFG,
2493642b4e5SRohit Agarwal 		   SDX75_SLAVE_PDM, SDX75_SLAVE_PRNG,
2503642b4e5SRohit Agarwal 		   SDX75_SLAVE_QDSS_CFG, SDX75_SLAVE_QPIC,
2513642b4e5SRohit Agarwal 		   SDX75_SLAVE_QUP_0, SDX75_SLAVE_SDCC_1,
2523642b4e5SRohit Agarwal 		   SDX75_SLAVE_SDCC_4, SDX75_SLAVE_SPMI_VGI_COEX,
2533642b4e5SRohit Agarwal 		   SDX75_SLAVE_TCSR, SDX75_SLAVE_TLMM,
2543642b4e5SRohit Agarwal 		   SDX75_SLAVE_USB3, SDX75_SLAVE_USB3_PHY_CFG,
2553642b4e5SRohit Agarwal 		   SDX75_SLAVE_DDRSS_CFG, SDX75_SLAVE_SNOC_CFG,
2563642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_ANOC_CFG, SDX75_SLAVE_IMEM,
2573642b4e5SRohit Agarwal 		   SDX75_SLAVE_QDSS_STM, SDX75_SLAVE_TCU },
2583642b4e5SRohit Agarwal };
2593642b4e5SRohit Agarwal 
2603642b4e5SRohit Agarwal static struct qcom_icc_node qnm_gemnoc_pcie = {
2613642b4e5SRohit Agarwal 	.name = "qnm_gemnoc_pcie",
2623642b4e5SRohit Agarwal 	.id = SDX75_MASTER_GEM_NOC_PCIE_SNOC,
2633642b4e5SRohit Agarwal 	.channels = 1,
2643642b4e5SRohit Agarwal 	.buswidth = 16,
2653642b4e5SRohit Agarwal 	.num_links = 3,
2663642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_PCIE_0, SDX75_SLAVE_PCIE_1,
2673642b4e5SRohit Agarwal 		   SDX75_SLAVE_PCIE_2 },
2683642b4e5SRohit Agarwal };
2693642b4e5SRohit Agarwal 
2703642b4e5SRohit Agarwal static struct qcom_icc_node qnm_system_noc_cfg = {
2713642b4e5SRohit Agarwal 	.name = "qnm_system_noc_cfg",
2723642b4e5SRohit Agarwal 	.id = SDX75_MASTER_SNOC_CFG,
2733642b4e5SRohit Agarwal 	.channels = 1,
2743642b4e5SRohit Agarwal 	.buswidth = 4,
2753642b4e5SRohit Agarwal 	.num_links = 1,
2763642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SERVICE_SNOC },
2773642b4e5SRohit Agarwal };
2783642b4e5SRohit Agarwal 
2793642b4e5SRohit Agarwal static struct qcom_icc_node qnm_system_noc_pcie_cfg = {
2803642b4e5SRohit Agarwal 	.name = "qnm_system_noc_pcie_cfg",
2813642b4e5SRohit Agarwal 	.id = SDX75_MASTER_PCIE_ANOC_CFG,
2823642b4e5SRohit Agarwal 	.channels = 1,
2833642b4e5SRohit Agarwal 	.buswidth = 4,
2843642b4e5SRohit Agarwal 	.num_links = 1,
2853642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SERVICE_PCIE_ANOC },
2863642b4e5SRohit Agarwal };
2873642b4e5SRohit Agarwal 
2883642b4e5SRohit Agarwal static struct qcom_icc_node qxm_crypto = {
2893642b4e5SRohit Agarwal 	.name = "qxm_crypto",
2903642b4e5SRohit Agarwal 	.id = SDX75_MASTER_CRYPTO,
2913642b4e5SRohit Agarwal 	.channels = 1,
2923642b4e5SRohit Agarwal 	.buswidth = 8,
2933642b4e5SRohit Agarwal 	.num_links = 1,
2943642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
2953642b4e5SRohit Agarwal };
2963642b4e5SRohit Agarwal 
2973642b4e5SRohit Agarwal static struct qcom_icc_node qxm_ipa = {
2983642b4e5SRohit Agarwal 	.name = "qxm_ipa",
2993642b4e5SRohit Agarwal 	.id = SDX75_MASTER_IPA,
3003642b4e5SRohit Agarwal 	.channels = 1,
3013642b4e5SRohit Agarwal 	.buswidth = 8,
3023642b4e5SRohit Agarwal 	.num_links = 1,
3033642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_SNOC_GEM_NOC_SF },
3043642b4e5SRohit Agarwal };
3053642b4e5SRohit Agarwal 
3063642b4e5SRohit Agarwal static struct qcom_icc_node qxm_mvmss = {
3073642b4e5SRohit Agarwal 	.name = "qxm_mvmss",
3083642b4e5SRohit Agarwal 	.id = SDX75_MASTER_MVMSS,
3093642b4e5SRohit Agarwal 	.channels = 1,
3103642b4e5SRohit Agarwal 	.buswidth = 8,
3113642b4e5SRohit Agarwal 	.num_links = 1,
3123642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3133642b4e5SRohit Agarwal };
3143642b4e5SRohit Agarwal 
3153642b4e5SRohit Agarwal static struct qcom_icc_node xm_emac_0 = {
3163642b4e5SRohit Agarwal 	.name = "xm_emac_0",
3173642b4e5SRohit Agarwal 	.id = SDX75_MASTER_EMAC_0,
3183642b4e5SRohit Agarwal 	.channels = 1,
3193642b4e5SRohit Agarwal 	.buswidth = 8,
3203642b4e5SRohit Agarwal 	.num_links = 1,
3213642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3223642b4e5SRohit Agarwal };
3233642b4e5SRohit Agarwal 
3243642b4e5SRohit Agarwal static struct qcom_icc_node xm_emac_1 = {
3253642b4e5SRohit Agarwal 	.name = "xm_emac_1",
3263642b4e5SRohit Agarwal 	.id = SDX75_MASTER_EMAC_1,
3273642b4e5SRohit Agarwal 	.channels = 1,
3283642b4e5SRohit Agarwal 	.buswidth = 8,
3293642b4e5SRohit Agarwal 	.num_links = 1,
3303642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3313642b4e5SRohit Agarwal };
3323642b4e5SRohit Agarwal 
3333642b4e5SRohit Agarwal static struct qcom_icc_node xm_qdss_etr0 = {
3343642b4e5SRohit Agarwal 	.name = "xm_qdss_etr0",
3353642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QDSS_ETR,
3363642b4e5SRohit Agarwal 	.channels = 1,
3373642b4e5SRohit Agarwal 	.buswidth = 8,
3383642b4e5SRohit Agarwal 	.num_links = 1,
3393642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3403642b4e5SRohit Agarwal };
3413642b4e5SRohit Agarwal 
3423642b4e5SRohit Agarwal static struct qcom_icc_node xm_qdss_etr1 = {
3433642b4e5SRohit Agarwal 	.name = "xm_qdss_etr1",
3443642b4e5SRohit Agarwal 	.id = SDX75_MASTER_QDSS_ETR_1,
3453642b4e5SRohit Agarwal 	.channels = 1,
3463642b4e5SRohit Agarwal 	.buswidth = 8,
3473642b4e5SRohit Agarwal 	.num_links = 1,
3483642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3493642b4e5SRohit Agarwal };
3503642b4e5SRohit Agarwal 
3513642b4e5SRohit Agarwal static struct qcom_icc_node xm_sdc1 = {
3523642b4e5SRohit Agarwal 	.name = "xm_sdc1",
3533642b4e5SRohit Agarwal 	.id = SDX75_MASTER_SDCC_1,
3543642b4e5SRohit Agarwal 	.channels = 1,
3553642b4e5SRohit Agarwal 	.buswidth = 8,
3563642b4e5SRohit Agarwal 	.num_links = 1,
3573642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3583642b4e5SRohit Agarwal };
3593642b4e5SRohit Agarwal 
3603642b4e5SRohit Agarwal static struct qcom_icc_node xm_sdc4 = {
3613642b4e5SRohit Agarwal 	.name = "xm_sdc4",
3623642b4e5SRohit Agarwal 	.id = SDX75_MASTER_SDCC_4,
3633642b4e5SRohit Agarwal 	.channels = 1,
3643642b4e5SRohit Agarwal 	.buswidth = 8,
3653642b4e5SRohit Agarwal 	.num_links = 1,
3663642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3673642b4e5SRohit Agarwal };
3683642b4e5SRohit Agarwal 
3693642b4e5SRohit Agarwal static struct qcom_icc_node xm_usb3 = {
3703642b4e5SRohit Agarwal 	.name = "xm_usb3",
3713642b4e5SRohit Agarwal 	.id = SDX75_MASTER_USB3_0,
3723642b4e5SRohit Agarwal 	.channels = 1,
3733642b4e5SRohit Agarwal 	.buswidth = 8,
3743642b4e5SRohit Agarwal 	.num_links = 1,
3753642b4e5SRohit Agarwal 	.links = { SDX75_SLAVE_A1NOC_CFG },
3763642b4e5SRohit Agarwal };
3773642b4e5SRohit Agarwal 
3783642b4e5SRohit Agarwal static struct qcom_icc_node qpic_core_slave = {
3793642b4e5SRohit Agarwal 	.name = "qpic_core_slave",
3803642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QPIC_CORE,
3813642b4e5SRohit Agarwal 	.channels = 1,
3823642b4e5SRohit Agarwal 	.buswidth = 4,
3833642b4e5SRohit Agarwal 	.num_links = 0,
3843642b4e5SRohit Agarwal };
3853642b4e5SRohit Agarwal 
3863642b4e5SRohit Agarwal static struct qcom_icc_node qup0_core_slave = {
3873642b4e5SRohit Agarwal 	.name = "qup0_core_slave",
3883642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QUP_CORE_0,
3893642b4e5SRohit Agarwal 	.channels = 1,
3903642b4e5SRohit Agarwal 	.buswidth = 4,
3913642b4e5SRohit Agarwal 	.num_links = 0,
3923642b4e5SRohit Agarwal };
3933642b4e5SRohit Agarwal 
3943642b4e5SRohit Agarwal static struct qcom_icc_node qhs_lagg = {
3953642b4e5SRohit Agarwal 	.name = "qhs_lagg",
3963642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_LAGG_CFG,
3973642b4e5SRohit Agarwal 	.channels = 1,
3983642b4e5SRohit Agarwal 	.buswidth = 4,
3993642b4e5SRohit Agarwal 	.num_links = 0,
4003642b4e5SRohit Agarwal };
4013642b4e5SRohit Agarwal 
4023642b4e5SRohit Agarwal static struct qcom_icc_node qhs_mccc_master = {
4033642b4e5SRohit Agarwal 	.name = "qhs_mccc_master",
4043642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_MCCC_MASTER,
4053642b4e5SRohit Agarwal 	.channels = 1,
4063642b4e5SRohit Agarwal 	.buswidth = 4,
4073642b4e5SRohit Agarwal 	.num_links = 0,
4083642b4e5SRohit Agarwal };
4093642b4e5SRohit Agarwal 
4103642b4e5SRohit Agarwal static struct qcom_icc_node qns_gemnoc = {
4113642b4e5SRohit Agarwal 	.name = "qns_gemnoc",
4123642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_GEM_NOC_CFG,
4133642b4e5SRohit Agarwal 	.channels = 1,
4143642b4e5SRohit Agarwal 	.buswidth = 4,
4153642b4e5SRohit Agarwal 	.num_links = 0,
4163642b4e5SRohit Agarwal };
4173642b4e5SRohit Agarwal 
4183642b4e5SRohit Agarwal static struct qcom_icc_node qss_snoop_bwmon = {
4193642b4e5SRohit Agarwal 	.name = "qss_snoop_bwmon",
4203642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SNOOP_BWMON,
4213642b4e5SRohit Agarwal 	.channels = 1,
4223642b4e5SRohit Agarwal 	.buswidth = 4,
4233642b4e5SRohit Agarwal 	.num_links = 0,
4243642b4e5SRohit Agarwal };
4253642b4e5SRohit Agarwal 
4263642b4e5SRohit Agarwal static struct qcom_icc_node qns_gemnoc_cnoc = {
4273642b4e5SRohit Agarwal 	.name = "qns_gemnoc_cnoc",
4283642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_GEM_NOC_CNOC,
4293642b4e5SRohit Agarwal 	.channels = 1,
4303642b4e5SRohit Agarwal 	.buswidth = 8,
4313642b4e5SRohit Agarwal 	.num_links = 1,
4323642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_GEM_NOC_CNOC },
4333642b4e5SRohit Agarwal };
4343642b4e5SRohit Agarwal 
4353642b4e5SRohit Agarwal static struct qcom_icc_node qns_llcc = {
4363642b4e5SRohit Agarwal 	.name = "qns_llcc",
4373642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_LLCC,
4383642b4e5SRohit Agarwal 	.channels = 1,
4393642b4e5SRohit Agarwal 	.buswidth = 16,
4403642b4e5SRohit Agarwal 	.num_links = 1,
4413642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_LLCC },
4423642b4e5SRohit Agarwal };
4433642b4e5SRohit Agarwal 
4443642b4e5SRohit Agarwal static struct qcom_icc_node qns_pcie = {
4453642b4e5SRohit Agarwal 	.name = "qns_pcie",
4463642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_MEM_NOC_PCIE_SNOC,
4473642b4e5SRohit Agarwal 	.channels = 1,
4483642b4e5SRohit Agarwal 	.buswidth = 16,
4493642b4e5SRohit Agarwal 	.num_links = 1,
4503642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_GEM_NOC_PCIE_SNOC },
4513642b4e5SRohit Agarwal };
4523642b4e5SRohit Agarwal 
4533642b4e5SRohit Agarwal static struct qcom_icc_node srvc_gemnoc = {
4543642b4e5SRohit Agarwal 	.name = "srvc_gemnoc",
4553642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SERVICE_GEM_NOC,
4563642b4e5SRohit Agarwal 	.channels = 1,
4573642b4e5SRohit Agarwal 	.buswidth = 4,
4583642b4e5SRohit Agarwal 	.num_links = 0,
4593642b4e5SRohit Agarwal };
4603642b4e5SRohit Agarwal 
4613642b4e5SRohit Agarwal static struct qcom_icc_node ebi = {
4623642b4e5SRohit Agarwal 	.name = "ebi",
4633642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_EBI1,
4643642b4e5SRohit Agarwal 	.channels = 1,
4653642b4e5SRohit Agarwal 	.buswidth = 4,
4663642b4e5SRohit Agarwal 	.num_links = 0,
4673642b4e5SRohit Agarwal };
4683642b4e5SRohit Agarwal 
4693642b4e5SRohit Agarwal static struct qcom_icc_node qns_pcie_gemnoc = {
4703642b4e5SRohit Agarwal 	.name = "qns_pcie_gemnoc",
4713642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_ANOC_PCIE_GEM_NOC,
4723642b4e5SRohit Agarwal 	.channels = 1,
4733642b4e5SRohit Agarwal 	.buswidth = 16,
4743642b4e5SRohit Agarwal 	.num_links = 1,
4753642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_ANOC_PCIE_GEM_NOC },
4763642b4e5SRohit Agarwal };
4773642b4e5SRohit Agarwal 
4783642b4e5SRohit Agarwal static struct qcom_icc_node ps_eth0_cfg = {
4793642b4e5SRohit Agarwal 	.name = "ps_eth0_cfg",
4803642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_ETH0_CFG,
4813642b4e5SRohit Agarwal 	.channels = 1,
4823642b4e5SRohit Agarwal 	.buswidth = 4,
4833642b4e5SRohit Agarwal 	.num_links = 0,
4843642b4e5SRohit Agarwal };
4853642b4e5SRohit Agarwal 
4863642b4e5SRohit Agarwal static struct qcom_icc_node ps_eth1_cfg = {
4873642b4e5SRohit Agarwal 	.name = "ps_eth1_cfg",
4883642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_ETH1_CFG,
4893642b4e5SRohit Agarwal 	.channels = 1,
4903642b4e5SRohit Agarwal 	.buswidth = 4,
4913642b4e5SRohit Agarwal 	.num_links = 0,
4923642b4e5SRohit Agarwal };
4933642b4e5SRohit Agarwal 
4943642b4e5SRohit Agarwal static struct qcom_icc_node qhs_audio = {
4953642b4e5SRohit Agarwal 	.name = "qhs_audio",
4963642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_AUDIO,
4973642b4e5SRohit Agarwal 	.channels = 1,
4983642b4e5SRohit Agarwal 	.buswidth = 4,
4993642b4e5SRohit Agarwal 	.num_links = 0,
5003642b4e5SRohit Agarwal };
5013642b4e5SRohit Agarwal 
5023642b4e5SRohit Agarwal static struct qcom_icc_node qhs_clk_ctl = {
5033642b4e5SRohit Agarwal 	.name = "qhs_clk_ctl",
5043642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_CLK_CTL,
5053642b4e5SRohit Agarwal 	.channels = 1,
5063642b4e5SRohit Agarwal 	.buswidth = 4,
5073642b4e5SRohit Agarwal 	.num_links = 0,
5083642b4e5SRohit Agarwal };
5093642b4e5SRohit Agarwal 
5103642b4e5SRohit Agarwal static struct qcom_icc_node qhs_crypto_cfg = {
5113642b4e5SRohit Agarwal 	.name = "qhs_crypto_cfg",
5123642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_CRYPTO_0_CFG,
5133642b4e5SRohit Agarwal 	.channels = 1,
5143642b4e5SRohit Agarwal 	.buswidth = 4,
5153642b4e5SRohit Agarwal 	.num_links = 0,
5163642b4e5SRohit Agarwal };
5173642b4e5SRohit Agarwal 
5183642b4e5SRohit Agarwal static struct qcom_icc_node qhs_imem_cfg = {
5193642b4e5SRohit Agarwal 	.name = "qhs_imem_cfg",
5203642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_IMEM_CFG,
5213642b4e5SRohit Agarwal 	.channels = 1,
5223642b4e5SRohit Agarwal 	.buswidth = 4,
5233642b4e5SRohit Agarwal 	.num_links = 0,
5243642b4e5SRohit Agarwal };
5253642b4e5SRohit Agarwal 
5263642b4e5SRohit Agarwal static struct qcom_icc_node qhs_ipa = {
5273642b4e5SRohit Agarwal 	.name = "qhs_ipa",
5283642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_IPA_CFG,
5293642b4e5SRohit Agarwal 	.channels = 1,
5303642b4e5SRohit Agarwal 	.buswidth = 4,
5313642b4e5SRohit Agarwal 	.num_links = 0,
5323642b4e5SRohit Agarwal };
5333642b4e5SRohit Agarwal 
5343642b4e5SRohit Agarwal static struct qcom_icc_node qhs_ipc_router = {
5353642b4e5SRohit Agarwal 	.name = "qhs_ipc_router",
5363642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_IPC_ROUTER_CFG,
5373642b4e5SRohit Agarwal 	.channels = 1,
5383642b4e5SRohit Agarwal 	.buswidth = 4,
5393642b4e5SRohit Agarwal 	.num_links = 0,
5403642b4e5SRohit Agarwal };
5413642b4e5SRohit Agarwal 
5423642b4e5SRohit Agarwal static struct qcom_icc_node qhs_mss_cfg = {
5433642b4e5SRohit Agarwal 	.name = "qhs_mss_cfg",
5443642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_CNOC_MSS,
5453642b4e5SRohit Agarwal 	.channels = 1,
5463642b4e5SRohit Agarwal 	.buswidth = 4,
5473642b4e5SRohit Agarwal 	.num_links = 0,
5483642b4e5SRohit Agarwal };
5493642b4e5SRohit Agarwal 
5503642b4e5SRohit Agarwal static struct qcom_icc_node qhs_mvmss_cfg = {
5513642b4e5SRohit Agarwal 	.name = "qhs_mvmss_cfg",
5523642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_ICBDI_MVMSS_CFG,
5533642b4e5SRohit Agarwal 	.channels = 1,
5543642b4e5SRohit Agarwal 	.buswidth = 4,
5553642b4e5SRohit Agarwal 	.num_links = 0,
5563642b4e5SRohit Agarwal };
5573642b4e5SRohit Agarwal 
5583642b4e5SRohit Agarwal static struct qcom_icc_node qhs_pcie0_cfg = {
5593642b4e5SRohit Agarwal 	.name = "qhs_pcie0_cfg",
5603642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_0_CFG,
5613642b4e5SRohit Agarwal 	.channels = 1,
5623642b4e5SRohit Agarwal 	.buswidth = 4,
5633642b4e5SRohit Agarwal 	.num_links = 0,
5643642b4e5SRohit Agarwal };
5653642b4e5SRohit Agarwal 
5663642b4e5SRohit Agarwal static struct qcom_icc_node qhs_pcie1_cfg = {
5673642b4e5SRohit Agarwal 	.name = "qhs_pcie1_cfg",
5683642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_1_CFG,
5693642b4e5SRohit Agarwal 	.channels = 1,
5703642b4e5SRohit Agarwal 	.buswidth = 4,
5713642b4e5SRohit Agarwal 	.num_links = 0,
5723642b4e5SRohit Agarwal };
5733642b4e5SRohit Agarwal 
5743642b4e5SRohit Agarwal static struct qcom_icc_node qhs_pcie2_cfg = {
5753642b4e5SRohit Agarwal 	.name = "qhs_pcie2_cfg",
5763642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_2_CFG,
5773642b4e5SRohit Agarwal 	.channels = 1,
5783642b4e5SRohit Agarwal 	.buswidth = 4,
5793642b4e5SRohit Agarwal 	.num_links = 0,
5803642b4e5SRohit Agarwal };
5813642b4e5SRohit Agarwal 
5823642b4e5SRohit Agarwal static struct qcom_icc_node qhs_pcie_rscc = {
5833642b4e5SRohit Agarwal 	.name = "qhs_pcie_rscc",
5843642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_RSC_CFG,
5853642b4e5SRohit Agarwal 	.channels = 1,
5863642b4e5SRohit Agarwal 	.buswidth = 4,
5873642b4e5SRohit Agarwal 	.num_links = 0,
5883642b4e5SRohit Agarwal };
5893642b4e5SRohit Agarwal 
5903642b4e5SRohit Agarwal static struct qcom_icc_node qhs_pdm = {
5913642b4e5SRohit Agarwal 	.name = "qhs_pdm",
5923642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PDM,
5933642b4e5SRohit Agarwal 	.channels = 1,
5943642b4e5SRohit Agarwal 	.buswidth = 4,
5953642b4e5SRohit Agarwal 	.num_links = 0,
5963642b4e5SRohit Agarwal };
5973642b4e5SRohit Agarwal 
5983642b4e5SRohit Agarwal static struct qcom_icc_node qhs_prng = {
5993642b4e5SRohit Agarwal 	.name = "qhs_prng",
6003642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PRNG,
6013642b4e5SRohit Agarwal 	.channels = 1,
6023642b4e5SRohit Agarwal 	.buswidth = 4,
6033642b4e5SRohit Agarwal 	.num_links = 0,
6043642b4e5SRohit Agarwal };
6053642b4e5SRohit Agarwal 
6063642b4e5SRohit Agarwal static struct qcom_icc_node qhs_qdss_cfg = {
6073642b4e5SRohit Agarwal 	.name = "qhs_qdss_cfg",
6083642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QDSS_CFG,
6093642b4e5SRohit Agarwal 	.channels = 1,
6103642b4e5SRohit Agarwal 	.buswidth = 4,
6113642b4e5SRohit Agarwal 	.num_links = 0,
6123642b4e5SRohit Agarwal };
6133642b4e5SRohit Agarwal 
6143642b4e5SRohit Agarwal static struct qcom_icc_node qhs_qpic = {
6153642b4e5SRohit Agarwal 	.name = "qhs_qpic",
6163642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QPIC,
6173642b4e5SRohit Agarwal 	.channels = 1,
6183642b4e5SRohit Agarwal 	.buswidth = 4,
6193642b4e5SRohit Agarwal 	.num_links = 0,
6203642b4e5SRohit Agarwal };
6213642b4e5SRohit Agarwal 
6223642b4e5SRohit Agarwal static struct qcom_icc_node qhs_qup0 = {
6233642b4e5SRohit Agarwal 	.name = "qhs_qup0",
6243642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QUP_0,
6253642b4e5SRohit Agarwal 	.channels = 1,
6263642b4e5SRohit Agarwal 	.buswidth = 4,
6273642b4e5SRohit Agarwal 	.num_links = 0,
6283642b4e5SRohit Agarwal };
6293642b4e5SRohit Agarwal 
6303642b4e5SRohit Agarwal static struct qcom_icc_node qhs_sdc1 = {
6313642b4e5SRohit Agarwal 	.name = "qhs_sdc1",
6323642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SDCC_1,
6333642b4e5SRohit Agarwal 	.channels = 1,
6343642b4e5SRohit Agarwal 	.buswidth = 4,
6353642b4e5SRohit Agarwal 	.num_links = 0,
6363642b4e5SRohit Agarwal };
6373642b4e5SRohit Agarwal 
6383642b4e5SRohit Agarwal static struct qcom_icc_node qhs_sdc4 = {
6393642b4e5SRohit Agarwal 	.name = "qhs_sdc4",
6403642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SDCC_4,
6413642b4e5SRohit Agarwal 	.channels = 1,
6423642b4e5SRohit Agarwal 	.buswidth = 4,
6433642b4e5SRohit Agarwal 	.num_links = 0,
6443642b4e5SRohit Agarwal };
6453642b4e5SRohit Agarwal 
6463642b4e5SRohit Agarwal static struct qcom_icc_node qhs_spmi_vgi_coex = {
6473642b4e5SRohit Agarwal 	.name = "qhs_spmi_vgi_coex",
6483642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SPMI_VGI_COEX,
6493642b4e5SRohit Agarwal 	.channels = 1,
6503642b4e5SRohit Agarwal 	.buswidth = 4,
6513642b4e5SRohit Agarwal 	.num_links = 0,
6523642b4e5SRohit Agarwal };
6533642b4e5SRohit Agarwal 
6543642b4e5SRohit Agarwal static struct qcom_icc_node qhs_tcsr = {
6553642b4e5SRohit Agarwal 	.name = "qhs_tcsr",
6563642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_TCSR,
6573642b4e5SRohit Agarwal 	.channels = 1,
6583642b4e5SRohit Agarwal 	.buswidth = 4,
6593642b4e5SRohit Agarwal 	.num_links = 0,
6603642b4e5SRohit Agarwal };
6613642b4e5SRohit Agarwal 
6623642b4e5SRohit Agarwal static struct qcom_icc_node qhs_tlmm = {
6633642b4e5SRohit Agarwal 	.name = "qhs_tlmm",
6643642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_TLMM,
6653642b4e5SRohit Agarwal 	.channels = 1,
6663642b4e5SRohit Agarwal 	.buswidth = 4,
6673642b4e5SRohit Agarwal 	.num_links = 0,
6683642b4e5SRohit Agarwal };
6693642b4e5SRohit Agarwal 
6703642b4e5SRohit Agarwal static struct qcom_icc_node qhs_usb3 = {
6713642b4e5SRohit Agarwal 	.name = "qhs_usb3",
6723642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_USB3,
6733642b4e5SRohit Agarwal 	.channels = 1,
6743642b4e5SRohit Agarwal 	.buswidth = 4,
6753642b4e5SRohit Agarwal 	.num_links = 0,
6763642b4e5SRohit Agarwal };
6773642b4e5SRohit Agarwal 
6783642b4e5SRohit Agarwal static struct qcom_icc_node qhs_usb3_phy = {
6793642b4e5SRohit Agarwal 	.name = "qhs_usb3_phy",
6803642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_USB3_PHY_CFG,
6813642b4e5SRohit Agarwal 	.channels = 1,
6823642b4e5SRohit Agarwal 	.buswidth = 4,
6833642b4e5SRohit Agarwal 	.num_links = 0,
6843642b4e5SRohit Agarwal };
6853642b4e5SRohit Agarwal 
6863642b4e5SRohit Agarwal static struct qcom_icc_node qns_a1noc = {
6873642b4e5SRohit Agarwal 	.name = "qns_a1noc",
6883642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_A1NOC_CFG,
6893642b4e5SRohit Agarwal 	.channels = 1,
6903642b4e5SRohit Agarwal 	.buswidth = 8,
6913642b4e5SRohit Agarwal 	.num_links = 1,
6923642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_ANOC_SNOC },
6933642b4e5SRohit Agarwal };
6943642b4e5SRohit Agarwal 
6953642b4e5SRohit Agarwal static struct qcom_icc_node qns_ddrss_cfg = {
6963642b4e5SRohit Agarwal 	.name = "qns_ddrss_cfg",
6973642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_DDRSS_CFG,
6983642b4e5SRohit Agarwal 	.channels = 1,
6993642b4e5SRohit Agarwal 	.buswidth = 4,
7003642b4e5SRohit Agarwal 	.num_links = 1,
7013642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_CNOC_DC_NOC },
7023642b4e5SRohit Agarwal };
7033642b4e5SRohit Agarwal 
7043642b4e5SRohit Agarwal static struct qcom_icc_node qns_gemnoc_sf = {
7053642b4e5SRohit Agarwal 	.name = "qns_gemnoc_sf",
7063642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SNOC_GEM_NOC_SF,
7073642b4e5SRohit Agarwal 	.channels = 1,
7083642b4e5SRohit Agarwal 	.buswidth = 16,
7093642b4e5SRohit Agarwal 	.num_links = 1,
7103642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_SNOC_SF_MEM_NOC },
7113642b4e5SRohit Agarwal };
7123642b4e5SRohit Agarwal 
7133642b4e5SRohit Agarwal static struct qcom_icc_node qns_system_noc_cfg = {
7143642b4e5SRohit Agarwal 	.name = "qns_system_noc_cfg",
7153642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SNOC_CFG,
7163642b4e5SRohit Agarwal 	.channels = 1,
7173642b4e5SRohit Agarwal 	.buswidth = 4,
7183642b4e5SRohit Agarwal 	.num_links = 1,
7193642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_SNOC_CFG },
7203642b4e5SRohit Agarwal };
7213642b4e5SRohit Agarwal 
7223642b4e5SRohit Agarwal static struct qcom_icc_node qns_system_noc_pcie_cfg = {
7233642b4e5SRohit Agarwal 	.name = "qns_system_noc_pcie_cfg",
7243642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_ANOC_CFG,
7253642b4e5SRohit Agarwal 	.channels = 1,
7263642b4e5SRohit Agarwal 	.buswidth = 4,
7273642b4e5SRohit Agarwal 	.num_links = 1,
7283642b4e5SRohit Agarwal 	.links = { SDX75_MASTER_PCIE_ANOC_CFG },
7293642b4e5SRohit Agarwal };
7303642b4e5SRohit Agarwal 
7313642b4e5SRohit Agarwal static struct qcom_icc_node qxs_imem = {
7323642b4e5SRohit Agarwal 	.name = "qxs_imem",
7333642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_IMEM,
7343642b4e5SRohit Agarwal 	.channels = 1,
7353642b4e5SRohit Agarwal 	.buswidth = 8,
7363642b4e5SRohit Agarwal 	.num_links = 0,
7373642b4e5SRohit Agarwal };
7383642b4e5SRohit Agarwal 
7393642b4e5SRohit Agarwal static struct qcom_icc_node srvc_pcie_system_noc = {
7403642b4e5SRohit Agarwal 	.name = "srvc_pcie_system_noc",
7413642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SERVICE_PCIE_ANOC,
7423642b4e5SRohit Agarwal 	.channels = 1,
7433642b4e5SRohit Agarwal 	.buswidth = 4,
7443642b4e5SRohit Agarwal 	.num_links = 0,
7453642b4e5SRohit Agarwal };
7463642b4e5SRohit Agarwal 
7473642b4e5SRohit Agarwal static struct qcom_icc_node srvc_system_noc = {
7483642b4e5SRohit Agarwal 	.name = "srvc_system_noc",
7493642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_SERVICE_SNOC,
7503642b4e5SRohit Agarwal 	.channels = 1,
7513642b4e5SRohit Agarwal 	.buswidth = 4,
7523642b4e5SRohit Agarwal 	.num_links = 0,
7533642b4e5SRohit Agarwal };
7543642b4e5SRohit Agarwal 
7553642b4e5SRohit Agarwal static struct qcom_icc_node xs_pcie_0 = {
7563642b4e5SRohit Agarwal 	.name = "xs_pcie_0",
7573642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_0,
7583642b4e5SRohit Agarwal 	.channels = 1,
7593642b4e5SRohit Agarwal 	.buswidth = 8,
7603642b4e5SRohit Agarwal 	.num_links = 0,
7613642b4e5SRohit Agarwal };
7623642b4e5SRohit Agarwal 
7633642b4e5SRohit Agarwal static struct qcom_icc_node xs_pcie_1 = {
7643642b4e5SRohit Agarwal 	.name = "xs_pcie_1",
7653642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_1,
7663642b4e5SRohit Agarwal 	.channels = 1,
7673642b4e5SRohit Agarwal 	.buswidth = 8,
7683642b4e5SRohit Agarwal 	.num_links = 0,
7693642b4e5SRohit Agarwal };
7703642b4e5SRohit Agarwal 
7713642b4e5SRohit Agarwal static struct qcom_icc_node xs_pcie_2 = {
7723642b4e5SRohit Agarwal 	.name = "xs_pcie_2",
7733642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_PCIE_2,
7743642b4e5SRohit Agarwal 	.channels = 1,
7753642b4e5SRohit Agarwal 	.buswidth = 8,
7763642b4e5SRohit Agarwal 	.num_links = 0,
7773642b4e5SRohit Agarwal };
7783642b4e5SRohit Agarwal 
7793642b4e5SRohit Agarwal static struct qcom_icc_node xs_qdss_stm = {
7803642b4e5SRohit Agarwal 	.name = "xs_qdss_stm",
7813642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_QDSS_STM,
7823642b4e5SRohit Agarwal 	.channels = 1,
7833642b4e5SRohit Agarwal 	.buswidth = 4,
7843642b4e5SRohit Agarwal 	.num_links = 0,
7853642b4e5SRohit Agarwal };
7863642b4e5SRohit Agarwal 
7873642b4e5SRohit Agarwal static struct qcom_icc_node xs_sys_tcu_cfg = {
7883642b4e5SRohit Agarwal 	.name = "xs_sys_tcu_cfg",
7893642b4e5SRohit Agarwal 	.id = SDX75_SLAVE_TCU,
7903642b4e5SRohit Agarwal 	.channels = 1,
7913642b4e5SRohit Agarwal 	.buswidth = 8,
7923642b4e5SRohit Agarwal 	.num_links = 0,
7933642b4e5SRohit Agarwal };
7943642b4e5SRohit Agarwal 
7953642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_ce0 = {
7963642b4e5SRohit Agarwal 	.name = "CE0",
7973642b4e5SRohit Agarwal 	.num_nodes = 1,
7983642b4e5SRohit Agarwal 	.nodes = { &qxm_crypto },
7993642b4e5SRohit Agarwal };
8003642b4e5SRohit Agarwal 
8013642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_cn0 = {
8023642b4e5SRohit Agarwal 	.name = "CN0",
8033642b4e5SRohit Agarwal 	.keepalive = true,
8043642b4e5SRohit Agarwal 	.num_nodes = 39,
8053642b4e5SRohit Agarwal 	.nodes = { &qhm_pcie_rscc, &qnm_gemnoc_cnoc,
8063642b4e5SRohit Agarwal 		   &ps_eth0_cfg, &ps_eth1_cfg,
8073642b4e5SRohit Agarwal 		   &qhs_audio, &qhs_clk_ctl,
8083642b4e5SRohit Agarwal 		   &qhs_crypto_cfg, &qhs_imem_cfg,
8093642b4e5SRohit Agarwal 		   &qhs_ipa, &qhs_ipc_router,
8103642b4e5SRohit Agarwal 		   &qhs_mss_cfg, &qhs_mvmss_cfg,
8113642b4e5SRohit Agarwal 		   &qhs_pcie0_cfg, &qhs_pcie1_cfg,
8123642b4e5SRohit Agarwal 		   &qhs_pcie2_cfg, &qhs_pcie_rscc,
8133642b4e5SRohit Agarwal 		   &qhs_pdm, &qhs_prng,
8143642b4e5SRohit Agarwal 		   &qhs_qdss_cfg, &qhs_qpic,
8153642b4e5SRohit Agarwal 		   &qhs_qup0, &qhs_sdc1,
8163642b4e5SRohit Agarwal 		   &qhs_sdc4, &qhs_spmi_vgi_coex,
8173642b4e5SRohit Agarwal 		   &qhs_tcsr, &qhs_tlmm,
8183642b4e5SRohit Agarwal 		   &qhs_usb3, &qhs_usb3_phy,
8193642b4e5SRohit Agarwal 		   &qns_ddrss_cfg, &qns_system_noc_cfg,
8203642b4e5SRohit Agarwal 		   &qns_system_noc_pcie_cfg, &qxs_imem,
8213642b4e5SRohit Agarwal 		   &srvc_pcie_system_noc, &srvc_system_noc,
8223642b4e5SRohit Agarwal 		   &xs_pcie_0, &xs_pcie_1,
8233642b4e5SRohit Agarwal 		   &xs_pcie_2, &xs_qdss_stm,
8243642b4e5SRohit Agarwal 		   &xs_sys_tcu_cfg },
8253642b4e5SRohit Agarwal };
8263642b4e5SRohit Agarwal 
8273642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_mc0 = {
8283642b4e5SRohit Agarwal 	.name = "MC0",
8293642b4e5SRohit Agarwal 	.keepalive = true,
8303642b4e5SRohit Agarwal 	.num_nodes = 1,
8313642b4e5SRohit Agarwal 	.nodes = { &ebi },
8323642b4e5SRohit Agarwal };
8333642b4e5SRohit Agarwal 
8343642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_qp0 = {
8353642b4e5SRohit Agarwal 	.name = "QP0",
8363642b4e5SRohit Agarwal 	.num_nodes = 1,
8373642b4e5SRohit Agarwal 	.nodes = { &qpic_core_slave },
8383642b4e5SRohit Agarwal };
8393642b4e5SRohit Agarwal 
8403642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_qup0 = {
8413642b4e5SRohit Agarwal 	.name = "QUP0",
8423642b4e5SRohit Agarwal 	.keepalive = true,
8433642b4e5SRohit Agarwal 	.vote_scale = 1,
8443642b4e5SRohit Agarwal 	.num_nodes = 1,
8453642b4e5SRohit Agarwal 	.nodes = { &qup0_core_slave },
8463642b4e5SRohit Agarwal };
8473642b4e5SRohit Agarwal 
8483642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sh0 = {
8493642b4e5SRohit Agarwal 	.name = "SH0",
8503642b4e5SRohit Agarwal 	.keepalive = true,
8513642b4e5SRohit Agarwal 	.num_nodes = 1,
8523642b4e5SRohit Agarwal 	.nodes = { &qns_llcc },
8533642b4e5SRohit Agarwal };
8543642b4e5SRohit Agarwal 
8553642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sh1 = {
8563642b4e5SRohit Agarwal 	.name = "SH1",
8573642b4e5SRohit Agarwal 	.num_nodes = 10,
8583642b4e5SRohit Agarwal 	.nodes = { &alm_sys_tcu, &chm_apps,
8593642b4e5SRohit Agarwal 		   &qnm_gemnoc_cfg, &qnm_mdsp,
8603642b4e5SRohit Agarwal 		   &qnm_snoc_sf, &xm_gic,
8613642b4e5SRohit Agarwal 		   &xm_ipa2pcie, &qns_gemnoc_cnoc,
8623642b4e5SRohit Agarwal 		   &qns_pcie, &srvc_gemnoc },
8633642b4e5SRohit Agarwal };
8643642b4e5SRohit Agarwal 
8653642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sn0 = {
8663642b4e5SRohit Agarwal 	.name = "SN0",
8673642b4e5SRohit Agarwal 	.keepalive = true,
8683642b4e5SRohit Agarwal 	.num_nodes = 1,
8693642b4e5SRohit Agarwal 	.nodes = { &qns_gemnoc_sf },
8703642b4e5SRohit Agarwal };
8713642b4e5SRohit Agarwal 
8723642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sn1 = {
8733642b4e5SRohit Agarwal 	.name = "SN1",
8743642b4e5SRohit Agarwal 	.num_nodes = 21,
8753642b4e5SRohit Agarwal 	.nodes = { &xm_pcie3_0, &xm_pcie3_1,
8763642b4e5SRohit Agarwal 		   &xm_pcie3_2, &qhm_audio,
8773642b4e5SRohit Agarwal 		   &qhm_gic, &qhm_qdss_bam,
8783642b4e5SRohit Agarwal 		   &qhm_qpic, &qhm_qup0,
8793642b4e5SRohit Agarwal 		   &qnm_gemnoc_pcie, &qnm_system_noc_cfg,
8803642b4e5SRohit Agarwal 		   &qnm_system_noc_pcie_cfg, &qxm_crypto,
8813642b4e5SRohit Agarwal 		   &qxm_ipa, &qxm_mvmss,
8823642b4e5SRohit Agarwal 		   &xm_emac_0, &xm_emac_1,
8833642b4e5SRohit Agarwal 		   &xm_qdss_etr0, &xm_qdss_etr1,
8843642b4e5SRohit Agarwal 		   &xm_sdc1, &xm_sdc4,
8853642b4e5SRohit Agarwal 		   &xm_usb3 },
8863642b4e5SRohit Agarwal };
8873642b4e5SRohit Agarwal 
8883642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sn2 = {
8893642b4e5SRohit Agarwal 	.name = "SN2",
8903642b4e5SRohit Agarwal 	.num_nodes = 2,
8913642b4e5SRohit Agarwal 	.nodes = { &qnm_aggre_noc, &qns_a1noc },
8923642b4e5SRohit Agarwal };
8933642b4e5SRohit Agarwal 
8943642b4e5SRohit Agarwal static struct qcom_icc_bcm bcm_sn4 = {
8953642b4e5SRohit Agarwal 	.name = "SN4",
8963642b4e5SRohit Agarwal 	.num_nodes = 2,
8973642b4e5SRohit Agarwal 	.nodes = { &qnm_pcie, &qns_pcie_gemnoc },
8983642b4e5SRohit Agarwal };
8993642b4e5SRohit Agarwal 
9003642b4e5SRohit Agarwal static struct qcom_icc_bcm * const clk_virt_bcms[] = {
9013642b4e5SRohit Agarwal 	&bcm_qp0,
9023642b4e5SRohit Agarwal 	&bcm_qup0,
9033642b4e5SRohit Agarwal };
9043642b4e5SRohit Agarwal 
9053642b4e5SRohit Agarwal static struct qcom_icc_node * const clk_virt_nodes[] = {
9063642b4e5SRohit Agarwal 	[MASTER_QPIC_CORE] = &qpic_core_master,
9073642b4e5SRohit Agarwal 	[MASTER_QUP_CORE_0] = &qup0_core_master,
9083642b4e5SRohit Agarwal 	[SLAVE_QPIC_CORE] = &qpic_core_slave,
9093642b4e5SRohit Agarwal 	[SLAVE_QUP_CORE_0] = &qup0_core_slave,
9103642b4e5SRohit Agarwal };
9113642b4e5SRohit Agarwal 
9123642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_clk_virt = {
9133642b4e5SRohit Agarwal 	.nodes = clk_virt_nodes,
9143642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(clk_virt_nodes),
9153642b4e5SRohit Agarwal 	.bcms = clk_virt_bcms,
9163642b4e5SRohit Agarwal 	.num_bcms = ARRAY_SIZE(clk_virt_bcms),
9173642b4e5SRohit Agarwal };
9183642b4e5SRohit Agarwal 
9193642b4e5SRohit Agarwal static struct qcom_icc_node * const dc_noc_nodes[] = {
9203642b4e5SRohit Agarwal 	[MASTER_CNOC_DC_NOC] = &qnm_cnoc,
9213642b4e5SRohit Agarwal 	[SLAVE_LAGG_CFG] = &qhs_lagg,
9223642b4e5SRohit Agarwal 	[SLAVE_MCCC_MASTER] = &qhs_mccc_master,
9233642b4e5SRohit Agarwal 	[SLAVE_GEM_NOC_CFG] = &qns_gemnoc,
9243642b4e5SRohit Agarwal 	[SLAVE_SNOOP_BWMON] = &qss_snoop_bwmon,
9253642b4e5SRohit Agarwal };
9263642b4e5SRohit Agarwal 
9273642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_dc_noc = {
9283642b4e5SRohit Agarwal 	.nodes = dc_noc_nodes,
9293642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(dc_noc_nodes),
9303642b4e5SRohit Agarwal };
9313642b4e5SRohit Agarwal 
9323642b4e5SRohit Agarwal static struct qcom_icc_bcm * const gem_noc_bcms[] = {
9333642b4e5SRohit Agarwal 	&bcm_sh0,
9343642b4e5SRohit Agarwal 	&bcm_sh1,
9353642b4e5SRohit Agarwal 	&bcm_sn4,
9363642b4e5SRohit Agarwal };
9373642b4e5SRohit Agarwal 
9383642b4e5SRohit Agarwal static struct qcom_icc_node * const gem_noc_nodes[] = {
9393642b4e5SRohit Agarwal 	[MASTER_SYS_TCU] = &alm_sys_tcu,
9403642b4e5SRohit Agarwal 	[MASTER_APPSS_PROC] = &chm_apps,
9413642b4e5SRohit Agarwal 	[MASTER_GEM_NOC_CFG] = &qnm_gemnoc_cfg,
9423642b4e5SRohit Agarwal 	[MASTER_MSS_PROC] = &qnm_mdsp,
9433642b4e5SRohit Agarwal 	[MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
9443642b4e5SRohit Agarwal 	[MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
9453642b4e5SRohit Agarwal 	[MASTER_GIC] = &xm_gic,
9463642b4e5SRohit Agarwal 	[MASTER_IPA_PCIE] = &xm_ipa2pcie,
9473642b4e5SRohit Agarwal 	[SLAVE_GEM_NOC_CNOC] = &qns_gemnoc_cnoc,
9483642b4e5SRohit Agarwal 	[SLAVE_LLCC] = &qns_llcc,
9493642b4e5SRohit Agarwal 	[SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
9503642b4e5SRohit Agarwal 	[SLAVE_SERVICE_GEM_NOC] = &srvc_gemnoc,
9513642b4e5SRohit Agarwal };
9523642b4e5SRohit Agarwal 
9533642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_gem_noc = {
9543642b4e5SRohit Agarwal 	.nodes = gem_noc_nodes,
9553642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(gem_noc_nodes),
9563642b4e5SRohit Agarwal 	.bcms = gem_noc_bcms,
9573642b4e5SRohit Agarwal 	.num_bcms = ARRAY_SIZE(gem_noc_bcms),
9583642b4e5SRohit Agarwal };
9593642b4e5SRohit Agarwal 
9603642b4e5SRohit Agarwal static struct qcom_icc_bcm * const mc_virt_bcms[] = {
9613642b4e5SRohit Agarwal 	&bcm_mc0,
9623642b4e5SRohit Agarwal };
9633642b4e5SRohit Agarwal 
9643642b4e5SRohit Agarwal static struct qcom_icc_node * const mc_virt_nodes[] = {
9653642b4e5SRohit Agarwal 	[MASTER_LLCC] = &llcc_mc,
9663642b4e5SRohit Agarwal 	[SLAVE_EBI1] = &ebi,
9673642b4e5SRohit Agarwal };
9683642b4e5SRohit Agarwal 
9693642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_mc_virt = {
9703642b4e5SRohit Agarwal 	.nodes = mc_virt_nodes,
9713642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(mc_virt_nodes),
9723642b4e5SRohit Agarwal 	.bcms = mc_virt_bcms,
9733642b4e5SRohit Agarwal 	.num_bcms = ARRAY_SIZE(mc_virt_bcms),
9743642b4e5SRohit Agarwal };
9753642b4e5SRohit Agarwal 
9763642b4e5SRohit Agarwal static struct qcom_icc_bcm * const pcie_anoc_bcms[] = {
9773642b4e5SRohit Agarwal 	&bcm_sn1,
9783642b4e5SRohit Agarwal 	&bcm_sn4,
9793642b4e5SRohit Agarwal };
9803642b4e5SRohit Agarwal 
9813642b4e5SRohit Agarwal static struct qcom_icc_node * const pcie_anoc_nodes[] = {
9823642b4e5SRohit Agarwal 	[MASTER_PCIE_0] = &xm_pcie3_0,
9833642b4e5SRohit Agarwal 	[MASTER_PCIE_1] = &xm_pcie3_1,
9843642b4e5SRohit Agarwal 	[MASTER_PCIE_2] = &xm_pcie3_2,
9853642b4e5SRohit Agarwal 	[SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc,
9863642b4e5SRohit Agarwal };
9873642b4e5SRohit Agarwal 
9883642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_pcie_anoc = {
9893642b4e5SRohit Agarwal 	.nodes = pcie_anoc_nodes,
9903642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
9913642b4e5SRohit Agarwal 	.bcms = pcie_anoc_bcms,
9923642b4e5SRohit Agarwal 	.num_bcms = ARRAY_SIZE(pcie_anoc_bcms),
9933642b4e5SRohit Agarwal };
9943642b4e5SRohit Agarwal 
9953642b4e5SRohit Agarwal static struct qcom_icc_bcm * const system_noc_bcms[] = {
9963642b4e5SRohit Agarwal 	&bcm_ce0,
9973642b4e5SRohit Agarwal 	&bcm_cn0,
9983642b4e5SRohit Agarwal 	&bcm_sn0,
9993642b4e5SRohit Agarwal 	&bcm_sn1,
10003642b4e5SRohit Agarwal 	&bcm_sn2,
10013642b4e5SRohit Agarwal };
10023642b4e5SRohit Agarwal 
10033642b4e5SRohit Agarwal static struct qcom_icc_node * const system_noc_nodes[] = {
10043642b4e5SRohit Agarwal 	[MASTER_AUDIO] = &qhm_audio,
10053642b4e5SRohit Agarwal 	[MASTER_GIC_AHB] = &qhm_gic,
10063642b4e5SRohit Agarwal 	[MASTER_PCIE_RSCC] = &qhm_pcie_rscc,
10073642b4e5SRohit Agarwal 	[MASTER_QDSS_BAM] = &qhm_qdss_bam,
10083642b4e5SRohit Agarwal 	[MASTER_QPIC] = &qhm_qpic,
10093642b4e5SRohit Agarwal 	[MASTER_QUP_0] = &qhm_qup0,
10103642b4e5SRohit Agarwal 	[MASTER_ANOC_SNOC] = &qnm_aggre_noc,
10113642b4e5SRohit Agarwal 	[MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
10123642b4e5SRohit Agarwal 	[MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
10133642b4e5SRohit Agarwal 	[MASTER_SNOC_CFG] = &qnm_system_noc_cfg,
10143642b4e5SRohit Agarwal 	[MASTER_PCIE_ANOC_CFG] = &qnm_system_noc_pcie_cfg,
10153642b4e5SRohit Agarwal 	[MASTER_CRYPTO] = &qxm_crypto,
10163642b4e5SRohit Agarwal 	[MASTER_IPA] = &qxm_ipa,
10173642b4e5SRohit Agarwal 	[MASTER_MVMSS] = &qxm_mvmss,
10183642b4e5SRohit Agarwal 	[MASTER_EMAC_0] = &xm_emac_0,
10193642b4e5SRohit Agarwal 	[MASTER_EMAC_1] = &xm_emac_1,
10203642b4e5SRohit Agarwal 	[MASTER_QDSS_ETR] = &xm_qdss_etr0,
10213642b4e5SRohit Agarwal 	[MASTER_QDSS_ETR_1] = &xm_qdss_etr1,
10223642b4e5SRohit Agarwal 	[MASTER_SDCC_1] = &xm_sdc1,
10233642b4e5SRohit Agarwal 	[MASTER_SDCC_4] = &xm_sdc4,
10243642b4e5SRohit Agarwal 	[MASTER_USB3_0] = &xm_usb3,
10253642b4e5SRohit Agarwal 	[SLAVE_ETH0_CFG] = &ps_eth0_cfg,
10263642b4e5SRohit Agarwal 	[SLAVE_ETH1_CFG] = &ps_eth1_cfg,
10273642b4e5SRohit Agarwal 	[SLAVE_AUDIO] = &qhs_audio,
10283642b4e5SRohit Agarwal 	[SLAVE_CLK_CTL] = &qhs_clk_ctl,
10293642b4e5SRohit Agarwal 	[SLAVE_CRYPTO_0_CFG] = &qhs_crypto_cfg,
10303642b4e5SRohit Agarwal 	[SLAVE_IMEM_CFG] = &qhs_imem_cfg,
10313642b4e5SRohit Agarwal 	[SLAVE_IPA_CFG] = &qhs_ipa,
10323642b4e5SRohit Agarwal 	[SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
10333642b4e5SRohit Agarwal 	[SLAVE_CNOC_MSS] = &qhs_mss_cfg,
10343642b4e5SRohit Agarwal 	[SLAVE_ICBDI_MVMSS_CFG] = &qhs_mvmss_cfg,
10353642b4e5SRohit Agarwal 	[SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg,
10363642b4e5SRohit Agarwal 	[SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg,
10373642b4e5SRohit Agarwal 	[SLAVE_PCIE_2_CFG] = &qhs_pcie2_cfg,
10383642b4e5SRohit Agarwal 	[SLAVE_PCIE_RSC_CFG] = &qhs_pcie_rscc,
10393642b4e5SRohit Agarwal 	[SLAVE_PDM] = &qhs_pdm,
10403642b4e5SRohit Agarwal 	[SLAVE_PRNG] = &qhs_prng,
10413642b4e5SRohit Agarwal 	[SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
10423642b4e5SRohit Agarwal 	[SLAVE_QPIC] = &qhs_qpic,
10433642b4e5SRohit Agarwal 	[SLAVE_QUP_0] = &qhs_qup0,
10443642b4e5SRohit Agarwal 	[SLAVE_SDCC_1] = &qhs_sdc1,
10453642b4e5SRohit Agarwal 	[SLAVE_SDCC_4] = &qhs_sdc4,
10463642b4e5SRohit Agarwal 	[SLAVE_SPMI_VGI_COEX] = &qhs_spmi_vgi_coex,
10473642b4e5SRohit Agarwal 	[SLAVE_TCSR] = &qhs_tcsr,
10483642b4e5SRohit Agarwal 	[SLAVE_TLMM] = &qhs_tlmm,
10493642b4e5SRohit Agarwal 	[SLAVE_USB3] = &qhs_usb3,
10503642b4e5SRohit Agarwal 	[SLAVE_USB3_PHY_CFG] = &qhs_usb3_phy,
10513642b4e5SRohit Agarwal 	[SLAVE_A1NOC_CFG] = &qns_a1noc,
10523642b4e5SRohit Agarwal 	[SLAVE_DDRSS_CFG] = &qns_ddrss_cfg,
10533642b4e5SRohit Agarwal 	[SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
10543642b4e5SRohit Agarwal 	[SLAVE_SNOC_CFG] = &qns_system_noc_cfg,
10553642b4e5SRohit Agarwal 	[SLAVE_PCIE_ANOC_CFG] = &qns_system_noc_pcie_cfg,
10563642b4e5SRohit Agarwal 	[SLAVE_IMEM] = &qxs_imem,
10573642b4e5SRohit Agarwal 	[SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_system_noc,
10583642b4e5SRohit Agarwal 	[SLAVE_SERVICE_SNOC] = &srvc_system_noc,
10593642b4e5SRohit Agarwal 	[SLAVE_PCIE_0] = &xs_pcie_0,
10603642b4e5SRohit Agarwal 	[SLAVE_PCIE_1] = &xs_pcie_1,
10613642b4e5SRohit Agarwal 	[SLAVE_PCIE_2] = &xs_pcie_2,
10623642b4e5SRohit Agarwal 	[SLAVE_QDSS_STM] = &xs_qdss_stm,
10633642b4e5SRohit Agarwal 	[SLAVE_TCU] = &xs_sys_tcu_cfg,
10643642b4e5SRohit Agarwal };
10653642b4e5SRohit Agarwal 
10663642b4e5SRohit Agarwal static const struct qcom_icc_desc sdx75_system_noc = {
10673642b4e5SRohit Agarwal 	.nodes = system_noc_nodes,
10683642b4e5SRohit Agarwal 	.num_nodes = ARRAY_SIZE(system_noc_nodes),
10693642b4e5SRohit Agarwal 	.bcms = system_noc_bcms,
10703642b4e5SRohit Agarwal 	.num_bcms = ARRAY_SIZE(system_noc_bcms),
10713642b4e5SRohit Agarwal };
10723642b4e5SRohit Agarwal 
10733642b4e5SRohit Agarwal static const struct of_device_id qnoc_of_match[] = {
10743642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-clk-virt", .data = &sdx75_clk_virt },
10753642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-dc-noc", .data = &sdx75_dc_noc },
10763642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-gem-noc", .data = &sdx75_gem_noc },
10773642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-mc-virt", .data = &sdx75_mc_virt },
10783642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-pcie-anoc", .data = &sdx75_pcie_anoc },
10793642b4e5SRohit Agarwal 	{ .compatible = "qcom,sdx75-system-noc", .data = &sdx75_system_noc },
10803642b4e5SRohit Agarwal 	{ }
10813642b4e5SRohit Agarwal };
10823642b4e5SRohit Agarwal MODULE_DEVICE_TABLE(of, qnoc_of_match);
10833642b4e5SRohit Agarwal 
10843642b4e5SRohit Agarwal static struct platform_driver qnoc_driver = {
10853642b4e5SRohit Agarwal 	.probe = qcom_icc_rpmh_probe,
1086*c8fd5a37SUwe Kleine-König 	.remove_new = qcom_icc_rpmh_remove,
10873642b4e5SRohit Agarwal 	.driver = {
10883642b4e5SRohit Agarwal 		.name = "qnoc-sdx75",
10893642b4e5SRohit Agarwal 		.of_match_table = qnoc_of_match,
10903642b4e5SRohit Agarwal 		.sync_state = icc_sync_state,
10913642b4e5SRohit Agarwal 	},
10923642b4e5SRohit Agarwal };
10933642b4e5SRohit Agarwal 
qnoc_driver_init(void)10943642b4e5SRohit Agarwal static int __init qnoc_driver_init(void)
10953642b4e5SRohit Agarwal {
10963642b4e5SRohit Agarwal 	return platform_driver_register(&qnoc_driver);
10973642b4e5SRohit Agarwal }
10983642b4e5SRohit Agarwal core_initcall(qnoc_driver_init);
10993642b4e5SRohit Agarwal 
qnoc_driver_exit(void)11003642b4e5SRohit Agarwal static void __exit qnoc_driver_exit(void)
11013642b4e5SRohit Agarwal {
11023642b4e5SRohit Agarwal 	platform_driver_unregister(&qnoc_driver);
11033642b4e5SRohit Agarwal }
11043642b4e5SRohit Agarwal module_exit(qnoc_driver_exit);
11053642b4e5SRohit Agarwal 
11063642b4e5SRohit Agarwal MODULE_DESCRIPTION("SDX75 NoC driver");
11073642b4e5SRohit Agarwal MODULE_LICENSE("GPL");
1108