interconnect: qcom: Add SC7280 interconnect provider driver

Add driver for the Qualcomm interconnect buses found in SC7280 based
platforms. The topology consists of several NoCs that are controlled by
a remote processor that collects the aggregated bandwidth for each
master-slave pairs.

Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
Link: https://lore.kernel.org/r/1619517059-12109-3-git-send-email-okukatla@codeaurora.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
This commit is contained in:
Odelu Kukatla 2021-04-27 15:20:57 +05:30 committed by Georgi Djakov
parent 0b88961893
commit 46bdcac533
4 changed files with 2103 additions and 0 deletions

View File

@ -74,6 +74,15 @@ config INTERCONNECT_QCOM_SC7180
This is a driver for the Qualcomm Network-on-Chip on sc7180-based This is a driver for the Qualcomm Network-on-Chip on sc7180-based
platforms. platforms.
config INTERCONNECT_QCOM_SC7280
tristate "Qualcomm SC7280 interconnect driver"
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
select INTERCONNECT_QCOM_RPMH
select INTERCONNECT_QCOM_BCM_VOTER
help
This is a driver for the Qualcomm Network-on-Chip on sc7280-based
platforms.
config INTERCONNECT_QCOM_SDM660 config INTERCONNECT_QCOM_SDM660
tristate "Qualcomm SDM660 interconnect driver" tristate "Qualcomm SDM660 interconnect driver"
depends on INTERCONNECT_QCOM depends on INTERCONNECT_QCOM

View File

