Commit 3b7dd9d8 authored by Georgi Djakov's avatar Georgi Djakov
Browse files

Merge branch 'icc-qcs8300' into icc-next

Add interconnect support for QCS8300 SoC

* icc-qcs8300
  dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in QCS8300 SoC
  interconnect: qcom: add QCS8300 interconnect provider driver

Link: https://lore.kernel.org/r/20240910101013.3020-1-quic_rlaggysh@quicinc.com


Signed-off-by: default avatarGeorgi Djakov <djakov@kernel.org>
parents a570feff 3063c3df
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,qcs8300-rpmh.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm RPMh Network-On-Chip Interconnect on QCS8300

maintainers:
  - Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>

description: |
  RPMh interconnect providers support system bandwidth requirements through
  RPMh hardware accelerators known as Bus Clock Manager (BCM).

  See also: include/dt-bindings/interconnect/qcom,qcs8300-rpmh.h

properties:
  compatible:
    enum:
      - qcom,qcs8300-aggre1-noc
      - qcom,qcs8300-aggre2-noc
      - qcom,qcs8300-clk-virt
      - qcom,qcs8300-config-noc
      - qcom,qcs8300-dc-noc
      - qcom,qcs8300-gem-noc
      - qcom,qcs8300-gpdsp-anoc
      - qcom,qcs8300-lpass-ag-noc
      - qcom,qcs8300-mc-virt
      - qcom,qcs8300-mmss-noc
      - qcom,qcs8300-nspa-noc
      - qcom,qcs8300-pcie-anoc
      - qcom,qcs8300-system-noc

  reg:
    maxItems: 1

required:
  - compatible

allOf:
  - $ref: qcom,rpmh-common.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs8300-clk-virt
              - qcom,qcs8300-mc-virt
    then:
      properties:
        reg: false
    else:
      required:
        - reg

unevaluatedProperties: false

examples:
  - |
    gem_noc: interconnect@9100000 {
        compatible = "qcom,qcs8300-gem-noc";
        reg = <0x9100000 0xf7080>;
        #interconnect-cells = <2>;
        qcom,bcm-voters = <&apps_bcm_voter>;
    };

    clk_virt: interconnect-0 {
        compatible = "qcom,qcs8300-clk-virt";
        #interconnect-cells = <2>;
        qcom,bcm-voters = <&apps_bcm_voter>;
    };
+11 −0
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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
+2088 −0

File added.

Preview size limit exceeded, changes collapsed.

+177 −0
Original line number Diff line number Diff line
/* 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