Commit 9d2877a5 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'icc-6.11-rc1' of...

Merge tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc

 into char-misc-next

Georgi writes:

interconnect changes for 6.11

This pull request contains the interconnect changes for the 6.11-rc1 merge
window. It contains just driver changes with the following highlights:

Driver changes:
- New driver for MediaTek MT8183/8195 platforms
- New driver for MSM8953 platforms
- New QoS support for RPMh-based platforms with SC7280 being the
  first one to benefit from it.
- Fix incorrect master-id value in qcm2290 driver
- Add missing MODULE_DESCRIPTION in a few drivers

Signed-off-by: default avatarGeorgi Djakov <djakov@kernel.org>

* tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
  interconnect: qcom: Fix DT backwards compatibility for QoS
  interconnect: qcom: Add MSM8953 driver
  dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
  interconnect: qcom: qcm2290: Fix mas_snoc_bimc RPM master ID
  interconnect: qcom: sc7280: enable QoS configuration
  interconnect: qcom: icc-rpmh: Add QoS configuration support
  dt-bindings: interconnect: add clock property to enable QOS on SC7280
  interconnect: mediatek: remove unneeded semicolon
  interconnect: qcom: add missing MODULE_DESCRIPTION() macros
  interconnect: imx: add missing MODULE_DESCRIPTION() macros
  interconnect: mediatek: Add MediaTek MT8183/8195 EMI Interconnect driver
  dt-bindings: interconnect: Add MediaTek EMI Interconnect bindings
parents 1ebab783 226e58b2
Loading
Loading
Loading
Loading
+51 −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/mediatek,mt8183-emi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek External Memory Interface (EMI) Interconnect

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

description: |
  EMI interconnect providers support system bandwidth requirements through
  Dynamic Voltage Frequency Scaling Resource Collector (DVFSRC) hardware.
  The provider is able to communicate with the DVFSRC through Secure Monitor
  Call (SMC).

             ICC provider         ICC Nodes
                              ----          ----
             _________       |CPU |   |--- |VPU |
    _____   |         |-----  ----    |     ----
   |     |->|  DRAM   |       ----    |     ----
   |DRAM |->|scheduler|----- |GPU |   |--- |DISP|
   |     |->|  (EMI)  |       ----    |     ----
   |_____|->|_________|---.   -----   |     ----
               /|\         `-|MMSYS|--|--- |VDEC|
                |             -----   |     ----
                |                     |     ----
                | change DRAM freq    |--- |VENC|
             --------                 |     ----
    SMC --> | DVFSRC |                |     ----
             --------                 |--- |IMG |
                                      |     ----
                                      |     ----
                                      |--- |CAM |
                                            ----

properties:
  compatible:
    enum:
      - mediatek,mt8183-emi
      - mediatek,mt8195-emi

  '#interconnect-cells':
    const: 1

required:
  - compatible
  - '#interconnect-cells'

unevaluatedProperties: false
+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>;
          };
      };
+53 −0
Original line number Diff line number Diff line
@@ -35,6 +35,10 @@ properties:
  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

required:
  - compatible

@@ -53,10 +57,50 @@ allOf:
      required:
        - reg

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7280-aggre1-noc
    then:
      properties:
        clocks:
          items:
            - description: aggre UFS PHY AXI clock
            - description: aggre USB3 PRIM AXI clock

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7280-aggre2-noc
    then:
      properties:
        clocks:
          items:
            - description: RPMH CC IPA clock

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7280-aggre1-noc
              - qcom,sc7280-aggre2-noc
    then:
      required:
        - clocks
    else:
      properties:
        clocks: false

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
    interconnect {
        compatible = "qcom,sc7280-clk-virt";
        #interconnect-cells = <2>;
@@ -69,3 +113,12 @@ examples:
        #interconnect-cells = <2>;
        qcom,bcm-voters = <&apps_bcm_voter>;
    };

    interconnect@16e0000 {
        reg = <0x016e0000 0x1c080>;
        compatible = "qcom,sc7280-aggre1-noc";
        #interconnect-cells = <2>;
        qcom,bcm-voters = <&apps_bcm_voter>;
        clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
                 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
    };
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ menuconfig INTERCONNECT
if INTERCONNECT

source "drivers/interconnect/imx/Kconfig"
source "drivers/interconnect/mediatek/Kconfig"
source "drivers/interconnect/qcom/Kconfig"
source "drivers/interconnect/samsung/Kconfig"

+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ icc-core-objs := core.o bulk.o debugfs-client.o

obj-$(CONFIG_INTERCONNECT)		+= icc-core.o
obj-$(CONFIG_INTERCONNECT_IMX)		+= imx/
obj-$(CONFIG_INTERCONNECT_MTK)		+= mediatek/
obj-$(CONFIG_INTERCONNECT_QCOM)		+= qcom/
obj-$(CONFIG_INTERCONNECT_SAMSUNG)	+= samsung/

Loading