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

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

maintainers:
  - Raviteja Laggyshetty <quic_rlaggysh@quicinc.com>

description: |
  RPMh interconnect providers support system bandwidth requirements through
  RPMh hardware accelerators known as Bus Clock Manager (BCM).

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

properties:
  compatible:
    enum:
      - qcom,qcs8300-aggre1-noc
      - qcom,qcs8300-aggre2-noc
      - qcom,qcs8300-clk-virt
      - qcom,qcs8300-config-noc
      - qcom,qcs8300-dc-noc
      - qcom,qcs8300-gem-noc
      - qcom,qcs8300-gpdsp-anoc
      - qcom,qcs8300-lpass-ag-noc
      - qcom,qcs8300-mc-virt
      - qcom,qcs8300-mmss-noc
      - qcom,qcs8300-nspa-noc
      - qcom,qcs8300-pcie-anoc
      - qcom,qcs8300-system-noc

  reg:
    maxItems: 1

required:
  - compatible

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

unevaluatedProperties: false

examples:
  - |
    gem_noc: interconnect@9100000 {
        compatible = "qcom,qcs8300-gem-noc";
        reg = <0x9100000 0xf7080>;
        #interconnect-cells = <2>;
        qcom,bcm-voters = <&apps_bcm_voter>;
    };

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