1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/interconnect/qcom,rpm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm RPM Network-On-Chip Interconnect
8
9 maintainers:
10 - Georgi Djakov <georgi.djakov@linaro.org>
11
12 description: |
13 RPM interconnect providers support system bandwidth requirements through
14 RPM processor. The provider is able to communicate with the RPM through
15 the RPM shared memory device.
16
17 properties:
18 reg:
19 maxItems: 1
20
21 compatible:
22 enum:
23 - qcom,msm8916-bimc
24 - qcom,msm8916-pcnoc
25 - qcom,msm8916-snoc
26 - qcom,msm8939-bimc
27 - qcom,msm8939-pcnoc
28 - qcom,msm8939-snoc
29 - qcom,msm8996-a0noc
30 - qcom,msm8996-a1noc
31 - qcom,msm8996-a2noc
32 - qcom,msm8996-bimc
33 - qcom,msm8996-cnoc
34 - qcom,msm8996-mnoc
35 - qcom,msm8996-pnoc
36 - qcom,msm8996-snoc
37 - qcom,qcs404-bimc
38 - qcom,qcs404-pcnoc
39 - qcom,qcs404-snoc
40 - qcom,sdm660-a2noc
41 - qcom,sdm660-bimc
42 - qcom,sdm660-cnoc
43 - qcom,sdm660-gnoc
44 - qcom,sdm660-mnoc
45 - qcom,sdm660-snoc
46
47 '#interconnect-cells':
48 description: |
49 Value: <1> is one cell in an interconnect specifier for the
50 interconnect node id, <2> requires the interconnect node id and an
51 extra path tag.
52 enum: [ 1, 2 ]
53
54 clocks:
55 minItems: 2
56 maxItems: 7
57
58 clock-names:
59 minItems: 2
60 maxItems: 7
61
62 power-domains:
63 maxItems: 1
64
65 required:
66 - compatible
67 - reg
68 - '#interconnect-cells'
69 - clock-names
70 - clocks
71
72 additionalProperties: false
73
74 allOf:
75 - if:
76 properties:
77 compatible:
78 contains:
79 enum:
80 - qcom,msm8916-bimc
81 - qcom,msm8916-pcnoc
82 - qcom,msm8916-snoc
83 - qcom,msm8939-bimc
84 - qcom,msm8939-pcnoc
85 - qcom,msm8939-snoc
86 - qcom,msm8996-a1noc
87 - qcom,msm8996-a2noc
88 - qcom,msm8996-bimc
89 - qcom,msm8996-cnoc
90 - qcom,msm8996-pnoc
91 - qcom,msm8996-snoc
92 - qcom,qcs404-bimc
93 - qcom,qcs404-pcnoc
94 - qcom,qcs404-snoc
95 - qcom,sdm660-bimc
96 - qcom,sdm660-cnoc
97 - qcom,sdm660-gnoc
98 - qcom,sdm660-snoc
99
100 then:
101 properties:
102 clock-names:
103 items:
104 - const: bus
105 - const: bus_a
106
107 clocks:
108 items:
109 - description: Bus Clock
110 - description: Bus A Clock
111
112 # Child node's properties
113 patternProperties:
114 '^interconnect-[a-z0-9]+$':
115 type: object
116 description:
117 snoc-mm is a child of snoc, sharing snoc's register address space.
118
119 properties:
120 compatible:
121 enum:
122 - qcom,msm8939-snoc-mm
123
124 '#interconnect-cells':
125 const: 1
126
127 clock-names:
128 items:
129 - const: bus
130 - const: bus_a
131
132 clocks:
133 items:
134 - description: Bus Clock
135 - description: Bus A Clock
136
137 required:
138 - compatible
139 - '#interconnect-cells'
140 - clock-names
141 - clocks
142
143 - if:
144 properties:
145 compatible:
146 contains:
147 enum:
148 - qcom,msm8996-mnoc
149 - qcom,sdm660-mnoc
150
151 then:
152 properties:
153 clock-names:
154 items:
155 - const: bus
156 - const: bus_a
157 - const: iface
158
159 clocks:
160 items:
161 - description: Bus Clock.
162 - description: Bus A Clock.
163 - description: CPU-NoC High-performance Bus Clock.
164
165 - if:
166 properties:
167 compatible:
168 contains:
169 enum:
170 - qcom,msm8996-a0noc
171
172 then:
173 properties:
174 clock-names:
175 items:
176 - const: aggre0_snoc_axi
177 - const: aggre0_cnoc_ahb
178 - const: aggre0_noc_mpu_cfg
179
180 clocks:
181 items:
182 - description: Aggregate0 System NoC AXI Clock.
183 - description: Aggregate0 Config NoC AHB Clock.
184 - description: Aggregate0 NoC MPU Clock.
185
186 required:
187 - power-domains
188
189 - if:
190 properties:
191 compatible:
192 contains:
193 enum:
194 - qcom,sdm660-a2noc
195
196 then:
197 properties:
198 clock-names:
199 items:
200 - const: bus
201 - const: bus_a
202 - const: ipa
203 - const: ufs_axi
204 - const: aggre2_ufs_axi
205 - const: aggre2_usb3_axi
206 - const: cfg_noc_usb2_axi
207
208 clocks:
209 items:
210 - description: Bus Clock.
211 - description: Bus A Clock.
212 - description: IPA Clock.
213 - description: UFS AXI Clock.
214 - description: Aggregate2 UFS AXI Clock.
215 - description: Aggregate2 USB3 AXI Clock.
216 - description: Config NoC USB2 AXI Clock.
217
218 examples:
219 - |
220 #include <dt-bindings/clock/qcom,rpmcc.h>
221
222 bimc: interconnect@400000 {
223 compatible = "qcom,msm8916-bimc";
224 reg = <0x00400000 0x62000>;
225 #interconnect-cells = <1>;
226 clock-names = "bus", "bus_a";
227 clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
228 <&rpmcc RPM_SMD_BIMC_A_CLK>;
229 };
230
231 pcnoc: interconnect@500000 {
232 compatible = "qcom,msm8916-pcnoc";
233 reg = <0x00500000 0x11000>;
234 #interconnect-cells = <1>;
235 clock-names = "bus", "bus_a";
236 clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
237 <&rpmcc RPM_SMD_PCNOC_A_CLK>;
238 };
239
240 snoc: interconnect@580000 {
241 compatible = "qcom,msm8916-snoc";
242 reg = <0x00580000 0x14000>;
243 #interconnect-cells = <1>;
244 clock-names = "bus", "bus_a";
245 clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
246 <&rpmcc RPM_SMD_SNOC_A_CLK>;
247 };
Cache object: ccb178653f42baa275a99ae8b84cc0a1
|