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

Merge tag 'icc-5.7-rc1' of https://git.linaro.org/people/georgi.djakov/linux into char-misc-next



Georgi writes:

interconnect changes for 5.7

Here is a pull request with interconnect changes for the 5.7-rc1 merge
window. It contains just driver updates, and these are:

- Refactoring of the SDM845 driver, which is now improved to better
represent the hardware.
- New driver for SC7180 platforms.
- New driver for OSM L3 interconnect hardware found on SDM845/SC7180
platforms.

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

* tag 'icc-5.7-rc1' of https://git.linaro.org/people/georgi.djakov/linux:
  interconnect: qcom: Add OSM L3 support on SC7180
  dt-bindings: interconnect: Add OSM L3 DT binding on SC7180
  interconnect: qcom: Add OSM L3 interconnect provider support
  dt-bindings: interconnect: Add OSM L3 DT bindings
  interconnect: qcom: Allow icc node to be used across icc providers
  interconnect: qcom: Add SC7180 interconnect provider driver
  dt-bindings: interconnect: Add Qualcomm SC7180 DT bindings
  interconnect: qcom: sdm845: Split qnodes into their respective NoCs
  interconnect: qcom: Consolidate interconnect RPMh support
  dt-bindings: interconnect: Update Qualcomm SDM845 DT bindings
  dt-bindings: interconnect: Add YAML schemas for QCOM bcm-voter
  dt-bindings: interconnect: Convert qcom,sdm845 to DT schema
parents 8f522bae 03c4e618
Loading
Loading
Loading
Loading
+45 −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,bcm-voter.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm BCM-Voter Interconnect

maintainers:
  - Georgi Djakov <georgi.djakov@linaro.org>

description: |
  The Bus Clock Manager (BCM) is a dedicated hardware accelerator that manages
  shared system resources by aggregating requests from multiple Resource State
  Coordinators (RSC). Interconnect providers are able to vote for aggregated
  thresholds values from consumers by communicating through their respective
  RSCs.

properties:
  compatible:
    enum:
      - qcom,bcm-voter

required:
  - compatible

additionalProperties: false

examples:
  # Example 1: apps bcm_voter on SDM845 SoC should be defined inside &apps_rsc node
  # as defined in Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
  - |

    apps_bcm_voter: bcm_voter {
        compatible = "qcom,bcm-voter";
    };

  # Example 2: disp bcm_voter on SDM845 should be defined inside &disp_rsc node
  # as defined in Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
  - |

    disp_bcm_voter: bcm_voter {
        compatible = "qcom,bcm-voter";
    };
...
+62 −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,osm-l3.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Operating State Manager (OSM) L3 Interconnect Provider

maintainers:
  - Sibi Sankar <sibis@codeaurora.org>

description:
  L3 cache bandwidth requirements on Qualcomm SoCs is serviced by the OSM.
  The OSM L3 interconnect provider aggregates the L3 bandwidth requests
  from CPU/GPU and relays it to the OSM.

properties:
  compatible:
    enum:
      - qcom,sc7180-osm-l3
      - qcom,sdm845-osm-l3

  reg:
    maxItems: 1

  clocks:
    items:
      - description: xo clock
      - description: alternate clock

  clock-names:
    items:
      - const: xo
      - const: alternate

  '#interconnect-cells':
    const: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - '#interconnect-cells'

additionalProperties: false

examples:
  - |

    #define GPLL0               165
    #define RPMH_CXO_CLK        0

    osm_l3: interconnect@17d41000 {
      compatible = "qcom,sdm845-osm-l3";
      reg = <0x17d41000 0x1400>;

      clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
      clock-names = "xo", "alternate";

      #interconnect-cells = <1>;
    };
+85 −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,sc7180.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title:  Qualcomm SC7180 Network-On-Chip Interconnect

maintainers:
  - Odelu Kukatla <okukatla@codeaurora.org>

description: |
   SC7180 interconnect providers support system bandwidth requirements through
   RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
   able to communicate with the BCM through the Resource State Coordinator (RSC)
   associated with each execution environment. Provider nodes must point to at
   least one RPMh device child node pertaining to their RSC and each provider
   can map to multiple RPMh resources.

