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