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

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



Georgi writes:

interconnect changes for 5.10

Here are the interconnect changes for the 5.10-rc1 merge window
consisting of core changes, new drivers and cleanups.

Core changes:
 - New bulk API helpers for managing multiple interconnect paths.
 - New xlate_extended() interface for parsing additional data from DT.
 - Support for sync_state().

Driver changes:
 - New drivers for SM8150 and SM8250 platforms.
 - New drivers for the Qualcomm OSM and EPSS hardware blocks.
 - Per-BCM scaling factor support.
 - Misc cleanups.

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

* tag 'icc-5.10-rc1' of https://git.linaro.org/people/georgi.djakov/linux: (28 commits)
  interconnect: imx: simplify the return expression of imx_icc_unregister
  interconnect: imx: Simplify with dev_err_probe()
  interconnect: core: Simplify with dev_err_probe()
  interconnect: qcom: Use icc_sync_state
  interconnect: Add sync state support
  interconnect: Add get_bw() callback
  interconnect: qcom: osm-l3: Mark more structures const
  interconnect: qcom: Add EPSS L3 support on SM8250
  dt-bindings: interconnect: Add EPSS L3 DT binding on SM8250
  interconnect: qcom: Lay the groundwork for adding EPSS support
  interconnect: qcom: Add OSM L3 support on SM8150
  dt-bindings: interconnect: Add OSM L3 DT binding on SM8150
  interconnect: qcom: sc7180: Replace xlate with xlate_extended
  interconnect: qcom: sdm845: Replace xlate with xlate_extended
  interconnect: qcom: Implement xlate_extended() to parse tags
  dt-bindings: interconnect: Document the support of optional path tag
  interconnect: Introduce xlate_extended() callback
  interconnect: qcom: Add support for per-BCM scaling factors
  interconnect: qcom: Only wait for completion in AMC/WAKE by default
  interconnect: qcom: Support bcm-voter-specific TCS wait behavior
  ...
parents 26ed5146 86d6e579
Loading
Loading
Loading
Loading
+23 −1
Original line number Diff line number Diff line
@@ -19,7 +19,8 @@ directly.
Required properties:
- compatible : contains the interconnect provider compatible string
- #interconnect-cells : number of cells in a interconnect specifier needed to
			encode the interconnect node id
			encode the interconnect node id and optionally add a
			path tag

Example:

@@ -44,6 +45,10 @@ components it has to interact with.
Required properties:
interconnects : Pairs of phandles and interconnect provider specifier to denote
	        the edge source and destination ports of the interconnect path.
		An optional path tag value could specified as additional argument
		to both endpoints and in such cases, this information will be passed
		to the interconnect framework to do aggregation based on the attached
		tag.

Optional properties:
interconnect-names : List of interconnect path name strings sorted in the same
@@ -62,3 +67,20 @@ Example:
		interconnects = <&pnoc MASTER_SDCC_1 &bimc SLAVE_EBI_CH0>;
		interconnect-names = "sdhc-mem";
	};

Example with path tags:

	gnoc: interconnect@17900000 {
		...
		interconnect-cells = <2>;
	};

	mnoc: interconnect@1380000 {
		...
		interconnect-cells = <2>;
	};

	cpu@0 {
		...
		interconnects = <&gnoc MASTER_APPSS_PROC 3 &mnoc SLAVE_EBI1 3>;
	}
+20 −0
Original line number Diff line number Diff line
@@ -21,6 +21,23 @@ properties:
    enum:
      - qcom,bcm-voter

  qcom,tcs-wait:
    description: |
      Optional mask of which TCSs (Triggered Command Sets) wait for completion
      upon triggering. If not specified, then the AMC and WAKE sets wait for
      completion. The mask bits are available in the QCOM_ICC_TAG_* defines.

      The AMC TCS is triggered immediately when icc_set_bw() is called. The
      WAKE/SLEEP TCSs are triggered when the RSC transitions between active and
      sleep modes.

      In most cases, it's necessary to wait in both the AMC and WAKE sets to
      ensure resources are available before use. If a specific RSC and its use
      cases can ensure sufficient delay by other means, then this can be
      overridden to reduce latencies.

    $ref: /schemas/types.yaml#/definitions/uint32

required:
  - compatible

@@ -39,7 +56,10 @@ examples:
  # as defined in Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
  - |

    #include <dt-bindings/interconnect/qcom,icc.h>

    disp_bcm_voter: bcm_voter {
        compatible = "qcom,bcm-voter";
        qcom,tcs-wait = <QCOM_ICC_TAG_AMC>;
    };
...
+2 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ properties:
    enum:
      - qcom,sc7180-osm-l3
      - qcom,sdm845-osm-l3
      - qcom,sm8150-osm-l3
      - qcom,sm8250-epss-l3

  reg:
    maxItems: 1
+39 −3
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#
$id: http://devicetree.org/schemas/interconnect/qcom,rpmh.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SDM845 Network-On-Chip Interconnect
title: Qualcomm RPMh Network-On-Chip Interconnect

maintainers:
  - Georgi Djakov <georgi.djakov@linaro.org>
  - Odelu Kukatla <okukatla@codeaurora.org>

description: |
   SDM845 interconnect providers support system bandwidth requirements through
   RPMh 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
@@ -23,6 +24,19 @@ properties:

  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
      - qcom,sdm845-aggre1-noc
      - qcom,sdm845-aggre2-noc
      - qcom,sdm845-config-noc
@@ -31,6 +45,28 @@ properties:
      - qcom,sdm845-mem-noc
      - qcom,sdm845-mmss-noc
      - qcom,sdm845-system-noc
      - qcom,sm8150-aggre1-noc
      - qcom,sm8150-aggre2-noc
      - qcom,sm8150-camnoc-noc
      - qcom,sm8150-compute-noc
      - qcom,sm8150-config-noc
      - qcom,sm8150-dc-noc
      - qcom,sm8150-gem-noc
      - qcom,sm8150-ipa-virt
      - qcom,sm8150-mc-virt
      - qcom,sm8150-mmss-noc
      - qcom,sm8150-system-noc
      - qcom,sm8250-aggre1-noc
      - qcom,sm8250-aggre2-noc
      - qcom,sm8250-compute-noc
      - qcom,sm8250-config-noc
      - qcom,sm8250-dc-noc
      - qcom,sm8250-gem-noc
      - qcom,sm8250-ipa-virt
      - qcom,sm8250-mc-virt
      - qcom,sm8250-mmss-noc
      - qcom,sm8250-npu-noc
      - qcom,sm8250-system-noc

  '#interconnect-cells':
    const: 1
+0 −85
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 = <0x01500000 0x28000>;
            #interconnect-cells = <1>;
            qcom,bcm-voters = <&apps_bcm_voter>;
      };

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

      mmss_noc: interconnect@1740000 {
            compatible = "qcom,sc7180-mmss-noc";
            reg = <0x01740000 0x1c100>;
            #interconnect-cells = <1>;
            qcom,bcm-voters = <&apps_bcm_voter>;
      };
Loading