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

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

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

 into char-misc-next

Georgi writes:

interconnect changes for 6.8

This pull request contains the interconnect changes for the 6.8-rc1 merge
window. These are just driver changes with the following highlights:

Driver changes:
- New interconnect driver for the SM8650 platform.
- New interconnect driver for the SM6115 platform.
- New interconnect driver for the X1E80100 (Snapdragon X Elite) platform.
- Add compatible string for the BWMONv4 instance on the QCM2290 platform.
- Complete the platform drivers conversion to the .remove_new callback
  returning void (mostly iMX, Exynos and the rest of Qcom drivers).

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

* tag 'icc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
  interconnect: qcom: sm6115: Fix up includes
  dt-bindings: interconnect: qcom,msm8998-bwmon: Add QCM2290 bwmon instance
  dt-bindings: interconnect: qcom,msm8998-bwmon: Add SM6115 bwmon instance
  interconnect: qcom: Add SM6115 interconnect provider driver
  dt-bindings: interconnect: Add Qualcomm SM6115 NoC
  interconnect: qcom: Add X1E80100 interconnect provider driver
  dt-bindings: interconnect: Add Qualcomm X1E80100 SoC
  dt-bindings: interconnect: qcom-bwmon: document SM8650 BWMONs
  interconnect: qcom: introduce RPMh Network-On-Chip Interconnect on SM8650 SoC
  dt-bindings: interconnect: document the RPMh Network-On-Chip Interconnect in Qualcomm SM8650 SoC
  interconnect: exynos: Convert to platform remove callback returning void
  interconnect: qcom/smd-rpm: Convert to platform remove callback returning void
  interconnect: qcom/osm-l3: Convert to platform remove callback returning void
  interconnect: qcom/msm8974: Convert to platform remove callback returning void
  interconnect: imx8mq: Convert to platform remove callback returning void
  interconnect: imx8mp: Convert to platform remove callback returning void
  interconnect: imx8mn: Convert to platform remove callback returning void
  interconnect: imx8mm: Convert to platform remove callback returning void
  interconnect: qcom: Make qnoc_remove return void
parents e9215fcc addb5295
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -25,13 +25,16 @@ properties:
      - const: qcom,msm8998-bwmon       # BWMON v4
      - items:
          - enum:
              - qcom,qcm2290-cpu-bwmon
              - qcom,sc7180-cpu-bwmon
              - qcom,sc7280-cpu-bwmon
              - qcom,sc8280xp-cpu-bwmon
              - qcom,sdm845-cpu-bwmon
              - qcom,sm6115-cpu-bwmon
              - qcom,sm6350-llcc-bwmon
              - qcom,sm8250-cpu-bwmon
              - qcom,sm8550-cpu-bwmon
              - qcom,sm8650-cpu-bwmon
          - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
      - items:
          - enum:
@@ -40,6 +43,7 @@ properties:
              - qcom,sm6350-cpu-bwmon
              - qcom,sm8250-llcc-bwmon
              - qcom,sm8550-llcc-bwmon
              - qcom,sm8650-llcc-bwmon
          - const: qcom,sc7280-llcc-bwmon
      - const: qcom,sc7280-llcc-bwmon   # BWMON v5
      - const: qcom,sdm845-llcc-bwmon   # BWMON v5
+152 −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,sm6115.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SM6115 Network-On-Chip interconnect

maintainers:
  - Konrad Dybcio <konradybcio@kernel.org>

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

properties:
  compatible:
    enum:
      - qcom,sm6115-bimc
      - qcom,sm6115-cnoc
      - qcom,sm6115-snoc

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 4

  clock-names:
    minItems: 1
    maxItems: 4

# Child node's properties
patternProperties:
  '^interconnect-[a-z0-9]+$':
    type: object
    description:
      The interconnect providers do not have a separate QoS register space,
      but share parent's space.

    $ref: qcom,rpm-common.yaml#

    properties:
      compatible:
        enum:
          - qcom,sm6115-clk-virt
          - qcom,sm6115-mmrt-virt
          - qcom,sm6115-mmnrt-virt

    required:
      - compatible

    unevaluatedProperties: false

required:
  - compatible
  - reg

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

    then:
      properties:
        clocks:
          items:
            - description: USB-NoC AXI clock

        clock-names:
          items:
            - const: usb_axi

  - if:
      properties:
        compatible:
          const: qcom,sm6115-snoc

    then:
      properties:
        clocks:
          items:
            - description: CPU-NoC AXI clock.
            - description: UFS-NoC AXI clock.
            - description: USB-NoC AXI clock.
            - description: IPA clock.

        clock-names:
          items:
            - const: cpu_axi
            - const: ufs_axi
            - const: usb_axi
            - const: ipa

  - if:
      properties:
        compatible:
          enum:
            - qcom,sm6115-bimc
            - qcom,sm6115-clk-virt
            - qcom,sm6115-mmrt-virt
            - qcom,sm6115-mmnrt-virt

    then:
      properties:
        clocks: false
        clock-names: false