@ -8,6 +8,7 @@ icc-osm-l3-objs := osm-l3.o
qnoc-qcs404-objs := qcs404.o qnoc-qcs404-objs := qcs404.o
icc-rpmh-obj := icc-rpmh.o icc-rpmh-obj := icc-rpmh.o
qnoc-sc7180-objs := sc7180.o qnoc-sc7180-objs := sc7180.o
qnoc-sc7280-objs := sc7280.o
qnoc-sdm660-objs := sdm660.o qnoc-sdm660-objs := sdm660.o
qnoc-sdm845-objs := sdm845.o qnoc-sdm845-objs := sdm845.o
qnoc-sdx55-objs := sdx55.o qnoc-sdx55-objs := sdx55.o
@ -24,6 +25,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM_OSM_L3) += icc-osm-l3.o
obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o
obj-$(CONFIG_INTERCONNECT_QCOM_RPMH) += icc-rpmh.o obj-$(CONFIG_INTERCONNECT_QCOM_RPMH) += icc-rpmh.o
obj-$(CONFIG_INTERCONNECT_QCOM_SC7180) += qnoc-sc7180.o obj-$(CONFIG_INTERCONNECT_QCOM_SC7180) += qnoc-sc7180.o
obj-$(CONFIG_INTERCONNECT_QCOM_SC7280) += qnoc-sc7280.o
obj-$(CONFIG_INTERCONNECT_QCOM_SDM660) += qnoc-sdm660.o obj-$(CONFIG_INTERCONNECT_QCOM_SDM660) += qnoc-sdm660.o
obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o
obj-$(CONFIG_INTERCONNECT_QCOM_SDX55) += qnoc-sdx55.o obj-$(CONFIG_INTERCONNECT_QCOM_SDX55) += qnoc-sdx55.o

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,154 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Qualcomm #define SC7280 interconnect IDs
*
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
*/
#ifndef __DRIVERS_INTERCONNECT_QCOM_SC7280_H
#define __DRIVERS_INTERCONNECT_QCOM_SC7280_H
#define SC7280_MASTER_GPU_TCU 0
#define SC7280_MASTER_SYS_TCU 1
#define SC7280_MASTER_APPSS_PROC 2
#define SC7280_MASTER_LLCC 3
#define SC7280_MASTER_CNOC_LPASS_AG_NOC 4
#define SC7280_MASTER_CDSP_NOC_CFG 5
#define SC7280_MASTER_QDSS_BAM 6
#define SC7280_MASTER_QSPI_0 7
#define SC7280_MASTER_QUP_0 8
#define SC7280_MASTER_QUP_1 9
#define SC7280_MASTER_A1NOC_CFG 10
#define SC7280_MASTER_A2NOC_CFG 11
#define SC7280_MASTER_A1NOC_SNOC 12
#define SC7280_MASTER_A2NOC_SNOC 13
#define SC7280_MASTER_COMPUTE_NOC 14
#define SC7280_MASTER_CNOC2_CNOC3 15
#define SC7280_MASTER_CNOC3_CNOC2 16
#define SC7280_MASTER_CNOC_A2NOC 17
#define SC7280_MASTER_CNOC_DC_NOC 18
#define SC7280_MASTER_GEM_NOC_CFG 19
#define SC7280_MASTER_GEM_NOC_CNOC 20
#define SC7280_MASTER_GEM_NOC_PCIE_SNOC 21
#define SC7280_MASTER_GFX3D 22
#define SC7280_MASTER_CNOC_MNOC_CFG 23
#define SC7280_MASTER_MNOC_HF_MEM_NOC 24
#define SC7280_MASTER_MNOC_SF_MEM_NOC 25
#define SC7280_MASTER_ANOC_PCIE_GEM_NOC 26
#define SC7280_MASTER_SNOC_CFG 27
#define SC7280_MASTER_SNOC_GC_MEM_NOC 28
#define SC7280_MASTER_SNOC_SF_MEM_NOC 29
#define SC7280_MASTER_VIDEO_P0 30
#define SC7280_MASTER_VIDEO_PROC 31
#define SC7280_MASTER_QUP_CORE_0 32
#define SC7280_MASTER_QUP_CORE_1 33
#define SC7280_MASTER_CAMNOC_HF 34
#define SC7280_MASTER_CAMNOC_ICP 35
#define SC7280_MASTER_CAMNOC_SF 36
#define SC7280_MASTER_CRYPTO 37
#define SC7280_MASTER_IPA 38
#define SC7280_MASTER_MDP0 39
#define SC7280_MASTER_CDSP_PROC 40
#define SC7280_MASTER_PIMEM 41
#define SC7280_MASTER_GIC 42
#define SC7280_MASTER_PCIE_0 43
#define SC7280_MASTER_PCIE_1 44
#define SC7280_MASTER_QDSS_DAP 45
#define SC7280_MASTER_QDSS_ETR 46
#define SC7280_MASTER_SDCC_1 47
#define SC7280_MASTER_SDCC_2 48
#define SC7280_MASTER_SDCC_4 49
#define SC7280_MASTER_UFS_MEM 50
#define SC7280_MASTER_USB2 51
#define SC7280_MASTER_USB3_0 52
#define SC7280_SLAVE_EBI1 53
#define SC7280_SLAVE_AHB2PHY_SOUTH 54
#define SC7280_SLAVE_AHB2PHY_NORTH 55
#define SC7280_SLAVE_AOSS 56
#define SC7280_SLAVE_APPSS 57
#define SC7280_SLAVE_CAMERA_CFG 58
#define SC7280_SLAVE_CLK_CTL 59
#define SC7280_SLAVE_CDSP_CFG 60
#define SC7280_SLAVE_RBCPR_CX_CFG 61
#define SC7280_SLAVE_RBCPR_MX_CFG 62
#define SC7280_SLAVE_CRYPTO_0_CFG 63
#define SC7280_SLAVE_CX_RDPM 64
#define SC7280_SLAVE_DCC_CFG 65
#define SC7280_SLAVE_DISPLAY_CFG 66
#define SC7280_SLAVE_GFX3D_CFG 67
#define SC7280_SLAVE_HWKM 68
#define SC7280_SLAVE_IMEM_CFG 69
#define SC7280_SLAVE_IPA_CFG 70
#define SC7280_SLAVE_IPC_ROUTER_CFG 71
#define SC7280_SLAVE_LLCC_CFG 72
#define SC7280_SLAVE_LPASS 73
#define SC7280_SLAVE_LPASS_CORE_CFG 74
#define SC7280_SLAVE_LPASS_LPI_CFG 75
#define SC7280_SLAVE_LPASS_MPU_CFG 76
#define SC7280_SLAVE_LPASS_TOP_CFG 77
#define SC7280_SLAVE_MSS_PROC_MS_MPU_CFG 78
#define SC7280_SLAVE_MCDMA_MS_MPU_CFG 79
#define SC7280_SLAVE_CNOC_MSS 80
#define SC7280_SLAVE_MX_RDPM 81
#define SC7280_SLAVE_PCIE_0_CFG 82
#define SC7280_SLAVE_PCIE_1_CFG 83
#define SC7280_SLAVE_PDM 84
#define SC7280_SLAVE_PIMEM_CFG 85
#define SC7280_SLAVE_PKA_WRAPPER_CFG 86
#define SC7280_SLAVE_PMU_WRAPPER_CFG 87
#define SC7280_SLAVE_QDSS_CFG 88
#define SC7280_SLAVE_QSPI_0 89
#define SC7280_SLAVE_QUP_0 90
#define SC7280_SLAVE_QUP_1 91
#define SC7280_SLAVE_SDCC_1 92
#define SC7280_SLAVE_SDCC_2 93
#define SC7280_SLAVE_SDCC_4 94
#define SC7280_SLAVE_SECURITY 95
#define SC7280_SLAVE_TCSR 96
#define SC7280_SLAVE_TLMM 97
#define SC7280_SLAVE_UFS_MEM_CFG 98
#define SC7280_SLAVE_USB2 99
#define SC7280_SLAVE_USB3_0 100
#define SC7280_SLAVE_VENUS_CFG 101
#define SC7280_SLAVE_VSENSE_CTRL_CFG 102
#define SC7280_SLAVE_A1NOC_CFG 103
#define SC7280_SLAVE_A1NOC_SNOC 104
#define SC7280_SLAVE_A2NOC_CFG 105
#define SC7280_SLAVE_A2NOC_SNOC 106
#define SC7280_SLAVE_CNOC2_CNOC3 107
#define SC7280_SLAVE_CNOC3_CNOC2 108
#define SC7280_SLAVE_CNOC_A2NOC 109
#define SC7280_SLAVE_DDRSS_CFG 110
#define SC7280_SLAVE_GEM_NOC_CNOC 111
#define SC7280_SLAVE_GEM_NOC_CFG 112
#define SC7280_SLAVE_SNOC_GEM_NOC_GC 113
#define SC7280_SLAVE_SNOC_GEM_NOC_SF 114
#define SC7280_SLAVE_LLCC 115
#define SC7280_SLAVE_MNOC_HF_MEM_NOC 116
#define SC7280_SLAVE_MNOC_SF_MEM_NOC 117
#define SC7280_SLAVE_CNOC_MNOC_CFG 118
#define SC7280_SLAVE_CDSP_MEM_NOC 119
#define SC7280_SLAVE_MEM_NOC_PCIE_SNOC 120
#define SC7280_SLAVE_ANOC_PCIE_GEM_NOC 121
#define SC7280_SLAVE_SNOC_CFG 122
#define SC7280_SLAVE_QUP_CORE_0 123
#define SC7280_SLAVE_QUP_CORE_1 124
#define SC7280_SLAVE_BOOT_IMEM 125
#define SC7280_SLAVE_IMEM 126
#define SC7280_SLAVE_PIMEM 127
#define SC7280_SLAVE_SERVICE_NSP_NOC 128
#define SC7280_SLAVE_SERVICE_A1NOC 129
#define SC7280_SLAVE_SERVICE_A2NOC 130
#define SC7280_SLAVE_SERVICE_GEM_NOC_1 131
#define SC7280_SLAVE_SERVICE_MNOC 132
#define SC7280_SLAVE_SERVICES_LPASS_AML_NOC 133
#define SC7280_SLAVE_SERVICE_LPASS_AG_NOC 134
#define SC7280_SLAVE_SERVICE_GEM_NOC_2 135
#define SC7280_SLAVE_SERVICE_SNOC 136
#define SC7280_SLAVE_SERVICE_GEM_NOC 137
#define SC7280_SLAVE_PCIE_0 138
#define SC7280_SLAVE_PCIE_1 139
#define SC7280_SLAVE_QDSS_STM 140
#define SC7280_SLAVE_TCU 141
#endif