11f51339fSMelody Olvera // SPDX-License-Identifier: GPL-2.0-only
21f51339fSMelody Olvera /*
31f51339fSMelody Olvera * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
41f51339fSMelody Olvera *
51f51339fSMelody Olvera */
61f51339fSMelody Olvera
71f51339fSMelody Olvera #include <linux/device.h>
81f51339fSMelody Olvera #include <linux/interconnect.h>
91f51339fSMelody Olvera #include <linux/interconnect-provider.h>
10cff66aceSRob Herring #include <linux/mod_devicetable.h>
111f51339fSMelody Olvera #include <linux/module.h>
12cff66aceSRob Herring #include <linux/platform_device.h>
131f51339fSMelody Olvera #include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h>
141f51339fSMelody Olvera
151f51339fSMelody Olvera #include "bcm-voter.h"
161f51339fSMelody Olvera #include "icc-common.h"
171f51339fSMelody Olvera #include "icc-rpmh.h"
181f51339fSMelody Olvera #include "qdu1000.h"
191f51339fSMelody Olvera
201f51339fSMelody Olvera static struct qcom_icc_node qup0_core_master = {
211f51339fSMelody Olvera .name = "qup0_core_master",
221f51339fSMelody Olvera .id = QDU1000_MASTER_QUP_CORE_0,
231f51339fSMelody Olvera .channels = 1,
241f51339fSMelody Olvera .buswidth = 4,
251f51339fSMelody Olvera .num_links = 1,
261f51339fSMelody Olvera .links = { QDU1000_SLAVE_QUP_CORE_0 },
271f51339fSMelody Olvera };
281f51339fSMelody Olvera
291f51339fSMelody Olvera static struct qcom_icc_node qup1_core_master = {
301f51339fSMelody Olvera .name = "qup1_core_master",
311f51339fSMelody Olvera .id = QDU1000_MASTER_QUP_CORE_1,
321f51339fSMelody Olvera .channels = 1,
331f51339fSMelody Olvera .buswidth = 4,
341f51339fSMelody Olvera .num_links = 1,
351f51339fSMelody Olvera .links = { QDU1000_SLAVE_QUP_CORE_1 },
361f51339fSMelody Olvera };
371f51339fSMelody Olvera
381f51339fSMelody Olvera static struct qcom_icc_node alm_sys_tcu = {
391f51339fSMelody Olvera .name = "alm_sys_tcu",
401f51339fSMelody Olvera .id = QDU1000_MASTER_SYS_TCU,
411f51339fSMelody Olvera .channels = 1,
421f51339fSMelody Olvera .buswidth = 8,
431f51339fSMelody Olvera .num_links = 2,
441f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
451f51339fSMelody Olvera };
461f51339fSMelody Olvera
471f51339fSMelody Olvera static struct qcom_icc_node chm_apps = {
481f51339fSMelody Olvera .name = "chm_apps",
491f51339fSMelody Olvera .id = QDU1000_MASTER_APPSS_PROC,
501f51339fSMelody Olvera .channels = 1,
511f51339fSMelody Olvera .buswidth = 16,
521f51339fSMelody Olvera .num_links = 4,
531f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
541f51339fSMelody Olvera QDU1000_SLAVE_GEMNOC_MODEM_CNOC, QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
551f51339fSMelody Olvera },
561f51339fSMelody Olvera };
571f51339fSMelody Olvera
581f51339fSMelody Olvera static struct qcom_icc_node qnm_ecpri_dma = {
591f51339fSMelody Olvera .name = "qnm_ecpri_dma",
601f51339fSMelody Olvera .id = QDU1000_MASTER_GEMNOC_ECPRI_DMA,
611f51339fSMelody Olvera .channels = 2,
621f51339fSMelody Olvera .buswidth = 32,
631f51339fSMelody Olvera .num_links = 2,
641f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
651f51339fSMelody Olvera };
661f51339fSMelody Olvera
671f51339fSMelody Olvera static struct qcom_icc_node qnm_fec_2_gemnoc = {
681f51339fSMelody Olvera .name = "qnm_fec_2_gemnoc",
691f51339fSMelody Olvera .id = QDU1000_MASTER_FEC_2_GEMNOC,
701f51339fSMelody Olvera .channels = 2,
711f51339fSMelody Olvera .buswidth = 32,
721f51339fSMelody Olvera .num_links = 2,
731f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC },
741f51339fSMelody Olvera };
751f51339fSMelody Olvera
761f51339fSMelody Olvera static struct qcom_icc_node qnm_pcie = {
771f51339fSMelody Olvera .name = "qnm_pcie",
781f51339fSMelody Olvera .id = QDU1000_MASTER_ANOC_PCIE_GEM_NOC,
791f51339fSMelody Olvera .channels = 1,
801f51339fSMelody Olvera .buswidth = 64,
811f51339fSMelody Olvera .num_links = 3,
821f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
831f51339fSMelody Olvera QDU1000_SLAVE_GEMNOC_MODEM_CNOC
841f51339fSMelody Olvera },
851f51339fSMelody Olvera };
861f51339fSMelody Olvera
871f51339fSMelody Olvera static struct qcom_icc_node qnm_snoc_gc = {
881f51339fSMelody Olvera .name = "qnm_snoc_gc",
891f51339fSMelody Olvera .id = QDU1000_MASTER_SNOC_GC_MEM_NOC,
901f51339fSMelody Olvera .channels = 1,
911f51339fSMelody Olvera .buswidth = 8,
921f51339fSMelody Olvera .num_links = 1,
931f51339fSMelody Olvera .links = { QDU1000_SLAVE_LLCC },
941f51339fSMelody Olvera };
951f51339fSMelody Olvera
961f51339fSMelody Olvera static struct qcom_icc_node qnm_snoc_sf = {
971f51339fSMelody Olvera .name = "qnm_snoc_sf",
981f51339fSMelody Olvera .id = QDU1000_MASTER_SNOC_SF_MEM_NOC,
991f51339fSMelody Olvera .channels = 1,
1001f51339fSMelody Olvera .buswidth = 16,
1011f51339fSMelody Olvera .num_links = 4,
1021f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
1031f51339fSMelody Olvera QDU1000_SLAVE_GEMNOC_MODEM_CNOC, QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
1041f51339fSMelody Olvera },
1051f51339fSMelody Olvera };
1061f51339fSMelody Olvera
1071f51339fSMelody Olvera static struct qcom_icc_node qxm_mdsp = {
1081f51339fSMelody Olvera .name = "qxm_mdsp",
1091f51339fSMelody Olvera .id = QDU1000_MASTER_MSS_PROC,
1101f51339fSMelody Olvera .channels = 1,
1111f51339fSMelody Olvera .buswidth = 16,
1121f51339fSMelody Olvera .num_links = 3,
1131f51339fSMelody Olvera .links = { QDU1000_SLAVE_GEM_NOC_CNOC, QDU1000_SLAVE_LLCC,
1141f51339fSMelody Olvera QDU1000_SLAVE_MEM_NOC_PCIE_SNOC
1151f51339fSMelody Olvera },
1161f51339fSMelody Olvera };
1171f51339fSMelody Olvera
1181f51339fSMelody Olvera static struct qcom_icc_node llcc_mc = {
1191f51339fSMelody Olvera .name = "llcc_mc",
1201f51339fSMelody Olvera .id = QDU1000_MASTER_LLCC,
1211f51339fSMelody Olvera .channels = 8,
1221f51339fSMelody Olvera .buswidth = 4,
1231f51339fSMelody Olvera .num_links = 1,
1241f51339fSMelody Olvera .links = { QDU1000_SLAVE_EBI1 },
1251f51339fSMelody Olvera };
1261f51339fSMelody Olvera
1271f51339fSMelody Olvera static struct qcom_icc_node qhm_gic = {
1281f51339fSMelody Olvera .name = "qhm_gic",
1291f51339fSMelody Olvera .id = QDU1000_MASTER_GIC_AHB,
1301f51339fSMelody Olvera .channels = 1,
1311f51339fSMelody Olvera .buswidth = 4,
1321f51339fSMelody Olvera .num_links = 1,
1331f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
1341f51339fSMelody Olvera };
1351f51339fSMelody Olvera
1361f51339fSMelody Olvera static struct qcom_icc_node qhm_qdss_bam = {
1371f51339fSMelody Olvera .name = "qhm_qdss_bam",
1381f51339fSMelody Olvera .id = QDU1000_MASTER_QDSS_BAM,
1391f51339fSMelody Olvera .channels = 1,
1401f51339fSMelody Olvera .buswidth = 4,
1411f51339fSMelody Olvera .num_links = 1,
1421f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
1431f51339fSMelody Olvera };
1441f51339fSMelody Olvera
1451f51339fSMelody Olvera static struct qcom_icc_node qhm_qpic = {
1461f51339fSMelody Olvera .name = "qhm_qpic",
1471f51339fSMelody Olvera .id = QDU1000_MASTER_QPIC,
1481f51339fSMelody Olvera .channels = 1,
1491f51339fSMelody Olvera .buswidth = 4,
1501f51339fSMelody Olvera .num_links = 1,
1511f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
1521f51339fSMelody Olvera };
1531f51339fSMelody Olvera
1541f51339fSMelody Olvera static struct qcom_icc_node qhm_qspi = {
1551f51339fSMelody Olvera .name = "qhm_qspi",
1561f51339fSMelody Olvera .id = QDU1000_MASTER_QSPI_0,
1571f51339fSMelody Olvera .channels = 1,
1581f51339fSMelody Olvera .buswidth = 4,
1591f51339fSMelody Olvera .num_links = 1,
1601f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
1611f51339fSMelody Olvera };
1621f51339fSMelody Olvera
1631f51339fSMelody Olvera static struct qcom_icc_node qhm_qup0 = {
1641f51339fSMelody Olvera .name = "qhm_qup0",
1651f51339fSMelody Olvera .id = QDU1000_MASTER_QUP_0,
1661f51339fSMelody Olvera .channels = 1,
1671f51339fSMelody Olvera .buswidth = 4,
1681f51339fSMelody Olvera .num_links = 1,
1691f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
1701f51339fSMelody Olvera };
1711f51339fSMelody Olvera
1721f51339fSMelody Olvera static struct qcom_icc_node qhm_qup1 = {
1731f51339fSMelody Olvera .name = "qhm_qup1",
1741f51339fSMelody Olvera .id = QDU1000_MASTER_QUP_1,
1751f51339fSMelody Olvera .channels = 1,
1761f51339fSMelody Olvera .buswidth = 4,
1771f51339fSMelody Olvera .num_links = 1,
1781f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
1791f51339fSMelody Olvera };
1801f51339fSMelody Olvera
1811f51339fSMelody Olvera static struct qcom_icc_node qhm_system_noc_cfg = {
1821f51339fSMelody Olvera .name = "qhm_system_noc_cfg",
1831f51339fSMelody Olvera .id = QDU1000_MASTER_SNOC_CFG,
1841f51339fSMelody Olvera .channels = 1,
1851f51339fSMelody Olvera .buswidth = 4,
1861f51339fSMelody Olvera .num_links = 1,
1871f51339fSMelody Olvera .links = { QDU1000_SLAVE_SERVICE_SNOC },
1881f51339fSMelody Olvera };
1891f51339fSMelody Olvera
1901f51339fSMelody Olvera static struct qcom_icc_node qnm_aggre_noc = {
1911f51339fSMelody Olvera .name = "qnm_aggre_noc",
1921f51339fSMelody Olvera .id = QDU1000_MASTER_ANOC_SNOC,
1931f51339fSMelody Olvera .channels = 1,
1941f51339fSMelody Olvera .buswidth = 8,
1951f51339fSMelody Olvera .num_links = 1,
1961f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
1971f51339fSMelody Olvera };
1981f51339fSMelody Olvera
1991f51339fSMelody Olvera static struct qcom_icc_node qnm_aggre_noc_gsi = {
2001f51339fSMelody Olvera .name = "qnm_aggre_noc_gsi",
2011f51339fSMelody Olvera .id = QDU1000_MASTER_ANOC_GSI,
2021f51339fSMelody Olvera .channels = 1,
2031f51339fSMelody Olvera .buswidth = 8,
2041f51339fSMelody Olvera .num_links = 1,
2051f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
2061f51339fSMelody Olvera };
2071f51339fSMelody Olvera
2081f51339fSMelody Olvera static struct qcom_icc_node qnm_gemnoc_cnoc = {
2091f51339fSMelody Olvera .name = "qnm_gemnoc_cnoc",
2101f51339fSMelody Olvera .id = QDU1000_MASTER_GEM_NOC_CNOC,
2111f51339fSMelody Olvera .channels = 1,
2121f51339fSMelody Olvera .buswidth = 16,
2131f51339fSMelody Olvera .num_links = 36,
2141f51339fSMelody Olvera .links = { QDU1000_SLAVE_AHB2PHY_SOUTH, QDU1000_SLAVE_AHB2PHY_NORTH,
2151f51339fSMelody Olvera QDU1000_SLAVE_AHB2PHY_EAST, QDU1000_SLAVE_AOSS,
2161f51339fSMelody Olvera QDU1000_SLAVE_CLK_CTL, QDU1000_SLAVE_RBCPR_CX_CFG,
2171f51339fSMelody Olvera QDU1000_SLAVE_RBCPR_MX_CFG, QDU1000_SLAVE_CRYPTO_0_CFG,
2181f51339fSMelody Olvera QDU1000_SLAVE_ECPRI_CFG, QDU1000_SLAVE_IMEM_CFG,
2191f51339fSMelody Olvera QDU1000_SLAVE_IPC_ROUTER_CFG, QDU1000_SLAVE_CNOC_MSS,
2201f51339fSMelody Olvera QDU1000_SLAVE_PCIE_CFG, QDU1000_SLAVE_PDM,
2211f51339fSMelody Olvera QDU1000_SLAVE_PIMEM_CFG, QDU1000_SLAVE_PRNG,
2221f51339fSMelody Olvera QDU1000_SLAVE_QDSS_CFG, QDU1000_SLAVE_QPIC,
2231f51339fSMelody Olvera QDU1000_SLAVE_QSPI_0, QDU1000_SLAVE_QUP_0,
2241f51339fSMelody Olvera QDU1000_SLAVE_QUP_1, QDU1000_SLAVE_SDCC_2,
2251f51339fSMelody Olvera QDU1000_SLAVE_SMBUS_CFG, QDU1000_SLAVE_SNOC_CFG,
2261f51339fSMelody Olvera QDU1000_SLAVE_TCSR, QDU1000_SLAVE_TLMM,
2271f51339fSMelody Olvera QDU1000_SLAVE_TME_CFG, QDU1000_SLAVE_TSC_CFG,
2281f51339fSMelody Olvera QDU1000_SLAVE_USB3_0, QDU1000_SLAVE_VSENSE_CTRL_CFG,
2291f51339fSMelody Olvera QDU1000_SLAVE_DDRSS_CFG, QDU1000_SLAVE_IMEM,
2301f51339fSMelody Olvera QDU1000_SLAVE_PIMEM, QDU1000_SLAVE_ETHERNET_SS,
2311f51339fSMelody Olvera QDU1000_SLAVE_QDSS_STM, QDU1000_SLAVE_TCU
2321f51339fSMelody Olvera },
2331f51339fSMelody Olvera };
2341f51339fSMelody Olvera
2351f51339fSMelody Olvera static struct qcom_icc_node qnm_gemnoc_modem_slave = {
2361f51339fSMelody Olvera .name = "qnm_gemnoc_modem_slave",
2371f51339fSMelody Olvera .id = QDU1000_MASTER_GEMNOC_MODEM_CNOC,
2381f51339fSMelody Olvera .channels = 1,
2391f51339fSMelody Olvera .buswidth = 16,
2401f51339fSMelody Olvera .num_links = 1,
2411f51339fSMelody Olvera .links = { QDU1000_SLAVE_MODEM_OFFLINE },
2421f51339fSMelody Olvera };
2431f51339fSMelody Olvera
2441f51339fSMelody Olvera static struct qcom_icc_node qnm_gemnoc_pcie = {
2451f51339fSMelody Olvera .name = "qnm_gemnoc_pcie",
2461f51339fSMelody Olvera .id = QDU1000_MASTER_GEM_NOC_PCIE_SNOC,
2471f51339fSMelody Olvera .channels = 1,
2481f51339fSMelody Olvera .buswidth = 16,
2491f51339fSMelody Olvera .num_links = 1,
2501f51339fSMelody Olvera .links = { QDU1000_SLAVE_PCIE_0 },
2511f51339fSMelody Olvera };
2521f51339fSMelody Olvera
2531f51339fSMelody Olvera static struct qcom_icc_node qxm_crypto = {
2541f51339fSMelody Olvera .name = "qxm_crypto",
2551f51339fSMelody Olvera .id = QDU1000_MASTER_CRYPTO,
2561f51339fSMelody Olvera .channels = 1,
2571f51339fSMelody Olvera .buswidth = 8,
2581f51339fSMelody Olvera .num_links = 1,
2591f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
2601f51339fSMelody Olvera };
2611f51339fSMelody Olvera
2621f51339fSMelody Olvera static struct qcom_icc_node qxm_ecpri_gsi = {
2631f51339fSMelody Olvera .name = "qxm_ecpri_gsi",
2641f51339fSMelody Olvera .id = QDU1000_MASTER_ECPRI_GSI,
2651f51339fSMelody Olvera .channels = 1,
2661f51339fSMelody Olvera .buswidth = 8,
2671f51339fSMelody Olvera .num_links = 2,
2681f51339fSMelody Olvera .links = { QDU1000_SLAVE_ANOC_SNOC_GSI, QDU1000_SLAVE_PCIE_0 },
2691f51339fSMelody Olvera };
2701f51339fSMelody Olvera
2711f51339fSMelody Olvera static struct qcom_icc_node qxm_pimem = {
2721f51339fSMelody Olvera .name = "qxm_pimem",
2731f51339fSMelody Olvera .id = QDU1000_MASTER_PIMEM,
2741f51339fSMelody Olvera .channels = 1,
2751f51339fSMelody Olvera .buswidth = 8,
2761f51339fSMelody Olvera .num_links = 1,
2771f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
2781f51339fSMelody Olvera };
2791f51339fSMelody Olvera
2801f51339fSMelody Olvera static struct qcom_icc_node xm_ecpri_dma = {
2811f51339fSMelody Olvera .name = "xm_ecpri_dma",
2821f51339fSMelody Olvera .id = QDU1000_MASTER_SNOC_ECPRI_DMA,
2831f51339fSMelody Olvera .channels = 2,
2841f51339fSMelody Olvera .buswidth = 32,
2851f51339fSMelody Olvera .num_links = 2,
2861f51339fSMelody Olvera .links = { QDU1000_SLAVE_ECPRI_GEMNOC, QDU1000_SLAVE_PCIE_0 },
2871f51339fSMelody Olvera };
2881f51339fSMelody Olvera
2891f51339fSMelody Olvera static struct qcom_icc_node xm_gic = {
2901f51339fSMelody Olvera .name = "xm_gic",
2911f51339fSMelody Olvera .id = QDU1000_MASTER_GIC,
2921f51339fSMelody Olvera .channels = 1,
2931f51339fSMelody Olvera .buswidth = 8,
2941f51339fSMelody Olvera .num_links = 1,
2951f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_GC },
2961f51339fSMelody Olvera };
2971f51339fSMelody Olvera
2981f51339fSMelody Olvera static struct qcom_icc_node xm_pcie = {
2991f51339fSMelody Olvera .name = "xm_pcie",
3001f51339fSMelody Olvera .id = QDU1000_MASTER_PCIE,
3011f51339fSMelody Olvera .channels = 1,
3021f51339fSMelody Olvera .buswidth = 64,
3031f51339fSMelody Olvera .num_links = 1,
3041f51339fSMelody Olvera .links = { QDU1000_SLAVE_ANOC_PCIE_GEM_NOC },
3051f51339fSMelody Olvera };
3061f51339fSMelody Olvera
3071f51339fSMelody Olvera static struct qcom_icc_node xm_qdss_etr0 = {
3081f51339fSMelody Olvera .name = "xm_qdss_etr0",
3091f51339fSMelody Olvera .id = QDU1000_MASTER_QDSS_ETR,
3101f51339fSMelody Olvera .channels = 1,
3111f51339fSMelody Olvera .buswidth = 8,
3121f51339fSMelody Olvera .num_links = 1,
3131f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
3141f51339fSMelody Olvera };
3151f51339fSMelody Olvera
3161f51339fSMelody Olvera static struct qcom_icc_node xm_qdss_etr1 = {
3171f51339fSMelody Olvera .name = "xm_qdss_etr1",
3181f51339fSMelody Olvera .id = QDU1000_MASTER_QDSS_ETR_1,
3191f51339fSMelody Olvera .channels = 1,
3201f51339fSMelody Olvera .buswidth = 8,
3211f51339fSMelody Olvera .num_links = 1,
3221f51339fSMelody Olvera .links = { QDU1000_SLAVE_SNOC_GEM_NOC_SF },
3231f51339fSMelody Olvera };
3241f51339fSMelody Olvera
3251f51339fSMelody Olvera static struct qcom_icc_node xm_sdc = {
3261f51339fSMelody Olvera .name = "xm_sdc",
3271f51339fSMelody Olvera .id = QDU1000_MASTER_SDCC_1,
3281f51339fSMelody Olvera .channels = 1,
3291f51339fSMelody Olvera .buswidth = 8,
3301f51339fSMelody Olvera .num_links = 1,
3311f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
3321f51339fSMelody Olvera };
3331f51339fSMelody Olvera
3341f51339fSMelody Olvera static struct qcom_icc_node xm_usb3 = {
3351f51339fSMelody Olvera .name = "xm_usb3",
3361f51339fSMelody Olvera .id = QDU1000_MASTER_USB3,
3371f51339fSMelody Olvera .channels = 1,
3381f51339fSMelody Olvera .buswidth = 8,
3391f51339fSMelody Olvera .num_links = 1,
3401f51339fSMelody Olvera .links = { QDU1000_SLAVE_A1NOC_SNOC },
3411f51339fSMelody Olvera };
3421f51339fSMelody Olvera
3431f51339fSMelody Olvera static struct qcom_icc_node qup0_core_slave = {
3441f51339fSMelody Olvera .name = "qup0_core_slave",
3451f51339fSMelody Olvera .id = QDU1000_SLAVE_QUP_CORE_0,
3461f51339fSMelody Olvera .channels = 1,
3471f51339fSMelody Olvera .buswidth = 4,
3481f51339fSMelody Olvera .num_links = 0,
3491f51339fSMelody Olvera };
3501f51339fSMelody Olvera
3511f51339fSMelody Olvera static struct qcom_icc_node qup1_core_slave = {
3521f51339fSMelody Olvera .name = "qup1_core_slave",
3531f51339fSMelody Olvera .id = QDU1000_SLAVE_QUP_CORE_1,
3541f51339fSMelody Olvera .channels = 1,
3551f51339fSMelody Olvera .buswidth = 4,
3561f51339fSMelody Olvera .num_links = 0,
3571f51339fSMelody Olvera };
3581f51339fSMelody Olvera
3591f51339fSMelody Olvera static struct qcom_icc_node qns_gem_noc_cnoc = {
3601f51339fSMelody Olvera .name = "qns_gem_noc_cnoc",
3611f51339fSMelody Olvera .id = QDU1000_SLAVE_GEM_NOC_CNOC,
3621f51339fSMelody Olvera .channels = 1,
3631f51339fSMelody Olvera .buswidth = 16,
3641f51339fSMelody Olvera .num_links = 1,
3651f51339fSMelody Olvera .links = { QDU1000_MASTER_GEM_NOC_CNOC },
3661f51339fSMelody Olvera };
3671f51339fSMelody Olvera
3681f51339fSMelody Olvera static struct qcom_icc_node qns_llcc = {
3691f51339fSMelody Olvera .name = "qns_llcc",
3701f51339fSMelody Olvera .id = QDU1000_SLAVE_LLCC,
3711f51339fSMelody Olvera .channels = 8,
3721f51339fSMelody Olvera .buswidth = 16,
3731f51339fSMelody Olvera .num_links = 1,
3741f51339fSMelody Olvera .links = { QDU1000_MASTER_LLCC },
3751f51339fSMelody Olvera };
3761f51339fSMelody Olvera
3771f51339fSMelody Olvera static struct qcom_icc_node qns_modem_slave = {
3781f51339fSMelody Olvera .name = "qns_modem_slave",
3791f51339fSMelody Olvera .id = QDU1000_SLAVE_GEMNOC_MODEM_CNOC,
3801f51339fSMelody Olvera .channels = 1,
3811f51339fSMelody Olvera .buswidth = 16,
3821f51339fSMelody Olvera .num_links = 1,
3831f51339fSMelody Olvera .links = { QDU1000_MASTER_GEMNOC_MODEM_CNOC },
3841f51339fSMelody Olvera };
3851f51339fSMelody Olvera
3861f51339fSMelody Olvera static struct qcom_icc_node qns_pcie = {
3871f51339fSMelody Olvera .name = "qns_pcie",
3881f51339fSMelody Olvera .id = QDU1000_SLAVE_MEM_NOC_PCIE_SNOC,
3891f51339fSMelody Olvera .channels = 1,
3901f51339fSMelody Olvera .buswidth = 16,
3911f51339fSMelody Olvera .num_links = 1,
3921f51339fSMelody Olvera .links = { QDU1000_MASTER_GEM_NOC_PCIE_SNOC },
3931f51339fSMelody Olvera };
3941f51339fSMelody Olvera
3951f51339fSMelody Olvera static struct qcom_icc_node ebi = {
3961f51339fSMelody Olvera .name = "ebi",
3971f51339fSMelody Olvera .id = QDU1000_SLAVE_EBI1,
3981f51339fSMelody Olvera .channels = 8,
3991f51339fSMelody Olvera .buswidth = 4,
4001f51339fSMelody Olvera .num_links = 0,
4011f51339fSMelody Olvera };
4021f51339fSMelody Olvera
4031f51339fSMelody Olvera static struct qcom_icc_node qhs_ahb2phy0_south = {
4041f51339fSMelody Olvera .name = "qhs_ahb2phy0_south",
4051f51339fSMelody Olvera .id = QDU1000_SLAVE_AHB2PHY_SOUTH,
4061f51339fSMelody Olvera .channels = 1,
4071f51339fSMelody Olvera .buswidth = 4,
4081f51339fSMelody Olvera .num_links = 0,
4091f51339fSMelody Olvera };
4101f51339fSMelody Olvera
4111f51339fSMelody Olvera static struct qcom_icc_node qhs_ahb2phy1_north = {
4121f51339fSMelody Olvera .name = "qhs_ahb2phy1_north",
4131f51339fSMelody Olvera .id = QDU1000_SLAVE_AHB2PHY_NORTH,
4141f51339fSMelody Olvera .channels = 1,
4151f51339fSMelody Olvera .buswidth = 4,
4161f51339fSMelody Olvera .num_links = 0,
4171f51339fSMelody Olvera };
4181f51339fSMelody Olvera
4191f51339fSMelody Olvera static struct qcom_icc_node qhs_ahb2phy2_east = {
4201f51339fSMelody Olvera .name = "qhs_ahb2phy2_east",
4211f51339fSMelody Olvera .id = QDU1000_SLAVE_AHB2PHY_EAST,
4221f51339fSMelody Olvera .channels = 1,
4231f51339fSMelody Olvera .buswidth = 4,
4241f51339fSMelody Olvera .num_links = 0,
4251f51339fSMelody Olvera };
4261f51339fSMelody Olvera
4271f51339fSMelody Olvera static struct qcom_icc_node qhs_aoss = {
4281f51339fSMelody Olvera .name = "qhs_aoss",
4291f51339fSMelody Olvera .id = QDU1000_SLAVE_AOSS,
4301f51339fSMelody Olvera .channels = 1,
4311f51339fSMelody Olvera .buswidth = 4,
4321f51339fSMelody Olvera .num_links = 0,
4331f51339fSMelody Olvera };
4341f51339fSMelody Olvera
4351f51339fSMelody Olvera static struct qcom_icc_node qhs_clk_ctl = {
4361f51339fSMelody Olvera .name = "qhs_clk_ctl",
4371f51339fSMelody Olvera .id = QDU1000_SLAVE_CLK_CTL,
4381f51339fSMelody Olvera .channels = 1,
4391f51339fSMelody Olvera .buswidth = 4,
4401f51339fSMelody Olvera .num_links = 0,
4411f51339fSMelody Olvera };
4421f51339fSMelody Olvera
4431f51339fSMelody Olvera static struct qcom_icc_node qhs_cpr_cx = {
4441f51339fSMelody Olvera .name = "qhs_cpr_cx",
4451f51339fSMelody Olvera .id = QDU1000_SLAVE_RBCPR_CX_CFG,
4461f51339fSMelody Olvera .channels = 1,
4471f51339fSMelody Olvera .buswidth = 4,
4481f51339fSMelody Olvera .num_links = 0,
4491f51339fSMelody Olvera };
4501f51339fSMelody Olvera
4511f51339fSMelody Olvera static struct qcom_icc_node qhs_cpr_mx = {
4521f51339fSMelody Olvera .name = "qhs_cpr_mx",
4531f51339fSMelody Olvera .id = QDU1000_SLAVE_RBCPR_MX_CFG,
4541f51339fSMelody Olvera .channels = 1,
4551f51339fSMelody Olvera .buswidth = 4,
4561f51339fSMelody Olvera .num_links = 0,
4571f51339fSMelody Olvera };
4581f51339fSMelody Olvera
4591f51339fSMelody Olvera static struct qcom_icc_node qhs_crypto_cfg = {
4601f51339fSMelody Olvera .name = "qhs_crypto_cfg",
4611f51339fSMelody Olvera .id = QDU1000_SLAVE_CRYPTO_0_CFG,
4621f51339fSMelody Olvera .channels = 1,
4631f51339fSMelody Olvera .buswidth = 4,
4641f51339fSMelody Olvera .num_links = 0,
4651f51339fSMelody Olvera };
4661f51339fSMelody Olvera
4671f51339fSMelody Olvera static struct qcom_icc_node qhs_ecpri_cfg = {
4681f51339fSMelody Olvera .name = "qhs_ecpri_cfg",
4691f51339fSMelody Olvera .id = QDU1000_SLAVE_ECPRI_CFG,
4701f51339fSMelody Olvera .channels = 1,
4711f51339fSMelody Olvera .buswidth = 4,
4721f51339fSMelody Olvera .num_links = 0,
4731f51339fSMelody Olvera };
4741f51339fSMelody Olvera
4751f51339fSMelody Olvera static struct qcom_icc_node qhs_imem_cfg = {
4761f51339fSMelody Olvera .name = "qhs_imem_cfg",
4771f51339fSMelody Olvera .id = QDU1000_SLAVE_IMEM_CFG,
4781f51339fSMelody Olvera .channels = 1,
4791f51339fSMelody Olvera .buswidth = 4,
4801f51339fSMelody Olvera .num_links = 0,
4811f51339fSMelody Olvera };
4821f51339fSMelody Olvera
4831f51339fSMelody Olvera static struct qcom_icc_node qhs_ipc_router = {
4841f51339fSMelody Olvera .name = "qhs_ipc_router",
4851f51339fSMelody Olvera .id = QDU1000_SLAVE_IPC_ROUTER_CFG,
4861f51339fSMelody Olvera .channels = 1,
4871f51339fSMelody Olvera .buswidth = 4,
4881f51339fSMelody Olvera .num_links = 0,
4891f51339fSMelody Olvera };
4901f51339fSMelody Olvera
4911f51339fSMelody Olvera static struct qcom_icc_node qhs_mss_cfg = {
4921f51339fSMelody Olvera .name = "qhs_mss_cfg",
4931f51339fSMelody Olvera .id = QDU1000_SLAVE_CNOC_MSS,
4941f51339fSMelody Olvera .channels = 1,
4951f51339fSMelody Olvera .buswidth = 4,
4961f51339fSMelody Olvera .num_links = 0,
4971f51339fSMelody Olvera };
4981f51339fSMelody Olvera
4991f51339fSMelody Olvera static struct qcom_icc_node qhs_pcie_cfg = {
5001f51339fSMelody Olvera .name = "qhs_pcie_cfg",
5011f51339fSMelody Olvera .id = QDU1000_SLAVE_PCIE_CFG,
5021f51339fSMelody Olvera .channels = 1,
5031f51339fSMelody Olvera .buswidth = 4,
5041f51339fSMelody Olvera .num_links = 0,
5051f51339fSMelody Olvera };
5061f51339fSMelody Olvera
5071f51339fSMelody Olvera static struct qcom_icc_node qhs_pdm = {
5081f51339fSMelody Olvera .name = "qhs_pdm",
5091f51339fSMelody Olvera .id = QDU1000_SLAVE_PDM,
5101f51339fSMelody Olvera .channels = 1,
5111f51339fSMelody Olvera .buswidth = 4,
5121f51339fSMelody Olvera .num_links = 0,
5131f51339fSMelody Olvera };
5141f51339fSMelody Olvera
5151f51339fSMelody Olvera static struct qcom_icc_node qhs_pimem_cfg = {
5161f51339fSMelody Olvera .name = "qhs_pimem_cfg",
5171f51339fSMelody Olvera .id = QDU1000_SLAVE_PIMEM_CFG,
5181f51339fSMelody Olvera .channels = 1,
5191f51339fSMelody Olvera .buswidth = 4,
5201f51339fSMelody Olvera .num_links = 0,
5211f51339fSMelody Olvera };
5221f51339fSMelody Olvera
5231f51339fSMelody Olvera static struct qcom_icc_node qhs_prng = {
5241f51339fSMelody Olvera .name = "qhs_prng",
5251f51339fSMelody Olvera .id = QDU1000_SLAVE_PRNG,
5261f51339fSMelody Olvera .channels = 1,
5271f51339fSMelody Olvera .buswidth = 4,
5281f51339fSMelody Olvera .num_links = 0,
5291f51339fSMelody Olvera };
5301f51339fSMelody Olvera
5311f51339fSMelody Olvera static struct qcom_icc_node qhs_qdss_cfg = {
5321f51339fSMelody Olvera .name = "qhs_qdss_cfg",
5331f51339fSMelody Olvera .id = QDU1000_SLAVE_QDSS_CFG,
5341f51339fSMelody Olvera .channels = 1,
5351f51339fSMelody Olvera .buswidth = 4,
5361f51339fSMelody Olvera .num_links = 0,
5371f51339fSMelody Olvera };
5381f51339fSMelody Olvera
5391f51339fSMelody Olvera static struct qcom_icc_node qhs_qpic = {
5401f51339fSMelody Olvera .name = "qhs_qpic",
5411f51339fSMelody Olvera .id = QDU1000_SLAVE_QPIC,
5421f51339fSMelody Olvera .channels = 1,
5431f51339fSMelody Olvera .buswidth = 4,
5441f51339fSMelody Olvera .num_links = 0,
5451f51339fSMelody Olvera };
5461f51339fSMelody Olvera
5471f51339fSMelody Olvera static struct qcom_icc_node qhs_qspi = {
5481f51339fSMelody Olvera .name = "qhs_qspi",
5491f51339fSMelody Olvera .id = QDU1000_SLAVE_QSPI_0,
5501f51339fSMelody Olvera .channels = 1,
5511f51339fSMelody Olvera .buswidth = 4,
5521f51339fSMelody Olvera .num_links = 0,
5531f51339fSMelody Olvera };
5541f51339fSMelody Olvera
5551f51339fSMelody Olvera static struct qcom_icc_node qhs_qup0 = {
5561f51339fSMelody Olvera .name = "qhs_qup0",
5571f51339fSMelody Olvera .id = QDU1000_SLAVE_QUP_0,
5581f51339fSMelody Olvera .channels = 1,
5591f51339fSMelody Olvera .buswidth = 4,
5601f51339fSMelody Olvera .num_links = 0,
5611f51339fSMelody Olvera };
5621f51339fSMelody Olvera
5631f51339fSMelody Olvera static struct qcom_icc_node qhs_qup1 = {
5641f51339fSMelody Olvera .name = "qhs_qup1",
5651f51339fSMelody Olvera .id = QDU1000_SLAVE_QUP_1,
5661f51339fSMelody Olvera .channels = 1,
5671f51339fSMelody Olvera .buswidth = 4,
5681f51339fSMelody Olvera .num_links = 0,
5691f51339fSMelody Olvera };
5701f51339fSMelody Olvera
5711f51339fSMelody Olvera static struct qcom_icc_node qhs_sdc2 = {
5721f51339fSMelody Olvera .name = "qhs_sdc2",
5731f51339fSMelody Olvera .id = QDU1000_SLAVE_SDCC_2,
5741f51339fSMelody Olvera .channels = 1,
5751f51339fSMelody Olvera .buswidth = 4,
5761f51339fSMelody Olvera .num_links = 0,
5771f51339fSMelody Olvera };
5781f51339fSMelody Olvera
5791f51339fSMelody Olvera static struct qcom_icc_node qhs_smbus_cfg = {
5801f51339fSMelody Olvera .name = "qhs_smbus_cfg",
5811f51339fSMelody Olvera .id = QDU1000_SLAVE_SMBUS_CFG,
5821f51339fSMelody Olvera .channels = 1,
5831f51339fSMelody Olvera .buswidth = 4,
5841f51339fSMelody Olvera .num_links = 0,
5851f51339fSMelody Olvera };
5861f51339fSMelody Olvera
5871f51339fSMelody Olvera static struct qcom_icc_node qhs_system_noc_cfg = {
5881f51339fSMelody Olvera .name = "qhs_system_noc_cfg",
5891f51339fSMelody Olvera .id = QDU1000_SLAVE_SNOC_CFG,
5901f51339fSMelody Olvera .channels = 1,
5911f51339fSMelody Olvera .buswidth = 4,
5921f51339fSMelody Olvera .num_links = 1,
5931f51339fSMelody Olvera .links = { QDU1000_MASTER_SNOC_CFG },
5941f51339fSMelody Olvera };
5951f51339fSMelody Olvera
5961f51339fSMelody Olvera static struct qcom_icc_node qhs_tcsr = {
5971f51339fSMelody Olvera .name = "qhs_tcsr",
5981f51339fSMelody Olvera .id = QDU1000_SLAVE_TCSR,
5991f51339fSMelody Olvera .channels = 1,
6001f51339fSMelody Olvera .buswidth = 4,
6011f51339fSMelody Olvera .num_links = 0,
6021f51339fSMelody Olvera };
6031f51339fSMelody Olvera
6041f51339fSMelody Olvera static struct qcom_icc_node qhs_tlmm = {
6051f51339fSMelody Olvera .name = "qhs_tlmm",
6061f51339fSMelody Olvera .id = QDU1000_SLAVE_TLMM,
6071f51339fSMelody Olvera .channels = 1,
6081f51339fSMelody Olvera .buswidth = 4,
6091f51339fSMelody Olvera .num_links = 0,
6101f51339fSMelody Olvera };
6111f51339fSMelody Olvera
6121f51339fSMelody Olvera static struct qcom_icc_node qhs_tme_cfg = {
6131f51339fSMelody Olvera .name = "qhs_tme_cfg",
6141f51339fSMelody Olvera .id = QDU1000_SLAVE_TME_CFG,
6151f51339fSMelody Olvera .channels = 1,
6161f51339fSMelody Olvera .buswidth = 4,
6171f51339fSMelody Olvera .num_links = 0,
6181f51339fSMelody Olvera };
6191f51339fSMelody Olvera
6201f51339fSMelody Olvera static struct qcom_icc_node qhs_tsc_cfg = {
6211f51339fSMelody Olvera .name = "qhs_tsc_cfg",
6221f51339fSMelody Olvera .id = QDU1000_SLAVE_TSC_CFG,
6231f51339fSMelody Olvera .channels = 1,
6241f51339fSMelody Olvera .buswidth = 4,
6251f51339fSMelody Olvera .num_links = 0,
6261f51339fSMelody Olvera };
6271f51339fSMelody Olvera
6281f51339fSMelody Olvera static struct qcom_icc_node qhs_usb3 = {
6291f51339fSMelody Olvera .name = "qhs_usb3",
6301f51339fSMelody Olvera .id = QDU1000_SLAVE_USB3_0,
6311f51339fSMelody Olvera .channels = 1,
6321f51339fSMelody Olvera .buswidth = 4,
6331f51339fSMelody Olvera .num_links = 0,
6341f51339fSMelody Olvera };
6351f51339fSMelody Olvera
6361f51339fSMelody Olvera static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
6371f51339fSMelody Olvera .name = "qhs_vsense_ctrl_cfg",
6381f51339fSMelody Olvera .id = QDU1000_SLAVE_VSENSE_CTRL_CFG,
6391f51339fSMelody Olvera .channels = 1,
6401f51339fSMelody Olvera .buswidth = 4,
6411f51339fSMelody Olvera .num_links = 0,
6421f51339fSMelody Olvera };
6431f51339fSMelody Olvera
6441f51339fSMelody Olvera static struct qcom_icc_node qns_a1noc_snoc = {
6451f51339fSMelody Olvera .name = "qns_a1noc_snoc",
6461f51339fSMelody Olvera .id = QDU1000_SLAVE_A1NOC_SNOC,
6471f51339fSMelody Olvera .channels = 1,
6481f51339fSMelody Olvera .buswidth = 8,
6491f51339fSMelody Olvera .num_links = 1,
6501f51339fSMelody Olvera .links = { QDU1000_MASTER_ANOC_SNOC },
6511f51339fSMelody Olvera };
6521f51339fSMelody Olvera
6531f51339fSMelody Olvera static struct qcom_icc_node qns_anoc_snoc_gsi = {
6541f51339fSMelody Olvera .name = "qns_anoc_snoc_gsi",
6551f51339fSMelody Olvera .id = QDU1000_SLAVE_ANOC_SNOC_GSI,
6561f51339fSMelody Olvera .channels = 1,
6571f51339fSMelody Olvera .buswidth = 8,
6581f51339fSMelody Olvera .num_links = 1,
6591f51339fSMelody Olvera .links = { QDU1000_MASTER_ANOC_GSI },
6601f51339fSMelody Olvera };
6611f51339fSMelody Olvera
6621f51339fSMelody Olvera static struct qcom_icc_node qns_ddrss_cfg = {
6631f51339fSMelody Olvera .name = "qns_ddrss_cfg",
6641f51339fSMelody Olvera .id = QDU1000_SLAVE_DDRSS_CFG,
6651f51339fSMelody Olvera .channels = 1,
6661f51339fSMelody Olvera .buswidth = 4,
6671f51339fSMelody Olvera .num_links = 0,
6681f51339fSMelody Olvera };
6691f51339fSMelody Olvera
6701f51339fSMelody Olvera static struct qcom_icc_node qns_ecpri_gemnoc = {
6711f51339fSMelody Olvera .name = "qns_ecpri_gemnoc",
6721f51339fSMelody Olvera .id = QDU1000_SLAVE_ECPRI_GEMNOC,
6731f51339fSMelody Olvera .channels = 2,
6741f51339fSMelody Olvera .buswidth = 32,
6751f51339fSMelody Olvera .num_links = 1,
6761f51339fSMelody Olvera .links = { QDU1000_MASTER_GEMNOC_ECPRI_DMA },
6771f51339fSMelody Olvera };
6781f51339fSMelody Olvera
6791f51339fSMelody Olvera static struct qcom_icc_node qns_gemnoc_gc = {
6801f51339fSMelody Olvera .name = "qns_gemnoc_gc",
6811f51339fSMelody Olvera .id = QDU1000_SLAVE_SNOC_GEM_NOC_GC,
6821f51339fSMelody Olvera .channels = 1,
6831f51339fSMelody Olvera .buswidth = 8,
6841f51339fSMelody Olvera .num_links = 1,
6851f51339fSMelody Olvera .links = { QDU1000_MASTER_SNOC_GC_MEM_NOC },
6861f51339fSMelody Olvera };
6871f51339fSMelody Olvera
6881f51339fSMelody Olvera static struct qcom_icc_node qns_gemnoc_sf = {
6891f51339fSMelody Olvera .name = "qns_gemnoc_sf",
6901f51339fSMelody Olvera .id = QDU1000_SLAVE_SNOC_GEM_NOC_SF,
6911f51339fSMelody Olvera .channels = 1,
6921f51339fSMelody Olvera .buswidth = 16,
6931f51339fSMelody Olvera .num_links = 1,
6941f51339fSMelody Olvera .links = { QDU1000_MASTER_SNOC_SF_MEM_NOC },
6951f51339fSMelody Olvera };
6961f51339fSMelody Olvera
6971f51339fSMelody Olvera static struct qcom_icc_node qns_modem = {
6981f51339fSMelody Olvera .name = "qns_modem",
6991f51339fSMelody Olvera .id = QDU1000_SLAVE_MODEM_OFFLINE,
7001f51339fSMelody Olvera .channels = 1,
7011f51339fSMelody Olvera .buswidth = 32,
7021f51339fSMelody Olvera .num_links = 0,
7031f51339fSMelody Olvera };
7041f51339fSMelody Olvera
7051f51339fSMelody Olvera static struct qcom_icc_node qns_pcie_gemnoc = {
7061f51339fSMelody Olvera .name = "qns_pcie_gemnoc",
7071f51339fSMelody Olvera .id = QDU1000_SLAVE_ANOC_PCIE_GEM_NOC,
7081f51339fSMelody Olvera .channels = 1,
7091f51339fSMelody Olvera .buswidth = 64,
7101f51339fSMelody Olvera .num_links = 1,
7111f51339fSMelody Olvera .links = { QDU1000_MASTER_ANOC_PCIE_GEM_NOC },
7121f51339fSMelody Olvera };
7131f51339fSMelody Olvera
7141f51339fSMelody Olvera static struct qcom_icc_node qxs_imem = {
7151f51339fSMelody Olvera .name = "qxs_imem",
7161f51339fSMelody Olvera .id = QDU1000_SLAVE_IMEM,
7171f51339fSMelody Olvera .channels = 1,
7181f51339fSMelody Olvera .buswidth = 8,
7191f51339fSMelody Olvera .num_links = 0,
7201f51339fSMelody Olvera };
7211f51339fSMelody Olvera
7221f51339fSMelody Olvera static struct qcom_icc_node qxs_pimem = {
7231f51339fSMelody Olvera .name = "qxs_pimem",
7241f51339fSMelody Olvera .id = QDU1000_SLAVE_PIMEM,
7251f51339fSMelody Olvera .channels = 1,
7261f51339fSMelody Olvera .buswidth = 8,
7271f51339fSMelody Olvera .num_links = 0,
7281f51339fSMelody Olvera };
7291f51339fSMelody Olvera
7301f51339fSMelody Olvera static struct qcom_icc_node srvc_system_noc = {
7311f51339fSMelody Olvera .name = "srvc_system_noc",
7321f51339fSMelody Olvera .id = QDU1000_SLAVE_SERVICE_SNOC,
7331f51339fSMelody Olvera .channels = 1,
7341f51339fSMelody Olvera .buswidth = 4,
7351f51339fSMelody Olvera .num_links = 0,
7361f51339fSMelody Olvera };
7371f51339fSMelody Olvera
7381f51339fSMelody Olvera static struct qcom_icc_node xs_ethernet_ss = {
7391f51339fSMelody Olvera .name = "xs_ethernet_ss",
7401f51339fSMelody Olvera .id = QDU1000_SLAVE_ETHERNET_SS,
7411f51339fSMelody Olvera .channels = 1,
7421f51339fSMelody Olvera .buswidth = 32,
7431f51339fSMelody Olvera .num_links = 0,
7441f51339fSMelody Olvera };
7451f51339fSMelody Olvera
7461f51339fSMelody Olvera static struct qcom_icc_node xs_pcie = {
7471f51339fSMelody Olvera .name = "xs_pcie",
7481f51339fSMelody Olvera .id = QDU1000_SLAVE_PCIE_0,
7491f51339fSMelody Olvera .channels = 1,
7501f51339fSMelody Olvera .buswidth = 64,
7511f51339fSMelody Olvera .num_links = 0,
7521f51339fSMelody Olvera };
7531f51339fSMelody Olvera
7541f51339fSMelody Olvera static struct qcom_icc_node xs_qdss_stm = {
7551f51339fSMelody Olvera .name = "xs_qdss_stm",
7561f51339fSMelody Olvera .id = QDU1000_SLAVE_QDSS_STM,
7571f51339fSMelody Olvera .channels = 1,
7581f51339fSMelody Olvera .buswidth = 4,
7591f51339fSMelody Olvera .num_links = 0,
7601f51339fSMelody Olvera };
7611f51339fSMelody Olvera
7621f51339fSMelody Olvera static struct qcom_icc_node xs_sys_tcu_cfg = {
7631f51339fSMelody Olvera .name = "xs_sys_tcu_cfg",
7641f51339fSMelody Olvera .id = QDU1000_SLAVE_TCU,
7651f51339fSMelody Olvera .channels = 1,
7661f51339fSMelody Olvera .buswidth = 8,
7671f51339fSMelody Olvera .num_links = 0,
7681f51339fSMelody Olvera };
7691f51339fSMelody Olvera
7701f51339fSMelody Olvera static struct qcom_icc_bcm bcm_acv = {
7711f51339fSMelody Olvera .name = "ACV",
772*41936dddSKonrad Dybcio .enable_mask = BIT(3),
7731f51339fSMelody Olvera .num_nodes = 1,
7741f51339fSMelody Olvera .nodes = { &ebi },
7751f51339fSMelody Olvera };
7761f51339fSMelody Olvera
7771f51339fSMelody Olvera static struct qcom_icc_bcm bcm_ce0 = {
7781f51339fSMelody Olvera .name = "CE0",
7791f51339fSMelody Olvera .num_nodes = 1,
7801f51339fSMelody Olvera .nodes = { &qxm_crypto },
7811f51339fSMelody Olvera };
7821f51339fSMelody Olvera
7831f51339fSMelody Olvera static struct qcom_icc_bcm bcm_cn0 = {
7841f51339fSMelody Olvera .name = "CN0",
7851f51339fSMelody Olvera .num_nodes = 44,
7861f51339fSMelody Olvera .nodes = { &qhm_qpic, &qhm_qspi,
7871f51339fSMelody Olvera &qnm_gemnoc_cnoc, &qnm_gemnoc_modem_slave,
7881f51339fSMelody Olvera &qnm_gemnoc_pcie, &xm_sdc,
7891f51339fSMelody Olvera &xm_usb3, &qhs_ahb2phy0_south,
7901f51339fSMelody Olvera &qhs_ahb2phy1_north, &qhs_ahb2phy2_east,
7911f51339fSMelody Olvera &qhs_aoss, &qhs_clk_ctl,
7921f51339fSMelody Olvera &qhs_cpr_cx, &qhs_cpr_mx,
7931f51339fSMelody Olvera &qhs_crypto_cfg, &qhs_ecpri_cfg,
7941f51339fSMelody Olvera &qhs_imem_cfg, &qhs_ipc_router,
7951f51339fSMelody Olvera &qhs_mss_cfg, &qhs_pcie_cfg,
7961f51339fSMelody Olvera &qhs_pdm, &qhs_pimem_cfg,
7971f51339fSMelody Olvera &qhs_prng, &qhs_qdss_cfg,
7981f51339fSMelody Olvera &qhs_qpic, &qhs_qspi,
7991f51339fSMelody Olvera &qhs_qup0, &qhs_qup1,
8001f51339fSMelody Olvera &qhs_sdc2, &qhs_smbus_cfg,
8011f51339fSMelody Olvera &qhs_system_noc_cfg, &qhs_tcsr,
8021f51339fSMelody Olvera &qhs_tlmm, &qhs_tme_cfg,
8031f51339fSMelody Olvera &qhs_tsc_cfg, &qhs_usb3,
8041f51339fSMelody Olvera &qhs_vsense_ctrl_cfg, &qns_ddrss_cfg,
8051f51339fSMelody Olvera &qns_modem, &qxs_imem,
8061f51339fSMelody Olvera &qxs_pimem, &xs_ethernet_ss,
8071f51339fSMelody Olvera &xs_qdss_stm, &xs_sys_tcu_cfg
8081f51339fSMelody Olvera },
8091f51339fSMelody Olvera };
8101f51339fSMelody Olvera
8111f51339fSMelody Olvera static struct qcom_icc_bcm bcm_mc0 = {
8121f51339fSMelody Olvera .name = "MC0",
8131f51339fSMelody Olvera .num_nodes = 1,
8141f51339fSMelody Olvera .nodes = { &ebi },
8151f51339fSMelody Olvera };
8161f51339fSMelody Olvera
8171f51339fSMelody Olvera static struct qcom_icc_bcm bcm_qup0 = {
8181f51339fSMelody Olvera .name = "QUP0",
8191f51339fSMelody Olvera .num_nodes = 2,
8201f51339fSMelody Olvera .nodes = { &qup0_core_slave, &qup1_core_slave },
8211f51339fSMelody Olvera };
8221f51339fSMelody Olvera
8231f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sh0 = {
8241f51339fSMelody Olvera .name = "SH0",
8251f51339fSMelody Olvera .num_nodes = 1,
8261f51339fSMelody Olvera .nodes = { &qns_llcc },
8271f51339fSMelody Olvera };
8281f51339fSMelody Olvera
8291f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sh1 = {
8301f51339fSMelody Olvera .name = "SH1",
8311f51339fSMelody Olvera .num_nodes = 11,
8321f51339fSMelody Olvera .nodes = { &alm_sys_tcu, &chm_apps,
8331f51339fSMelody Olvera &qnm_ecpri_dma, &qnm_fec_2_gemnoc,
8341f51339fSMelody Olvera &qnm_pcie, &qnm_snoc_gc,
8351f51339fSMelody Olvera &qnm_snoc_sf, &qxm_mdsp,
8361f51339fSMelody Olvera &qns_gem_noc_cnoc, &qns_modem_slave,
8371f51339fSMelody Olvera &qns_pcie
8381f51339fSMelody Olvera },
8391f51339fSMelody Olvera };
8401f51339fSMelody Olvera
8411f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sn0 = {
8421f51339fSMelody Olvera .name = "SN0",
8431f51339fSMelody Olvera .num_nodes = 1,
8441f51339fSMelody Olvera .nodes = { &qns_gemnoc_sf },
8451f51339fSMelody Olvera };
8461f51339fSMelody Olvera
8471f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sn1 = {
8481f51339fSMelody Olvera .name = "SN1",
8491f51339fSMelody Olvera .num_nodes = 6,
8501f51339fSMelody Olvera .nodes = { &qhm_gic, &qxm_pimem,
8511f51339fSMelody Olvera &xm_gic, &xm_qdss_etr0,
8521f51339fSMelody Olvera &xm_qdss_etr1, &qns_gemnoc_gc
8531f51339fSMelody Olvera },
8541f51339fSMelody Olvera };
8551f51339fSMelody Olvera
8561f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sn2 = {
8571f51339fSMelody Olvera .name = "SN2",
8581f51339fSMelody Olvera .num_nodes = 5,
8591f51339fSMelody Olvera .nodes = { &qnm_aggre_noc, &qxm_ecpri_gsi,
8601f51339fSMelody Olvera &xm_ecpri_dma, &qns_anoc_snoc_gsi,
8611f51339fSMelody Olvera &qns_ecpri_gemnoc
8621f51339fSMelody Olvera },
8631f51339fSMelody Olvera };
8641f51339fSMelody Olvera
8651f51339fSMelody Olvera static struct qcom_icc_bcm bcm_sn7 = {
8661f51339fSMelody Olvera .name = "SN7",
8671f51339fSMelody Olvera .num_nodes = 2,
8681f51339fSMelody Olvera .nodes = { &qns_pcie_gemnoc, &xs_pcie },
8691f51339fSMelody Olvera };
8701f51339fSMelody Olvera
8711f51339fSMelody Olvera static struct qcom_icc_bcm * const clk_virt_bcms[] = {
8721f51339fSMelody Olvera &bcm_qup0,
8731f51339fSMelody Olvera };
8741f51339fSMelody Olvera
8751f51339fSMelody Olvera static struct qcom_icc_node * const clk_virt_nodes[] = {
8761f51339fSMelody Olvera [MASTER_QUP_CORE_0] = &qup0_core_master,
8771f51339fSMelody Olvera [MASTER_QUP_CORE_1] = &qup1_core_master,
8781f51339fSMelody Olvera [SLAVE_QUP_CORE_0] = &qup0_core_slave,
8791f51339fSMelody Olvera [SLAVE_QUP_CORE_1] = &qup1_core_slave,
8801f51339fSMelody Olvera };
8811f51339fSMelody Olvera
8821f51339fSMelody Olvera static const struct qcom_icc_desc qdu1000_clk_virt = {
8831f51339fSMelody Olvera .nodes = clk_virt_nodes,
8841f51339fSMelody Olvera .num_nodes = ARRAY_SIZE(clk_virt_nodes),
8851f51339fSMelody Olvera .bcms = clk_virt_bcms,
8861f51339fSMelody Olvera .num_bcms = ARRAY_SIZE(clk_virt_bcms),
8871f51339fSMelody Olvera };
8881f51339fSMelody Olvera
8891f51339fSMelody Olvera static struct qcom_icc_bcm * const gem_noc_bcms[] = {
8901f51339fSMelody Olvera &bcm_sh0,
8911f51339fSMelody Olvera &bcm_sh1,
8921f51339fSMelody Olvera };
8931f51339fSMelody Olvera
8941f51339fSMelody Olvera static struct qcom_icc_node * const gem_noc_nodes[] = {
8951f51339fSMelody Olvera [MASTER_SYS_TCU] = &alm_sys_tcu,
8961f51339fSMelody Olvera [MASTER_APPSS_PROC] = &chm_apps,
8971f51339fSMelody Olvera [MASTER_GEMNOC_ECPRI_DMA] = &qnm_ecpri_dma,
8981f51339fSMelody Olvera [MASTER_FEC_2_GEMNOC] = &qnm_fec_2_gemnoc,
8991f51339fSMelody Olvera [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
9001f51339fSMelody Olvera [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
9011f51339fSMelody Olvera [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
9021f51339fSMelody Olvera [MASTER_MSS_PROC] = &qxm_mdsp,
9031f51339fSMelody Olvera [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
9041f51339fSMelody Olvera [SLAVE_LLCC] = &qns_llcc,
9051f51339fSMelody Olvera [SLAVE_GEMNOC_MODEM_CNOC] = &qns_modem_slave,
9061f51339fSMelody Olvera [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
9071f51339fSMelody Olvera };
9081f51339fSMelody Olvera
9091f51339fSMelody Olvera static const struct qcom_icc_desc qdu1000_gem_noc = {
9101f51339fSMelody Olvera .nodes = gem_noc_nodes,
9111f51339fSMelody Olvera .num_nodes = ARRAY_SIZE(gem_noc_nodes),
9121f51339fSMelody Olvera .bcms = gem_noc_bcms,
9131f51339fSMelody Olvera .num_bcms = ARRAY_SIZE(gem_noc_bcms),
9141f51339fSMelody Olvera };
9151f51339fSMelody Olvera
9161f51339fSMelody Olvera static struct qcom_icc_bcm * const mc_virt_bcms[] = {
9171f51339fSMelody Olvera &bcm_acv,
9181f51339fSMelody Olvera &bcm_mc0,
9191f51339fSMelody Olvera };
9201f51339fSMelody Olvera
9211f51339fSMelody Olvera static struct qcom_icc_node * const mc_virt_nodes[] = {
9221f51339fSMelody Olvera [MASTER_LLCC] = &llcc_mc,
9231f51339fSMelody Olvera [SLAVE_EBI1] = &ebi,
9241f51339fSMelody Olvera };
9251f51339fSMelody Olvera
9261f51339fSMelody Olvera static const struct qcom_icc_desc qdu1000_mc_virt = {
9271f51339fSMelody Olvera .nodes = mc_virt_nodes,
9281f51339fSMelody Olvera .num_nodes = ARRAY_SIZE(mc_virt_nodes),
9291f51339fSMelody Olvera .bcms = mc_virt_bcms,
9301f51339fSMelody Olvera .num_bcms = ARRAY_SIZE(mc_virt_bcms),
9311f51339fSMelody Olvera };
9321f51339fSMelody Olvera
9331f51339fSMelody Olvera static struct qcom_icc_bcm * const system_noc_bcms[] = {
9341f51339fSMelody Olvera &bcm_ce0,
9351f51339fSMelody Olvera &bcm_cn0,
9361f51339fSMelody Olvera &bcm_sn0,
9371f51339fSMelody Olvera &bcm_sn1,
9381f51339fSMelody Olvera &bcm_sn2,
9391f51339fSMelody Olvera &bcm_sn7,
9401f51339fSMelody Olvera };
9411f51339fSMelody Olvera
9421f51339fSMelody Olvera static struct qcom_icc_node * const system_noc_nodes[] = {
9431f51339fSMelody Olvera [MASTER_GIC_AHB] = &qhm_gic,
9441f51339fSMelody Olvera [MASTER_QDSS_BAM] = &qhm_qdss_bam,
9451f51339fSMelody Olvera [MASTER_QPIC] = &qhm_qpic,
9461f51339fSMelody Olvera [MASTER_QSPI_0] = &qhm_qspi,
9471f51339fSMelody Olvera [MASTER_QUP_0] = &qhm_qup0,
9481f51339fSMelody Olvera [MASTER_QUP_1] = &qhm_qup1,
9491f51339fSMelody Olvera [MASTER_SNOC_CFG] = &qhm_system_noc_cfg,
9501f51339fSMelody Olvera [MASTER_ANOC_SNOC] = &qnm_aggre_noc,
9511f51339fSMelody Olvera [MASTER_ANOC_GSI] = &qnm_aggre_noc_gsi,
9521f51339fSMelody Olvera [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
9531f51339fSMelody Olvera [MASTER_GEMNOC_MODEM_CNOC] = &qnm_gemnoc_modem_slave,
9541f51339fSMelody Olvera [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
9551f51339fSMelody Olvera [MASTER_CRYPTO] = &qxm_crypto,
9561f51339fSMelody Olvera [MASTER_ECPRI_GSI] = &qxm_ecpri_gsi,
9571f51339fSMelody Olvera [MASTER_PIMEM] = &qxm_pimem,
9581f51339fSMelody Olvera [MASTER_SNOC_ECPRI_DMA] = &xm_ecpri_dma,
9591f51339fSMelody Olvera [MASTER_GIC] = &xm_gic,
9601f51339fSMelody Olvera [MASTER_PCIE] = &xm_pcie,
9611f51339fSMelody Olvera [MASTER_QDSS_ETR] = &xm_qdss_etr0,
9621f51339fSMelody Olvera [MASTER_QDSS_ETR_1] = &xm_qdss_etr1,
9631f51339fSMelody Olvera [MASTER_SDCC_1] = &xm_sdc,
9641f51339fSMelody Olvera [MASTER_USB3] = &xm_usb3,
9651f51339fSMelody Olvera [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0_south,
9661f51339fSMelody Olvera [SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1_north,
9671f51339fSMelody Olvera [SLAVE_AHB2PHY_EAST] = &qhs_ahb2phy2_east,
9681f51339fSMelody Olvera [SLAVE_AOSS] = &qhs_aoss,
9691f51339fSMelody Olvera [SLAVE_CLK_CTL] = &qhs_clk_ctl,
9701f51339fSMelody Olvera [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
9711f51339fSMelody Olvera [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx,
9721f51339fSMelody Olvera [SLAVE_CRYPTO_0_CFG] = &qhs_crypto_cfg,
9731f51339fSMelody Olvera [SLAVE_ECPRI_CFG] = &qhs_ecpri_cfg,
9741f51339fSMelody Olvera [SLAVE_IMEM_CFG] = &qhs_imem_cfg,
9751f51339fSMelody Olvera [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
9761f51339fSMelody Olvera [SLAVE_CNOC_MSS] = &qhs_mss_cfg,
9771f51339fSMelody Olvera [SLAVE_PCIE_CFG] = &qhs_pcie_cfg,
9781f51339fSMelody Olvera [SLAVE_PDM] = &qhs_pdm,
9791f51339fSMelody Olvera [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
9801f51339fSMelody Olvera [SLAVE_PRNG] = &qhs_prng,
9811f51339fSMelody Olvera [SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
9821f51339fSMelody Olvera [SLAVE_QPIC] = &qhs_qpic,
9831f51339fSMelody Olvera [SLAVE_QSPI_0] = &qhs_qspi,
9841f51339fSMelody Olvera [SLAVE_QUP_0] = &qhs_qup0,
9851f51339fSMelody Olvera [SLAVE_QUP_1] = &qhs_qup1,
9861f51339fSMelody Olvera [SLAVE_SDCC_2] = &qhs_sdc2,
9871f51339fSMelody Olvera [SLAVE_SMBUS_CFG] = &qhs_smbus_cfg,
9881f51339fSMelody Olvera [SLAVE_SNOC_CFG] = &qhs_system_noc_cfg,
9891f51339fSMelody Olvera [SLAVE_TCSR] = &qhs_tcsr,
9901f51339fSMelody Olvera [SLAVE_TLMM] = &qhs_tlmm,
9911f51339fSMelody Olvera [SLAVE_TME_CFG] = &qhs_tme_cfg,
9921f51339fSMelody Olvera [SLAVE_TSC_CFG] = &qhs_tsc_cfg,
9931f51339fSMelody Olvera [SLAVE_USB3_0] = &qhs_usb3,
9941f51339fSMelody Olvera [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
9951f51339fSMelody Olvera [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
9961f51339fSMelody Olvera [SLAVE_ANOC_SNOC_GSI] = &qns_anoc_snoc_gsi,
9971f51339fSMelody Olvera [SLAVE_DDRSS_CFG] = &qns_ddrss_cfg,
9981f51339fSMelody Olvera [SLAVE_ECPRI_GEMNOC] = &qns_ecpri_gemnoc,
9991f51339fSMelody Olvera [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
10001f51339fSMelody Olvera [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
10011f51339fSMelody Olvera [SLAVE_MODEM_OFFLINE] = &qns_modem,
10021f51339fSMelody Olvera [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc,
10031f51339fSMelody Olvera [SLAVE_IMEM] = &qxs_imem,
10041f51339fSMelody Olvera [SLAVE_PIMEM] = &qxs_pimem,
10051f51339fSMelody Olvera [SLAVE_SERVICE_SNOC] = &srvc_system_noc,
10061f51339fSMelody Olvera [SLAVE_ETHERNET_SS] = &xs_ethernet_ss,
10071f51339fSMelody Olvera [SLAVE_PCIE_0] = &xs_pcie,
10081f51339fSMelody Olvera [SLAVE_QDSS_STM] = &xs_qdss_stm,
10091f51339fSMelody Olvera [SLAVE_TCU] = &xs_sys_tcu_cfg,
10101f51339fSMelody Olvera };
10111f51339fSMelody Olvera
10121f51339fSMelody Olvera static const struct qcom_icc_desc qdu1000_system_noc = {
10131f51339fSMelody Olvera .nodes = system_noc_nodes,
10141f51339fSMelody Olvera .num_nodes = ARRAY_SIZE(system_noc_nodes),
10151f51339fSMelody Olvera .bcms = system_noc_bcms,
10161f51339fSMelody Olvera .num_bcms = ARRAY_SIZE(system_noc_bcms),
10171f51339fSMelody Olvera };
10181f51339fSMelody Olvera
qnoc_probe(struct platform_device * pdev)10191f51339fSMelody Olvera static int qnoc_probe(struct platform_device *pdev)
10201f51339fSMelody Olvera {
10211f51339fSMelody Olvera int ret;
10221f51339fSMelody Olvera
10231f51339fSMelody Olvera ret = qcom_icc_rpmh_probe(pdev);
10241f51339fSMelody Olvera if (ret)
10251f51339fSMelody Olvera dev_err(&pdev->dev, "failed to register ICC provider\n");
10261f51339fSMelody Olvera
10271f51339fSMelody Olvera return ret;
10281f51339fSMelody Olvera }
10291f51339fSMelody Olvera
10301f51339fSMelody Olvera static const struct of_device_id qnoc_of_match[] = {
10311f51339fSMelody Olvera { .compatible = "qcom,qdu1000-clk-virt",
10321f51339fSMelody Olvera .data = &qdu1000_clk_virt
10331f51339fSMelody Olvera },
10341f51339fSMelody Olvera { .compatible = "qcom,qdu1000-gem-noc",
10351f51339fSMelody Olvera .data = &qdu1000_gem_noc
10361f51339fSMelody Olvera },
10371f51339fSMelody Olvera { .compatible = "qcom,qdu1000-mc-virt",
10381f51339fSMelody Olvera .data = &qdu1000_mc_virt
10391f51339fSMelody Olvera },
10401f51339fSMelody Olvera { .compatible = "qcom,qdu1000-system-noc",
10411f51339fSMelody Olvera .data = &qdu1000_system_noc
10421f51339fSMelody Olvera },
10431f51339fSMelody Olvera { }
10441f51339fSMelody Olvera };
10451f51339fSMelody Olvera MODULE_DEVICE_TABLE(of, qnoc_of_match);
10461f51339fSMelody Olvera
10471f51339fSMelody Olvera static struct platform_driver qnoc_driver = {
10481f51339fSMelody Olvera .probe = qnoc_probe,
10491f51339fSMelody Olvera .remove = qcom_icc_rpmh_remove,
10501f51339fSMelody Olvera .driver = {
10511f51339fSMelody Olvera .name = "qnoc-qdu1000",
10521f51339fSMelody Olvera .of_match_table = qnoc_of_match,
10531f51339fSMelody Olvera },
10541f51339fSMelody Olvera };
10551f51339fSMelody Olvera
qnoc_driver_init(void)10561f51339fSMelody Olvera static int __init qnoc_driver_init(void)
10571f51339fSMelody Olvera {
10581f51339fSMelody Olvera return platform_driver_register(&qnoc_driver);
10591f51339fSMelody Olvera }
10601f51339fSMelody Olvera core_initcall(qnoc_driver_init);
10611f51339fSMelody Olvera
qnoc_driver_exit(void)10621f51339fSMelody Olvera static void __exit qnoc_driver_exit(void)
10631f51339fSMelody Olvera {
10641f51339fSMelody Olvera platform_driver_unregister(&qnoc_driver);
10651f51339fSMelody Olvera }
10661f51339fSMelody Olvera module_exit(qnoc_driver_exit);
10671f51339fSMelody Olvera
10681f51339fSMelody Olvera MODULE_DESCRIPTION("QDU1000 NoC driver");
10691f51339fSMelody Olvera MODULE_LICENSE("GPL");
1070