1*66773fafSAbel Vesa# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*66773fafSAbel Vesa%YAML 1.2
3*66773fafSAbel Vesa---
4*66773fafSAbel Vesa$id: http://devicetree.org/schemas/interconnect/qcom,sm8550-rpmh.yaml#
5*66773fafSAbel Vesa$schema: http://devicetree.org/meta-schemas/core.yaml#
6*66773fafSAbel Vesa
7*66773fafSAbel Vesatitle: Qualcomm RPMh Network-On-Chip Interconnect on SM8550
8*66773fafSAbel Vesa
9*66773fafSAbel Vesamaintainers:
10*66773fafSAbel Vesa  - Abel Vesa <abel.vesa@linaro.org>
11*66773fafSAbel Vesa  - Neil Armstrong <neil.armstrong@linaro.org>
12*66773fafSAbel Vesa
13*66773fafSAbel Vesadescription: |
14*66773fafSAbel Vesa  RPMh interconnect providers support system bandwidth requirements through
15*66773fafSAbel Vesa  RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
16*66773fafSAbel Vesa  able to communicate with the BCM through the Resource State Coordinator (RSC)
17*66773fafSAbel Vesa  associated with each execution environment. Provider nodes must point to at
18*66773fafSAbel Vesa  least one RPMh device child node pertaining to their RSC and each provider
19*66773fafSAbel Vesa  can map to multiple RPMh resources.
20*66773fafSAbel Vesa
21*66773fafSAbel Vesa  See also:: include/dt-bindings/interconnect/qcom,sm8550-rpmh.h
22*66773fafSAbel Vesa
23*66773fafSAbel Vesaproperties:
24*66773fafSAbel Vesa  compatible:
25*66773fafSAbel Vesa    enum:
26*66773fafSAbel Vesa      - qcom,sm8550-aggre1-noc
27*66773fafSAbel Vesa      - qcom,sm8550-aggre2-noc
28*66773fafSAbel Vesa      - qcom,sm8550-clk-virt
29*66773fafSAbel Vesa      - qcom,sm8550-cnoc-main
30*66773fafSAbel Vesa      - qcom,sm8550-config-noc
31*66773fafSAbel Vesa      - qcom,sm8550-gem-noc
32*66773fafSAbel Vesa      - qcom,sm8550-lpass-ag-noc
33*66773fafSAbel Vesa      - qcom,sm8550-lpass-lpiaon-noc
34*66773fafSAbel Vesa      - qcom,sm8550-lpass-lpicx-noc
35*66773fafSAbel Vesa      - qcom,sm8550-mc-virt
36*66773fafSAbel Vesa      - qcom,sm8550-mmss-noc
37*66773fafSAbel Vesa      - qcom,sm8550-nsp-noc
38*66773fafSAbel Vesa      - qcom,sm8550-pcie-anoc
39*66773fafSAbel Vesa      - qcom,sm8550-system-noc
40*66773fafSAbel Vesa
41*66773fafSAbel Vesa  reg:
42*66773fafSAbel Vesa    maxItems: 1
43*66773fafSAbel Vesa
44*66773fafSAbel Vesa  clocks:
45*66773fafSAbel Vesa    minItems: 1
46*66773fafSAbel Vesa    maxItems: 2
47*66773fafSAbel Vesa
48*66773fafSAbel VesaallOf:
49*66773fafSAbel Vesa  - $ref: qcom,rpmh-common.yaml#
50*66773fafSAbel Vesa  - if:
51*66773fafSAbel Vesa      properties:
52*66773fafSAbel Vesa        compatible:
53*66773fafSAbel Vesa          contains:
54*66773fafSAbel Vesa            enum:
55*66773fafSAbel Vesa              - qcom,sm8550-clk-virt
56*66773fafSAbel Vesa              - qcom,sm8550-mc-virt
57*66773fafSAbel Vesa    then:
58*66773fafSAbel Vesa      properties:
59*66773fafSAbel Vesa        reg: false
60*66773fafSAbel Vesa    else:
61*66773fafSAbel Vesa      required:
62*66773fafSAbel Vesa        - reg
63*66773fafSAbel Vesa
64*66773fafSAbel Vesa  - if:
65*66773fafSAbel Vesa      properties:
66*66773fafSAbel Vesa        compatible:
67*66773fafSAbel Vesa          contains:
68*66773fafSAbel Vesa            enum:
69*66773fafSAbel Vesa              - qcom,sm8550-pcie-anoc
70*66773fafSAbel Vesa    then:
71*66773fafSAbel Vesa      properties:
72*66773fafSAbel Vesa        clocks:
73*66773fafSAbel Vesa          items:
74*66773fafSAbel Vesa            - description: aggre-NOC PCIe AXI clock
75*66773fafSAbel Vesa            - description: cfg-NOC PCIe a-NOC AHB clock
76*66773fafSAbel Vesa
77*66773fafSAbel Vesa  - if:
78*66773fafSAbel Vesa      properties:
79*66773fafSAbel Vesa        compatible:
80*66773fafSAbel Vesa          contains:
81*66773fafSAbel Vesa            enum:
82*66773fafSAbel Vesa              - qcom,sm8550-aggre1-noc
83*66773fafSAbel Vesa    then:
84*66773fafSAbel Vesa      properties:
85*66773fafSAbel Vesa        clocks:
86*66773fafSAbel Vesa          items:
87*66773fafSAbel Vesa            - description: aggre UFS PHY AXI clock
88*66773fafSAbel Vesa            - description: aggre USB3 PRIM AXI clock
89*66773fafSAbel Vesa
90*66773fafSAbel Vesa  - if:
91*66773fafSAbel Vesa      properties:
92*66773fafSAbel Vesa        compatible:
93*66773fafSAbel Vesa          contains:
94*66773fafSAbel Vesa            enum:
95*66773fafSAbel Vesa              - qcom,sm8550-aggre2-noc
96*66773fafSAbel Vesa    then:
97*66773fafSAbel Vesa      properties:
98*66773fafSAbel Vesa        clocks:
99*66773fafSAbel Vesa          items:
100*66773fafSAbel Vesa            - description: RPMH CC IPA clock
101*66773fafSAbel Vesa
102*66773fafSAbel Vesa  - if:
103*66773fafSAbel Vesa      properties:
104*66773fafSAbel Vesa        compatible:
105*66773fafSAbel Vesa          contains:
106*66773fafSAbel Vesa            enum:
107*66773fafSAbel Vesa              - qcom,sm8550-aggre1-noc
108*66773fafSAbel Vesa              - qcom,sm8550-aggre2-noc
109*66773fafSAbel Vesa              - qcom,sm8550-pcie-anoc
110*66773fafSAbel Vesa    then:
111*66773fafSAbel Vesa      required:
112*66773fafSAbel Vesa        - clocks
113*66773fafSAbel Vesa    else:
114*66773fafSAbel Vesa      properties:
115*66773fafSAbel Vesa        clocks: false
116*66773fafSAbel Vesa
117*66773fafSAbel Vesarequired:
118*66773fafSAbel Vesa  - compatible
119*66773fafSAbel Vesa
120*66773fafSAbel VesaunevaluatedProperties: false
121*66773fafSAbel Vesa
122*66773fafSAbel Vesaexamples:
123*66773fafSAbel Vesa  - |
124*66773fafSAbel Vesa    #include <dt-bindings/clock/qcom,sm8550-gcc.h>
125*66773fafSAbel Vesa
126*66773fafSAbel Vesa    clk_virt: interconnect-0 {
127*66773fafSAbel Vesa      compatible = "qcom,sm8550-clk-virt";
128*66773fafSAbel Vesa      #interconnect-cells = <2>;
129*66773fafSAbel Vesa      qcom,bcm-voters = <&apps_bcm_voter>;
130*66773fafSAbel Vesa    };
131*66773fafSAbel Vesa
132*66773fafSAbel Vesa    aggre1_noc: interconnect@16e0000 {
133*66773fafSAbel Vesa      compatible = "qcom,sm8550-aggre1-noc";
134*66773fafSAbel Vesa      reg = <0x016e0000 0x14400>;
135*66773fafSAbel Vesa      #interconnect-cells = <2>;
136*66773fafSAbel Vesa      clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
137*66773fafSAbel Vesa               <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
138*66773fafSAbel Vesa      qcom,bcm-voters = <&apps_bcm_voter>;
139*66773fafSAbel Vesa    };
140