Documentation / devicetree / bindings / interconnect / qcom,qcs8300-rpmh.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
# 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

  clocks:
    minItems: 1
    maxItems: 4

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

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

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

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs8300-gem-noc
    then:
      properties:
        clocks:
          items:
            - description: GCC DDRSS GPU AXI clock

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs8300-clk-virt
              - qcom,qcs8300-config-noc
              - qcom,qcs8300-dc-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
    then:
      properties:
        clocks: false

unevaluatedProperties: false

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

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