unevaluatedProperties: false

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

    snoc: interconnect@1880000 {
        compatible = "qcom,sm6115-snoc";
        reg = <0x01880000 0x60200>;
        clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
                 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
                 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
                 <&rpmcc RPM_SMD_IPA_CLK>;
        clock-names = "cpu_axi",
                      "ufs_axi",
                      "usb_axi",
                      "ipa";
        #interconnect-cells = <1>;

        qup_virt: interconnect-clk {
            compatible = "qcom,sm6115-clk-virt";
            #interconnect-cells = <1>;
        };

        mmnrt_virt: interconnect-mmnrt {
            compatible = "qcom,sm6115-mmnrt-virt";
            #interconnect-cells = <1>;
        };

        mmrt_virt: interconnect-mmrt {
            compatible = "qcom,sm6115-mmrt-virt";
            #interconnect-cells = <1>;
        };
    };

    cnoc: interconnect@1900000 {
        compatible = "qcom,sm6115-cnoc";
        reg = <0x01900000 0x8200>;
        #interconnect-cells = <1>;
    };
+136 −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,sm8650-rpmh.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

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

maintainers:
  - Abel Vesa <abel.vesa@linaro.org>
  - Neil Armstrong <neil.armstrong@linaro.org>

description: |
  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
  least one RPMh device child node pertaining to their RSC and each provider
  can map to multiple RPMh resources.

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

properties:
  compatible:
    enum:
      - qcom,sm8650-aggre1-noc
      - qcom,sm8650-aggre2-noc
      - qcom,sm8650-clk-virt
      - qcom,sm8650-cnoc-main
      - qcom,sm8650-config-noc
      - qcom,sm8650-gem-noc
      - qcom,sm8650-lpass-ag-noc
      - qcom,sm8650-lpass-lpiaon-noc
      - qcom,sm8650-lpass-lpicx-noc
      - qcom,sm8650-mc-virt
      - qcom,sm8650-mmss-noc
      - qcom,sm8650-nsp-noc
      - qcom,sm8650-pcie-anoc
      - qcom,sm8650-system-noc

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

required:
  - compatible

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

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8650-pcie-anoc
    then:
      properties:
        clocks:
          items:
            - description: aggre-NOC PCIe AXI clock
            - description: cfg-NOC PCIe a-NOC AHB clock

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

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

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

unevaluatedProperties: false

examples:
  - |
    clk_virt: interconnect-0 {
      compatible = "qcom,sm8650-clk-virt";
      #interconnect-cells = <2>;
      qcom,bcm-voters = <&apps_bcm_voter>;
    };

    aggre1_noc: interconnect@16e0000 {
      compatible = "qcom,sm8650-aggre1-noc";
      reg = <0x016e0000 0x14400>;
      #interconnect-cells = <2>;
      clocks = <&gcc_phy_axi_clk>, <&gcc_prim_axi_clk>;
      qcom,bcm-voters = <&apps_bcm_voter>;
    };
+83 −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,x1e80100-rpmh.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

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

maintainers:
  - Rajendra Nayak <quic_rjendra@quicinc.com>
  - Abel Vesa <abel.vesa@linaro.org>

description: |
  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
  least one RPMh device child node pertaining to their RSC and each provider
  can map to multiple RPMh resources.

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

properties:
  compatible:
    enum:
      - qcom,x1e80100-aggre1-noc
      - qcom,x1e80100-aggre2-noc
      - qcom,x1e80100-clk-virt
      - qcom,x1e80100-cnoc-cfg
      - qcom,x1e80100-cnoc-main
      - qcom,x1e80100-gem-noc
      - qcom,x1e80100-lpass-ag-noc
      - qcom,x1e80100-lpass-lpiaon-noc
      - qcom,x1e80100-lpass-lpicx-noc
      - qcom,x1e80100-mc-virt
      - qcom,x1e80100-mmss-noc
      - qcom,x1e80100-nsp-noc
      - qcom,x1e80100-pcie-center-anoc
      - qcom,x1e80100-pcie-north-anoc
      - qcom,x1e80100-pcie-south-anoc
      - qcom,x1e80100-system-noc
      - qcom,x1e80100-usb-center-anoc
      - qcom,x1e80100-usb-north-anoc
      - qcom,x1e80100-usb-south-anoc

  reg:
    maxItems: 1

required:
  - compatible

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

unevaluatedProperties: false

examples:
  - |
    clk_virt: interconnect-0 {
      compatible = "qcom,x1e80100-clk-virt";
      #interconnect-cells = <2>;
      qcom,bcm-voters = <&apps_bcm_voter>;
    };

    aggre1_noc: interconnect@16e0000 {
      compatible = "qcom,x1e80100-aggre1-noc";
      reg = <0x016e0000 0x14400>;
      #interconnect-cells = <2>;
      qcom,bcm-voters = <&apps_bcm_voter>;
    };
+1 −8
Original line number Diff line number Diff line
@@ -86,16 +86,9 @@ static int imx8mm_icc_probe(struct platform_device *pdev)
	return imx_icc_register(pdev, nodes, ARRAY_SIZE(nodes), NULL);
}

static int imx8mm_icc_remove(struct platform_device *pdev)
{
	imx_icc_unregister(pdev);

	return 0;
}

static struct platform_driver imx8mm_icc_driver = {
	.probe = imx8mm_icc_probe,
	.remove = imx8mm_icc_remove,
	.remove_new = imx_icc_unregister,
	.driver = {
		.name = "imx8mm-interconnect",
	},
Loading