Commit 2d1f95ab authored by Odelu Kukatla's avatar Odelu Kukatla Committed by Georgi Djakov
Browse files

interconnect: qcom: Add SC7180 interconnect provider driver



Add driver for the Qualcomm interconnect buses found in SC7180 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: default avatarOdelu Kukatla <okukatla@codeaurora.org>
Link: https://lore.kernel.org/r/1583241493-21212-3-git-send-email-okukatla@codeaurora.org


Signed-off-by: default avatarGeorgi Djakov <georgi.djakov@linaro.org>
parent c77af39b
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -38,6 +38,16 @@ config INTERCONNECT_QCOM_QCS404
config INTERCONNECT_QCOM_RPMH
	tristate

config INTERCONNECT_QCOM_SC7180
	tristate "Qualcomm SC7180 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on (QCOM_RPMH && QCOM_COMMAND_DB && OF) || COMPILE_TEST
	select INTERCONNECT_QCOM_RPMH
	select INTERCONNECT_QCOM_BCM_VOTER
	help
	  This is a driver for the Qualcomm Network-on-Chip on sc7180-based
	  platforms.

config INTERCONNECT_QCOM_SDM845
	tristate "Qualcomm SDM845 interconnect driver"
	depends on INTERCONNECT_QCOM
+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ qnoc-msm8916-objs := msm8916.o
qnoc-msm8974-objs			:= msm8974.o
qnoc-qcs404-objs			:= qcs404.o
icc-rpmh-obj				:= icc-rpmh.o
qnoc-sc7180-objs			:= sc7180.o
qnoc-sdm845-objs			:= sdm845.o
icc-smd-rpm-objs			:= smd-rpm.o

@@ -13,5 +14,6 @@ obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8974) += qnoc-msm8974.o
obj-$(CONFIG_INTERCONNECT_QCOM_QCS404) += qnoc-qcs404.o
obj-$(CONFIG_INTERCONNECT_QCOM_RPMH) += icc-rpmh.o
obj-$(CONFIG_INTERCONNECT_QCOM_SC7180) += qnoc-sc7180.o
obj-$(CONFIG_INTERCONNECT_QCOM_SDM845) += qnoc-sdm845.o
obj-$(CONFIG_INTERCONNECT_QCOM_SMD_RPM) += icc-smd-rpm.o
+641 −0

File added.

Preview size limit exceeded, changes collapsed.

+149 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Qualcomm #define SC7180 interconnect IDs
 *
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 */

#ifndef __DRIVERS_INTERCONNECT_QCOM_SC7180_H
#define __DRIVERS_INTERCONNECT_QCOM_SC7180_H

