Commit 19990ff0 authored by Georgi Djakov's avatar Georgi Djakov
Browse files

Merge branch 'icc-msm8953' into icc-next

Add interconnect driver for MSM8953-based devices.

* icc-msm8953
  dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
  interconnect: qcom: Add MSM8953 driver

Link: https://lore.kernel.org/r/20240628-msm8953-interconnect-v3-0-a70d582182dc@mainlining.org


Signed-off-by: default avatarGeorgi Djakov <djakov@kernel.org>
parents f61207ad 90b40017
Loading
Loading
Loading
Loading
+101 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,msm8953.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm MSM8953 Network-On-Chip interconnect

maintainers:
  - Barnabas Czeman <barnabas.czeman@mainlining.org>

description: |
  The Qualcomm MSM8953 interconnect providers support adjusting the
  bandwidth requirements between the various NoC fabrics.

  See also:
  - dt-bindings/interconnect/qcom,msm8953.h

properties:
  compatible:
    enum:
      - qcom,msm8953-bimc
      - qcom,msm8953-pcnoc
      - qcom,msm8953-snoc

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    maxItems: 1

  '#interconnect-cells':
    const: 2

patternProperties:
  '^interconnect-[a-z0-9\-]+$':
    type: object
    $ref: qcom,rpm-common.yaml#
    unevaluatedProperties: false
    description:
      The interconnect providers do not have a separate QoS register space,
      but share parent's space.

    properties:
      compatible:
        const: qcom,msm8953-snoc-mm

    required:
      - compatible
      - '#interconnect-cells'

required:
  - compatible
  - reg
  - '#interconnect-cells'

allOf:
  - $ref: qcom,rpm-common.yaml#
  - if:
      properties:
        compatible:
          const: qcom,msm8953-pcnoc

    then:
      properties:
        clocks:
          items:
            - description: PCNOC USB3 AXI Clock.

        clock-names:
          const: pcnoc_usb3_axi

      required:
        - clocks
        - clock-names
    else:
      properties:
        clocks: false
        clock-names: false

additionalProperties: false

examples:
  - |
      #include <dt-bindings/clock/qcom,gcc-msm8953.h>

      snoc: interconnect@580000 {
          compatible = "qcom,msm8953-snoc";
          reg = <0x580000 0x16080>;

          #interconnect-cells = <2>;

          snoc_mm: interconnect-snoc {
              compatible = "qcom,msm8953-snoc-mm";

              #interconnect-cells = <2>;
          };
      };
+9 −0
Original line number Diff line number Diff line
@@ -35,6 +35,15 @@ config INTERCONNECT_QCOM_MSM8939
	  This is a driver for the Qualcomm Network-on-Chip on msm8939-based
	  platforms.

config INTERCONNECT_QCOM_MSM8953
	tristate "Qualcomm MSM8953 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 msm8953-based
	  platforms.

config INTERCONNECT_QCOM_MSM8974
	tristate "Qualcomm MSM8974 interconnect driver"
	depends on INTERCONNECT_QCOM
+2 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ icc-bcm-voter-objs := bcm-voter.o
qnoc-msm8909-objs			:= msm8909.o
qnoc-msm8916-objs			:= msm8916.o
qnoc-msm8939-objs			:= msm8939.o
qnoc-msm8953-objs			:= msm8953.o
qnoc-msm8974-objs			:= msm8974.o
qnoc-msm8996-objs			:= msm8996.o
icc-osm-l3-objs				:= osm-l3.o
@@ -41,6 +42,7 @@ 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_MSM8953) += qnoc-msm8953.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8974) += qnoc-msm8974.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8996) += qnoc-msm8996.o
obj-$(CONFIG_INTERCONNECT_QCOM_OSM_L3) += icc-osm-l3.o
+1321 −0

File added.

Preview size limit exceeded, changes collapsed.

+93 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
/*
 * Qualcomm MSM8953 interconnect IDs
 */

#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H
#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H

/* BIMC fabric */
#define MAS_APPS_PROC		0
#define MAS_OXILI		1
#define MAS_SNOC_BIMC_0		2
#define MAS_SNOC_BIMC_2		3
#define MAS_SNOC_BIMC_1		4
#define MAS_TCU_0		5
#define SLV_EBI			6
#define SLV_BIMC_SNOC		7

/* PCNOC fabric */
#define MAS_SPDM		0
#define MAS_BLSP_1		1
#define MAS_BLSP_2		2
#define MAS_USB3		3
#define MAS_CRYPTO		4
#define MAS_SDCC_1		5
#define MAS_SDCC_2		6
#define MAS_SNOC_PCNOC		7
#define PCNOC_M_0		8
#define PCNOC_M_1		9
#define PCNOC_INT_1		10
#define PCNOC_INT_2		11
#define PCNOC_S_0		12
#define PCNOC_S_1		13
#define PCNOC_S_2		14
#define PCNOC_S_3		15
#define PCNOC_S_4		16
#define PCNOC_S_6		17
#define PCNOC_S_7		18
#define PCNOC_S_8		19
#define PCNOC_S_9		20
#define SLV_SPDM		21
#define SLV_PDM			22
#define SLV_TCSR		23
#define SLV_SNOC_CFG		24
#define SLV_TLMM		25
#define SLV_MESSAGE_RAM		26
#define SLV_BLSP_1		27
#define SLV_BLSP_2		28
#define SLV_PRNG		29
#define SLV_CAMERA_SS_CFG	30
#define SLV_DISP_SS_CFG		31
#define SLV_VENUS_CFG		32
#define SLV_GPU_CFG		33
#define SLV_SDCC_1		34
#define SLV_SDCC_2		35
#define SLV_CRYPTO_0_CFG	36
#define SLV_PMIC_ARB		37
#define SLV_USB3		38
#define SLV_IPA_CFG		39
#define SLV_TCU			40
#define SLV_PCNOC_SNOC		41

/* SNOC fabric */
#define MAS_QDSS_BAM		0
#define MAS_BIMC_SNOC		1
#define MAS_PCNOC_SNOC		2
#define MAS_IPA			3
#define MAS_QDSS_ETR		4
#define QDSS_INT		5
#define SNOC_INT_0		6
#define SNOC_INT_1		7
#define SNOC_INT_2		8
#define SLV_KPSS_AHB		9
#define SLV_WCSS		10
#define SLV_SNOC_BIMC_1		11
#define SLV_IMEM		12
#define SLV_SNOC_PCNOC		13
#define SLV_QDSS_STM		14
#define SLV_CATS_1		15
#define SLV_LPASS		16

/* SNOC-MM fabric */
#define MAS_JPEG		0
#define MAS_MDP			1
#define MAS_VENUS		2
#define MAS_VFE0		3
#define MAS_VFE1		4
#define MAS_CPP			5
#define SLV_SNOC_BIMC_0		6
#define SLV_SNOC_BIMC_2		7
#define SLV_CATS_0		8

#endif /* __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H */