1f80a1d41SAngeloGioacchino Del Regno // SPDX-License-Identifier: GPL-2.0 2f80a1d41SAngeloGioacchino Del Regno /* 3f80a1d41SAngeloGioacchino Del Regno * Qualcomm SDM630/SDM636/SDM660 Network-on-Chip (NoC) QoS driver 4f80a1d41SAngeloGioacchino Del Regno * Copyright (C) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com> 5f80a1d41SAngeloGioacchino Del Regno */ 6f80a1d41SAngeloGioacchino Del Regno 7f80a1d41SAngeloGioacchino Del Regno #include <dt-bindings/interconnect/qcom,sdm660.h> 8f80a1d41SAngeloGioacchino Del Regno #include <linux/device.h> 9f80a1d41SAngeloGioacchino Del Regno #include <linux/interconnect-provider.h> 10f80a1d41SAngeloGioacchino Del Regno #include <linux/io.h> 11*cff66aceSRob Herring #include <linux/mod_devicetable.h> 12f80a1d41SAngeloGioacchino Del Regno #include <linux/module.h> 13f80a1d41SAngeloGioacchino Del Regno #include <linux/platform_device.h> 14f80a1d41SAngeloGioacchino Del Regno #include <linux/regmap.h> 15f80a1d41SAngeloGioacchino Del Regno #include <linux/slab.h> 16f80a1d41SAngeloGioacchino Del Regno 172b6c7d64SDmitry Baryshkov #include "icc-rpm.h" 18f80a1d41SAngeloGioacchino Del Regno 19f80a1d41SAngeloGioacchino Del Regno enum { 20f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_IPA = 1, 21f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_CNOC_A2NOC, 22f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_SDCC_1, 23f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_SDCC_2, 24f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_BLSP_1, 25f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_BLSP_2, 26f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_UFS, 27f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_USB_HS, 28f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_USB3, 29f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_CRYPTO_C0, 30f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_GNOC_BIMC, 31f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_OXILI, 32f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_MNOC_BIMC, 33f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_SNOC_BIMC, 34f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_PIMEM, 35f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_SNOC_CNOC, 36f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_QDSS_DAP, 37f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_APPS_PROC, 38f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_CNOC_MNOC_MMSS_CFG, 39f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_CNOC_MNOC_CFG, 40f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_CPP, 41f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_JPEG, 42f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_MDP_P0, 43f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_MDP_P1, 44f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_VENUS, 45f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_VFE, 46f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_QDSS_ETR, 47f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_QDSS_BAM, 48f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_SNOC_CFG, 49f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_BIMC_SNOC, 50f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_A2NOC_SNOC, 51f80a1d41SAngeloGioacchino Del Regno SDM660_MASTER_GNOC_SNOC, 52f80a1d41SAngeloGioacchino Del Regno 53f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_A2NOC_SNOC, 54f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_EBI, 55f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_HMSS_L3, 56f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_BIMC_SNOC, 57f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CNOC_A2NOC, 58f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MPM, 59f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_PMIC_ARB, 60f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_TLMM_NORTH, 61f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_TCSR, 62f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_PIMEM_CFG, 63f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_IMEM_CFG, 64f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MESSAGE_RAM, 65f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_GLM, 66f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_BIMC_CFG, 67f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_PRNG, 68f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SPDM, 69f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_QDSS_CFG, 70f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CNOC_MNOC_CFG, 71f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SNOC_CFG, 72f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_QM_CFG, 73f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CLK_CTL, 74f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MSS_CFG, 75f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_TLMM_SOUTH, 76f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_UFS_CFG, 77f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_A2NOC_CFG, 78f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_A2NOC_SMMU_CFG, 79f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_GPUSS_CFG, 80f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_AHB2PHY, 81f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_BLSP_1, 82f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SDCC_1, 83f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SDCC_2, 84f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_TLMM_CENTER, 85f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_BLSP_2, 86f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_PDM, 87f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CNOC_MNOC_MMSS_CFG, 88f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_USB_HS, 89f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_USB3_0, 90f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SRVC_CNOC, 91f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_GNOC_BIMC, 92f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_GNOC_SNOC, 93f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CAMERA_CFG, 94f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CAMERA_THROTTLE_CFG, 95f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MISC_CFG, 96f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_VENUS_THROTTLE_CFG, 97f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_VENUS_CFG, 98f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MMSS_CLK_XPU_CFG, 99f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MMSS_CLK_CFG, 100f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MNOC_MPU_CFG, 101f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_DISPLAY_CFG, 102f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CSI_PHY_CFG, 103f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_DISPLAY_THROTTLE_CFG, 104f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SMMU_CFG, 105f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_MNOC_BIMC, 106f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SRVC_MNOC, 107f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_HMSS, 108f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_LPASS, 109f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_WLAN, 110f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_CDSP, 111f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_IPA, 112f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SNOC_BIMC, 113f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SNOC_CNOC, 114f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_IMEM, 115f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_PIMEM, 116f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_QDSS_STM, 117f80a1d41SAngeloGioacchino Del Regno SDM660_SLAVE_SRVC_SNOC, 118f80a1d41SAngeloGioacchino Del Regno 119f80a1d41SAngeloGioacchino Del Regno SDM660_A2NOC, 120f80a1d41SAngeloGioacchino Del Regno SDM660_BIMC, 121f80a1d41SAngeloGioacchino Del Regno SDM660_CNOC, 122f80a1d41SAngeloGioacchino Del Regno SDM660_GNOC, 123f80a1d41SAngeloGioacchino Del Regno SDM660_MNOC, 124f80a1d41SAngeloGioacchino Del Regno SDM660_SNOC, 125f80a1d41SAngeloGioacchino Del Regno }; 126f80a1d41SAngeloGioacchino Del Regno 1272e2113c8SKonrad Dybcio static const char * const mm_intf_clocks[] = { 1282b6c7d64SDmitry Baryshkov "iface", 129f80a1d41SAngeloGioacchino Del Regno }; 130f80a1d41SAngeloGioacchino Del Regno 1312e2113c8SKonrad Dybcio static const char * const a2noc_intf_clocks[] = { 1322b6c7d64SDmitry Baryshkov "ipa", 1332b6c7d64SDmitry Baryshkov "ufs_axi", 1342b6c7d64SDmitry Baryshkov "aggre2_ufs_axi", 1352b6c7d64SDmitry Baryshkov "aggre2_usb3_axi", 1362b6c7d64SDmitry Baryshkov "cfg_noc_usb2_axi", 137f80a1d41SAngeloGioacchino Del Regno }; 138f80a1d41SAngeloGioacchino Del Regno 1397ae77e60SDmitry Baryshkov static const u16 mas_ipa_links[] = { 1407ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 1417ae77e60SDmitry Baryshkov }; 142f80a1d41SAngeloGioacchino Del Regno 1437ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_ipa = { 1447ae77e60SDmitry Baryshkov .name = "mas_ipa", 1457ae77e60SDmitry Baryshkov .id = SDM660_MASTER_IPA, 1467ae77e60SDmitry Baryshkov .buswidth = 8, 1477ae77e60SDmitry Baryshkov .mas_rpm_id = 59, 1487ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 1497ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1507ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 1517ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 1527ae77e60SDmitry Baryshkov .qos.prio_level = 1, 1537ae77e60SDmitry Baryshkov .qos.qos_port = 3, 1547ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_ipa_links), 1557ae77e60SDmitry Baryshkov .links = mas_ipa_links, 1567ae77e60SDmitry Baryshkov }; 1577ae77e60SDmitry Baryshkov 1587ae77e60SDmitry Baryshkov static const u16 mas_cnoc_a2noc_links[] = { 1597ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 1607ae77e60SDmitry Baryshkov }; 1617ae77e60SDmitry Baryshkov 1627ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_cnoc_a2noc = { 1637ae77e60SDmitry Baryshkov .name = "mas_cnoc_a2noc", 1647ae77e60SDmitry Baryshkov .id = SDM660_MASTER_CNOC_A2NOC, 1657ae77e60SDmitry Baryshkov .buswidth = 8, 1667ae77e60SDmitry Baryshkov .mas_rpm_id = 146, 1677ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 1687ae77e60SDmitry Baryshkov .qos.ap_owned = true, 169656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 1707ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_cnoc_a2noc_links), 1717ae77e60SDmitry Baryshkov .links = mas_cnoc_a2noc_links, 1727ae77e60SDmitry Baryshkov }; 1737ae77e60SDmitry Baryshkov 1747ae77e60SDmitry Baryshkov static const u16 mas_sdcc_1_links[] = { 1757ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 1767ae77e60SDmitry Baryshkov }; 1777ae77e60SDmitry Baryshkov 1787ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_sdcc_1 = { 1797ae77e60SDmitry Baryshkov .name = "mas_sdcc_1", 1807ae77e60SDmitry Baryshkov .id = SDM660_MASTER_SDCC_1, 1817ae77e60SDmitry Baryshkov .buswidth = 8, 1827ae77e60SDmitry Baryshkov .mas_rpm_id = 33, 1837ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 1847ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_sdcc_1_links), 1857ae77e60SDmitry Baryshkov .links = mas_sdcc_1_links, 1867ae77e60SDmitry Baryshkov }; 1877ae77e60SDmitry Baryshkov 1887ae77e60SDmitry Baryshkov static const u16 mas_sdcc_2_links[] = { 1897ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 1907ae77e60SDmitry Baryshkov }; 1917ae77e60SDmitry Baryshkov 1927ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_sdcc_2 = { 1937ae77e60SDmitry Baryshkov .name = "mas_sdcc_2", 1947ae77e60SDmitry Baryshkov .id = SDM660_MASTER_SDCC_2, 1957ae77e60SDmitry Baryshkov .buswidth = 8, 1967ae77e60SDmitry Baryshkov .mas_rpm_id = 35, 1977ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 1987ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_sdcc_2_links), 1997ae77e60SDmitry Baryshkov .links = mas_sdcc_2_links, 2007ae77e60SDmitry Baryshkov }; 2017ae77e60SDmitry Baryshkov 2027ae77e60SDmitry Baryshkov static const u16 mas_blsp_1_links[] = { 2037ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2047ae77e60SDmitry Baryshkov }; 2057ae77e60SDmitry Baryshkov 2067ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_blsp_1 = { 2077ae77e60SDmitry Baryshkov .name = "mas_blsp_1", 2087ae77e60SDmitry Baryshkov .id = SDM660_MASTER_BLSP_1, 2097ae77e60SDmitry Baryshkov .buswidth = 4, 2107ae77e60SDmitry Baryshkov .mas_rpm_id = 41, 2117ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2127ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_blsp_1_links), 2137ae77e60SDmitry Baryshkov .links = mas_blsp_1_links, 2147ae77e60SDmitry Baryshkov }; 2157ae77e60SDmitry Baryshkov 2167ae77e60SDmitry Baryshkov static const u16 mas_blsp_2_links[] = { 2177ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2187ae77e60SDmitry Baryshkov }; 2197ae77e60SDmitry Baryshkov 2207ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_blsp_2 = { 2217ae77e60SDmitry Baryshkov .name = "mas_blsp_2", 2227ae77e60SDmitry Baryshkov .id = SDM660_MASTER_BLSP_2, 2237ae77e60SDmitry Baryshkov .buswidth = 4, 2247ae77e60SDmitry Baryshkov .mas_rpm_id = 39, 2257ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2267ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_blsp_2_links), 2277ae77e60SDmitry Baryshkov .links = mas_blsp_2_links, 2287ae77e60SDmitry Baryshkov }; 2297ae77e60SDmitry Baryshkov 2307ae77e60SDmitry Baryshkov static const u16 mas_ufs_links[] = { 2317ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2327ae77e60SDmitry Baryshkov }; 2337ae77e60SDmitry Baryshkov 2347ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_ufs = { 2357ae77e60SDmitry Baryshkov .name = "mas_ufs", 2367ae77e60SDmitry Baryshkov .id = SDM660_MASTER_UFS, 2377ae77e60SDmitry Baryshkov .buswidth = 8, 2387ae77e60SDmitry Baryshkov .mas_rpm_id = 68, 2397ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2407ae77e60SDmitry Baryshkov .qos.ap_owned = true, 2417ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 2427ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 2437ae77e60SDmitry Baryshkov .qos.prio_level = 1, 2447ae77e60SDmitry Baryshkov .qos.qos_port = 4, 2457ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_ufs_links), 2467ae77e60SDmitry Baryshkov .links = mas_ufs_links, 2477ae77e60SDmitry Baryshkov }; 2487ae77e60SDmitry Baryshkov 2497ae77e60SDmitry Baryshkov static const u16 mas_usb_hs_links[] = { 2507ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2517ae77e60SDmitry Baryshkov }; 2527ae77e60SDmitry Baryshkov 2537ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_usb_hs = { 2547ae77e60SDmitry Baryshkov .name = "mas_usb_hs", 2557ae77e60SDmitry Baryshkov .id = SDM660_MASTER_USB_HS, 2567ae77e60SDmitry Baryshkov .buswidth = 8, 2577ae77e60SDmitry Baryshkov .mas_rpm_id = 42, 2587ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2597ae77e60SDmitry Baryshkov .qos.ap_owned = true, 2607ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 2617ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 2627ae77e60SDmitry Baryshkov .qos.prio_level = 1, 2637ae77e60SDmitry Baryshkov .qos.qos_port = 1, 2647ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_usb_hs_links), 2657ae77e60SDmitry Baryshkov .links = mas_usb_hs_links, 2667ae77e60SDmitry Baryshkov }; 2677ae77e60SDmitry Baryshkov 2687ae77e60SDmitry Baryshkov static const u16 mas_usb3_links[] = { 2697ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2707ae77e60SDmitry Baryshkov }; 2717ae77e60SDmitry Baryshkov 2727ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_usb3 = { 2737ae77e60SDmitry Baryshkov .name = "mas_usb3", 2747ae77e60SDmitry Baryshkov .id = SDM660_MASTER_USB3, 2757ae77e60SDmitry Baryshkov .buswidth = 8, 2767ae77e60SDmitry Baryshkov .mas_rpm_id = 32, 2777ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2787ae77e60SDmitry Baryshkov .qos.ap_owned = true, 2797ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 2807ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 2817ae77e60SDmitry Baryshkov .qos.prio_level = 1, 2827ae77e60SDmitry Baryshkov .qos.qos_port = 2, 2837ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_usb3_links), 2847ae77e60SDmitry Baryshkov .links = mas_usb3_links, 2857ae77e60SDmitry Baryshkov }; 2867ae77e60SDmitry Baryshkov 2877ae77e60SDmitry Baryshkov static const u16 mas_crypto_links[] = { 2887ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SNOC 2897ae77e60SDmitry Baryshkov }; 2907ae77e60SDmitry Baryshkov 2917ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_crypto = { 2927ae77e60SDmitry Baryshkov .name = "mas_crypto", 2937ae77e60SDmitry Baryshkov .id = SDM660_MASTER_CRYPTO_C0, 2947ae77e60SDmitry Baryshkov .buswidth = 8, 2957ae77e60SDmitry Baryshkov .mas_rpm_id = 23, 2967ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 2977ae77e60SDmitry Baryshkov .qos.ap_owned = true, 2987ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 2997ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 3007ae77e60SDmitry Baryshkov .qos.prio_level = 1, 3017ae77e60SDmitry Baryshkov .qos.qos_port = 11, 3027ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_crypto_links), 3037ae77e60SDmitry Baryshkov .links = mas_crypto_links, 3047ae77e60SDmitry Baryshkov }; 3057ae77e60SDmitry Baryshkov 3067ae77e60SDmitry Baryshkov static const u16 mas_gnoc_bimc_links[] = { 3077ae77e60SDmitry Baryshkov SDM660_SLAVE_EBI 3087ae77e60SDmitry Baryshkov }; 3097ae77e60SDmitry Baryshkov 3107ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_gnoc_bimc = { 3117ae77e60SDmitry Baryshkov .name = "mas_gnoc_bimc", 3127ae77e60SDmitry Baryshkov .id = SDM660_MASTER_GNOC_BIMC, 3137ae77e60SDmitry Baryshkov .buswidth = 4, 3147ae77e60SDmitry Baryshkov .mas_rpm_id = 144, 3157ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 3167ae77e60SDmitry Baryshkov .qos.ap_owned = true, 3177ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 3187ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 3197ae77e60SDmitry Baryshkov .qos.prio_level = 0, 3207ae77e60SDmitry Baryshkov .qos.qos_port = 0, 3217ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_gnoc_bimc_links), 3227ae77e60SDmitry Baryshkov .links = mas_gnoc_bimc_links, 3237ae77e60SDmitry Baryshkov }; 3247ae77e60SDmitry Baryshkov 3257ae77e60SDmitry Baryshkov static const u16 mas_oxili_links[] = { 3267ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS_L3, 3277ae77e60SDmitry Baryshkov SDM660_SLAVE_EBI, 3287ae77e60SDmitry Baryshkov SDM660_SLAVE_BIMC_SNOC 3297ae77e60SDmitry Baryshkov }; 3307ae77e60SDmitry Baryshkov 3317ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_oxili = { 3327ae77e60SDmitry Baryshkov .name = "mas_oxili", 3337ae77e60SDmitry Baryshkov .id = SDM660_MASTER_OXILI, 3347ae77e60SDmitry Baryshkov .buswidth = 4, 3357ae77e60SDmitry Baryshkov .mas_rpm_id = 6, 3367ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 3377ae77e60SDmitry Baryshkov .qos.ap_owned = true, 3387ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 3397ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 3407ae77e60SDmitry Baryshkov .qos.prio_level = 0, 3417ae77e60SDmitry Baryshkov .qos.qos_port = 1, 3427ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_oxili_links), 3437ae77e60SDmitry Baryshkov .links = mas_oxili_links, 3447ae77e60SDmitry Baryshkov }; 3457ae77e60SDmitry Baryshkov 3467ae77e60SDmitry Baryshkov static const u16 mas_mnoc_bimc_links[] = { 3477ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS_L3, 3487ae77e60SDmitry Baryshkov SDM660_SLAVE_EBI, 3497ae77e60SDmitry Baryshkov SDM660_SLAVE_BIMC_SNOC 3507ae77e60SDmitry Baryshkov }; 3517ae77e60SDmitry Baryshkov 3527ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_mnoc_bimc = { 3537ae77e60SDmitry Baryshkov .name = "mas_mnoc_bimc", 3547ae77e60SDmitry Baryshkov .id = SDM660_MASTER_MNOC_BIMC, 3557ae77e60SDmitry Baryshkov .buswidth = 4, 3567ae77e60SDmitry Baryshkov .mas_rpm_id = 2, 3577ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 3587ae77e60SDmitry Baryshkov .qos.ap_owned = true, 3597ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 3607ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 3617ae77e60SDmitry Baryshkov .qos.prio_level = 0, 3627ae77e60SDmitry Baryshkov .qos.qos_port = 2, 3637ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_mnoc_bimc_links), 3647ae77e60SDmitry Baryshkov .links = mas_mnoc_bimc_links, 3657ae77e60SDmitry Baryshkov }; 3667ae77e60SDmitry Baryshkov 3677ae77e60SDmitry Baryshkov static const u16 mas_snoc_bimc_links[] = { 3687ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS_L3, 3697ae77e60SDmitry Baryshkov SDM660_SLAVE_EBI 3707ae77e60SDmitry Baryshkov }; 3717ae77e60SDmitry Baryshkov 3727ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_snoc_bimc = { 3737ae77e60SDmitry Baryshkov .name = "mas_snoc_bimc", 3747ae77e60SDmitry Baryshkov .id = SDM660_MASTER_SNOC_BIMC, 3757ae77e60SDmitry Baryshkov .buswidth = 4, 3767ae77e60SDmitry Baryshkov .mas_rpm_id = 3, 3777ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 3787ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_snoc_bimc_links), 3797ae77e60SDmitry Baryshkov .links = mas_snoc_bimc_links, 3807ae77e60SDmitry Baryshkov }; 3817ae77e60SDmitry Baryshkov 3827ae77e60SDmitry Baryshkov static const u16 mas_pimem_links[] = { 3837ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS_L3, 3847ae77e60SDmitry Baryshkov SDM660_SLAVE_EBI 3857ae77e60SDmitry Baryshkov }; 3867ae77e60SDmitry Baryshkov 3877ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_pimem = { 3887ae77e60SDmitry Baryshkov .name = "mas_pimem", 3897ae77e60SDmitry Baryshkov .id = SDM660_MASTER_PIMEM, 3907ae77e60SDmitry Baryshkov .buswidth = 4, 3917ae77e60SDmitry Baryshkov .mas_rpm_id = 113, 3927ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 3937ae77e60SDmitry Baryshkov .qos.ap_owned = true, 3947ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 3957ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 3967ae77e60SDmitry Baryshkov .qos.prio_level = 1, 3977ae77e60SDmitry Baryshkov .qos.qos_port = 4, 3987ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_pimem_links), 3997ae77e60SDmitry Baryshkov .links = mas_pimem_links, 4007ae77e60SDmitry Baryshkov }; 4017ae77e60SDmitry Baryshkov 4027ae77e60SDmitry Baryshkov static const u16 mas_snoc_cnoc_links[] = { 4037ae77e60SDmitry Baryshkov SDM660_SLAVE_CLK_CTL, 4047ae77e60SDmitry Baryshkov SDM660_SLAVE_QDSS_CFG, 4057ae77e60SDmitry Baryshkov SDM660_SLAVE_QM_CFG, 4067ae77e60SDmitry Baryshkov SDM660_SLAVE_SRVC_CNOC, 4077ae77e60SDmitry Baryshkov SDM660_SLAVE_UFS_CFG, 4087ae77e60SDmitry Baryshkov SDM660_SLAVE_TCSR, 4097ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SMMU_CFG, 4107ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CFG, 4117ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_SOUTH, 4127ae77e60SDmitry Baryshkov SDM660_SLAVE_MPM, 4137ae77e60SDmitry Baryshkov SDM660_SLAVE_CNOC_MNOC_MMSS_CFG, 4147ae77e60SDmitry Baryshkov SDM660_SLAVE_SDCC_2, 4157ae77e60SDmitry Baryshkov SDM660_SLAVE_SDCC_1, 4167ae77e60SDmitry Baryshkov SDM660_SLAVE_SPDM, 4177ae77e60SDmitry Baryshkov SDM660_SLAVE_PMIC_ARB, 4187ae77e60SDmitry Baryshkov SDM660_SLAVE_PRNG, 4197ae77e60SDmitry Baryshkov SDM660_SLAVE_MSS_CFG, 4207ae77e60SDmitry Baryshkov SDM660_SLAVE_GPUSS_CFG, 4217ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM_CFG, 4227ae77e60SDmitry Baryshkov SDM660_SLAVE_USB3_0, 4237ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_CFG, 4247ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_NORTH, 4257ae77e60SDmitry Baryshkov SDM660_SLAVE_USB_HS, 4267ae77e60SDmitry Baryshkov SDM660_SLAVE_PDM, 4277ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_CENTER, 4287ae77e60SDmitry Baryshkov SDM660_SLAVE_AHB2PHY, 4297ae77e60SDmitry Baryshkov SDM660_SLAVE_BLSP_2, 4307ae77e60SDmitry Baryshkov SDM660_SLAVE_BLSP_1, 4317ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM_CFG, 4327ae77e60SDmitry Baryshkov SDM660_SLAVE_GLM, 4337ae77e60SDmitry Baryshkov SDM660_SLAVE_MESSAGE_RAM, 4347ae77e60SDmitry Baryshkov SDM660_SLAVE_BIMC_CFG, 4357ae77e60SDmitry Baryshkov SDM660_SLAVE_CNOC_MNOC_CFG 4367ae77e60SDmitry Baryshkov }; 4377ae77e60SDmitry Baryshkov 4387ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_snoc_cnoc = { 4397ae77e60SDmitry Baryshkov .name = "mas_snoc_cnoc", 4407ae77e60SDmitry Baryshkov .id = SDM660_MASTER_SNOC_CNOC, 4417ae77e60SDmitry Baryshkov .buswidth = 8, 4427ae77e60SDmitry Baryshkov .mas_rpm_id = 52, 4437ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 4447ae77e60SDmitry Baryshkov .qos.ap_owned = true, 445656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 4467ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_snoc_cnoc_links), 4477ae77e60SDmitry Baryshkov .links = mas_snoc_cnoc_links, 4487ae77e60SDmitry Baryshkov }; 4497ae77e60SDmitry Baryshkov 4507ae77e60SDmitry Baryshkov static const u16 mas_qdss_dap_links[] = { 4517ae77e60SDmitry Baryshkov SDM660_SLAVE_CLK_CTL, 4527ae77e60SDmitry Baryshkov SDM660_SLAVE_QDSS_CFG, 4537ae77e60SDmitry Baryshkov SDM660_SLAVE_QM_CFG, 4547ae77e60SDmitry Baryshkov SDM660_SLAVE_SRVC_CNOC, 4557ae77e60SDmitry Baryshkov SDM660_SLAVE_UFS_CFG, 4567ae77e60SDmitry Baryshkov SDM660_SLAVE_TCSR, 4577ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_SMMU_CFG, 4587ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CFG, 4597ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_SOUTH, 4607ae77e60SDmitry Baryshkov SDM660_SLAVE_MPM, 4617ae77e60SDmitry Baryshkov SDM660_SLAVE_CNOC_MNOC_MMSS_CFG, 4627ae77e60SDmitry Baryshkov SDM660_SLAVE_SDCC_2, 4637ae77e60SDmitry Baryshkov SDM660_SLAVE_SDCC_1, 4647ae77e60SDmitry Baryshkov SDM660_SLAVE_SPDM, 4657ae77e60SDmitry Baryshkov SDM660_SLAVE_PMIC_ARB, 4667ae77e60SDmitry Baryshkov SDM660_SLAVE_PRNG, 4677ae77e60SDmitry Baryshkov SDM660_SLAVE_MSS_CFG, 4687ae77e60SDmitry Baryshkov SDM660_SLAVE_GPUSS_CFG, 4697ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM_CFG, 4707ae77e60SDmitry Baryshkov SDM660_SLAVE_USB3_0, 4717ae77e60SDmitry Baryshkov SDM660_SLAVE_A2NOC_CFG, 4727ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_NORTH, 4737ae77e60SDmitry Baryshkov SDM660_SLAVE_USB_HS, 4747ae77e60SDmitry Baryshkov SDM660_SLAVE_PDM, 4757ae77e60SDmitry Baryshkov SDM660_SLAVE_TLMM_CENTER, 4767ae77e60SDmitry Baryshkov SDM660_SLAVE_AHB2PHY, 4777ae77e60SDmitry Baryshkov SDM660_SLAVE_BLSP_2, 4787ae77e60SDmitry Baryshkov SDM660_SLAVE_BLSP_1, 4797ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM_CFG, 4807ae77e60SDmitry Baryshkov SDM660_SLAVE_GLM, 4817ae77e60SDmitry Baryshkov SDM660_SLAVE_MESSAGE_RAM, 4827ae77e60SDmitry Baryshkov SDM660_SLAVE_CNOC_A2NOC, 4837ae77e60SDmitry Baryshkov SDM660_SLAVE_BIMC_CFG, 4847ae77e60SDmitry Baryshkov SDM660_SLAVE_CNOC_MNOC_CFG 4857ae77e60SDmitry Baryshkov }; 4867ae77e60SDmitry Baryshkov 4877ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_qdss_dap = { 4887ae77e60SDmitry Baryshkov .name = "mas_qdss_dap", 4897ae77e60SDmitry Baryshkov .id = SDM660_MASTER_QDSS_DAP, 4907ae77e60SDmitry Baryshkov .buswidth = 8, 4917ae77e60SDmitry Baryshkov .mas_rpm_id = 49, 4927ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 4937ae77e60SDmitry Baryshkov .qos.ap_owned = true, 494656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 4957ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_qdss_dap_links), 4967ae77e60SDmitry Baryshkov .links = mas_qdss_dap_links, 4977ae77e60SDmitry Baryshkov }; 4987ae77e60SDmitry Baryshkov 4997ae77e60SDmitry Baryshkov static const u16 mas_apss_proc_links[] = { 5007ae77e60SDmitry Baryshkov SDM660_SLAVE_GNOC_SNOC, 5017ae77e60SDmitry Baryshkov SDM660_SLAVE_GNOC_BIMC 5027ae77e60SDmitry Baryshkov }; 5037ae77e60SDmitry Baryshkov 5047ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_apss_proc = { 5057ae77e60SDmitry Baryshkov .name = "mas_apss_proc", 5067ae77e60SDmitry Baryshkov .id = SDM660_MASTER_APPS_PROC, 5077ae77e60SDmitry Baryshkov .buswidth = 16, 5087ae77e60SDmitry Baryshkov .mas_rpm_id = 0, 5097ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 5107ae77e60SDmitry Baryshkov .qos.ap_owned = true, 511656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 5127ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_apss_proc_links), 5137ae77e60SDmitry Baryshkov .links = mas_apss_proc_links, 5147ae77e60SDmitry Baryshkov }; 5157ae77e60SDmitry Baryshkov 5167ae77e60SDmitry Baryshkov static const u16 mas_cnoc_mnoc_mmss_cfg_links[] = { 5177ae77e60SDmitry Baryshkov SDM660_SLAVE_VENUS_THROTTLE_CFG, 5187ae77e60SDmitry Baryshkov SDM660_SLAVE_VENUS_CFG, 5197ae77e60SDmitry Baryshkov SDM660_SLAVE_CAMERA_THROTTLE_CFG, 5207ae77e60SDmitry Baryshkov SDM660_SLAVE_SMMU_CFG, 5217ae77e60SDmitry Baryshkov SDM660_SLAVE_CAMERA_CFG, 5227ae77e60SDmitry Baryshkov SDM660_SLAVE_CSI_PHY_CFG, 5237ae77e60SDmitry Baryshkov SDM660_SLAVE_DISPLAY_THROTTLE_CFG, 5247ae77e60SDmitry Baryshkov SDM660_SLAVE_DISPLAY_CFG, 5257ae77e60SDmitry Baryshkov SDM660_SLAVE_MMSS_CLK_CFG, 5267ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_MPU_CFG, 5277ae77e60SDmitry Baryshkov SDM660_SLAVE_MISC_CFG, 5287ae77e60SDmitry Baryshkov SDM660_SLAVE_MMSS_CLK_XPU_CFG 5297ae77e60SDmitry Baryshkov }; 5307ae77e60SDmitry Baryshkov 5317ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_cnoc_mnoc_mmss_cfg = { 5327ae77e60SDmitry Baryshkov .name = "mas_cnoc_mnoc_mmss_cfg", 5337ae77e60SDmitry Baryshkov .id = SDM660_MASTER_CNOC_MNOC_MMSS_CFG, 5347ae77e60SDmitry Baryshkov .buswidth = 8, 5357ae77e60SDmitry Baryshkov .mas_rpm_id = 4, 5367ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 5377ae77e60SDmitry Baryshkov .qos.ap_owned = true, 538656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 5397ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_cnoc_mnoc_mmss_cfg_links), 5407ae77e60SDmitry Baryshkov .links = mas_cnoc_mnoc_mmss_cfg_links, 5417ae77e60SDmitry Baryshkov }; 5427ae77e60SDmitry Baryshkov 5437ae77e60SDmitry Baryshkov static const u16 mas_cnoc_mnoc_cfg_links[] = { 5447ae77e60SDmitry Baryshkov SDM660_SLAVE_SRVC_MNOC 5457ae77e60SDmitry Baryshkov }; 5467ae77e60SDmitry Baryshkov 5477ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_cnoc_mnoc_cfg = { 5487ae77e60SDmitry Baryshkov .name = "mas_cnoc_mnoc_cfg", 5497ae77e60SDmitry Baryshkov .id = SDM660_MASTER_CNOC_MNOC_CFG, 5507ae77e60SDmitry Baryshkov .buswidth = 4, 5517ae77e60SDmitry Baryshkov .mas_rpm_id = 5, 5527ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 5537ae77e60SDmitry Baryshkov .qos.ap_owned = true, 554656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 5557ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_cnoc_mnoc_cfg_links), 5567ae77e60SDmitry Baryshkov .links = mas_cnoc_mnoc_cfg_links, 5577ae77e60SDmitry Baryshkov }; 5587ae77e60SDmitry Baryshkov 5597ae77e60SDmitry Baryshkov static const u16 mas_cpp_links[] = { 5607ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 5617ae77e60SDmitry Baryshkov }; 5627ae77e60SDmitry Baryshkov 5637ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_cpp = { 5647ae77e60SDmitry Baryshkov .name = "mas_cpp", 5657ae77e60SDmitry Baryshkov .id = SDM660_MASTER_CPP, 5667ae77e60SDmitry Baryshkov .buswidth = 16, 5677ae77e60SDmitry Baryshkov .mas_rpm_id = 115, 5687ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 5697ae77e60SDmitry Baryshkov .qos.ap_owned = true, 5707ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 5717ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 5727ae77e60SDmitry Baryshkov .qos.prio_level = 0, 5737ae77e60SDmitry Baryshkov .qos.qos_port = 4, 5747ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_cpp_links), 5757ae77e60SDmitry Baryshkov .links = mas_cpp_links, 5767ae77e60SDmitry Baryshkov }; 5777ae77e60SDmitry Baryshkov 5787ae77e60SDmitry Baryshkov static const u16 mas_jpeg_links[] = { 5797ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 5807ae77e60SDmitry Baryshkov }; 5817ae77e60SDmitry Baryshkov 5827ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_jpeg = { 5837ae77e60SDmitry Baryshkov .name = "mas_jpeg", 5847ae77e60SDmitry Baryshkov .id = SDM660_MASTER_JPEG, 5857ae77e60SDmitry Baryshkov .buswidth = 16, 5867ae77e60SDmitry Baryshkov .mas_rpm_id = 7, 5877ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 5887ae77e60SDmitry Baryshkov .qos.ap_owned = true, 5897ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 5907ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 5917ae77e60SDmitry Baryshkov .qos.prio_level = 0, 5927ae77e60SDmitry Baryshkov .qos.qos_port = 6, 5937ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_jpeg_links), 5947ae77e60SDmitry Baryshkov .links = mas_jpeg_links, 5957ae77e60SDmitry Baryshkov }; 5967ae77e60SDmitry Baryshkov 5977ae77e60SDmitry Baryshkov static const u16 mas_mdp_p0_links[] = { 5987ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 5997ae77e60SDmitry Baryshkov }; 6007ae77e60SDmitry Baryshkov 6017ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_mdp_p0 = { 6027ae77e60SDmitry Baryshkov .name = "mas_mdp_p0", 6037ae77e60SDmitry Baryshkov .id = SDM660_MASTER_MDP_P0, 6047ae77e60SDmitry Baryshkov .buswidth = 16, 6057ae77e60SDmitry Baryshkov .mas_rpm_id = 8, 6067ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 6077ae77e60SDmitry Baryshkov .qos.ap_owned = true, 6087ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 6097ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 6107ae77e60SDmitry Baryshkov .qos.prio_level = 0, 6117ae77e60SDmitry Baryshkov .qos.qos_port = 0, 6127ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_mdp_p0_links), 6137ae77e60SDmitry Baryshkov .links = mas_mdp_p0_links, 6147ae77e60SDmitry Baryshkov }; 6157ae77e60SDmitry Baryshkov 6167ae77e60SDmitry Baryshkov static const u16 mas_mdp_p1_links[] = { 6177ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 6187ae77e60SDmitry Baryshkov }; 6197ae77e60SDmitry Baryshkov 6207ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_mdp_p1 = { 6217ae77e60SDmitry Baryshkov .name = "mas_mdp_p1", 6227ae77e60SDmitry Baryshkov .id = SDM660_MASTER_MDP_P1, 6237ae77e60SDmitry Baryshkov .buswidth = 16, 6247ae77e60SDmitry Baryshkov .mas_rpm_id = 61, 6257ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 6267ae77e60SDmitry Baryshkov .qos.ap_owned = true, 6277ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 6287ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 6297ae77e60SDmitry Baryshkov .qos.prio_level = 0, 6307ae77e60SDmitry Baryshkov .qos.qos_port = 1, 6317ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_mdp_p1_links), 6327ae77e60SDmitry Baryshkov .links = mas_mdp_p1_links, 6337ae77e60SDmitry Baryshkov }; 6347ae77e60SDmitry Baryshkov 6357ae77e60SDmitry Baryshkov static const u16 mas_venus_links[] = { 6367ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 6377ae77e60SDmitry Baryshkov }; 6387ae77e60SDmitry Baryshkov 6397ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_venus = { 6407ae77e60SDmitry Baryshkov .name = "mas_venus", 6417ae77e60SDmitry Baryshkov .id = SDM660_MASTER_VENUS, 6427ae77e60SDmitry Baryshkov .buswidth = 16, 6437ae77e60SDmitry Baryshkov .mas_rpm_id = 9, 6447ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 6457ae77e60SDmitry Baryshkov .qos.ap_owned = true, 6467ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 6477ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 6487ae77e60SDmitry Baryshkov .qos.prio_level = 0, 6497ae77e60SDmitry Baryshkov .qos.qos_port = 1, 6507ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_venus_links), 6517ae77e60SDmitry Baryshkov .links = mas_venus_links, 6527ae77e60SDmitry Baryshkov }; 6537ae77e60SDmitry Baryshkov 6547ae77e60SDmitry Baryshkov static const u16 mas_vfe_links[] = { 6557ae77e60SDmitry Baryshkov SDM660_SLAVE_MNOC_BIMC 6567ae77e60SDmitry Baryshkov }; 6577ae77e60SDmitry Baryshkov 6587ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_vfe = { 6597ae77e60SDmitry Baryshkov .name = "mas_vfe", 6607ae77e60SDmitry Baryshkov .id = SDM660_MASTER_VFE, 6617ae77e60SDmitry Baryshkov .buswidth = 16, 6627ae77e60SDmitry Baryshkov .mas_rpm_id = 11, 6637ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 6647ae77e60SDmitry Baryshkov .qos.ap_owned = true, 6657ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_BYPASS, 6667ae77e60SDmitry Baryshkov .qos.areq_prio = 0, 6677ae77e60SDmitry Baryshkov .qos.prio_level = 0, 6687ae77e60SDmitry Baryshkov .qos.qos_port = 5, 6697ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_vfe_links), 6707ae77e60SDmitry Baryshkov .links = mas_vfe_links, 6717ae77e60SDmitry Baryshkov }; 6727ae77e60SDmitry Baryshkov 6737ae77e60SDmitry Baryshkov static const u16 mas_qdss_etr_links[] = { 6747ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM, 6757ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM, 6767ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CNOC, 6777ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_BIMC 6787ae77e60SDmitry Baryshkov }; 6797ae77e60SDmitry Baryshkov 6807ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_qdss_etr = { 6817ae77e60SDmitry Baryshkov .name = "mas_qdss_etr", 6827ae77e60SDmitry Baryshkov .id = SDM660_MASTER_QDSS_ETR, 6837ae77e60SDmitry Baryshkov .buswidth = 8, 6847ae77e60SDmitry Baryshkov .mas_rpm_id = 31, 6857ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 6867ae77e60SDmitry Baryshkov .qos.ap_owned = true, 6877ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 6887ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 6897ae77e60SDmitry Baryshkov .qos.prio_level = 1, 6907ae77e60SDmitry Baryshkov .qos.qos_port = 1, 6917ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_qdss_etr_links), 6927ae77e60SDmitry Baryshkov .links = mas_qdss_etr_links, 6937ae77e60SDmitry Baryshkov }; 6947ae77e60SDmitry Baryshkov 6957ae77e60SDmitry Baryshkov static const u16 mas_qdss_bam_links[] = { 6967ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM, 6977ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM, 6987ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CNOC, 6997ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_BIMC 7007ae77e60SDmitry Baryshkov }; 7017ae77e60SDmitry Baryshkov 7027ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_qdss_bam = { 7037ae77e60SDmitry Baryshkov .name = "mas_qdss_bam", 7047ae77e60SDmitry Baryshkov .id = SDM660_MASTER_QDSS_BAM, 7057ae77e60SDmitry Baryshkov .buswidth = 4, 7067ae77e60SDmitry Baryshkov .mas_rpm_id = 19, 7077ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 7087ae77e60SDmitry Baryshkov .qos.ap_owned = true, 7097ae77e60SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_FIXED, 7107ae77e60SDmitry Baryshkov .qos.areq_prio = 1, 7117ae77e60SDmitry Baryshkov .qos.prio_level = 1, 7127ae77e60SDmitry Baryshkov .qos.qos_port = 0, 7137ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_qdss_bam_links), 7147ae77e60SDmitry Baryshkov .links = mas_qdss_bam_links, 7157ae77e60SDmitry Baryshkov }; 7167ae77e60SDmitry Baryshkov 7177ae77e60SDmitry Baryshkov static const u16 mas_snoc_cfg_links[] = { 7187ae77e60SDmitry Baryshkov SDM660_SLAVE_SRVC_SNOC 7197ae77e60SDmitry Baryshkov }; 7207ae77e60SDmitry Baryshkov 7217ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_snoc_cfg = { 7227ae77e60SDmitry Baryshkov .name = "mas_snoc_cfg", 7237ae77e60SDmitry Baryshkov .id = SDM660_MASTER_SNOC_CFG, 7247ae77e60SDmitry Baryshkov .buswidth = 4, 7257ae77e60SDmitry Baryshkov .mas_rpm_id = 20, 7267ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 7277ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_snoc_cfg_links), 7287ae77e60SDmitry Baryshkov .links = mas_snoc_cfg_links, 7297ae77e60SDmitry Baryshkov }; 7307ae77e60SDmitry Baryshkov 7317ae77e60SDmitry Baryshkov static const u16 mas_bimc_snoc_links[] = { 7327ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM, 7337ae77e60SDmitry Baryshkov SDM660_SLAVE_IPA, 7347ae77e60SDmitry Baryshkov SDM660_SLAVE_QDSS_STM, 7357ae77e60SDmitry Baryshkov SDM660_SLAVE_LPASS, 7367ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS, 7377ae77e60SDmitry Baryshkov SDM660_SLAVE_CDSP, 7387ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CNOC, 7397ae77e60SDmitry Baryshkov SDM660_SLAVE_WLAN, 7407ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM 7417ae77e60SDmitry Baryshkov }; 7427ae77e60SDmitry Baryshkov 7437ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_bimc_snoc = { 7447ae77e60SDmitry Baryshkov .name = "mas_bimc_snoc", 7457ae77e60SDmitry Baryshkov .id = SDM660_MASTER_BIMC_SNOC, 7467ae77e60SDmitry Baryshkov .buswidth = 8, 7477ae77e60SDmitry Baryshkov .mas_rpm_id = 21, 7487ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 7497ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_bimc_snoc_links), 7507ae77e60SDmitry Baryshkov .links = mas_bimc_snoc_links, 7517ae77e60SDmitry Baryshkov }; 7527ae77e60SDmitry Baryshkov 7537ae77e60SDmitry Baryshkov static const u16 mas_gnoc_snoc_links[] = { 7547ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM, 7557ae77e60SDmitry Baryshkov SDM660_SLAVE_IPA, 7567ae77e60SDmitry Baryshkov SDM660_SLAVE_QDSS_STM, 7577ae77e60SDmitry Baryshkov SDM660_SLAVE_LPASS, 7587ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS, 7597ae77e60SDmitry Baryshkov SDM660_SLAVE_CDSP, 7607ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CNOC, 7617ae77e60SDmitry Baryshkov SDM660_SLAVE_WLAN, 7627ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM 7637ae77e60SDmitry Baryshkov }; 7647ae77e60SDmitry Baryshkov 7657ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_gnoc_snoc = { 7667ae77e60SDmitry Baryshkov .name = "mas_gnoc_snoc", 7677ae77e60SDmitry Baryshkov .id = SDM660_MASTER_GNOC_SNOC, 7687ae77e60SDmitry Baryshkov .buswidth = 8, 7697ae77e60SDmitry Baryshkov .mas_rpm_id = 150, 7707ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 7717ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_gnoc_snoc_links), 7727ae77e60SDmitry Baryshkov .links = mas_gnoc_snoc_links, 7737ae77e60SDmitry Baryshkov }; 7747ae77e60SDmitry Baryshkov 7757ae77e60SDmitry Baryshkov static const u16 mas_a2noc_snoc_links[] = { 7767ae77e60SDmitry Baryshkov SDM660_SLAVE_PIMEM, 7777ae77e60SDmitry Baryshkov SDM660_SLAVE_IPA, 7787ae77e60SDmitry Baryshkov SDM660_SLAVE_QDSS_STM, 7797ae77e60SDmitry Baryshkov SDM660_SLAVE_LPASS, 7807ae77e60SDmitry Baryshkov SDM660_SLAVE_HMSS, 7817ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_BIMC, 7827ae77e60SDmitry Baryshkov SDM660_SLAVE_CDSP, 7837ae77e60SDmitry Baryshkov SDM660_SLAVE_SNOC_CNOC, 7847ae77e60SDmitry Baryshkov SDM660_SLAVE_WLAN, 7857ae77e60SDmitry Baryshkov SDM660_SLAVE_IMEM 7867ae77e60SDmitry Baryshkov }; 7877ae77e60SDmitry Baryshkov 7887ae77e60SDmitry Baryshkov static struct qcom_icc_node mas_a2noc_snoc = { 7897ae77e60SDmitry Baryshkov .name = "mas_a2noc_snoc", 7907ae77e60SDmitry Baryshkov .id = SDM660_MASTER_A2NOC_SNOC, 7917ae77e60SDmitry Baryshkov .buswidth = 16, 7927ae77e60SDmitry Baryshkov .mas_rpm_id = 112, 7937ae77e60SDmitry Baryshkov .slv_rpm_id = -1, 7947ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(mas_a2noc_snoc_links), 7957ae77e60SDmitry Baryshkov .links = mas_a2noc_snoc_links, 7967ae77e60SDmitry Baryshkov }; 7977ae77e60SDmitry Baryshkov 7987ae77e60SDmitry Baryshkov static const u16 slv_a2noc_snoc_links[] = { 7997ae77e60SDmitry Baryshkov SDM660_MASTER_A2NOC_SNOC 8007ae77e60SDmitry Baryshkov }; 8017ae77e60SDmitry Baryshkov 8027ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_a2noc_snoc = { 8037ae77e60SDmitry Baryshkov .name = "slv_a2noc_snoc", 8047ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_A2NOC_SNOC, 8057ae77e60SDmitry Baryshkov .buswidth = 16, 8067ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8077ae77e60SDmitry Baryshkov .slv_rpm_id = 143, 8087ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_a2noc_snoc_links), 8097ae77e60SDmitry Baryshkov .links = slv_a2noc_snoc_links, 8107ae77e60SDmitry Baryshkov }; 8117ae77e60SDmitry Baryshkov 8127ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_ebi = { 8137ae77e60SDmitry Baryshkov .name = "slv_ebi", 8147ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_EBI, 8157ae77e60SDmitry Baryshkov .buswidth = 4, 8167ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8177ae77e60SDmitry Baryshkov .slv_rpm_id = 0, 8187ae77e60SDmitry Baryshkov }; 8197ae77e60SDmitry Baryshkov 8207ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_hmss_l3 = { 8217ae77e60SDmitry Baryshkov .name = "slv_hmss_l3", 8227ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_HMSS_L3, 8237ae77e60SDmitry Baryshkov .buswidth = 4, 8247ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8257ae77e60SDmitry Baryshkov .slv_rpm_id = 160, 8267ae77e60SDmitry Baryshkov }; 8277ae77e60SDmitry Baryshkov 8287ae77e60SDmitry Baryshkov static const u16 slv_bimc_snoc_links[] = { 8297ae77e60SDmitry Baryshkov SDM660_MASTER_BIMC_SNOC 8307ae77e60SDmitry Baryshkov }; 8317ae77e60SDmitry Baryshkov 8327ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_bimc_snoc = { 8337ae77e60SDmitry Baryshkov .name = "slv_bimc_snoc", 8347ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_BIMC_SNOC, 8357ae77e60SDmitry Baryshkov .buswidth = 4, 8367ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8377ae77e60SDmitry Baryshkov .slv_rpm_id = 2, 8387ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_bimc_snoc_links), 8397ae77e60SDmitry Baryshkov .links = slv_bimc_snoc_links, 8407ae77e60SDmitry Baryshkov }; 8417ae77e60SDmitry Baryshkov 8427ae77e60SDmitry Baryshkov static const u16 slv_cnoc_a2noc_links[] = { 8437ae77e60SDmitry Baryshkov SDM660_MASTER_CNOC_A2NOC 8447ae77e60SDmitry Baryshkov }; 8457ae77e60SDmitry Baryshkov 8467ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_cnoc_a2noc = { 8477ae77e60SDmitry Baryshkov .name = "slv_cnoc_a2noc", 8487ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CNOC_A2NOC, 8497ae77e60SDmitry Baryshkov .buswidth = 8, 8507ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8517ae77e60SDmitry Baryshkov .slv_rpm_id = 208, 8527ae77e60SDmitry Baryshkov .qos.ap_owned = true, 853656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 8547ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_cnoc_a2noc_links), 8557ae77e60SDmitry Baryshkov .links = slv_cnoc_a2noc_links, 8567ae77e60SDmitry Baryshkov }; 8577ae77e60SDmitry Baryshkov 8587ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mpm = { 8597ae77e60SDmitry Baryshkov .name = "slv_mpm", 8607ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MPM, 8617ae77e60SDmitry Baryshkov .buswidth = 4, 8627ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8637ae77e60SDmitry Baryshkov .slv_rpm_id = 62, 8647ae77e60SDmitry Baryshkov .qos.ap_owned = true, 865656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 8667ae77e60SDmitry Baryshkov }; 8677ae77e60SDmitry Baryshkov 8687ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_pmic_arb = { 8697ae77e60SDmitry Baryshkov .name = "slv_pmic_arb", 8707ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_PMIC_ARB, 8717ae77e60SDmitry Baryshkov .buswidth = 4, 8727ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8737ae77e60SDmitry Baryshkov .slv_rpm_id = 59, 8747ae77e60SDmitry Baryshkov .qos.ap_owned = true, 875656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 8767ae77e60SDmitry Baryshkov }; 8777ae77e60SDmitry Baryshkov 8787ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_tlmm_north = { 8797ae77e60SDmitry Baryshkov .name = "slv_tlmm_north", 8807ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_TLMM_NORTH, 8817ae77e60SDmitry Baryshkov .buswidth = 8, 8827ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8837ae77e60SDmitry Baryshkov .slv_rpm_id = 214, 8847ae77e60SDmitry Baryshkov .qos.ap_owned = true, 885656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 8867ae77e60SDmitry Baryshkov }; 8877ae77e60SDmitry Baryshkov 8887ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_tcsr = { 8897ae77e60SDmitry Baryshkov .name = "slv_tcsr", 8907ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_TCSR, 8917ae77e60SDmitry Baryshkov .buswidth = 4, 8927ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 8937ae77e60SDmitry Baryshkov .slv_rpm_id = 50, 8947ae77e60SDmitry Baryshkov .qos.ap_owned = true, 895656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 8967ae77e60SDmitry Baryshkov }; 8977ae77e60SDmitry Baryshkov 8987ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_pimem_cfg = { 8997ae77e60SDmitry Baryshkov .name = "slv_pimem_cfg", 9007ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_PIMEM_CFG, 9017ae77e60SDmitry Baryshkov .buswidth = 4, 9027ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9037ae77e60SDmitry Baryshkov .slv_rpm_id = 167, 9047ae77e60SDmitry Baryshkov .qos.ap_owned = true, 905656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9067ae77e60SDmitry Baryshkov }; 9077ae77e60SDmitry Baryshkov 9087ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_imem_cfg = { 9097ae77e60SDmitry Baryshkov .name = "slv_imem_cfg", 9107ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_IMEM_CFG, 9117ae77e60SDmitry Baryshkov .buswidth = 4, 9127ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9137ae77e60SDmitry Baryshkov .slv_rpm_id = 54, 9147ae77e60SDmitry Baryshkov .qos.ap_owned = true, 915656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9167ae77e60SDmitry Baryshkov }; 9177ae77e60SDmitry Baryshkov 9187ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_message_ram = { 9197ae77e60SDmitry Baryshkov .name = "slv_message_ram", 9207ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MESSAGE_RAM, 9217ae77e60SDmitry Baryshkov .buswidth = 4, 9227ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9237ae77e60SDmitry Baryshkov .slv_rpm_id = 55, 9247ae77e60SDmitry Baryshkov .qos.ap_owned = true, 925656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9267ae77e60SDmitry Baryshkov }; 9277ae77e60SDmitry Baryshkov 9287ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_glm = { 9297ae77e60SDmitry Baryshkov .name = "slv_glm", 9307ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_GLM, 9317ae77e60SDmitry Baryshkov .buswidth = 4, 9327ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9337ae77e60SDmitry Baryshkov .slv_rpm_id = 209, 9347ae77e60SDmitry Baryshkov .qos.ap_owned = true, 935656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9367ae77e60SDmitry Baryshkov }; 9377ae77e60SDmitry Baryshkov 9387ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_bimc_cfg = { 9397ae77e60SDmitry Baryshkov .name = "slv_bimc_cfg", 9407ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_BIMC_CFG, 9417ae77e60SDmitry Baryshkov .buswidth = 4, 9427ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9437ae77e60SDmitry Baryshkov .slv_rpm_id = 56, 9447ae77e60SDmitry Baryshkov .qos.ap_owned = true, 945656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9467ae77e60SDmitry Baryshkov }; 9477ae77e60SDmitry Baryshkov 9487ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_prng = { 9497ae77e60SDmitry Baryshkov .name = "slv_prng", 9507ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_PRNG, 9517ae77e60SDmitry Baryshkov .buswidth = 4, 9527ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9537ae77e60SDmitry Baryshkov .slv_rpm_id = 44, 9547ae77e60SDmitry Baryshkov .qos.ap_owned = true, 955656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9567ae77e60SDmitry Baryshkov }; 9577ae77e60SDmitry Baryshkov 9587ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_spdm = { 9597ae77e60SDmitry Baryshkov .name = "slv_spdm", 9607ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SPDM, 9617ae77e60SDmitry Baryshkov .buswidth = 4, 9627ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9637ae77e60SDmitry Baryshkov .slv_rpm_id = 60, 9647ae77e60SDmitry Baryshkov .qos.ap_owned = true, 965656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9667ae77e60SDmitry Baryshkov }; 9677ae77e60SDmitry Baryshkov 9687ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_qdss_cfg = { 9697ae77e60SDmitry Baryshkov .name = "slv_qdss_cfg", 9707ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_QDSS_CFG, 9717ae77e60SDmitry Baryshkov .buswidth = 4, 9727ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9737ae77e60SDmitry Baryshkov .slv_rpm_id = 63, 9747ae77e60SDmitry Baryshkov .qos.ap_owned = true, 975656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9767ae77e60SDmitry Baryshkov }; 9777ae77e60SDmitry Baryshkov 9787ae77e60SDmitry Baryshkov static const u16 slv_cnoc_mnoc_cfg_links[] = { 9797ae77e60SDmitry Baryshkov SDM660_MASTER_CNOC_MNOC_CFG 9807ae77e60SDmitry Baryshkov }; 9817ae77e60SDmitry Baryshkov 9827ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_cnoc_mnoc_cfg = { 9837ae77e60SDmitry Baryshkov .name = "slv_cnoc_mnoc_cfg", 9847ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CNOC_MNOC_CFG, 9857ae77e60SDmitry Baryshkov .buswidth = 4, 9867ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9877ae77e60SDmitry Baryshkov .slv_rpm_id = 66, 9887ae77e60SDmitry Baryshkov .qos.ap_owned = true, 989656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 9907ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_cnoc_mnoc_cfg_links), 9917ae77e60SDmitry Baryshkov .links = slv_cnoc_mnoc_cfg_links, 9927ae77e60SDmitry Baryshkov }; 9937ae77e60SDmitry Baryshkov 9947ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_snoc_cfg = { 9957ae77e60SDmitry Baryshkov .name = "slv_snoc_cfg", 9967ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SNOC_CFG, 9977ae77e60SDmitry Baryshkov .buswidth = 4, 9987ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 9997ae77e60SDmitry Baryshkov .slv_rpm_id = 70, 10007ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1001656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10027ae77e60SDmitry Baryshkov }; 10037ae77e60SDmitry Baryshkov 10047ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_qm_cfg = { 10057ae77e60SDmitry Baryshkov .name = "slv_qm_cfg", 10067ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_QM_CFG, 10077ae77e60SDmitry Baryshkov .buswidth = 4, 10087ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10097ae77e60SDmitry Baryshkov .slv_rpm_id = 212, 10107ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1011656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10127ae77e60SDmitry Baryshkov }; 10137ae77e60SDmitry Baryshkov 10147ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_clk_ctl = { 10157ae77e60SDmitry Baryshkov .name = "slv_clk_ctl", 10167ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CLK_CTL, 10177ae77e60SDmitry Baryshkov .buswidth = 4, 10187ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10197ae77e60SDmitry Baryshkov .slv_rpm_id = 47, 10207ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1021656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10227ae77e60SDmitry Baryshkov }; 10237ae77e60SDmitry Baryshkov 10247ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mss_cfg = { 10257ae77e60SDmitry Baryshkov .name = "slv_mss_cfg", 10267ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MSS_CFG, 10277ae77e60SDmitry Baryshkov .buswidth = 4, 10287ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10297ae77e60SDmitry Baryshkov .slv_rpm_id = 48, 10307ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1031656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10327ae77e60SDmitry Baryshkov }; 10337ae77e60SDmitry Baryshkov 10347ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_tlmm_south = { 10357ae77e60SDmitry Baryshkov .name = "slv_tlmm_south", 10367ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_TLMM_SOUTH, 10377ae77e60SDmitry Baryshkov .buswidth = 4, 10387ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10397ae77e60SDmitry Baryshkov .slv_rpm_id = 217, 10407ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1041656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10427ae77e60SDmitry Baryshkov }; 10437ae77e60SDmitry Baryshkov 10447ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_ufs_cfg = { 10457ae77e60SDmitry Baryshkov .name = "slv_ufs_cfg", 10467ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_UFS_CFG, 10477ae77e60SDmitry Baryshkov .buswidth = 4, 10487ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10497ae77e60SDmitry Baryshkov .slv_rpm_id = 92, 10507ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1051656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10527ae77e60SDmitry Baryshkov }; 10537ae77e60SDmitry Baryshkov 10547ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_a2noc_cfg = { 10557ae77e60SDmitry Baryshkov .name = "slv_a2noc_cfg", 10567ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_A2NOC_CFG, 10577ae77e60SDmitry Baryshkov .buswidth = 4, 10587ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10597ae77e60SDmitry Baryshkov .slv_rpm_id = 150, 10607ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1061656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10627ae77e60SDmitry Baryshkov }; 10637ae77e60SDmitry Baryshkov 10647ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_a2noc_smmu_cfg = { 10657ae77e60SDmitry Baryshkov .name = "slv_a2noc_smmu_cfg", 10667ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_A2NOC_SMMU_CFG, 10677ae77e60SDmitry Baryshkov .buswidth = 8, 10687ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10697ae77e60SDmitry Baryshkov .slv_rpm_id = 152, 10707ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1071656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10727ae77e60SDmitry Baryshkov }; 10737ae77e60SDmitry Baryshkov 10747ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_gpuss_cfg = { 10757ae77e60SDmitry Baryshkov .name = "slv_gpuss_cfg", 10767ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_GPUSS_CFG, 10777ae77e60SDmitry Baryshkov .buswidth = 8, 10787ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10797ae77e60SDmitry Baryshkov .slv_rpm_id = 11, 10807ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1081656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10827ae77e60SDmitry Baryshkov }; 10837ae77e60SDmitry Baryshkov 10847ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_ahb2phy = { 10857ae77e60SDmitry Baryshkov .name = "slv_ahb2phy", 10867ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_AHB2PHY, 10877ae77e60SDmitry Baryshkov .buswidth = 4, 10887ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10897ae77e60SDmitry Baryshkov .slv_rpm_id = 163, 10907ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1091656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 10927ae77e60SDmitry Baryshkov }; 10937ae77e60SDmitry Baryshkov 10947ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_blsp_1 = { 10957ae77e60SDmitry Baryshkov .name = "slv_blsp_1", 10967ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_BLSP_1, 10977ae77e60SDmitry Baryshkov .buswidth = 4, 10987ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 10997ae77e60SDmitry Baryshkov .slv_rpm_id = 39, 11007ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1101656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11027ae77e60SDmitry Baryshkov }; 11037ae77e60SDmitry Baryshkov 11047ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_sdcc_1 = { 11057ae77e60SDmitry Baryshkov .name = "slv_sdcc_1", 11067ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SDCC_1, 11077ae77e60SDmitry Baryshkov .buswidth = 4, 11087ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11097ae77e60SDmitry Baryshkov .slv_rpm_id = 31, 11107ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1111656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11127ae77e60SDmitry Baryshkov }; 11137ae77e60SDmitry Baryshkov 11147ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_sdcc_2 = { 11157ae77e60SDmitry Baryshkov .name = "slv_sdcc_2", 11167ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SDCC_2, 11177ae77e60SDmitry Baryshkov .buswidth = 4, 11187ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11197ae77e60SDmitry Baryshkov .slv_rpm_id = 33, 11207ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1121656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11227ae77e60SDmitry Baryshkov }; 11237ae77e60SDmitry Baryshkov 11247ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_tlmm_center = { 11257ae77e60SDmitry Baryshkov .name = "slv_tlmm_center", 11267ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_TLMM_CENTER, 11277ae77e60SDmitry Baryshkov .buswidth = 4, 11287ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11297ae77e60SDmitry Baryshkov .slv_rpm_id = 218, 11307ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1131656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11327ae77e60SDmitry Baryshkov }; 11337ae77e60SDmitry Baryshkov 11347ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_blsp_2 = { 11357ae77e60SDmitry Baryshkov .name = "slv_blsp_2", 11367ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_BLSP_2, 11377ae77e60SDmitry Baryshkov .buswidth = 4, 11387ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11397ae77e60SDmitry Baryshkov .slv_rpm_id = 37, 11407ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1141656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11427ae77e60SDmitry Baryshkov }; 11437ae77e60SDmitry Baryshkov 11447ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_pdm = { 11457ae77e60SDmitry Baryshkov .name = "slv_pdm", 11467ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_PDM, 11477ae77e60SDmitry Baryshkov .buswidth = 4, 11487ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11497ae77e60SDmitry Baryshkov .slv_rpm_id = 41, 11507ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1151656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11527ae77e60SDmitry Baryshkov }; 11537ae77e60SDmitry Baryshkov 11547ae77e60SDmitry Baryshkov static const u16 slv_cnoc_mnoc_mmss_cfg_links[] = { 11557ae77e60SDmitry Baryshkov SDM660_MASTER_CNOC_MNOC_MMSS_CFG 11567ae77e60SDmitry Baryshkov }; 11577ae77e60SDmitry Baryshkov 11587ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_cnoc_mnoc_mmss_cfg = { 11597ae77e60SDmitry Baryshkov .name = "slv_cnoc_mnoc_mmss_cfg", 11607ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CNOC_MNOC_MMSS_CFG, 11617ae77e60SDmitry Baryshkov .buswidth = 8, 11627ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11637ae77e60SDmitry Baryshkov .slv_rpm_id = 58, 11647ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1165656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11667ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_cnoc_mnoc_mmss_cfg_links), 11677ae77e60SDmitry Baryshkov .links = slv_cnoc_mnoc_mmss_cfg_links, 11687ae77e60SDmitry Baryshkov }; 11697ae77e60SDmitry Baryshkov 11707ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_usb_hs = { 11717ae77e60SDmitry Baryshkov .name = "slv_usb_hs", 11727ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_USB_HS, 11737ae77e60SDmitry Baryshkov .buswidth = 4, 11747ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11757ae77e60SDmitry Baryshkov .slv_rpm_id = 40, 11767ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1177656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11787ae77e60SDmitry Baryshkov }; 11797ae77e60SDmitry Baryshkov 11807ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_usb3_0 = { 11817ae77e60SDmitry Baryshkov .name = "slv_usb3_0", 11827ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_USB3_0, 11837ae77e60SDmitry Baryshkov .buswidth = 4, 11847ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11857ae77e60SDmitry Baryshkov .slv_rpm_id = 22, 11867ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1187656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11887ae77e60SDmitry Baryshkov }; 11897ae77e60SDmitry Baryshkov 11907ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_srvc_cnoc = { 11917ae77e60SDmitry Baryshkov .name = "slv_srvc_cnoc", 11927ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SRVC_CNOC, 11937ae77e60SDmitry Baryshkov .buswidth = 4, 11947ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 11957ae77e60SDmitry Baryshkov .slv_rpm_id = 76, 11967ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1197656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 11987ae77e60SDmitry Baryshkov }; 11997ae77e60SDmitry Baryshkov 12007ae77e60SDmitry Baryshkov static const u16 slv_gnoc_bimc_links[] = { 12017ae77e60SDmitry Baryshkov SDM660_MASTER_GNOC_BIMC 12027ae77e60SDmitry Baryshkov }; 12037ae77e60SDmitry Baryshkov 12047ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_gnoc_bimc = { 12057ae77e60SDmitry Baryshkov .name = "slv_gnoc_bimc", 12067ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_GNOC_BIMC, 12077ae77e60SDmitry Baryshkov .buswidth = 16, 12087ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12097ae77e60SDmitry Baryshkov .slv_rpm_id = 210, 12107ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1211656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12127ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_gnoc_bimc_links), 12137ae77e60SDmitry Baryshkov .links = slv_gnoc_bimc_links, 12147ae77e60SDmitry Baryshkov }; 12157ae77e60SDmitry Baryshkov 12167ae77e60SDmitry Baryshkov static const u16 slv_gnoc_snoc_links[] = { 12177ae77e60SDmitry Baryshkov SDM660_MASTER_GNOC_SNOC 12187ae77e60SDmitry Baryshkov }; 12197ae77e60SDmitry Baryshkov 12207ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_gnoc_snoc = { 12217ae77e60SDmitry Baryshkov .name = "slv_gnoc_snoc", 12227ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_GNOC_SNOC, 12237ae77e60SDmitry Baryshkov .buswidth = 8, 12247ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12257ae77e60SDmitry Baryshkov .slv_rpm_id = 211, 12267ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1227656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12287ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_gnoc_snoc_links), 12297ae77e60SDmitry Baryshkov .links = slv_gnoc_snoc_links, 12307ae77e60SDmitry Baryshkov }; 12317ae77e60SDmitry Baryshkov 12327ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_camera_cfg = { 12337ae77e60SDmitry Baryshkov .name = "slv_camera_cfg", 12347ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CAMERA_CFG, 12357ae77e60SDmitry Baryshkov .buswidth = 4, 12367ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12377ae77e60SDmitry Baryshkov .slv_rpm_id = 3, 12387ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1239656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12407ae77e60SDmitry Baryshkov }; 12417ae77e60SDmitry Baryshkov 12427ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_camera_throttle_cfg = { 12437ae77e60SDmitry Baryshkov .name = "slv_camera_throttle_cfg", 12447ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CAMERA_THROTTLE_CFG, 12457ae77e60SDmitry Baryshkov .buswidth = 4, 12467ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12477ae77e60SDmitry Baryshkov .slv_rpm_id = 154, 12487ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1249656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12507ae77e60SDmitry Baryshkov }; 12517ae77e60SDmitry Baryshkov 12527ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_misc_cfg = { 12537ae77e60SDmitry Baryshkov .name = "slv_misc_cfg", 12547ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MISC_CFG, 12557ae77e60SDmitry Baryshkov .buswidth = 4, 12567ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12577ae77e60SDmitry Baryshkov .slv_rpm_id = 8, 12587ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1259656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12607ae77e60SDmitry Baryshkov }; 12617ae77e60SDmitry Baryshkov 12627ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_venus_throttle_cfg = { 12637ae77e60SDmitry Baryshkov .name = "slv_venus_throttle_cfg", 12647ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_VENUS_THROTTLE_CFG, 12657ae77e60SDmitry Baryshkov .buswidth = 4, 12667ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12677ae77e60SDmitry Baryshkov .slv_rpm_id = 178, 12687ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1269656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12707ae77e60SDmitry Baryshkov }; 12717ae77e60SDmitry Baryshkov 12727ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_venus_cfg = { 12737ae77e60SDmitry Baryshkov .name = "slv_venus_cfg", 12747ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_VENUS_CFG, 12757ae77e60SDmitry Baryshkov .buswidth = 4, 12767ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12777ae77e60SDmitry Baryshkov .slv_rpm_id = 10, 12787ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1279656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12807ae77e60SDmitry Baryshkov }; 12817ae77e60SDmitry Baryshkov 12827ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mmss_clk_xpu_cfg = { 12837ae77e60SDmitry Baryshkov .name = "slv_mmss_clk_xpu_cfg", 12847ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MMSS_CLK_XPU_CFG, 12857ae77e60SDmitry Baryshkov .buswidth = 4, 12867ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12877ae77e60SDmitry Baryshkov .slv_rpm_id = 13, 12887ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1289656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 12907ae77e60SDmitry Baryshkov }; 12917ae77e60SDmitry Baryshkov 12927ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mmss_clk_cfg = { 12937ae77e60SDmitry Baryshkov .name = "slv_mmss_clk_cfg", 12947ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MMSS_CLK_CFG, 12957ae77e60SDmitry Baryshkov .buswidth = 4, 12967ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 12977ae77e60SDmitry Baryshkov .slv_rpm_id = 12, 12987ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1299656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13007ae77e60SDmitry Baryshkov }; 13017ae77e60SDmitry Baryshkov 13027ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mnoc_mpu_cfg = { 13037ae77e60SDmitry Baryshkov .name = "slv_mnoc_mpu_cfg", 13047ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MNOC_MPU_CFG, 13057ae77e60SDmitry Baryshkov .buswidth = 4, 13067ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13077ae77e60SDmitry Baryshkov .slv_rpm_id = 14, 13087ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1309656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13107ae77e60SDmitry Baryshkov }; 13117ae77e60SDmitry Baryshkov 13127ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_display_cfg = { 13137ae77e60SDmitry Baryshkov .name = "slv_display_cfg", 13147ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_DISPLAY_CFG, 13157ae77e60SDmitry Baryshkov .buswidth = 4, 13167ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13177ae77e60SDmitry Baryshkov .slv_rpm_id = 4, 13187ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1319656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13207ae77e60SDmitry Baryshkov }; 13217ae77e60SDmitry Baryshkov 13227ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_csi_phy_cfg = { 13237ae77e60SDmitry Baryshkov .name = "slv_csi_phy_cfg", 13247ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CSI_PHY_CFG, 13257ae77e60SDmitry Baryshkov .buswidth = 4, 13267ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13277ae77e60SDmitry Baryshkov .slv_rpm_id = 224, 13287ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1329656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13307ae77e60SDmitry Baryshkov }; 13317ae77e60SDmitry Baryshkov 13327ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_display_throttle_cfg = { 13337ae77e60SDmitry Baryshkov .name = "slv_display_throttle_cfg", 13347ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_DISPLAY_THROTTLE_CFG, 13357ae77e60SDmitry Baryshkov .buswidth = 4, 13367ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13377ae77e60SDmitry Baryshkov .slv_rpm_id = 156, 13387ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1339656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13407ae77e60SDmitry Baryshkov }; 13417ae77e60SDmitry Baryshkov 13427ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_smmu_cfg = { 13437ae77e60SDmitry Baryshkov .name = "slv_smmu_cfg", 13447ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SMMU_CFG, 13457ae77e60SDmitry Baryshkov .buswidth = 8, 13467ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13477ae77e60SDmitry Baryshkov .slv_rpm_id = 205, 13487ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1349656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13507ae77e60SDmitry Baryshkov }; 13517ae77e60SDmitry Baryshkov 13527ae77e60SDmitry Baryshkov static const u16 slv_mnoc_bimc_links[] = { 13537ae77e60SDmitry Baryshkov SDM660_MASTER_MNOC_BIMC 13547ae77e60SDmitry Baryshkov }; 13557ae77e60SDmitry Baryshkov 13567ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_mnoc_bimc = { 13577ae77e60SDmitry Baryshkov .name = "slv_mnoc_bimc", 13587ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_MNOC_BIMC, 13597ae77e60SDmitry Baryshkov .buswidth = 16, 13607ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13617ae77e60SDmitry Baryshkov .slv_rpm_id = 16, 13627ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1363656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13647ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_mnoc_bimc_links), 13657ae77e60SDmitry Baryshkov .links = slv_mnoc_bimc_links, 13667ae77e60SDmitry Baryshkov }; 13677ae77e60SDmitry Baryshkov 13687ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_srvc_mnoc = { 13697ae77e60SDmitry Baryshkov .name = "slv_srvc_mnoc", 13707ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SRVC_MNOC, 13717ae77e60SDmitry Baryshkov .buswidth = 8, 13727ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13737ae77e60SDmitry Baryshkov .slv_rpm_id = 17, 13747ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1375656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13767ae77e60SDmitry Baryshkov }; 13777ae77e60SDmitry Baryshkov 13787ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_hmss = { 13797ae77e60SDmitry Baryshkov .name = "slv_hmss", 13807ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_HMSS, 13817ae77e60SDmitry Baryshkov .buswidth = 8, 13827ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13837ae77e60SDmitry Baryshkov .slv_rpm_id = 20, 13847ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1385656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13867ae77e60SDmitry Baryshkov }; 13877ae77e60SDmitry Baryshkov 13887ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_lpass = { 13897ae77e60SDmitry Baryshkov .name = "slv_lpass", 13907ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_LPASS, 13917ae77e60SDmitry Baryshkov .buswidth = 4, 13927ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 13937ae77e60SDmitry Baryshkov .slv_rpm_id = 21, 13947ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1395656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 13967ae77e60SDmitry Baryshkov }; 13977ae77e60SDmitry Baryshkov 13987ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_wlan = { 13997ae77e60SDmitry Baryshkov .name = "slv_wlan", 14007ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_WLAN, 14017ae77e60SDmitry Baryshkov .buswidth = 4, 14027ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14037ae77e60SDmitry Baryshkov .slv_rpm_id = 206, 14047ae77e60SDmitry Baryshkov }; 14057ae77e60SDmitry Baryshkov 14067ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_cdsp = { 14077ae77e60SDmitry Baryshkov .name = "slv_cdsp", 14087ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_CDSP, 14097ae77e60SDmitry Baryshkov .buswidth = 4, 14107ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14117ae77e60SDmitry Baryshkov .slv_rpm_id = 221, 14127ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1413656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 14147ae77e60SDmitry Baryshkov }; 14157ae77e60SDmitry Baryshkov 14167ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_ipa = { 14177ae77e60SDmitry Baryshkov .name = "slv_ipa", 14187ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_IPA, 14197ae77e60SDmitry Baryshkov .buswidth = 4, 14207ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14217ae77e60SDmitry Baryshkov .slv_rpm_id = 183, 14227ae77e60SDmitry Baryshkov .qos.ap_owned = true, 1423656ba110SDmitry Baryshkov .qos.qos_mode = NOC_QOS_MODE_INVALID, 14247ae77e60SDmitry Baryshkov }; 14257ae77e60SDmitry Baryshkov 14267ae77e60SDmitry Baryshkov static const u16 slv_snoc_bimc_links[] = { 14277ae77e60SDmitry Baryshkov SDM660_MASTER_SNOC_BIMC 14287ae77e60SDmitry Baryshkov }; 14297ae77e60SDmitry Baryshkov 14307ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_snoc_bimc = { 14317ae77e60SDmitry Baryshkov .name = "slv_snoc_bimc", 14327ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SNOC_BIMC, 14337ae77e60SDmitry Baryshkov .buswidth = 16, 14347ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14357ae77e60SDmitry Baryshkov .slv_rpm_id = 24, 14367ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_snoc_bimc_links), 14377ae77e60SDmitry Baryshkov .links = slv_snoc_bimc_links, 14387ae77e60SDmitry Baryshkov }; 14397ae77e60SDmitry Baryshkov 14407ae77e60SDmitry Baryshkov static const u16 slv_snoc_cnoc_links[] = { 14417ae77e60SDmitry Baryshkov SDM660_MASTER_SNOC_CNOC 14427ae77e60SDmitry Baryshkov }; 14437ae77e60SDmitry Baryshkov 14447ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_snoc_cnoc = { 14457ae77e60SDmitry Baryshkov .name = "slv_snoc_cnoc", 14467ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SNOC_CNOC, 14477ae77e60SDmitry Baryshkov .buswidth = 8, 14487ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14497ae77e60SDmitry Baryshkov .slv_rpm_id = 25, 14507ae77e60SDmitry Baryshkov .num_links = ARRAY_SIZE(slv_snoc_cnoc_links), 14517ae77e60SDmitry Baryshkov .links = slv_snoc_cnoc_links, 14527ae77e60SDmitry Baryshkov }; 14537ae77e60SDmitry Baryshkov 14547ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_imem = { 14557ae77e60SDmitry Baryshkov .name = "slv_imem", 14567ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_IMEM, 14577ae77e60SDmitry Baryshkov .buswidth = 8, 14587ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14597ae77e60SDmitry Baryshkov .slv_rpm_id = 26, 14607ae77e60SDmitry Baryshkov }; 14617ae77e60SDmitry Baryshkov 14627ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_pimem = { 14637ae77e60SDmitry Baryshkov .name = "slv_pimem", 14647ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_PIMEM, 14657ae77e60SDmitry Baryshkov .buswidth = 8, 14667ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14677ae77e60SDmitry Baryshkov .slv_rpm_id = 166, 14687ae77e60SDmitry Baryshkov }; 14697ae77e60SDmitry Baryshkov 14707ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_qdss_stm = { 14717ae77e60SDmitry Baryshkov .name = "slv_qdss_stm", 14727ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_QDSS_STM, 14737ae77e60SDmitry Baryshkov .buswidth = 4, 14747ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14757ae77e60SDmitry Baryshkov .slv_rpm_id = 30, 14767ae77e60SDmitry Baryshkov }; 14777ae77e60SDmitry Baryshkov 14787ae77e60SDmitry Baryshkov static struct qcom_icc_node slv_srvc_snoc = { 14797ae77e60SDmitry Baryshkov .name = "slv_srvc_snoc", 14807ae77e60SDmitry Baryshkov .id = SDM660_SLAVE_SRVC_SNOC, 14817ae77e60SDmitry Baryshkov .buswidth = 16, 14827ae77e60SDmitry Baryshkov .mas_rpm_id = -1, 14837ae77e60SDmitry Baryshkov .slv_rpm_id = 29, 14847ae77e60SDmitry Baryshkov }; 1485f80a1d41SAngeloGioacchino Del Regno 14862ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_a2noc_nodes[] = { 1487f80a1d41SAngeloGioacchino Del Regno [MASTER_IPA] = &mas_ipa, 1488f80a1d41SAngeloGioacchino Del Regno [MASTER_CNOC_A2NOC] = &mas_cnoc_a2noc, 1489f80a1d41SAngeloGioacchino Del Regno [MASTER_SDCC_1] = &mas_sdcc_1, 1490f80a1d41SAngeloGioacchino Del Regno [MASTER_SDCC_2] = &mas_sdcc_2, 1491f80a1d41SAngeloGioacchino Del Regno [MASTER_BLSP_1] = &mas_blsp_1, 1492f80a1d41SAngeloGioacchino Del Regno [MASTER_BLSP_2] = &mas_blsp_2, 1493f80a1d41SAngeloGioacchino Del Regno [MASTER_UFS] = &mas_ufs, 1494f80a1d41SAngeloGioacchino Del Regno [MASTER_USB_HS] = &mas_usb_hs, 1495f80a1d41SAngeloGioacchino Del Regno [MASTER_USB3] = &mas_usb3, 1496f80a1d41SAngeloGioacchino Del Regno [MASTER_CRYPTO_C0] = &mas_crypto, 1497f80a1d41SAngeloGioacchino Del Regno [SLAVE_A2NOC_SNOC] = &slv_a2noc_snoc, 1498f80a1d41SAngeloGioacchino Del Regno }; 1499f80a1d41SAngeloGioacchino Del Regno 1500f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_a2noc_regmap_config = { 1501f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1502f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1503f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1504f80a1d41SAngeloGioacchino Del Regno .max_register = 0x20000, 1505f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1506f80a1d41SAngeloGioacchino Del Regno }; 1507f80a1d41SAngeloGioacchino Del Regno 15081625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_a2noc = { 1509e9d54c26SShawn Guo .type = QCOM_ICC_NOC, 1510f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_a2noc_nodes, 1511f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_a2noc_nodes), 151270ab8deeSKonrad Dybcio .bus_clk_desc = &aggre2_clk, 15132e2113c8SKonrad Dybcio .intf_clocks = a2noc_intf_clocks, 15142e2113c8SKonrad Dybcio .num_intf_clocks = ARRAY_SIZE(a2noc_intf_clocks), 1515f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_a2noc_regmap_config, 1516f80a1d41SAngeloGioacchino Del Regno }; 1517f80a1d41SAngeloGioacchino Del Regno 15182ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_bimc_nodes[] = { 1519f80a1d41SAngeloGioacchino Del Regno [MASTER_GNOC_BIMC] = &mas_gnoc_bimc, 1520f80a1d41SAngeloGioacchino Del Regno [MASTER_OXILI] = &mas_oxili, 1521f80a1d41SAngeloGioacchino Del Regno [MASTER_MNOC_BIMC] = &mas_mnoc_bimc, 1522f80a1d41SAngeloGioacchino Del Regno [MASTER_SNOC_BIMC] = &mas_snoc_bimc, 1523f80a1d41SAngeloGioacchino Del Regno [MASTER_PIMEM] = &mas_pimem, 1524f80a1d41SAngeloGioacchino Del Regno [SLAVE_EBI] = &slv_ebi, 1525f80a1d41SAngeloGioacchino Del Regno [SLAVE_HMSS_L3] = &slv_hmss_l3, 1526f80a1d41SAngeloGioacchino Del Regno [SLAVE_BIMC_SNOC] = &slv_bimc_snoc, 1527f80a1d41SAngeloGioacchino Del Regno }; 1528f80a1d41SAngeloGioacchino Del Regno 1529f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_bimc_regmap_config = { 1530f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1531f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1532f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1533f80a1d41SAngeloGioacchino Del Regno .max_register = 0x80000, 1534f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1535f80a1d41SAngeloGioacchino Del Regno }; 1536f80a1d41SAngeloGioacchino Del Regno 15371625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_bimc = { 1538e9d54c26SShawn Guo .type = QCOM_ICC_BIMC, 1539f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_bimc_nodes, 1540f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_bimc_nodes), 154170ab8deeSKonrad Dybcio .bus_clk_desc = &bimc_clk, 1542f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_bimc_regmap_config, 1543f80a1d41SAngeloGioacchino Del Regno }; 1544f80a1d41SAngeloGioacchino Del Regno 15452ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_cnoc_nodes[] = { 1546f80a1d41SAngeloGioacchino Del Regno [MASTER_SNOC_CNOC] = &mas_snoc_cnoc, 1547f80a1d41SAngeloGioacchino Del Regno [MASTER_QDSS_DAP] = &mas_qdss_dap, 1548f80a1d41SAngeloGioacchino Del Regno [SLAVE_CNOC_A2NOC] = &slv_cnoc_a2noc, 1549f80a1d41SAngeloGioacchino Del Regno [SLAVE_MPM] = &slv_mpm, 1550f80a1d41SAngeloGioacchino Del Regno [SLAVE_PMIC_ARB] = &slv_pmic_arb, 1551f80a1d41SAngeloGioacchino Del Regno [SLAVE_TLMM_NORTH] = &slv_tlmm_north, 1552f80a1d41SAngeloGioacchino Del Regno [SLAVE_TCSR] = &slv_tcsr, 1553f80a1d41SAngeloGioacchino Del Regno [SLAVE_PIMEM_CFG] = &slv_pimem_cfg, 1554f80a1d41SAngeloGioacchino Del Regno [SLAVE_IMEM_CFG] = &slv_imem_cfg, 1555f80a1d41SAngeloGioacchino Del Regno [SLAVE_MESSAGE_RAM] = &slv_message_ram, 1556f80a1d41SAngeloGioacchino Del Regno [SLAVE_GLM] = &slv_glm, 1557f80a1d41SAngeloGioacchino Del Regno [SLAVE_BIMC_CFG] = &slv_bimc_cfg, 1558f80a1d41SAngeloGioacchino Del Regno [SLAVE_PRNG] = &slv_prng, 1559f80a1d41SAngeloGioacchino Del Regno [SLAVE_SPDM] = &slv_spdm, 1560f80a1d41SAngeloGioacchino Del Regno [SLAVE_QDSS_CFG] = &slv_qdss_cfg, 1561f80a1d41SAngeloGioacchino Del Regno [SLAVE_CNOC_MNOC_CFG] = &slv_cnoc_mnoc_cfg, 1562f80a1d41SAngeloGioacchino Del Regno [SLAVE_SNOC_CFG] = &slv_snoc_cfg, 1563f80a1d41SAngeloGioacchino Del Regno [SLAVE_QM_CFG] = &slv_qm_cfg, 1564f80a1d41SAngeloGioacchino Del Regno [SLAVE_CLK_CTL] = &slv_clk_ctl, 1565f80a1d41SAngeloGioacchino Del Regno [SLAVE_MSS_CFG] = &slv_mss_cfg, 1566f80a1d41SAngeloGioacchino Del Regno [SLAVE_TLMM_SOUTH] = &slv_tlmm_south, 1567f80a1d41SAngeloGioacchino Del Regno [SLAVE_UFS_CFG] = &slv_ufs_cfg, 1568f80a1d41SAngeloGioacchino Del Regno [SLAVE_A2NOC_CFG] = &slv_a2noc_cfg, 1569f80a1d41SAngeloGioacchino Del Regno [SLAVE_A2NOC_SMMU_CFG] = &slv_a2noc_smmu_cfg, 1570f80a1d41SAngeloGioacchino Del Regno [SLAVE_GPUSS_CFG] = &slv_gpuss_cfg, 1571f80a1d41SAngeloGioacchino Del Regno [SLAVE_AHB2PHY] = &slv_ahb2phy, 1572f80a1d41SAngeloGioacchino Del Regno [SLAVE_BLSP_1] = &slv_blsp_1, 1573f80a1d41SAngeloGioacchino Del Regno [SLAVE_SDCC_1] = &slv_sdcc_1, 1574f80a1d41SAngeloGioacchino Del Regno [SLAVE_SDCC_2] = &slv_sdcc_2, 1575f80a1d41SAngeloGioacchino Del Regno [SLAVE_TLMM_CENTER] = &slv_tlmm_center, 1576f80a1d41SAngeloGioacchino Del Regno [SLAVE_BLSP_2] = &slv_blsp_2, 1577f80a1d41SAngeloGioacchino Del Regno [SLAVE_PDM] = &slv_pdm, 1578f80a1d41SAngeloGioacchino Del Regno [SLAVE_CNOC_MNOC_MMSS_CFG] = &slv_cnoc_mnoc_mmss_cfg, 1579f80a1d41SAngeloGioacchino Del Regno [SLAVE_USB_HS] = &slv_usb_hs, 1580f80a1d41SAngeloGioacchino Del Regno [SLAVE_USB3_0] = &slv_usb3_0, 1581f80a1d41SAngeloGioacchino Del Regno [SLAVE_SRVC_CNOC] = &slv_srvc_cnoc, 1582f80a1d41SAngeloGioacchino Del Regno }; 1583f80a1d41SAngeloGioacchino Del Regno 1584f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_cnoc_regmap_config = { 1585f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1586f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1587f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1588f80a1d41SAngeloGioacchino Del Regno .max_register = 0x10000, 1589f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1590f80a1d41SAngeloGioacchino Del Regno }; 1591f80a1d41SAngeloGioacchino Del Regno 15921625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_cnoc = { 1593e9d54c26SShawn Guo .type = QCOM_ICC_NOC, 1594f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_cnoc_nodes, 1595f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_cnoc_nodes), 159670ab8deeSKonrad Dybcio .bus_clk_desc = &bus_2_clk, 1597f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_cnoc_regmap_config, 1598f80a1d41SAngeloGioacchino Del Regno }; 1599f80a1d41SAngeloGioacchino Del Regno 16002ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_gnoc_nodes[] = { 1601f80a1d41SAngeloGioacchino Del Regno [MASTER_APSS_PROC] = &mas_apss_proc, 1602f80a1d41SAngeloGioacchino Del Regno [SLAVE_GNOC_BIMC] = &slv_gnoc_bimc, 1603f80a1d41SAngeloGioacchino Del Regno [SLAVE_GNOC_SNOC] = &slv_gnoc_snoc, 1604f80a1d41SAngeloGioacchino Del Regno }; 1605f80a1d41SAngeloGioacchino Del Regno 1606f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_gnoc_regmap_config = { 1607f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1608f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1609f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1610f80a1d41SAngeloGioacchino Del Regno .max_register = 0xe000, 1611f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1612f80a1d41SAngeloGioacchino Del Regno }; 1613f80a1d41SAngeloGioacchino Del Regno 16141625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_gnoc = { 1615e9d54c26SShawn Guo .type = QCOM_ICC_NOC, 1616f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_gnoc_nodes, 1617f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_gnoc_nodes), 1618f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_gnoc_regmap_config, 1619f80a1d41SAngeloGioacchino Del Regno }; 1620f80a1d41SAngeloGioacchino Del Regno 16212ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_mnoc_nodes[] = { 1622f80a1d41SAngeloGioacchino Del Regno [MASTER_CPP] = &mas_cpp, 1623f80a1d41SAngeloGioacchino Del Regno [MASTER_JPEG] = &mas_jpeg, 1624f80a1d41SAngeloGioacchino Del Regno [MASTER_MDP_P0] = &mas_mdp_p0, 1625f80a1d41SAngeloGioacchino Del Regno [MASTER_MDP_P1] = &mas_mdp_p1, 1626f80a1d41SAngeloGioacchino Del Regno [MASTER_VENUS] = &mas_venus, 1627f80a1d41SAngeloGioacchino Del Regno [MASTER_VFE] = &mas_vfe, 1628f80a1d41SAngeloGioacchino Del Regno [MASTER_CNOC_MNOC_MMSS_CFG] = &mas_cnoc_mnoc_mmss_cfg, 1629f80a1d41SAngeloGioacchino Del Regno [MASTER_CNOC_MNOC_CFG] = &mas_cnoc_mnoc_cfg, 1630f80a1d41SAngeloGioacchino Del Regno [SLAVE_CAMERA_CFG] = &slv_camera_cfg, 1631f80a1d41SAngeloGioacchino Del Regno [SLAVE_CAMERA_THROTTLE_CFG] = &slv_camera_throttle_cfg, 1632f80a1d41SAngeloGioacchino Del Regno [SLAVE_MISC_CFG] = &slv_misc_cfg, 1633f80a1d41SAngeloGioacchino Del Regno [SLAVE_VENUS_THROTTLE_CFG] = &slv_venus_throttle_cfg, 1634f80a1d41SAngeloGioacchino Del Regno [SLAVE_VENUS_CFG] = &slv_venus_cfg, 1635f80a1d41SAngeloGioacchino Del Regno [SLAVE_MMSS_CLK_XPU_CFG] = &slv_mmss_clk_xpu_cfg, 1636f80a1d41SAngeloGioacchino Del Regno [SLAVE_MMSS_CLK_CFG] = &slv_mmss_clk_cfg, 1637f80a1d41SAngeloGioacchino Del Regno [SLAVE_MNOC_MPU_CFG] = &slv_mnoc_mpu_cfg, 1638f80a1d41SAngeloGioacchino Del Regno [SLAVE_DISPLAY_CFG] = &slv_display_cfg, 1639f80a1d41SAngeloGioacchino Del Regno [SLAVE_CSI_PHY_CFG] = &slv_csi_phy_cfg, 1640f80a1d41SAngeloGioacchino Del Regno [SLAVE_DISPLAY_THROTTLE_CFG] = &slv_display_throttle_cfg, 1641f80a1d41SAngeloGioacchino Del Regno [SLAVE_SMMU_CFG] = &slv_smmu_cfg, 1642f80a1d41SAngeloGioacchino Del Regno [SLAVE_SRVC_MNOC] = &slv_srvc_mnoc, 1643f80a1d41SAngeloGioacchino Del Regno [SLAVE_MNOC_BIMC] = &slv_mnoc_bimc, 1644f80a1d41SAngeloGioacchino Del Regno }; 1645f80a1d41SAngeloGioacchino Del Regno 1646f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_mnoc_regmap_config = { 1647f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1648f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1649f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1650f80a1d41SAngeloGioacchino Del Regno .max_register = 0x10000, 1651f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1652f80a1d41SAngeloGioacchino Del Regno }; 1653f80a1d41SAngeloGioacchino Del Regno 16541625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_mnoc = { 1655e9d54c26SShawn Guo .type = QCOM_ICC_NOC, 1656f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_mnoc_nodes, 1657f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_mnoc_nodes), 165870ab8deeSKonrad Dybcio .bus_clk_desc = &mmaxi_0_clk, 16592e2113c8SKonrad Dybcio .intf_clocks = mm_intf_clocks, 16602e2113c8SKonrad Dybcio .num_intf_clocks = ARRAY_SIZE(mm_intf_clocks), 1661f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_mnoc_regmap_config, 1662f80a1d41SAngeloGioacchino Del Regno }; 1663f80a1d41SAngeloGioacchino Del Regno 16642ccf33c0SKrzysztof Kozlowski static struct qcom_icc_node * const sdm660_snoc_nodes[] = { 1665f80a1d41SAngeloGioacchino Del Regno [MASTER_QDSS_ETR] = &mas_qdss_etr, 1666f80a1d41SAngeloGioacchino Del Regno [MASTER_QDSS_BAM] = &mas_qdss_bam, 1667f80a1d41SAngeloGioacchino Del Regno [MASTER_SNOC_CFG] = &mas_snoc_cfg, 1668f80a1d41SAngeloGioacchino Del Regno [MASTER_BIMC_SNOC] = &mas_bimc_snoc, 1669f80a1d41SAngeloGioacchino Del Regno [MASTER_A2NOC_SNOC] = &mas_a2noc_snoc, 1670f80a1d41SAngeloGioacchino Del Regno [MASTER_GNOC_SNOC] = &mas_gnoc_snoc, 1671f80a1d41SAngeloGioacchino Del Regno [SLAVE_HMSS] = &slv_hmss, 1672f80a1d41SAngeloGioacchino Del Regno [SLAVE_LPASS] = &slv_lpass, 1673f80a1d41SAngeloGioacchino Del Regno [SLAVE_WLAN] = &slv_wlan, 1674f80a1d41SAngeloGioacchino Del Regno [SLAVE_CDSP] = &slv_cdsp, 1675f80a1d41SAngeloGioacchino Del Regno [SLAVE_IPA] = &slv_ipa, 1676f80a1d41SAngeloGioacchino Del Regno [SLAVE_SNOC_BIMC] = &slv_snoc_bimc, 1677f80a1d41SAngeloGioacchino Del Regno [SLAVE_SNOC_CNOC] = &slv_snoc_cnoc, 1678f80a1d41SAngeloGioacchino Del Regno [SLAVE_IMEM] = &slv_imem, 1679f80a1d41SAngeloGioacchino Del Regno [SLAVE_PIMEM] = &slv_pimem, 1680f80a1d41SAngeloGioacchino Del Regno [SLAVE_QDSS_STM] = &slv_qdss_stm, 1681f80a1d41SAngeloGioacchino Del Regno [SLAVE_SRVC_SNOC] = &slv_srvc_snoc, 1682f80a1d41SAngeloGioacchino Del Regno }; 1683f80a1d41SAngeloGioacchino Del Regno 1684f80a1d41SAngeloGioacchino Del Regno static const struct regmap_config sdm660_snoc_regmap_config = { 1685f80a1d41SAngeloGioacchino Del Regno .reg_bits = 32, 1686f80a1d41SAngeloGioacchino Del Regno .reg_stride = 4, 1687f80a1d41SAngeloGioacchino Del Regno .val_bits = 32, 1688f80a1d41SAngeloGioacchino Del Regno .max_register = 0x20000, 1689f80a1d41SAngeloGioacchino Del Regno .fast_io = true, 1690f80a1d41SAngeloGioacchino Del Regno }; 1691f80a1d41SAngeloGioacchino Del Regno 16921625aaa3SKrzysztof Kozlowski static const struct qcom_icc_desc sdm660_snoc = { 1693e9d54c26SShawn Guo .type = QCOM_ICC_NOC, 1694f80a1d41SAngeloGioacchino Del Regno .nodes = sdm660_snoc_nodes, 1695f80a1d41SAngeloGioacchino Del Regno .num_nodes = ARRAY_SIZE(sdm660_snoc_nodes), 169670ab8deeSKonrad Dybcio .bus_clk_desc = &bus_1_clk, 1697f80a1d41SAngeloGioacchino Del Regno .regmap_cfg = &sdm660_snoc_regmap_config, 1698f80a1d41SAngeloGioacchino Del Regno }; 1699f80a1d41SAngeloGioacchino Del Regno 1700f80a1d41SAngeloGioacchino Del Regno static const struct of_device_id sdm660_noc_of_match[] = { 1701f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-a2noc", .data = &sdm660_a2noc }, 1702f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-bimc", .data = &sdm660_bimc }, 1703f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-cnoc", .data = &sdm660_cnoc }, 1704f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-gnoc", .data = &sdm660_gnoc }, 1705f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-mnoc", .data = &sdm660_mnoc }, 1706f80a1d41SAngeloGioacchino Del Regno { .compatible = "qcom,sdm660-snoc", .data = &sdm660_snoc }, 1707f80a1d41SAngeloGioacchino Del Regno { }, 1708f80a1d41SAngeloGioacchino Del Regno }; 1709f80a1d41SAngeloGioacchino Del Regno MODULE_DEVICE_TABLE(of, sdm660_noc_of_match); 1710f80a1d41SAngeloGioacchino Del Regno 1711f80a1d41SAngeloGioacchino Del Regno static struct platform_driver sdm660_noc_driver = { 1712f80a1d41SAngeloGioacchino Del Regno .probe = qnoc_probe, 1713f80a1d41SAngeloGioacchino Del Regno .remove = qnoc_remove, 1714f80a1d41SAngeloGioacchino Del Regno .driver = { 1715f80a1d41SAngeloGioacchino Del Regno .name = "qnoc-sdm660", 1716f80a1d41SAngeloGioacchino Del Regno .of_match_table = sdm660_noc_of_match, 1717f80a1d41SAngeloGioacchino Del Regno }, 1718f80a1d41SAngeloGioacchino Del Regno }; 1719f80a1d41SAngeloGioacchino Del Regno module_platform_driver(sdm660_noc_driver); 1720f80a1d41SAngeloGioacchino Del Regno MODULE_DESCRIPTION("Qualcomm sdm660 NoC driver"); 1721f80a1d41SAngeloGioacchino Del Regno MODULE_LICENSE("GPL v2"); 1722