#define SC7180_MASTER_APPSS_PROC			0
#define SC7180_MASTER_SYS_TCU				1
#define SC7180_MASTER_NPU_SYS				2
#define SC7180_MASTER_IPA_CORE				3
#define SC7180_MASTER_LLCC				4
#define SC7180_MASTER_A1NOC_CFG				5
#define SC7180_MASTER_A2NOC_CFG				6
#define SC7180_MASTER_CNOC_DC_NOC			7
#define SC7180_MASTER_GEM_NOC_CFG			8
#define SC7180_MASTER_CNOC_MNOC_CFG			9
#define SC7180_MASTER_NPU_NOC_CFG			10
#define SC7180_MASTER_QDSS_BAM				11
#define SC7180_MASTER_QSPI				12
#define SC7180_MASTER_QUP_0				13
#define SC7180_MASTER_QUP_1				14
#define SC7180_MASTER_SNOC_CFG				15
#define SC7180_MASTER_A1NOC_SNOC			16
#define SC7180_MASTER_A2NOC_SNOC			17
#define SC7180_MASTER_COMPUTE_NOC			18
#define SC7180_MASTER_GEM_NOC_SNOC			19
#define SC7180_MASTER_MNOC_HF_MEM_NOC			20
#define SC7180_MASTER_MNOC_SF_MEM_NOC			21
#define SC7180_MASTER_NPU				22
#define SC7180_MASTER_SNOC_CNOC				23
#define SC7180_MASTER_SNOC_GC_MEM_NOC			24
#define SC7180_MASTER_SNOC_SF_MEM_NOC			25
#define SC7180_MASTER_QUP_CORE_0			26
#define SC7180_MASTER_QUP_CORE_1			27
#define SC7180_MASTER_CAMNOC_HF0			28
#define SC7180_MASTER_CAMNOC_HF1			29
#define SC7180_MASTER_CAMNOC_HF0_UNCOMP			30
#define SC7180_MASTER_CAMNOC_HF1_UNCOMP			31
#define SC7180_MASTER_CAMNOC_SF				32
#define SC7180_MASTER_CAMNOC_SF_UNCOMP			33
#define SC7180_MASTER_CRYPTO				34
#define SC7180_MASTER_GFX3D				35
#define SC7180_MASTER_IPA				36
#define SC7180_MASTER_MDP0				37
#define SC7180_MASTER_NPU_PROC				38
#define SC7180_MASTER_PIMEM				39
#define SC7180_MASTER_ROTATOR				40
#define SC7180_MASTER_VIDEO_P0				41
#define SC7180_MASTER_VIDEO_PROC			42
#define SC7180_MASTER_QDSS_DAP				43
#define SC7180_MASTER_QDSS_ETR				44
#define SC7180_MASTER_SDCC_2				45
#define SC7180_MASTER_UFS_MEM				46
#define SC7180_MASTER_USB3				47
#define SC7180_MASTER_EMMC				48
#define SC7180_SLAVE_EBI1				49
#define SC7180_SLAVE_IPA_CORE				50
#define SC7180_SLAVE_A1NOC_CFG				51
#define SC7180_SLAVE_A2NOC_CFG				52
#define SC7180_SLAVE_AHB2PHY_SOUTH			53
#define SC7180_SLAVE_AHB2PHY_CENTER			54
#define SC7180_SLAVE_AOP				55
#define SC7180_SLAVE_AOSS				56
#define SC7180_SLAVE_APPSS				57
#define SC7180_SLAVE_BOOT_ROM				58
#define SC7180_SLAVE_NPU_CAL_DP0			59
#define SC7180_SLAVE_CAMERA_CFG				60
#define SC7180_SLAVE_CAMERA_NRT_THROTTLE_CFG		61
#define SC7180_SLAVE_CAMERA_RT_THROTTLE_CFG		62
#define SC7180_SLAVE_CLK_CTL				63
#define SC7180_SLAVE_NPU_CP				64
#define SC7180_SLAVE_RBCPR_CX_CFG			65
#define SC7180_SLAVE_RBCPR_MX_CFG			66
#define SC7180_SLAVE_CRYPTO_0_CFG			67
#define SC7180_SLAVE_DCC_CFG				68
#define SC7180_SLAVE_CNOC_DDRSS				69
#define SC7180_SLAVE_DISPLAY_CFG			70
#define SC7180_SLAVE_DISPLAY_RT_THROTTLE_CFG		71
#define SC7180_SLAVE_DISPLAY_THROTTLE_CFG		72
#define SC7180_SLAVE_NPU_INT_DMA_BWMON_CFG		73
#define SC7180_SLAVE_NPU_DPM				74
#define SC7180_SLAVE_EMMC_CFG				75
#define SC7180_SLAVE_GEM_NOC_CFG			76
#define SC7180_SLAVE_GLM				77
#define SC7180_SLAVE_GFX3D_CFG				78
#define SC7180_SLAVE_IMEM_CFG				79
#define SC7180_SLAVE_IPA_CFG				80
#define SC7180_SLAVE_ISENSE_CFG				81
#define SC7180_SLAVE_LLCC_CFG				82
#define SC7180_SLAVE_NPU_LLM_CFG			83
#define SC7180_SLAVE_MSS_PROC_MS_MPU_CFG		84
#define SC7180_SLAVE_CNOC_MNOC_CFG			85
#define SC7180_SLAVE_CNOC_MSS				86
#define SC7180_SLAVE_NPU_CFG				87
#define SC7180_SLAVE_NPU_DMA_BWMON_CFG			88
#define SC7180_SLAVE_NPU_PROC_BWMON_CFG			89
#define SC7180_SLAVE_PDM				90
#define SC7180_SLAVE_PIMEM_CFG				91
#define SC7180_SLAVE_PRNG				92
#define SC7180_SLAVE_QDSS_CFG				93
#define SC7180_SLAVE_QM_CFG				94
#define SC7180_SLAVE_QM_MPU_CFG				95
#define SC7180_SLAVE_QSPI_0				96
#define SC7180_SLAVE_QUP_0				97
#define SC7180_SLAVE_QUP_1				98
#define SC7180_SLAVE_SDCC_2				99
#define SC7180_SLAVE_SECURITY				100
#define SC7180_SLAVE_SNOC_CFG				101
#define SC7180_SLAVE_NPU_TCM				102
#define SC7180_SLAVE_TCSR				103
#define SC7180_SLAVE_TLMM_WEST				104
#define SC7180_SLAVE_TLMM_NORTH				105
#define SC7180_SLAVE_TLMM_SOUTH				106
#define SC7180_SLAVE_UFS_MEM_CFG			107
#define SC7180_SLAVE_USB3				108
#define SC7180_SLAVE_VENUS_CFG				109
#define SC7180_SLAVE_VENUS_THROTTLE_CFG			110
#define SC7180_SLAVE_VSENSE_CTRL_CFG			111
#define SC7180_SLAVE_A1NOC_SNOC				112
#define SC7180_SLAVE_A2NOC_SNOC				113
#define SC7180_SLAVE_CAMNOC_UNCOMP			114
#define SC7180_SLAVE_CDSP_GEM_NOC			115
#define SC7180_SLAVE_SNOC_CNOC				116
#define SC7180_SLAVE_GEM_NOC_SNOC			117
#define SC7180_SLAVE_SNOC_GEM_NOC_GC			118
#define SC7180_SLAVE_SNOC_GEM_NOC_SF			119
#define SC7180_SLAVE_LLCC				120
#define SC7180_SLAVE_MNOC_HF_MEM_NOC			121
#define SC7180_SLAVE_MNOC_SF_MEM_NOC			122
#define SC7180_SLAVE_NPU_COMPUTE_NOC			123
#define SC7180_SLAVE_QUP_CORE_0				124
#define SC7180_SLAVE_QUP_CORE_1				125
#define SC7180_SLAVE_IMEM				126
#define SC7180_SLAVE_PIMEM				127
#define SC7180_SLAVE_SERVICE_A1NOC			128
#define SC7180_SLAVE_SERVICE_A2NOC			129
#define SC7180_SLAVE_SERVICE_CNOC			130
#define SC7180_SLAVE_SERVICE_GEM_NOC			131
#define SC7180_SLAVE_SERVICE_MNOC			132
#define SC7180_SLAVE_SERVICE_NPU_NOC			133
#define SC7180_SLAVE_SERVICE_SNOC			134
#define SC7180_SLAVE_QDSS_STM				135
#define SC7180_SLAVE_TCU				136

#endif