# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,rpmh.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. RPMh Network-On-Chip Interconnect

maintainers:
  - Georgi Djakov <georgi.djakov@linaro.org>
  - Odelu Kukatla <okukatla@codeaurora.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.

allOf:
  - $ref: qcom,rpmh-common.yaml#

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-mc-virt
      - qcom,sc7180-mmss-noc
      - qcom,sc7180-npu-noc
      - qcom,sc7180-qup-virt
      - qcom,sc7180-system-noc
      - qcom,sc7280-aggre1-noc
      - qcom,sc7280-aggre2-noc
      - qcom,sc7280-clk-virt
      - qcom,sc7280-cnoc2
      - qcom,sc7280-cnoc3
      - qcom,sc7280-dc-noc
      - qcom,sc7280-gem-noc
      - qcom,sc7280-lpass-ag-noc
      - qcom,sc7280-mc-virt
      - qcom,sc7280-mmss-noc
      - qcom,sc7280-nsp-noc
      - qcom,sc7280-system-noc
      - qcom,sc8180x-aggre1-noc
      - qcom,sc8180x-aggre2-noc
      - qcom,sc8180x-camnoc-virt
      - qcom,sc8180x-compute-noc
      - qcom,sc8180x-config-noc
      - qcom,sc8180x-dc-noc
      - qcom,sc8180x-gem-noc
      - qcom,sc8180x-ipa-virt
      - qcom,sc8180x-mc-virt
      - qcom,sc8180x-mmss-noc
      - qcom,sc8180x-qup-virt
      - qcom,sc8180x-system-noc
      - qcom,sc8280xp-aggre1-noc
      - qcom,sc8280xp-aggre2-noc
      - qcom,sc8280xp-clk-virt
      - qcom,sc8280xp-config-noc
      - qcom,sc8280xp-dc-noc
      - qcom,sc8280xp-gem-noc
      - qcom,sc8280xp-lpass-ag-noc
      - qcom,sc8280xp-mc-virt
      - qcom,sc8280xp-mmss-noc
      - qcom,sc8280xp-nspa-noc
      - qcom,sc8280xp-nspb-noc
      - qcom,sc8280xp-system-noc
      - 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
      - qcom,sdx55-mc-virt
      - qcom,sdx55-mem-noc
      - qcom,sdx55-system-noc
      - qcom,sdx65-mc-virt
      - qcom,sdx65-mem-noc
      - qcom,sdx65-system-noc
      - qcom,sdxbaagha-aggre_noc,
      - qcom,sdxbaagha-cnoc_main,
      - qcom,sdxbaagha-dc_noc,
      - qcom,sdxbaagha-mc_virt,
      - qcom,sdxbaagha-clk_virt,
      - qcom,sdxbaagha-pcie_anoc,
      - qcom,sdxbaagha-mem_noc,
      - qcom,sdxbaagha-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
      - qcom,sm8350-aggre1-noc
      - qcom,sm8350-aggre2-noc
      - qcom,sm8350-config-noc
      - qcom,sm8350-dc-noc
      - qcom,sm8350-gem-noc
      - qcom,sm8350-lpass-ag-noc
      - qcom,sm8350-mc-virt
      - qcom,sm8350-mmss-noc
      - qcom,sm8350-compute-noc
      - qcom,sm8350-system-noc
      - qcom,sm8450-aggre1-noc
      - qcom,sm8450-aggre2-noc
      - qcom,sm8450-clk-virt
      - qcom,sm8450-config-noc
      - qcom,sm8450-gem-noc
      - qcom,sm8450-lpass-ag-noc
      - qcom,sm8450-mc-virt
      - qcom,sm8450-mmss-noc
      - qcom,sm8450-nsp-noc
      - qcom,sm8450-pcie-anoc
      - qcom,sm8450-system-noc
      - qcom,sun-clk_virt
      - qcom,sun-mc_virt
      - qcom,sun-cnoc_cfg
      - qcom,sun-cnoc_main
      - qcom,sun-system_noc
      - qcom,sun-pcie_anoc
      - qcom,sun-aggre1_noc
      - qcom,sun-aggre2_noc
      - qcom,sun-mmss_noc
      - qcom,sun-gem_noc
      - qcom,sun-nsp_noc
      - qcom,sun-lpass_ag_noc
      - qcom,sun-lpass_lpiaon_noc
      - qcom,sun-lpass_lpicx_noc
      - qcom,pineapple-clk_virt
      - qcom,pineapple-mc_virt
      - qcom,pineapple-cnoc_cfg
      - qcom,pineapple-cnoc_main
      - qcom,pineapple-system_noc
      - qcom,pineapple-pcie_anoc
      - qcom,pineapple-aggre1_noc
      - qcom,pineapple-aggre2_noc
      - qcom,pineapple-mmss_noc
      - qcom,pineapple-gem_noc
      - qcom,pineapple-nsp_noc
      - qcom,pineapple-lpass_ag_noc
      - qcom,pineapple-lpass_lpiaon_noc
      - qcom,pineapple-lpass_lpicx_noc
      - qcom,parrot-aggre1_noc
      - qcom,parrot-aggre2_noc
      - qcom,parrot-clk_virt
      - qcom,parrot-cnoc2
      - qcom,parrot-cnoc3
      - qcom,parrot-gem_noc
      - qcom,parrot-lpass_ag_noc
      - qcom,parrot-mc_virt
      - qcom,parrot-mmss_noc
      - qcom,parrot-nsp_noc
      - qcom,parrot-pcie_anoc
      - qcom,parrot-system_noc
      - qcom,ravelin-clk_virt
      - qcom,ravelin-mc_virt
      - qcom,ravelin-aggre1_noc
      - qcom,ravelin-aggre2_noc
      - qcom,ravelin-cnoc2
      - qcom,ravelin-cnoc3
      - qcom,ravelin-gem_noc
      - qcom,ravelin-lpass_ag_noc
      - qcom,ravelin-mmss_noc
      - qcom,ravelin-pcie_anoc
      - qcom,ravelin-system_noc
      - qcom,ravelin-video_aggre_noc
      - qcom,tuna-aggre1_noc
      - qcom,tuna-aggre2_noc
      - qcom,tuna-clk_virt
      - qcom,tuna-cnoc_cfg
      - qcom,tuna-cnoc_main
      - qcom,tuna-gem_noc
      - qcom,tuna-lpass_ag_noc
      - qcom,tuna-lpass_lpiaon_noc
      - qcom,tuna-lpass_lpicx_noc
      - qcom,tuna-mc_virt
      - qcom,tuna-mmss_noc
      - qcom,tuna-nsp_noc
      - qcom,tuna-pcie_anoc
      - qcom,tuna-system_noc
      - qcom,kera-aggre1_noc
      - qcom,kera-aggre2_noc
      - qcom,kera-clk_virt
      - qcom,kera-cnoc_cfg
      - qcom,kera-cnoc_main
      - qcom,kera-gem_noc
      - qcom,kera-lpass_ag_noc
      - qcom,kera-lpass_lpiaon_noc
      - qcom,kera-lpass_lpicx_noc
      - qcom,kera-mc_virt
      - qcom,kera-mmss_noc
      - qcom,kera-nsp_noc
      - qcom,kera-pcie_anoc
      - qcom,kera-system_noc

  '#interconnect-cells': true

required:
  - compatible
  - reg

unevaluatedProperties: false

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

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

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