properties:
  reg:
    maxItems: 1

  compatible:
    enum:
      - qcom,sc7180-aggre1-noc
      - qcom,sc7180-aggre2-noc
      - qcom,sc7180-camnoc-virt
      - qcom,sc7180-compute-noc
      - qcom,sc7180-config-noc
      - qcom,sc7180-dc-noc
      - qcom,sc7180-gem-noc
      - qcom,sc7180-ipa-virt
      - qcom,sc7180-mc-virt
      - qcom,sc7180-mmss-noc
      - qcom,sc7180-npu-noc
      - qcom,sc7180-qup-virt
      - qcom,sc7180-system-noc

  '#interconnect-cells':
    const: 1

  qcom,bcm-voters:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: |
      List of phandles to qcom,bcm-voter nodes that are required by
      this interconnect to send RPMh commands.

  qcom,bcm-voter-names:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: |
      Names for each of the qcom,bcm-voters specified.

required:
  - compatible
  - reg
  - '#interconnect-cells'
  - qcom,bcm-voters

additionalProperties: false

examples:
  - |
      #include <dt-bindings/interconnect/qcom,sc7180.h>

      config_noc: interconnect@1500000 {
            compatible = "qcom,sc7180-config-noc";
            reg = <0 0x01500000 0 0x28000>;
            #interconnect-cells = <1>;
            qcom,bcm-voters = <&apps_bcm_voter>;
      };

      system_noc: interconnect@1620000 {
            compatible = "qcom,sc7180-system-noc";
            reg = <0 0x01620000 0 0x17080>;
            #interconnect-cells = <1>;
            qcom,bcm-voters = <&apps_bcm_voter>;
      };

      mmss_noc: interconnect@1740000 {
            compatible = "qcom,sc7180-mmss-noc";
            reg = <0 0x01740000 0 0x1c100>;
            #interconnect-cells = <1>;
            qcom,bcm-voters = <&apps_bcm_voter>;
      };
+0 −24
Original line number Diff line number Diff line
Qualcomm SDM845 Network-On-Chip interconnect driver binding
-----------------------------------------------------------

SDM845 interconnect providers support system bandwidth requirements through
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
able to communicate with the BCM through the Resource State Coordinator (RSC)
associated with each execution environment. Provider nodes must reside within
an RPMh device node pertaining to their RSC and each provider maps to a single
RPMh resource.

Required properties :
- compatible : shall contain only one of the following:
			"qcom,sdm845-rsc-hlos"
- #interconnect-cells : should contain 1

Examples:

apps_rsc: rsc {
	rsc_hlos: interconnect {
		compatible = "qcom,sdm845-rsc-hlos";
		#interconnect-cells = <1>;
	};
};
+74 −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,sdm845.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title:  Qualcomm SDM845 Network-On-Chip Interconnect

maintainers:
  - Georgi Djakov <georgi.djakov@linaro.org>

description: |
   SDM845 interconnect providers support system bandwidth requirements through
   RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
   able to communicate with the BCM through the Resource State Coordinator (RSC)
   associated with each execution environment. Provider nodes must point to at
   least one RPMh device child node pertaining to their RSC and each provider
   can map to multiple RPMh resources.

properties:
  reg:
    maxItems: 1

  compatible:
    enum:
      - qcom,sdm845-aggre1-noc
      - qcom,sdm845-aggre2-noc
      - qcom,sdm845-config-noc
      - qcom,sdm845-dc-noc
      - qcom,sdm845-gladiator-noc
      - qcom,sdm845-mem-noc
      - qcom,sdm845-mmss-noc
      - qcom,sdm845-system-noc

  '#interconnect-cells':
    const: 1

  qcom,bcm-voters:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: |
      List of phandles to qcom,bcm-voter nodes that are required by
      this interconnect to send RPMh commands.

  qcom,bcm-voter-names:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: |
      Names for each of the qcom,bcm-voters specified.

required:
  - compatible
  - reg
  - '#interconnect-cells'
  - qcom,bcm-voters

additionalProperties: false

examples:
  - |
      #include <dt-bindings/interconnect/qcom,sdm845.h>

      mem_noc: interconnect@1380000 {
             compatible = "qcom,sdm845-mem-noc";
             reg = <0 0x01380000 0 0x27200>;
             #interconnect-cells = <1>;
             qcom,bcm-voters = <&apps_bcm_voter>;
      };

      mmss_noc: interconnect@1740000 {
             compatible = "qcom,sdm845-mmss-noc";
             reg = <0 0x01740000 0 0x1c1000>;
             #interconnect-cells = <1>;
             qcom,bcm-voter-names = "apps", "disp";
             qcom,bcm-voters = <&apps_bcm_voter>, <&disp_bcm_voter>;
      };
Loading