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