Commit 1cef9f2d authored by Adam Skladowski's avatar Adam Skladowski Committed by Georgi Djakov
Browse files

interconnect: qcom: Add MSM8909 interconnect provider driver



Add driver for interconnect busses found in MSM8909 based platforms.
The topology consists of three NoCs that are partially controlled by
a RPM processor.

In the downstream/vendor kernel from Qualcomm there is an additional
"mm-snoc". However, it actually ends up using the same RPM "snoc_clk"
as the normal "snoc". It looks like this is actually the same NoC
in hardware and the "mm-snoc" was only defined to assign a different
"qcom,util-fact" to increase bandwidth requests by a static margin.
In mainline we can represent this by assigning the equivalent "ab_coeff"
to all the nodes that are part of "mm-snoc" downstream.

Signed-off-by: default avatarAdam Skladowski <a39.skl@gmail.com>
[Stephan: Drop separate mm-snoc that exists downstream since it's
 actually the same NoC as SNoC in hardware, add qos_offset for BIMC,
 add ab_coeff for mm-snoc nodes and BIMC]
Signed-off-by: default avatarStephan Gerhold <stephan.gerhold@kernkonzept.com>
Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20231220-icc-msm8909-v2-2-3b68bbed2891@kernkonzept.com


Signed-off-by: default avatarGeorgi Djakov <djakov@kernel.org>
parent 47878b45
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -8,6 +8,15 @@ config INTERCONNECT_QCOM
config INTERCONNECT_QCOM_BCM_VOTER
	tristate

config INTERCONNECT_QCOM_MSM8909
	tristate "Qualcomm MSM8909 interconnect driver"
	depends on INTERCONNECT_QCOM
	depends on QCOM_SMD_RPM
	select INTERCONNECT_QCOM_SMD_RPM
	help
	  This is a driver for the Qualcomm Network-on-Chip on msm8909-based
	  platforms.

config INTERCONNECT_QCOM_MSM8916
	tristate "Qualcomm MSM8916 interconnect driver"
	depends on INTERCONNECT_QCOM
+2 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o

interconnect_qcom-y			:= icc-common.o
icc-bcm-voter-objs			:= bcm-voter.o
qnoc-msm8909-objs			:= msm8909.o
qnoc-msm8916-objs			:= msm8916.o
qnoc-msm8939-objs			:= msm8939.o
qnoc-msm8974-objs			:= msm8974.o
@@ -36,6 +37,7 @@ qnoc-x1e80100-objs := x1e80100.o
icc-smd-rpm-objs			:= smd-rpm.o icc-rpm.o icc-rpm-clocks.o

obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8909) += qnoc-msm8909.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8916) += qnoc-msm8916.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8939) += qnoc-msm8939.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8974) += qnoc-msm8974.o
+1329 −0

File added.

Preview size limit exceeded, changes collapsed.