mirror of https://github.com/torvalds/linux.git
interconnect: qcom: add QCS8300 interconnect provider driver
Add driver for the Qualcomm interconnect buses found in QCS8300 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: Raviteja Laggyshetty <quic_rlaggysh@quicinc.com> Link: https://lore.kernel.org/r/20240910101013.3020-3-quic_rlaggysh@quicinc.com Signed-off-by: Georgi Djakov <djakov@kernel.org>
This commit is contained in:
parent
6fa115569d
commit
3063c3dfa0
|
|
@ -105,6 +105,17 @@ config INTERCONNECT_QCOM_QCS404
|
|||
This is a driver for the Qualcomm Network-on-Chip on qcs404-based
|
||||
platforms.
|
||||
|
||||
config INTERCONNECT_QCOM_QCS8300
|
||||
tristate "Qualcomm QCS8300 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 Technologies, Inc. Network-on-Chip
|
||||
on QCS8300-based platforms. The interconnect provider collects and
|
||||
aggreagates the cosumer bandwidth requests to satisfy constraints
|
||||
placed on Network-on-Chip performance states.
|
||||
|
||||
config INTERCONNECT_QCOM_QDU1000
|
||||
tristate "Qualcomm QDU1000/QRU1000 interconnect driver"
|
||||
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ qnoc-msm8996-objs := msm8996.o
|
|||
icc-osm-l3-objs := osm-l3.o
|
||||
qnoc-qcm2290-objs := qcm2290.o
|
||||
qnoc-qcs404-objs := qcs404.o
|
||||
qnoc-qcs8300-objs := qcs8300.o
|
||||
qnoc-qdu1000-objs := qdu1000.o
|
||||
icc-rpmh-obj := icc-rpmh.o
|
||||
qnoc-sa8775p-objs := sa8775p.o
|
||||
|
|
@ -52,6 +53,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM_MSM8996) += qnoc-msm8996.o
|
|||
obj-$(CONFIG_INTERCONNECT_QCOM_OSM_L3) += icc-osm-l3.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_QCM2290) += qnoc-qcm2290.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_QCS8300) += qnoc-qcs8300.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_QDU1000) += qnoc-qdu1000.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_RPMH) += icc-rpmh.o
|
||||
obj-$(CONFIG_INTERCONNECT_QCOM_SA8775P) += qnoc-sa8775p.o
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,177 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef __DRIVERS_INTERCONNECT_QCOM_QCS8300_H
|
||||
#define __DRIVERS_INTERCONNECT_QCOM_QCS8300_H
|
||||
|
||||
#define QCS8300_MASTER_GPU_TCU 0
|
||||
#define QCS8300_MASTER_PCIE_TCU 1
|
||||
#define QCS8300_MASTER_SYS_TCU 2
|
||||
#define QCS8300_MASTER_APPSS_PROC 3
|
||||
#define QCS8300_MASTER_LLCC 4
|
||||
#define QCS8300_MASTER_CNOC_LPASS_AG_NOC 5
|
||||
#define QCS8300_MASTER_GIC_AHB 6
|
||||
#define QCS8300_MASTER_CDSP_NOC_CFG 7
|
||||
#define QCS8300_MASTER_QDSS_BAM 8
|
||||
#define QCS8300_MASTER_QUP_0 9
|
||||
#define QCS8300_MASTER_QUP_1 10
|
||||
#define QCS8300_MASTER_A1NOC_SNOC 11
|
||||
#define QCS8300_MASTER_A2NOC_SNOC 12
|
||||
#define QCS8300_MASTER_CAMNOC_HF 13
|
||||
#define QCS8300_MASTER_CAMNOC_ICP 14
|
||||
#define QCS8300_MASTER_CAMNOC_SF 15
|
||||
#define QCS8300_MASTER_COMPUTE_NOC 16
|
||||
#define QCS8300_MASTER_CNOC_A2NOC 17
|
||||
#define QCS8300_MASTER_CNOC_DC_NOC 18
|
||||
#define QCS8300_MASTER_GEM_NOC_CFG 19
|
||||
#define QCS8300_MASTER_GEM_NOC_CNOC 20
|
||||
#define QCS8300_MASTER_GEM_NOC_PCIE_SNOC 21
|
||||
#define QCS8300_MASTER_GPDSP_SAIL 22
|
||||
#define QCS8300_MASTER_GFX3D 23
|
||||
#define QCS8300_MASTER_LPASS_ANOC 24
|
||||
#define QCS8300_MASTER_MDP0 25
|
||||
#define QCS8300_MASTER_MDP1 26
|
||||
#define QCS8300_MASTER_MNOC_HF_MEM_NOC 27
|
||||
#define QCS8300_MASTER_CNOC_MNOC_HF_CFG 28
|
||||
#define QCS8300_MASTER_MNOC_SF_MEM_NOC 29
|
||||
#define QCS8300_MASTER_CNOC_MNOC_SF_CFG 30
|
||||
#define QCS8300_MASTER_ANOC_PCIE_GEM_NOC 31
|
||||
#define QCS8300_MASTER_SAILSS_MD0 32
|
||||
#define QCS8300_MASTER_SNOC_CFG 33
|
||||
#define QCS8300_MASTER_SNOC_GC_MEM_NOC 34
|
||||
#define QCS8300_MASTER_SNOC_SF_MEM_NOC 35
|
||||
#define QCS8300_MASTER_VIDEO_P0 36
|
||||
#define QCS8300_MASTER_VIDEO_PROC 37
|
||||
#define QCS8300_MASTER_VIDEO_V_PROC 38
|
||||
#define QCS8300_MASTER_QUP_CORE_0 39
|
||||
#define QCS8300_MASTER_QUP_CORE_1 40
|
||||
#define QCS8300_MASTER_QUP_CORE_3 41
|
||||
#define QCS8300_MASTER_CRYPTO_CORE0 42
|
||||
#define QCS8300_MASTER_CRYPTO_CORE1 43
|
||||
#define QCS8300_MASTER_DSP0 44
|
||||
#define QCS8300_MASTER_IPA 45
|
||||
#define QCS8300_MASTER_LPASS_PROC 46
|
||||
#define QCS8300_MASTER_CDSP_PROC 47
|
||||
#define QCS8300_MASTER_PIMEM 48
|
||||
#define QCS8300_MASTER_QUP_3 49
|
||||
#define QCS8300_MASTER_EMAC 50
|
||||
#define QCS8300_MASTER_GIC 51
|
||||
#define QCS8300_MASTER_PCIE_0 52
|
||||
#define QCS8300_MASTER_PCIE_1 53
|
||||
#define QCS8300_MASTER_QDSS_ETR_0 54
|
||||
#define QCS8300_MASTER_QDSS_ETR_1 55
|
||||
#define QCS8300_MASTER_SDC 56
|
||||
#define QCS8300_MASTER_UFS_MEM 57
|
||||
#define QCS8300_MASTER_USB2 58
|
||||
#define QCS8300_MASTER_USB3_0 59
|
||||
#define QCS8300_SLAVE_EBI1 60
|
||||
#define QCS8300_SLAVE_AHB2PHY_2 61
|
||||
#define QCS8300_SLAVE_AHB2PHY_3 62
|
||||
#define QCS8300_SLAVE_ANOC_THROTTLE_CFG 63
|
||||
#define QCS8300_SLAVE_AOSS 64
|
||||
#define QCS8300_SLAVE_APPSS 65
|
||||
#define QCS8300_SLAVE_BOOT_ROM 66
|
||||
#define QCS8300_SLAVE_CAMERA_CFG 67
|
||||
#define QCS8300_SLAVE_CAMERA_NRT_THROTTLE_CFG 68
|
||||
#define QCS8300_SLAVE_CAMERA_RT_THROTTLE_CFG 69
|
||||
#define QCS8300_SLAVE_CLK_CTL 70
|
||||
#define QCS8300_SLAVE_CDSP_CFG 71
|
||||
#define QCS8300_SLAVE_RBCPR_CX_CFG 72
|
||||
#define QCS8300_SLAVE_RBCPR_MMCX_CFG 73
|
||||
#define QCS8300_SLAVE_RBCPR_MX_CFG 74
|
||||
#define QCS8300_SLAVE_CPR_NSPCX 75
|
||||
#define QCS8300_SLAVE_CPR_NSPHMX 76
|
||||
#define QCS8300_SLAVE_CRYPTO_0_CFG 77
|
||||
#define QCS8300_SLAVE_CX_RDPM 78
|
||||
#define QCS8300_SLAVE_DISPLAY_CFG 79
|
||||
#define QCS8300_SLAVE_DISPLAY_RT_THROTTLE_CFG 80
|
||||
#define QCS8300_SLAVE_EMAC_CFG 81
|
||||
#define QCS8300_SLAVE_GP_DSP0_CFG 82
|
||||
#define QCS8300_SLAVE_GPDSP0_THROTTLE_CFG 83
|
||||
#define QCS8300_SLAVE_GPU_TCU_THROTTLE_CFG 84
|
||||
#define QCS8300_SLAVE_GFX3D_CFG 85
|
||||
#define QCS8300_SLAVE_HWKM 86
|
||||
#define QCS8300_SLAVE_IMEM_CFG 87
|
||||
#define QCS8300_SLAVE_IPA_CFG 88
|
||||
#define QCS8300_SLAVE_IPC_ROUTER_CFG 89
|
||||
#define QCS8300_SLAVE_LLCC_CFG 90
|
||||
#define QCS8300_SLAVE_LPASS 91
|
||||
#define QCS8300_SLAVE_LPASS_CORE_CFG 92
|
||||
#define QCS8300_SLAVE_LPASS_LPI_CFG 93
|
||||
#define QCS8300_SLAVE_LPASS_MPU_CFG 94
|
||||
#define QCS8300_SLAVE_LPASS_THROTTLE_CFG 95
|
||||
#define QCS8300_SLAVE_LPASS_TOP_CFG 96
|
||||
#define QCS8300_SLAVE_MX_RDPM 97
|
||||
#define QCS8300_SLAVE_MXC_RDPM 98
|
||||
#define QCS8300_SLAVE_PCIE_0_CFG 99
|
||||
#define QCS8300_SLAVE_PCIE_1_CFG 100
|
||||
#define QCS8300_SLAVE_PCIE_TCU_THROTTLE_CFG 101
|
||||
#define QCS8300_SLAVE_PCIE_THROTTLE_CFG 102
|
||||
#define QCS8300_SLAVE_PDM 103
|
||||
#define QCS8300_SLAVE_PIMEM_CFG 104
|
||||
#define QCS8300_SLAVE_PKA_WRAPPER_CFG 105
|
||||
#define QCS8300_SLAVE_QDSS_CFG 106
|
||||
#define QCS8300_SLAVE_QM_CFG 107
|
||||
#define QCS8300_SLAVE_QM_MPU_CFG 108
|
||||
#define QCS8300_SLAVE_QUP_0 109
|
||||
#define QCS8300_SLAVE_QUP_1 110
|
||||
#define QCS8300_SLAVE_QUP_3 111
|
||||
#define QCS8300_SLAVE_SAIL_THROTTLE_CFG 112
|
||||
#define QCS8300_SLAVE_SDC1 113
|
||||
#define QCS8300_SLAVE_SECURITY 114
|
||||
#define QCS8300_SLAVE_SNOC_THROTTLE_CFG 115
|
||||
#define QCS8300_SLAVE_TCSR 116
|
||||
#define QCS8300_SLAVE_TLMM 117
|
||||
#define QCS8300_SLAVE_TSC_CFG 118
|
||||
#define QCS8300_SLAVE_UFS_MEM_CFG 119
|
||||
#define QCS8300_SLAVE_USB2 120
|
||||
#define QCS8300_SLAVE_USB3_0 121
|
||||
#define QCS8300_SLAVE_VENUS_CFG 122
|
||||
#define QCS8300_SLAVE_VENUS_CVP_THROTTLE_CFG 123
|
||||
#define QCS8300_SLAVE_VENUS_V_CPU_THROTTLE_CFG 124
|
||||
#define QCS8300_SLAVE_VENUS_VCODEC_THROTTLE_CFG 125
|
||||
#define QCS8300_SLAVE_A1NOC_SNOC 126
|
||||
#define QCS8300_SLAVE_A2NOC_SNOC 127
|
||||
#define QCS8300_SLAVE_DDRSS_CFG 128
|
||||
#define QCS8300_SLAVE_GEM_NOC_CNOC 129
|
||||
#define QCS8300_SLAVE_GEM_NOC_CFG 130
|
||||
#define QCS8300_SLAVE_SNOC_GEM_NOC_GC 131
|
||||
#define QCS8300_SLAVE_SNOC_GEM_NOC_SF 132
|
||||
#define QCS8300_SLAVE_GP_DSP_SAIL_NOC 133
|
||||
#define QCS8300_SLAVE_GPDSP_NOC_CFG 134
|
||||
#define QCS8300_SLAVE_HCP_A 135
|
||||
#define QCS8300_SLAVE_LLCC 136
|
||||
#define QCS8300_SLAVE_MNOC_HF_MEM_NOC 137
|
||||
#define QCS8300_SLAVE_MNOC_SF_MEM_NOC 138
|
||||
#define QCS8300_SLAVE_CNOC_MNOC_HF_CFG 139
|
||||
#define QCS8300_SLAVE_CNOC_MNOC_SF_CFG 140
|
||||
#define QCS8300_SLAVE_CDSP_MEM_NOC 141
|
||||
#define QCS8300_SLAVE_GEM_NOC_PCIE_CNOC 142
|
||||
#define QCS8300_SLAVE_PCIE_ANOC_CFG 143
|
||||
#define QCS8300_SLAVE_ANOC_PCIE_GEM_NOC 144
|
||||
#define QCS8300_SLAVE_SNOC_CFG 145
|
||||
#define QCS8300_SLAVE_LPASS_SNOC 146
|
||||
#define QCS8300_SLAVE_QUP_CORE_0 147
|
||||
#define QCS8300_SLAVE_QUP_CORE_1 148
|
||||
#define QCS8300_SLAVE_QUP_CORE_3 149
|
||||
#define QCS8300_SLAVE_BOOT_IMEM 150
|
||||
#define QCS8300_SLAVE_IMEM 151
|
||||
#define QCS8300_SLAVE_PIMEM 152
|
||||
#define QCS8300_SLAVE_SERVICE_NSP_NOC 153
|
||||
#define QCS8300_SLAVE_SERVICE_GEM_NOC_1 154
|
||||
#define QCS8300_SLAVE_SERVICE_MNOC_HF 155
|
||||
#define QCS8300_SLAVE_SERVICE_MNOC_SF 156
|
||||
#define QCS8300_SLAVE_SERVICES_LPASS_AML_NOC 157
|
||||
#define QCS8300_SLAVE_SERVICE_LPASS_AG_NOC 158
|
||||
#define QCS8300_SLAVE_SERVICE_GEM_NOC_2 159
|
||||
#define QCS8300_SLAVE_SERVICE_SNOC 160
|
||||
#define QCS8300_SLAVE_SERVICE_GEM_NOC 161
|
||||
#define QCS8300_SLAVE_SERVICE_GEM_NOC2 162
|
||||
#define QCS8300_SLAVE_PCIE_0 163
|
||||
#define QCS8300_SLAVE_PCIE_1 164
|
||||
#define QCS8300_SLAVE_QDSS_STM 165
|
||||
#define QCS8300_SLAVE_TCU 166
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue