Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
fork
Configure Feed
Select the types of activity you want to include in your feed.
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
4 *
5 */
6
7#include <linux/device.h>
8#include <linux/interconnect.h>
9#include <linux/interconnect-provider.h>
10#include <linux/mod_devicetable.h>
11#include <linux/module.h>
12#include <linux/platform_device.h>
13#include <dt-bindings/interconnect/qcom,sm8250.h>
14
15#include "bcm-voter.h"
16#include "icc-rpmh.h"
17
18static struct qcom_icc_node qhm_a1noc_cfg;
19static struct qcom_icc_node qhm_qspi;
20static struct qcom_icc_node qhm_qup1;
21static struct qcom_icc_node qhm_qup2;
22static struct qcom_icc_node qhm_tsif;
23static struct qcom_icc_node xm_pcie3_modem;
24static struct qcom_icc_node xm_sdc4;
25static struct qcom_icc_node xm_ufs_mem;
26static struct qcom_icc_node xm_usb3_0;
27static struct qcom_icc_node xm_usb3_1;
28static struct qcom_icc_node qhm_a2noc_cfg;
29static struct qcom_icc_node qhm_qdss_bam;
30static struct qcom_icc_node qhm_qup0;
31static struct qcom_icc_node qnm_cnoc;
32static struct qcom_icc_node qxm_crypto;
33static struct qcom_icc_node qxm_ipa;
34static struct qcom_icc_node xm_pcie3_0;
35static struct qcom_icc_node xm_pcie3_1;
36static struct qcom_icc_node xm_qdss_etr;
37static struct qcom_icc_node xm_sdc2;
38static struct qcom_icc_node xm_ufs_card;
39static struct qcom_icc_node qnm_npu;
40static struct qcom_icc_node qnm_snoc;
41static struct qcom_icc_node xm_qdss_dap;
42static struct qcom_icc_node qhm_cnoc_dc_noc;
43static struct qcom_icc_node alm_gpu_tcu;
44static struct qcom_icc_node alm_sys_tcu;
45static struct qcom_icc_node chm_apps;
46static struct qcom_icc_node qhm_gemnoc_cfg;
47static struct qcom_icc_node qnm_cmpnoc;
48static struct qcom_icc_node qnm_gpu;
49static struct qcom_icc_node qnm_mnoc_hf;
50static struct qcom_icc_node qnm_mnoc_sf;
51static struct qcom_icc_node qnm_pcie;
52static struct qcom_icc_node qnm_snoc_gc;
53static struct qcom_icc_node qnm_snoc_sf;
54static struct qcom_icc_node llcc_mc;
55static struct qcom_icc_node qhm_mnoc_cfg;
56static struct qcom_icc_node qnm_camnoc_hf;
57static struct qcom_icc_node qnm_camnoc_icp;
58static struct qcom_icc_node qnm_camnoc_sf;
59static struct qcom_icc_node qnm_video0;
60static struct qcom_icc_node qnm_video1;
61static struct qcom_icc_node qnm_video_cvp;
62static struct qcom_icc_node qxm_mdp0;
63static struct qcom_icc_node qxm_mdp1;
64static struct qcom_icc_node qxm_rot;
65static struct qcom_icc_node amm_npu_sys;
66static struct qcom_icc_node amm_npu_sys_cdp_w;
67static struct qcom_icc_node qhm_cfg;
68static struct qcom_icc_node qhm_snoc_cfg;
69static struct qcom_icc_node qnm_aggre1_noc;
70static struct qcom_icc_node qnm_aggre2_noc;
71static struct qcom_icc_node qnm_gemnoc;
72static struct qcom_icc_node qnm_gemnoc_pcie;
73static struct qcom_icc_node qxm_pimem;
74static struct qcom_icc_node xm_gic;
75static struct qcom_icc_node qns_a1noc_snoc;
76static struct qcom_icc_node qns_pcie_modem_mem_noc;
77static struct qcom_icc_node srvc_aggre1_noc;
78static struct qcom_icc_node qns_a2noc_snoc;
79static struct qcom_icc_node qns_pcie_mem_noc;
80static struct qcom_icc_node srvc_aggre2_noc;
81static struct qcom_icc_node qns_cdsp_mem_noc;
82static struct qcom_icc_node qhs_a1_noc_cfg;
83static struct qcom_icc_node qhs_a2_noc_cfg;
84static struct qcom_icc_node qhs_ahb2phy0;
85static struct qcom_icc_node qhs_ahb2phy1;
86static struct qcom_icc_node qhs_aoss;
87static struct qcom_icc_node qhs_camera_cfg;
88static struct qcom_icc_node qhs_clk_ctl;
89static struct qcom_icc_node qhs_compute_dsp;
90static struct qcom_icc_node qhs_cpr_cx;
91static struct qcom_icc_node qhs_cpr_mmcx;
92static struct qcom_icc_node qhs_cpr_mx;
93static struct qcom_icc_node qhs_crypto0_cfg;
94static struct qcom_icc_node qhs_cx_rdpm;
95static struct qcom_icc_node qhs_dcc_cfg;
96static struct qcom_icc_node qhs_ddrss_cfg;
97static struct qcom_icc_node qhs_display_cfg;
98static struct qcom_icc_node qhs_gpuss_cfg;
99static struct qcom_icc_node qhs_imem_cfg;
100static struct qcom_icc_node qhs_ipa;
101static struct qcom_icc_node qhs_ipc_router;
102static struct qcom_icc_node qhs_lpass_cfg;
103static struct qcom_icc_node qhs_mnoc_cfg;
104static struct qcom_icc_node qhs_npu_cfg;
105static struct qcom_icc_node qhs_pcie0_cfg;
106static struct qcom_icc_node qhs_pcie1_cfg;
107static struct qcom_icc_node qhs_pcie_modem_cfg;
108static struct qcom_icc_node qhs_pdm;
109static struct qcom_icc_node qhs_pimem_cfg;
110static struct qcom_icc_node qhs_prng;
111static struct qcom_icc_node qhs_qdss_cfg;
112static struct qcom_icc_node qhs_qspi;
113static struct qcom_icc_node qhs_qup0;
114static struct qcom_icc_node qhs_qup1;
115static struct qcom_icc_node qhs_qup2;
116static struct qcom_icc_node qhs_sdc2;
117static struct qcom_icc_node qhs_sdc4;
118static struct qcom_icc_node qhs_snoc_cfg;
119static struct qcom_icc_node qhs_tcsr;
120static struct qcom_icc_node qhs_tlmm0;
121static struct qcom_icc_node qhs_tlmm1;
122static struct qcom_icc_node qhs_tlmm2;
123static struct qcom_icc_node qhs_tsif;
124static struct qcom_icc_node qhs_ufs_card_cfg;
125static struct qcom_icc_node qhs_ufs_mem_cfg;
126static struct qcom_icc_node qhs_usb3_0;
127static struct qcom_icc_node qhs_usb3_1;
128static struct qcom_icc_node qhs_venus_cfg;
129static struct qcom_icc_node qhs_vsense_ctrl_cfg;
130static struct qcom_icc_node qns_cnoc_a2noc;
131static struct qcom_icc_node srvc_cnoc;
132static struct qcom_icc_node qhs_llcc;
133static struct qcom_icc_node qhs_memnoc;
134static struct qcom_icc_node qns_gem_noc_snoc;
135static struct qcom_icc_node qns_llcc;
136static struct qcom_icc_node qns_sys_pcie;
137static struct qcom_icc_node srvc_even_gemnoc;
138static struct qcom_icc_node srvc_odd_gemnoc;
139static struct qcom_icc_node srvc_sys_gemnoc;
140static struct qcom_icc_node ebi;
141static struct qcom_icc_node qns_mem_noc_hf;
142static struct qcom_icc_node qns_mem_noc_sf;
143static struct qcom_icc_node srvc_mnoc;
144static struct qcom_icc_node qhs_cal_dp0;
145static struct qcom_icc_node qhs_cal_dp1;
146static struct qcom_icc_node qhs_cp;
147static struct qcom_icc_node qhs_dma_bwmon;
148static struct qcom_icc_node qhs_dpm;
149static struct qcom_icc_node qhs_isense;
150static struct qcom_icc_node qhs_llm;
151static struct qcom_icc_node qhs_tcm;
152static struct qcom_icc_node qns_npu_sys;
153static struct qcom_icc_node srvc_noc;
154static struct qcom_icc_node qhs_apss;
155static struct qcom_icc_node qns_cnoc;
156static struct qcom_icc_node qns_gemnoc_gc;
157static struct qcom_icc_node qns_gemnoc_sf;
158static struct qcom_icc_node qxs_imem;
159static struct qcom_icc_node qxs_pimem;
160static struct qcom_icc_node srvc_snoc;
161static struct qcom_icc_node xs_pcie_0;
162static struct qcom_icc_node xs_pcie_1;
163static struct qcom_icc_node xs_pcie_modem;
164static struct qcom_icc_node xs_qdss_stm;
165static struct qcom_icc_node xs_sys_tcu_cfg;
166static struct qcom_icc_node qup0_core_master;
167static struct qcom_icc_node qup1_core_master;
168static struct qcom_icc_node qup2_core_master;
169static struct qcom_icc_node qup0_core_slave;
170static struct qcom_icc_node qup1_core_slave;
171static struct qcom_icc_node qup2_core_slave;
172
173static struct qcom_icc_node qhm_a1noc_cfg = {
174 .name = "qhm_a1noc_cfg",
175 .channels = 1,
176 .buswidth = 4,
177 .num_links = 1,
178 .link_nodes = { &srvc_aggre1_noc },
179};
180
181static struct qcom_icc_node qhm_qspi = {
182 .name = "qhm_qspi",
183 .channels = 1,
184 .buswidth = 4,
185 .num_links = 1,
186 .link_nodes = { &qns_a1noc_snoc },
187};
188
189static struct qcom_icc_node qhm_qup1 = {
190 .name = "qhm_qup1",
191 .channels = 1,
192 .buswidth = 4,
193 .num_links = 1,
194 .link_nodes = { &qns_a1noc_snoc },
195};
196
197static struct qcom_icc_node qhm_qup2 = {
198 .name = "qhm_qup2",
199 .channels = 1,
200 .buswidth = 4,
201 .num_links = 1,
202 .link_nodes = { &qns_a1noc_snoc },
203};
204
205static struct qcom_icc_node qhm_tsif = {
206 .name = "qhm_tsif",
207 .channels = 1,
208 .buswidth = 4,
209 .num_links = 1,
210 .link_nodes = { &qns_a1noc_snoc },
211};
212
213static struct qcom_icc_node xm_pcie3_modem = {
214 .name = "xm_pcie3_modem",
215 .channels = 1,
216 .buswidth = 8,
217 .num_links = 1,
218 .link_nodes = { &qns_pcie_modem_mem_noc },
219};
220
221static struct qcom_icc_node xm_sdc4 = {
222 .name = "xm_sdc4",
223 .channels = 1,
224 .buswidth = 8,
225 .num_links = 1,
226 .link_nodes = { &qns_a1noc_snoc },
227};
228
229static struct qcom_icc_node xm_ufs_mem = {
230 .name = "xm_ufs_mem",
231 .channels = 1,
232 .buswidth = 8,
233 .num_links = 1,
234 .link_nodes = { &qns_a1noc_snoc },
235};
236
237static struct qcom_icc_node xm_usb3_0 = {
238 .name = "xm_usb3_0",
239 .channels = 1,
240 .buswidth = 8,
241 .num_links = 1,
242 .link_nodes = { &qns_a1noc_snoc },
243};
244
245static struct qcom_icc_node xm_usb3_1 = {
246 .name = "xm_usb3_1",
247 .channels = 1,
248 .buswidth = 8,
249 .num_links = 1,
250 .link_nodes = { &qns_a1noc_snoc },
251};
252
253static struct qcom_icc_node qhm_a2noc_cfg = {
254 .name = "qhm_a2noc_cfg",
255 .channels = 1,
256 .buswidth = 4,
257 .num_links = 1,
258 .link_nodes = { &srvc_aggre2_noc },
259};
260
261static struct qcom_icc_node qhm_qdss_bam = {
262 .name = "qhm_qdss_bam",
263 .channels = 1,
264 .buswidth = 4,
265 .num_links = 1,
266 .link_nodes = { &qns_a2noc_snoc },
267};
268
269static struct qcom_icc_node qhm_qup0 = {
270 .name = "qhm_qup0",
271 .channels = 1,
272 .buswidth = 4,
273 .num_links = 1,
274 .link_nodes = { &qns_a2noc_snoc },
275};
276
277static struct qcom_icc_node qnm_cnoc = {
278 .name = "qnm_cnoc",
279 .channels = 1,
280 .buswidth = 8,
281 .num_links = 1,
282 .link_nodes = { &qns_a2noc_snoc },
283};
284
285static struct qcom_icc_node qxm_crypto = {
286 .name = "qxm_crypto",
287 .channels = 1,
288 .buswidth = 8,
289 .num_links = 1,
290 .link_nodes = { &qns_a2noc_snoc },
291};
292
293static struct qcom_icc_node qxm_ipa = {
294 .name = "qxm_ipa",
295 .channels = 1,
296 .buswidth = 8,
297 .num_links = 1,
298 .link_nodes = { &qns_a2noc_snoc },
299};
300
301static struct qcom_icc_node xm_pcie3_0 = {
302 .name = "xm_pcie3_0",
303 .channels = 1,
304 .buswidth = 8,
305 .num_links = 1,
306 .link_nodes = { &qns_pcie_mem_noc },
307};
308
309static struct qcom_icc_node xm_pcie3_1 = {
310 .name = "xm_pcie3_1",
311 .channels = 1,
312 .buswidth = 8,
313 .num_links = 1,
314 .link_nodes = { &qns_pcie_mem_noc },
315};
316
317static struct qcom_icc_node xm_qdss_etr = {
318 .name = "xm_qdss_etr",
319 .channels = 1,
320 .buswidth = 8,
321 .num_links = 1,
322 .link_nodes = { &qns_a2noc_snoc },
323};
324
325static struct qcom_icc_node xm_sdc2 = {
326 .name = "xm_sdc2",
327 .channels = 1,
328 .buswidth = 8,
329 .num_links = 1,
330 .link_nodes = { &qns_a2noc_snoc },
331};
332
333static struct qcom_icc_node xm_ufs_card = {
334 .name = "xm_ufs_card",
335 .channels = 1,
336 .buswidth = 8,
337 .num_links = 1,
338 .link_nodes = { &qns_a2noc_snoc },
339};
340
341static struct qcom_icc_node qnm_npu = {
342 .name = "qnm_npu",
343 .channels = 2,
344 .buswidth = 32,
345 .num_links = 1,
346 .link_nodes = { &qns_cdsp_mem_noc },
347};
348
349static struct qcom_icc_node qnm_snoc = {
350 .name = "qnm_snoc",
351 .channels = 1,
352 .buswidth = 8,
353 .num_links = 49,
354 .link_nodes = { &qhs_compute_dsp,
355 &qhs_camera_cfg,
356 &qhs_tlmm1,
357 &qhs_tlmm0,
358 &qhs_sdc4,
359 &qhs_tlmm2,
360 &qhs_sdc2,
361 &qhs_mnoc_cfg,
362 &qhs_ufs_mem_cfg,
363 &qhs_snoc_cfg,
364 &qhs_pdm,
365 &qhs_cx_rdpm,
366 &qhs_pcie1_cfg,
367 &qhs_a2_noc_cfg,
368 &qhs_qdss_cfg,
369 &qhs_display_cfg,
370 &qhs_pcie_modem_cfg,
371 &qhs_tcsr,
372 &qhs_dcc_cfg,
373 &qhs_ddrss_cfg,
374 &qhs_ipc_router,
375 &qhs_pcie0_cfg,
376 &qhs_cpr_mmcx,
377 &qhs_npu_cfg,
378 &qhs_ahb2phy0,
379 &qhs_ahb2phy1,
380 &qhs_gpuss_cfg,
381 &qhs_venus_cfg,
382 &qhs_tsif,
383 &qhs_ipa,
384 &qhs_imem_cfg,
385 &qhs_usb3_0,
386 &srvc_cnoc,
387 &qhs_ufs_card_cfg,
388 &qhs_usb3_1,
389 &qhs_lpass_cfg,
390 &qhs_cpr_cx,
391 &qhs_a1_noc_cfg,
392 &qhs_aoss,
393 &qhs_prng,
394 &qhs_vsense_ctrl_cfg,
395 &qhs_qspi,
396 &qhs_crypto0_cfg,
397 &qhs_pimem_cfg,
398 &qhs_cpr_mx,
399 &qhs_qup0,
400 &qhs_qup1,
401 &qhs_qup2,
402 &qhs_clk_ctl },
403};
404
405static struct qcom_icc_node xm_qdss_dap = {
406 .name = "xm_qdss_dap",
407 .channels = 1,
408 .buswidth = 8,
409 .num_links = 50,
410 .link_nodes = { &qhs_compute_dsp,
411 &qhs_camera_cfg,
412 &qhs_tlmm1,
413 &qhs_tlmm0,
414 &qhs_sdc4,
415 &qhs_tlmm2,
416 &qhs_sdc2,
417 &qhs_mnoc_cfg,
418 &qhs_ufs_mem_cfg,
419 &qhs_snoc_cfg,
420 &qhs_pdm,
421 &qhs_cx_rdpm,
422 &qhs_pcie1_cfg,
423 &qhs_a2_noc_cfg,
424 &qhs_qdss_cfg,
425 &qhs_display_cfg,
426 &qhs_pcie_modem_cfg,
427 &qhs_tcsr,
428 &qhs_dcc_cfg,
429 &qhs_ddrss_cfg,
430 &qhs_ipc_router,
431 &qns_cnoc_a2noc,
432 &qhs_pcie0_cfg,
433 &qhs_cpr_mmcx,
434 &qhs_npu_cfg,
435 &qhs_ahb2phy0,
436 &qhs_ahb2phy1,
437 &qhs_gpuss_cfg,
438 &qhs_venus_cfg,
439 &qhs_tsif,
440 &qhs_ipa,
441 &qhs_imem_cfg,
442 &qhs_usb3_0,
443 &srvc_cnoc,
444 &qhs_ufs_card_cfg,
445 &qhs_usb3_1,
446 &qhs_lpass_cfg,
447 &qhs_cpr_cx,
448 &qhs_a1_noc_cfg,
449 &qhs_aoss,
450 &qhs_prng,
451 &qhs_vsense_ctrl_cfg,
452 &qhs_qspi,
453 &qhs_crypto0_cfg,
454 &qhs_pimem_cfg,
455 &qhs_cpr_mx,
456 &qhs_qup0,
457 &qhs_qup1,
458 &qhs_qup2,
459 &qhs_clk_ctl },
460};
461
462static struct qcom_icc_node qhm_cnoc_dc_noc = {
463 .name = "qhm_cnoc_dc_noc",
464 .channels = 1,
465 .buswidth = 4,
466 .num_links = 2,
467 .link_nodes = { &qhs_memnoc,
468 &qhs_llcc },
469};
470
471static struct qcom_icc_node alm_gpu_tcu = {
472 .name = "alm_gpu_tcu",
473 .channels = 1,
474 .buswidth = 8,
475 .num_links = 2,
476 .link_nodes = { &qns_llcc,
477 &qns_gem_noc_snoc },
478};
479
480static struct qcom_icc_node alm_sys_tcu = {
481 .name = "alm_sys_tcu",
482 .channels = 1,
483 .buswidth = 8,
484 .num_links = 2,
485 .link_nodes = { &qns_llcc,
486 &qns_gem_noc_snoc },
487};
488
489static struct qcom_icc_node chm_apps = {
490 .name = "chm_apps",
491 .channels = 2,
492 .buswidth = 32,
493 .num_links = 3,
494 .link_nodes = { &qns_llcc,
495 &qns_gem_noc_snoc,
496 &qns_sys_pcie },
497};
498
499static struct qcom_icc_node qhm_gemnoc_cfg = {
500 .name = "qhm_gemnoc_cfg",
501 .channels = 1,
502 .buswidth = 4,
503 .num_links = 3,
504 .link_nodes = { &srvc_odd_gemnoc,
505 &srvc_even_gemnoc,
506 &srvc_sys_gemnoc },
507};
508
509static struct qcom_icc_node qnm_cmpnoc = {
510 .name = "qnm_cmpnoc",
511 .channels = 2,
512 .buswidth = 32,
513 .num_links = 2,
514 .link_nodes = { &qns_llcc,
515 &qns_gem_noc_snoc },
516};
517
518static struct qcom_icc_node qnm_gpu = {
519 .name = "qnm_gpu",
520 .channels = 2,
521 .buswidth = 32,
522 .num_links = 2,
523 .link_nodes = { &qns_llcc,
524 &qns_gem_noc_snoc },
525};
526
527static struct qcom_icc_node qnm_mnoc_hf = {
528 .name = "qnm_mnoc_hf",
529 .channels = 2,
530 .buswidth = 32,
531 .num_links = 1,
532 .link_nodes = { &qns_llcc },
533};
534
535static struct qcom_icc_node qnm_mnoc_sf = {
536 .name = "qnm_mnoc_sf",
537 .channels = 2,
538 .buswidth = 32,
539 .num_links = 2,
540 .link_nodes = { &qns_llcc,
541 &qns_gem_noc_snoc },
542};
543
544static struct qcom_icc_node qnm_pcie = {
545 .name = "qnm_pcie",
546 .channels = 1,
547 .buswidth = 16,
548 .num_links = 2,
549 .link_nodes = { &qns_llcc,
550 &qns_gem_noc_snoc },
551};
552
553static struct qcom_icc_node qnm_snoc_gc = {
554 .name = "qnm_snoc_gc",
555 .channels = 1,
556 .buswidth = 8,
557 .num_links = 1,
558 .link_nodes = { &qns_llcc },
559};
560
561static struct qcom_icc_node qnm_snoc_sf = {
562 .name = "qnm_snoc_sf",
563 .channels = 1,
564 .buswidth = 16,
565 .num_links = 3,
566 .link_nodes = { &qns_llcc,
567 &qns_gem_noc_snoc,
568 &qns_sys_pcie },
569};
570
571static struct qcom_icc_node llcc_mc = {
572 .name = "llcc_mc",
573 .channels = 4,
574 .buswidth = 4,
575 .num_links = 1,
576 .link_nodes = { &ebi },
577};
578
579static struct qcom_icc_node qhm_mnoc_cfg = {
580 .name = "qhm_mnoc_cfg",
581 .channels = 1,
582 .buswidth = 4,
583 .num_links = 1,
584 .link_nodes = { &srvc_mnoc },
585};
586
587static struct qcom_icc_node qnm_camnoc_hf = {
588 .name = "qnm_camnoc_hf",
589 .channels = 2,
590 .buswidth = 32,
591 .num_links = 1,
592 .link_nodes = { &qns_mem_noc_hf },
593};
594
595static struct qcom_icc_node qnm_camnoc_icp = {
596 .name = "qnm_camnoc_icp",
597 .channels = 1,
598 .buswidth = 8,
599 .num_links = 1,
600 .link_nodes = { &qns_mem_noc_sf },
601};
602
603static struct qcom_icc_node qnm_camnoc_sf = {
604 .name = "qnm_camnoc_sf",
605 .channels = 2,
606 .buswidth = 32,
607 .num_links = 1,
608 .link_nodes = { &qns_mem_noc_sf },
609};
610
611static struct qcom_icc_node qnm_video0 = {
612 .name = "qnm_video0",
613 .channels = 1,
614 .buswidth = 32,
615 .num_links = 1,
616 .link_nodes = { &qns_mem_noc_sf },
617};
618
619static struct qcom_icc_node qnm_video1 = {
620 .name = "qnm_video1",
621 .channels = 1,
622 .buswidth = 32,
623 .num_links = 1,
624 .link_nodes = { &qns_mem_noc_sf },
625};
626
627static struct qcom_icc_node qnm_video_cvp = {
628 .name = "qnm_video_cvp",
629 .channels = 1,
630 .buswidth = 32,
631 .num_links = 1,
632 .link_nodes = { &qns_mem_noc_sf },
633};
634
635static struct qcom_icc_node qxm_mdp0 = {
636 .name = "qxm_mdp0",
637 .channels = 1,
638 .buswidth = 32,
639 .num_links = 1,
640 .link_nodes = { &qns_mem_noc_hf },
641};
642
643static struct qcom_icc_node qxm_mdp1 = {
644 .name = "qxm_mdp1",
645 .channels = 1,
646 .buswidth = 32,
647 .num_links = 1,
648 .link_nodes = { &qns_mem_noc_hf },
649};
650
651static struct qcom_icc_node qxm_rot = {
652 .name = "qxm_rot",
653 .channels = 1,
654 .buswidth = 32,
655 .num_links = 1,
656 .link_nodes = { &qns_mem_noc_sf },
657};
658
659static struct qcom_icc_node amm_npu_sys = {
660 .name = "amm_npu_sys",
661 .channels = 4,
662 .buswidth = 32,
663 .num_links = 1,
664 .link_nodes = { &qns_npu_sys },
665};
666
667static struct qcom_icc_node amm_npu_sys_cdp_w = {
668 .name = "amm_npu_sys_cdp_w",
669 .channels = 2,
670 .buswidth = 16,
671 .num_links = 1,
672 .link_nodes = { &qns_npu_sys },
673};
674
675static struct qcom_icc_node qhm_cfg = {
676 .name = "qhm_cfg",
677 .channels = 1,
678 .buswidth = 4,
679 .num_links = 9,
680 .link_nodes = { &srvc_noc,
681 &qhs_isense,
682 &qhs_llm,
683 &qhs_dma_bwmon,
684 &qhs_cp,
685 &qhs_tcm,
686 &qhs_cal_dp0,
687 &qhs_cal_dp1,
688 &qhs_dpm },
689};
690
691static struct qcom_icc_node qhm_snoc_cfg = {
692 .name = "qhm_snoc_cfg",
693 .channels = 1,
694 .buswidth = 4,
695 .num_links = 1,
696 .link_nodes = { &srvc_snoc },
697};
698
699static struct qcom_icc_node qnm_aggre1_noc = {
700 .name = "qnm_aggre1_noc",
701 .channels = 1,
702 .buswidth = 16,
703 .num_links = 1,
704 .link_nodes = { &qns_gemnoc_sf },
705};
706
707static struct qcom_icc_node qnm_aggre2_noc = {
708 .name = "qnm_aggre2_noc",
709 .channels = 1,
710 .buswidth = 16,
711 .num_links = 1,
712 .link_nodes = { &qns_gemnoc_sf },
713};
714
715static struct qcom_icc_node qnm_gemnoc = {
716 .name = "qnm_gemnoc",
717 .channels = 1,
718 .buswidth = 16,
719 .num_links = 6,
720 .link_nodes = { &qxs_pimem,
721 &qxs_imem,
722 &qhs_apss,
723 &qns_cnoc,
724 &xs_sys_tcu_cfg,
725 &xs_qdss_stm },
726};
727
728static struct qcom_icc_node qnm_gemnoc_pcie = {
729 .name = "qnm_gemnoc_pcie",
730 .channels = 1,
731 .buswidth = 8,
732 .num_links = 3,
733 .link_nodes = { &xs_pcie_modem,
734 &xs_pcie_0,
735 &xs_pcie_1 },
736};
737
738static struct qcom_icc_node qxm_pimem = {
739 .name = "qxm_pimem",
740 .channels = 1,
741 .buswidth = 8,
742 .num_links = 1,
743 .link_nodes = { &qns_gemnoc_gc },
744};
745
746static struct qcom_icc_node xm_gic = {
747 .name = "xm_gic",
748 .channels = 1,
749 .buswidth = 8,
750 .num_links = 1,
751 .link_nodes = { &qns_gemnoc_gc },
752};
753
754static struct qcom_icc_node qns_a1noc_snoc = {
755 .name = "qns_a1noc_snoc",
756 .channels = 1,
757 .buswidth = 16,
758 .num_links = 1,
759 .link_nodes = { &qnm_aggre1_noc },
760};
761
762static struct qcom_icc_node qns_pcie_modem_mem_noc = {
763 .name = "qns_pcie_modem_mem_noc",
764 .channels = 1,
765 .buswidth = 16,
766 .num_links = 1,
767 .link_nodes = { &qnm_pcie },
768};
769
770static struct qcom_icc_node srvc_aggre1_noc = {
771 .name = "srvc_aggre1_noc",
772 .channels = 1,
773 .buswidth = 4,
774};
775
776static struct qcom_icc_node qns_a2noc_snoc = {
777 .name = "qns_a2noc_snoc",
778 .channels = 1,
779 .buswidth = 16,
780 .num_links = 1,
781 .link_nodes = { &qnm_aggre2_noc },
782};
783
784static struct qcom_icc_node qns_pcie_mem_noc = {
785 .name = "qns_pcie_mem_noc",
786 .channels = 1,
787 .buswidth = 16,
788 .num_links = 1,
789 .link_nodes = { &qnm_pcie },
790};
791
792static struct qcom_icc_node srvc_aggre2_noc = {
793 .name = "srvc_aggre2_noc",
794 .channels = 1,
795 .buswidth = 4,
796};
797
798static struct qcom_icc_node qns_cdsp_mem_noc = {
799 .name = "qns_cdsp_mem_noc",
800 .channels = 2,
801 .buswidth = 32,
802 .num_links = 1,
803 .link_nodes = { &qnm_cmpnoc },
804};
805
806static struct qcom_icc_node qhs_a1_noc_cfg = {
807 .name = "qhs_a1_noc_cfg",
808 .channels = 1,
809 .buswidth = 4,
810 .num_links = 1,
811 .link_nodes = { &qhm_a1noc_cfg },
812};
813
814static struct qcom_icc_node qhs_a2_noc_cfg = {
815 .name = "qhs_a2_noc_cfg",
816 .channels = 1,
817 .buswidth = 4,
818 .num_links = 1,
819 .link_nodes = { &qhm_a2noc_cfg },
820};
821
822static struct qcom_icc_node qhs_ahb2phy0 = {
823 .name = "qhs_ahb2phy0",
824 .channels = 1,
825 .buswidth = 4,
826};
827
828static struct qcom_icc_node qhs_ahb2phy1 = {
829 .name = "qhs_ahb2phy1",
830 .channels = 1,
831 .buswidth = 4,
832};
833
834static struct qcom_icc_node qhs_aoss = {
835 .name = "qhs_aoss",
836 .channels = 1,
837 .buswidth = 4,
838};
839
840static struct qcom_icc_node qhs_camera_cfg = {
841 .name = "qhs_camera_cfg",
842 .channels = 1,
843 .buswidth = 4,
844};
845
846static struct qcom_icc_node qhs_clk_ctl = {
847 .name = "qhs_clk_ctl",
848 .channels = 1,
849 .buswidth = 4,
850};
851
852static struct qcom_icc_node qhs_compute_dsp = {
853 .name = "qhs_compute_dsp",
854 .channels = 1,
855 .buswidth = 4,
856};
857
858static struct qcom_icc_node qhs_cpr_cx = {
859 .name = "qhs_cpr_cx",
860 .channels = 1,
861 .buswidth = 4,
862};
863
864static struct qcom_icc_node qhs_cpr_mmcx = {
865 .name = "qhs_cpr_mmcx",
866 .channels = 1,
867 .buswidth = 4,
868};
869
870static struct qcom_icc_node qhs_cpr_mx = {
871 .name = "qhs_cpr_mx",
872 .channels = 1,
873 .buswidth = 4,
874};
875
876static struct qcom_icc_node qhs_crypto0_cfg = {
877 .name = "qhs_crypto0_cfg",
878 .channels = 1,
879 .buswidth = 4,
880};
881
882static struct qcom_icc_node qhs_cx_rdpm = {
883 .name = "qhs_cx_rdpm",
884 .channels = 1,
885 .buswidth = 4,
886};
887
888static struct qcom_icc_node qhs_dcc_cfg = {
889 .name = "qhs_dcc_cfg",
890 .channels = 1,
891 .buswidth = 4,
892};
893
894static struct qcom_icc_node qhs_ddrss_cfg = {
895 .name = "qhs_ddrss_cfg",
896 .channels = 1,
897 .buswidth = 4,
898 .num_links = 1,
899 .link_nodes = { &qhm_cnoc_dc_noc },
900};
901
902static struct qcom_icc_node qhs_display_cfg = {
903 .name = "qhs_display_cfg",
904 .channels = 1,
905 .buswidth = 4,
906};
907
908static struct qcom_icc_node qhs_gpuss_cfg = {
909 .name = "qhs_gpuss_cfg",
910 .channels = 1,
911 .buswidth = 8,
912};
913
914static struct qcom_icc_node qhs_imem_cfg = {
915 .name = "qhs_imem_cfg",
916 .channels = 1,
917 .buswidth = 4,
918};
919
920static struct qcom_icc_node qhs_ipa = {
921 .name = "qhs_ipa",
922 .channels = 1,
923 .buswidth = 4,
924};
925
926static struct qcom_icc_node qhs_ipc_router = {
927 .name = "qhs_ipc_router",
928 .channels = 1,
929 .buswidth = 4,
930};
931
932static struct qcom_icc_node qhs_lpass_cfg = {
933 .name = "qhs_lpass_cfg",
934 .channels = 1,
935 .buswidth = 4,
936};
937
938static struct qcom_icc_node qhs_mnoc_cfg = {
939 .name = "qhs_mnoc_cfg",
940 .channels = 1,
941 .buswidth = 4,
942 .num_links = 1,
943 .link_nodes = { &qhm_mnoc_cfg },
944};
945
946static struct qcom_icc_node qhs_npu_cfg = {
947 .name = "qhs_npu_cfg",
948 .channels = 1,
949 .buswidth = 4,
950 .num_links = 1,
951 .link_nodes = { &qhm_cfg },
952};
953
954static struct qcom_icc_node qhs_pcie0_cfg = {
955 .name = "qhs_pcie0_cfg",
956 .channels = 1,
957 .buswidth = 4,
958};
959
960static struct qcom_icc_node qhs_pcie1_cfg = {
961 .name = "qhs_pcie1_cfg",
962 .channels = 1,
963 .buswidth = 4,
964};
965
966static struct qcom_icc_node qhs_pcie_modem_cfg = {
967 .name = "qhs_pcie_modem_cfg",
968 .channels = 1,
969 .buswidth = 4,
970};
971
972static struct qcom_icc_node qhs_pdm = {
973 .name = "qhs_pdm",
974 .channels = 1,
975 .buswidth = 4,
976};
977
978static struct qcom_icc_node qhs_pimem_cfg = {
979 .name = "qhs_pimem_cfg",
980 .channels = 1,
981 .buswidth = 4,
982};
983
984static struct qcom_icc_node qhs_prng = {
985 .name = "qhs_prng",
986 .channels = 1,
987 .buswidth = 4,
988};
989
990static struct qcom_icc_node qhs_qdss_cfg = {
991 .name = "qhs_qdss_cfg",
992 .channels = 1,
993 .buswidth = 4,
994};
995
996static struct qcom_icc_node qhs_qspi = {
997 .name = "qhs_qspi",
998 .channels = 1,
999 .buswidth = 4,
1000};
1001
1002static struct qcom_icc_node qhs_qup0 = {
1003 .name = "qhs_qup0",
1004 .channels = 1,
1005 .buswidth = 4,
1006};
1007
1008static struct qcom_icc_node qhs_qup1 = {
1009 .name = "qhs_qup1",
1010 .channels = 1,
1011 .buswidth = 4,
1012};
1013
1014static struct qcom_icc_node qhs_qup2 = {
1015 .name = "qhs_qup2",
1016 .channels = 1,
1017 .buswidth = 4,
1018};
1019
1020static struct qcom_icc_node qhs_sdc2 = {
1021 .name = "qhs_sdc2",
1022 .channels = 1,
1023 .buswidth = 4,
1024};
1025
1026static struct qcom_icc_node qhs_sdc4 = {
1027 .name = "qhs_sdc4",
1028 .channels = 1,
1029 .buswidth = 4,
1030};
1031
1032static struct qcom_icc_node qhs_snoc_cfg = {
1033 .name = "qhs_snoc_cfg",
1034 .channels = 1,
1035 .buswidth = 4,
1036 .num_links = 1,
1037 .link_nodes = { &qhm_snoc_cfg },
1038};
1039
1040static struct qcom_icc_node qhs_tcsr = {
1041 .name = "qhs_tcsr",
1042 .channels = 1,
1043 .buswidth = 4,
1044};
1045
1046static struct qcom_icc_node qhs_tlmm0 = {
1047 .name = "qhs_tlmm0",
1048 .channels = 1,
1049 .buswidth = 4,
1050};
1051
1052static struct qcom_icc_node qhs_tlmm1 = {
1053 .name = "qhs_tlmm1",
1054 .channels = 1,
1055 .buswidth = 4,
1056};
1057
1058static struct qcom_icc_node qhs_tlmm2 = {
1059 .name = "qhs_tlmm2",
1060 .channels = 1,
1061 .buswidth = 4,
1062};
1063
1064static struct qcom_icc_node qhs_tsif = {
1065 .name = "qhs_tsif",
1066 .channels = 1,
1067 .buswidth = 4,
1068};
1069
1070static struct qcom_icc_node qhs_ufs_card_cfg = {
1071 .name = "qhs_ufs_card_cfg",
1072 .channels = 1,
1073 .buswidth = 4,
1074};
1075
1076static struct qcom_icc_node qhs_ufs_mem_cfg = {
1077 .name = "qhs_ufs_mem_cfg",
1078 .channels = 1,
1079 .buswidth = 4,
1080};
1081
1082static struct qcom_icc_node qhs_usb3_0 = {
1083 .name = "qhs_usb3_0",
1084 .channels = 1,
1085 .buswidth = 4,
1086};
1087
1088static struct qcom_icc_node qhs_usb3_1 = {
1089 .name = "qhs_usb3_1",
1090 .channels = 1,
1091 .buswidth = 4,
1092};
1093
1094static struct qcom_icc_node qhs_venus_cfg = {
1095 .name = "qhs_venus_cfg",
1096 .channels = 1,
1097 .buswidth = 4,
1098};
1099
1100static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
1101 .name = "qhs_vsense_ctrl_cfg",
1102 .channels = 1,
1103 .buswidth = 4,
1104};
1105
1106static struct qcom_icc_node qns_cnoc_a2noc = {
1107 .name = "qns_cnoc_a2noc",
1108 .channels = 1,
1109 .buswidth = 8,
1110 .num_links = 1,
1111 .link_nodes = { &qnm_cnoc },
1112};
1113
1114static struct qcom_icc_node srvc_cnoc = {
1115 .name = "srvc_cnoc",
1116 .channels = 1,
1117 .buswidth = 4,
1118};
1119
1120static struct qcom_icc_node qhs_llcc = {
1121 .name = "qhs_llcc",
1122 .channels = 1,
1123 .buswidth = 4,
1124};
1125
1126static struct qcom_icc_node qhs_memnoc = {
1127 .name = "qhs_memnoc",
1128 .channels = 1,
1129 .buswidth = 4,
1130 .num_links = 1,
1131 .link_nodes = { &qhm_gemnoc_cfg },
1132};
1133
1134static struct qcom_icc_node qns_gem_noc_snoc = {
1135 .name = "qns_gem_noc_snoc",
1136 .channels = 1,
1137 .buswidth = 16,
1138 .num_links = 1,
1139 .link_nodes = { &qnm_gemnoc },
1140};
1141
1142static struct qcom_icc_node qns_llcc = {
1143 .name = "qns_llcc",
1144 .channels = 4,
1145 .buswidth = 16,
1146 .num_links = 1,
1147 .link_nodes = { &llcc_mc },
1148};
1149
1150static struct qcom_icc_node qns_sys_pcie = {
1151 .name = "qns_sys_pcie",
1152 .channels = 1,
1153 .buswidth = 8,
1154 .num_links = 1,
1155 .link_nodes = { &qnm_gemnoc_pcie },
1156};
1157
1158static struct qcom_icc_node srvc_even_gemnoc = {
1159 .name = "srvc_even_gemnoc",
1160 .channels = 1,
1161 .buswidth = 4,
1162};
1163
1164static struct qcom_icc_node srvc_odd_gemnoc = {
1165 .name = "srvc_odd_gemnoc",
1166 .channels = 1,
1167 .buswidth = 4,
1168};
1169
1170static struct qcom_icc_node srvc_sys_gemnoc = {
1171 .name = "srvc_sys_gemnoc",
1172 .channels = 1,
1173 .buswidth = 4,
1174};
1175
1176static struct qcom_icc_node ebi = {
1177 .name = "ebi",
1178 .channels = 4,
1179 .buswidth = 4,
1180};
1181
1182static struct qcom_icc_node qns_mem_noc_hf = {
1183 .name = "qns_mem_noc_hf",
1184 .channels = 2,
1185 .buswidth = 32,
1186 .num_links = 1,
1187 .link_nodes = { &qnm_mnoc_hf },
1188};
1189
1190static struct qcom_icc_node qns_mem_noc_sf = {
1191 .name = "qns_mem_noc_sf",
1192 .channels = 2,
1193 .buswidth = 32,
1194 .num_links = 1,
1195 .link_nodes = { &qnm_mnoc_sf },
1196};
1197
1198static struct qcom_icc_node srvc_mnoc = {
1199 .name = "srvc_mnoc",
1200 .channels = 1,
1201 .buswidth = 4,
1202};
1203
1204static struct qcom_icc_node qhs_cal_dp0 = {
1205 .name = "qhs_cal_dp0",
1206 .channels = 1,
1207 .buswidth = 4,
1208};
1209
1210static struct qcom_icc_node qhs_cal_dp1 = {
1211 .name = "qhs_cal_dp1",
1212 .channels = 1,
1213 .buswidth = 4,
1214};
1215
1216static struct qcom_icc_node qhs_cp = {
1217 .name = "qhs_cp",
1218 .channels = 1,
1219 .buswidth = 4,
1220};
1221
1222static struct qcom_icc_node qhs_dma_bwmon = {
1223 .name = "qhs_dma_bwmon",
1224 .channels = 1,
1225 .buswidth = 4,
1226};
1227
1228static struct qcom_icc_node qhs_dpm = {
1229 .name = "qhs_dpm",
1230 .channels = 1,
1231 .buswidth = 4,
1232};
1233
1234static struct qcom_icc_node qhs_isense = {
1235 .name = "qhs_isense",
1236 .channels = 1,
1237 .buswidth = 4,
1238};
1239
1240static struct qcom_icc_node qhs_llm = {
1241 .name = "qhs_llm",
1242 .channels = 1,
1243 .buswidth = 4,
1244};
1245
1246static struct qcom_icc_node qhs_tcm = {
1247 .name = "qhs_tcm",
1248 .channels = 1,
1249 .buswidth = 4,
1250};
1251
1252static struct qcom_icc_node qns_npu_sys = {
1253 .name = "qns_npu_sys",
1254 .channels = 2,
1255 .buswidth = 32,
1256};
1257
1258static struct qcom_icc_node srvc_noc = {
1259 .name = "srvc_noc",
1260 .channels = 1,
1261 .buswidth = 4,
1262};
1263
1264static struct qcom_icc_node qhs_apss = {
1265 .name = "qhs_apss",
1266 .channels = 1,
1267 .buswidth = 8,
1268};
1269
1270static struct qcom_icc_node qns_cnoc = {
1271 .name = "qns_cnoc",
1272 .channels = 1,
1273 .buswidth = 8,
1274 .num_links = 1,
1275 .link_nodes = { &qnm_snoc },
1276};
1277
1278static struct qcom_icc_node qns_gemnoc_gc = {
1279 .name = "qns_gemnoc_gc",
1280 .channels = 1,
1281 .buswidth = 8,
1282 .num_links = 1,
1283 .link_nodes = { &qnm_snoc_gc },
1284};
1285
1286static struct qcom_icc_node qns_gemnoc_sf = {
1287 .name = "qns_gemnoc_sf",
1288 .channels = 1,
1289 .buswidth = 16,
1290 .num_links = 1,
1291 .link_nodes = { &qnm_snoc_sf },
1292};
1293
1294static struct qcom_icc_node qxs_imem = {
1295 .name = "qxs_imem",
1296 .channels = 1,
1297 .buswidth = 8,
1298};
1299
1300static struct qcom_icc_node qxs_pimem = {
1301 .name = "qxs_pimem",
1302 .channels = 1,
1303 .buswidth = 8,
1304};
1305
1306static struct qcom_icc_node srvc_snoc = {
1307 .name = "srvc_snoc",
1308 .channels = 1,
1309 .buswidth = 4,
1310};
1311
1312static struct qcom_icc_node xs_pcie_0 = {
1313 .name = "xs_pcie_0",
1314 .channels = 1,
1315 .buswidth = 8,
1316};
1317
1318static struct qcom_icc_node xs_pcie_1 = {
1319 .name = "xs_pcie_1",
1320 .channels = 1,
1321 .buswidth = 8,
1322};
1323
1324static struct qcom_icc_node xs_pcie_modem = {
1325 .name = "xs_pcie_modem",
1326 .channels = 1,
1327 .buswidth = 8,
1328};
1329
1330static struct qcom_icc_node xs_qdss_stm = {
1331 .name = "xs_qdss_stm",
1332 .channels = 1,
1333 .buswidth = 4,
1334};
1335
1336static struct qcom_icc_node xs_sys_tcu_cfg = {
1337 .name = "xs_sys_tcu_cfg",
1338 .channels = 1,
1339 .buswidth = 8,
1340};
1341
1342static struct qcom_icc_node qup0_core_master = {
1343 .name = "qup0_core_master",
1344 .channels = 1,
1345 .buswidth = 4,
1346 .num_links = 1,
1347 .link_nodes = { &qup0_core_slave },
1348};
1349
1350static struct qcom_icc_node qup1_core_master = {
1351 .name = "qup1_core_master",
1352 .channels = 1,
1353 .buswidth = 4,
1354 .num_links = 1,
1355 .link_nodes = { &qup1_core_slave },
1356};
1357
1358static struct qcom_icc_node qup2_core_master = {
1359 .name = "qup2_core_master",
1360 .channels = 1,
1361 .buswidth = 4,
1362 .num_links = 1,
1363 .link_nodes = { &qup2_core_slave },
1364};
1365
1366static struct qcom_icc_node qup0_core_slave = {
1367 .name = "qup0_core_slave",
1368 .channels = 1,
1369 .buswidth = 4,
1370};
1371
1372static struct qcom_icc_node qup1_core_slave = {
1373 .name = "qup1_core_slave",
1374 .channels = 1,
1375 .buswidth = 4,
1376};
1377
1378static struct qcom_icc_node qup2_core_slave = {
1379 .name = "qup2_core_slave",
1380 .channels = 1,
1381 .buswidth = 4,
1382};
1383
1384static struct qcom_icc_bcm bcm_acv = {
1385 .name = "ACV",
1386 .enable_mask = BIT(3),
1387 .keepalive = false,
1388 .num_nodes = 1,
1389 .nodes = { &ebi },
1390};
1391
1392static struct qcom_icc_bcm bcm_mc0 = {
1393 .name = "MC0",
1394 .keepalive = true,
1395 .num_nodes = 1,
1396 .nodes = { &ebi },
1397};
1398
1399static struct qcom_icc_bcm bcm_sh0 = {
1400 .name = "SH0",
1401 .keepalive = true,
1402 .num_nodes = 1,
1403 .nodes = { &qns_llcc },
1404};
1405
1406static struct qcom_icc_bcm bcm_mm0 = {
1407 .name = "MM0",
1408 .keepalive = true,
1409 .num_nodes = 1,
1410 .nodes = { &qns_mem_noc_hf },
1411};
1412
1413static struct qcom_icc_bcm bcm_ce0 = {
1414 .name = "CE0",
1415 .keepalive = false,
1416 .num_nodes = 1,
1417 .nodes = { &qxm_crypto },
1418};
1419
1420static struct qcom_icc_bcm bcm_mm1 = {
1421 .name = "MM1",
1422 .keepalive = false,
1423 .num_nodes = 3,
1424 .nodes = { &qnm_camnoc_hf, &qxm_mdp0, &qxm_mdp1 },
1425};
1426
1427static struct qcom_icc_bcm bcm_sh2 = {
1428 .name = "SH2",
1429 .keepalive = false,
1430 .num_nodes = 2,
1431 .nodes = { &alm_gpu_tcu, &alm_sys_tcu },
1432};
1433
1434static struct qcom_icc_bcm bcm_mm2 = {
1435 .name = "MM2",
1436 .keepalive = false,
1437 .num_nodes = 1,
1438 .nodes = { &qns_mem_noc_sf },
1439};
1440
1441static struct qcom_icc_bcm bcm_qup0 = {
1442 .name = "QUP0",
1443 .keepalive = false,
1444 .num_nodes = 3,
1445 .nodes = { &qup0_core_master, &qup1_core_master, &qup2_core_master },
1446};
1447
1448static struct qcom_icc_bcm bcm_sh3 = {
1449 .name = "SH3",
1450 .keepalive = false,
1451 .num_nodes = 1,
1452 .nodes = { &qnm_cmpnoc },
1453};
1454
1455static struct qcom_icc_bcm bcm_mm3 = {
1456 .name = "MM3",
1457 .keepalive = false,
1458 .num_nodes = 5,
1459 .nodes = { &qnm_camnoc_icp, &qnm_camnoc_sf, &qnm_video0, &qnm_video1, &qnm_video_cvp },
1460};
1461
1462static struct qcom_icc_bcm bcm_sh4 = {
1463 .name = "SH4",
1464 .keepalive = false,
1465 .num_nodes = 1,
1466 .nodes = { &chm_apps },
1467};
1468
1469static struct qcom_icc_bcm bcm_sn0 = {
1470 .name = "SN0",
1471 .keepalive = true,
1472 .num_nodes = 1,
1473 .nodes = { &qns_gemnoc_sf },
1474};
1475
1476static struct qcom_icc_bcm bcm_co0 = {
1477 .name = "CO0",
1478 .keepalive = false,
1479 .num_nodes = 1,
1480 .nodes = { &qns_cdsp_mem_noc },
1481};
1482
1483static struct qcom_icc_bcm bcm_cn0 = {
1484 .name = "CN0",
1485 .keepalive = true,
1486 .num_nodes = 52,
1487 .nodes = { &qnm_snoc,
1488 &xm_qdss_dap,
1489 &qhs_a1_noc_cfg,
1490 &qhs_a2_noc_cfg,
1491 &qhs_ahb2phy0,
1492 &qhs_ahb2phy1,
1493 &qhs_aoss,
1494 &qhs_camera_cfg,
1495 &qhs_clk_ctl,
1496 &qhs_compute_dsp,
1497 &qhs_cpr_cx,
1498 &qhs_cpr_mmcx,
1499 &qhs_cpr_mx,
1500 &qhs_crypto0_cfg,
1501 &qhs_cx_rdpm,
1502 &qhs_dcc_cfg,
1503 &qhs_ddrss_cfg,
1504 &qhs_display_cfg,
1505 &qhs_gpuss_cfg,
1506 &qhs_imem_cfg,
1507 &qhs_ipa,
1508 &qhs_ipc_router,
1509 &qhs_lpass_cfg,
1510 &qhs_mnoc_cfg,
1511 &qhs_npu_cfg,
1512 &qhs_pcie0_cfg,
1513 &qhs_pcie1_cfg,
1514 &qhs_pcie_modem_cfg,
1515 &qhs_pdm,
1516 &qhs_pimem_cfg,
1517 &qhs_prng,
1518 &qhs_qdss_cfg,
1519 &qhs_qspi,
1520 &qhs_qup0,
1521 &qhs_qup1,
1522 &qhs_qup2,
1523 &qhs_sdc2,
1524 &qhs_sdc4,
1525 &qhs_snoc_cfg,
1526 &qhs_tcsr,
1527 &qhs_tlmm0,
1528 &qhs_tlmm1,
1529 &qhs_tlmm2,
1530 &qhs_tsif,
1531 &qhs_ufs_card_cfg,
1532 &qhs_ufs_mem_cfg,
1533 &qhs_usb3_0,
1534 &qhs_usb3_1,
1535 &qhs_venus_cfg,
1536 &qhs_vsense_ctrl_cfg,
1537 &qns_cnoc_a2noc,
1538 &srvc_cnoc
1539 },
1540};
1541
1542static struct qcom_icc_bcm bcm_sn1 = {
1543 .name = "SN1",
1544 .keepalive = false,
1545 .num_nodes = 1,
1546 .nodes = { &qxs_imem },
1547};
1548
1549static struct qcom_icc_bcm bcm_sn2 = {
1550 .name = "SN2",
1551 .keepalive = false,
1552 .num_nodes = 1,
1553 .nodes = { &qns_gemnoc_gc },
1554};
1555
1556static struct qcom_icc_bcm bcm_co2 = {
1557 .name = "CO2",
1558 .keepalive = false,
1559 .num_nodes = 1,
1560 .nodes = { &qnm_npu },
1561};
1562
1563static struct qcom_icc_bcm bcm_sn3 = {
1564 .name = "SN3",
1565 .keepalive = false,
1566 .num_nodes = 1,
1567 .nodes = { &qxs_pimem },
1568};
1569
1570static struct qcom_icc_bcm bcm_sn4 = {
1571 .name = "SN4",
1572 .keepalive = false,
1573 .num_nodes = 1,
1574 .nodes = { &xs_qdss_stm },
1575};
1576
1577static struct qcom_icc_bcm bcm_sn5 = {
1578 .name = "SN5",
1579 .keepalive = false,
1580 .num_nodes = 1,
1581 .nodes = { &xs_pcie_modem },
1582};
1583
1584static struct qcom_icc_bcm bcm_sn6 = {
1585 .name = "SN6",
1586 .keepalive = false,
1587 .num_nodes = 2,
1588 .nodes = { &xs_pcie_0, &xs_pcie_1 },
1589};
1590
1591static struct qcom_icc_bcm bcm_sn7 = {
1592 .name = "SN7",
1593 .keepalive = false,
1594 .num_nodes = 1,
1595 .nodes = { &qnm_aggre1_noc },
1596};
1597
1598static struct qcom_icc_bcm bcm_sn8 = {
1599 .name = "SN8",
1600 .keepalive = false,
1601 .num_nodes = 1,
1602 .nodes = { &qnm_aggre2_noc },
1603};
1604
1605static struct qcom_icc_bcm bcm_sn9 = {
1606 .name = "SN9",
1607 .keepalive = false,
1608 .num_nodes = 1,
1609 .nodes = { &qnm_gemnoc_pcie },
1610};
1611
1612static struct qcom_icc_bcm bcm_sn11 = {
1613 .name = "SN11",
1614 .keepalive = false,
1615 .num_nodes = 1,
1616 .nodes = { &qnm_gemnoc },
1617};
1618
1619static struct qcom_icc_bcm bcm_sn12 = {
1620 .name = "SN12",
1621 .keepalive = false,
1622 .num_nodes = 2,
1623 .nodes = { &qns_pcie_modem_mem_noc, &qns_pcie_mem_noc },
1624};
1625
1626static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1627 &bcm_sn12,
1628};
1629
1630static struct qcom_icc_node * const aggre1_noc_nodes[] = {
1631 [MASTER_A1NOC_CFG] = &qhm_a1noc_cfg,
1632 [MASTER_QSPI_0] = &qhm_qspi,
1633 [MASTER_QUP_1] = &qhm_qup1,
1634 [MASTER_QUP_2] = &qhm_qup2,
1635 [MASTER_TSIF] = &qhm_tsif,
1636 [MASTER_PCIE_2] = &xm_pcie3_modem,
1637 [MASTER_SDCC_4] = &xm_sdc4,
1638 [MASTER_UFS_MEM] = &xm_ufs_mem,
1639 [MASTER_USB3] = &xm_usb3_0,
1640 [MASTER_USB3_1] = &xm_usb3_1,
1641 [A1NOC_SNOC_SLV] = &qns_a1noc_snoc,
1642 [SLAVE_ANOC_PCIE_GEM_NOC_1] = &qns_pcie_modem_mem_noc,
1643 [SLAVE_SERVICE_A1NOC] = &srvc_aggre1_noc,
1644};
1645
1646static const struct qcom_icc_desc sm8250_aggre1_noc = {
1647 .nodes = aggre1_noc_nodes,
1648 .num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
1649 .bcms = aggre1_noc_bcms,
1650 .num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
1651};
1652
1653static struct qcom_icc_bcm * const aggre2_noc_bcms[] = {
1654 &bcm_ce0,
1655 &bcm_sn12,
1656};
1657
1658static struct qcom_icc_bcm * const qup_virt_bcms[] = {
1659 &bcm_qup0,
1660};
1661
1662static struct qcom_icc_node * const qup_virt_nodes[] = {
1663 [MASTER_QUP_CORE_0] = &qup0_core_master,
1664 [MASTER_QUP_CORE_1] = &qup1_core_master,
1665 [MASTER_QUP_CORE_2] = &qup2_core_master,
1666 [SLAVE_QUP_CORE_0] = &qup0_core_slave,
1667 [SLAVE_QUP_CORE_1] = &qup1_core_slave,
1668 [SLAVE_QUP_CORE_2] = &qup2_core_slave,
1669};
1670
1671static const struct qcom_icc_desc sm8250_qup_virt = {
1672 .nodes = qup_virt_nodes,
1673 .num_nodes = ARRAY_SIZE(qup_virt_nodes),
1674 .bcms = qup_virt_bcms,
1675 .num_bcms = ARRAY_SIZE(qup_virt_bcms),
1676};
1677
1678static struct qcom_icc_node * const aggre2_noc_nodes[] = {
1679 [MASTER_A2NOC_CFG] = &qhm_a2noc_cfg,
1680 [MASTER_QDSS_BAM] = &qhm_qdss_bam,
1681 [MASTER_QUP_0] = &qhm_qup0,
1682 [MASTER_CNOC_A2NOC] = &qnm_cnoc,
1683 [MASTER_CRYPTO_CORE_0] = &qxm_crypto,
1684 [MASTER_IPA] = &qxm_ipa,
1685 [MASTER_PCIE] = &xm_pcie3_0,
1686 [MASTER_PCIE_1] = &xm_pcie3_1,
1687 [MASTER_QDSS_ETR] = &xm_qdss_etr,
1688 [MASTER_SDCC_2] = &xm_sdc2,
1689 [MASTER_UFS_CARD] = &xm_ufs_card,
1690 [A2NOC_SNOC_SLV] = &qns_a2noc_snoc,
1691 [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_mem_noc,
1692 [SLAVE_SERVICE_A2NOC] = &srvc_aggre2_noc,
1693};
1694
1695static const struct qcom_icc_desc sm8250_aggre2_noc = {
1696 .nodes = aggre2_noc_nodes,
1697 .num_nodes = ARRAY_SIZE(aggre2_noc_nodes),
1698 .bcms = aggre2_noc_bcms,
1699 .num_bcms = ARRAY_SIZE(aggre2_noc_bcms),
1700};
1701
1702static struct qcom_icc_bcm * const compute_noc_bcms[] = {
1703 &bcm_co0,
1704 &bcm_co2,
1705};
1706
1707static struct qcom_icc_node * const compute_noc_nodes[] = {
1708 [MASTER_NPU] = &qnm_npu,
1709 [SLAVE_CDSP_MEM_NOC] = &qns_cdsp_mem_noc,
1710};
1711
1712static const struct qcom_icc_desc sm8250_compute_noc = {
1713 .nodes = compute_noc_nodes,
1714 .num_nodes = ARRAY_SIZE(compute_noc_nodes),
1715 .bcms = compute_noc_bcms,
1716 .num_bcms = ARRAY_SIZE(compute_noc_bcms),
1717};
1718
1719static struct qcom_icc_bcm * const config_noc_bcms[] = {
1720 &bcm_cn0,
1721};
1722
1723static struct qcom_icc_node * const config_noc_nodes[] = {
1724 [SNOC_CNOC_MAS] = &qnm_snoc,
1725 [MASTER_QDSS_DAP] = &xm_qdss_dap,
1726 [SLAVE_A1NOC_CFG] = &qhs_a1_noc_cfg,
1727 [SLAVE_A2NOC_CFG] = &qhs_a2_noc_cfg,
1728 [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
1729 [SLAVE_AHB2PHY_NORTH] = &qhs_ahb2phy1,
1730 [SLAVE_AOSS] = &qhs_aoss,
1731 [SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
1732 [SLAVE_CLK_CTL] = &qhs_clk_ctl,
1733 [SLAVE_CDSP_CFG] = &qhs_compute_dsp,
1734 [SLAVE_RBCPR_CX_CFG] = &qhs_cpr_cx,
1735 [SLAVE_RBCPR_MMCX_CFG] = &qhs_cpr_mmcx,
1736 [SLAVE_RBCPR_MX_CFG] = &qhs_cpr_mx,
1737 [SLAVE_CRYPTO_0_CFG] = &qhs_crypto0_cfg,
1738 [SLAVE_CX_RDPM] = &qhs_cx_rdpm,
1739 [SLAVE_DCC_CFG] = &qhs_dcc_cfg,
1740 [SLAVE_CNOC_DDRSS] = &qhs_ddrss_cfg,
1741 [SLAVE_DISPLAY_CFG] = &qhs_display_cfg,
1742 [SLAVE_GRAPHICS_3D_CFG] = &qhs_gpuss_cfg,
1743 [SLAVE_IMEM_CFG] = &qhs_imem_cfg,
1744 [SLAVE_IPA_CFG] = &qhs_ipa,
1745 [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
1746 [SLAVE_LPASS] = &qhs_lpass_cfg,
1747 [SLAVE_CNOC_MNOC_CFG] = &qhs_mnoc_cfg,
1748 [SLAVE_NPU_CFG] = &qhs_npu_cfg,
1749 [SLAVE_PCIE_0_CFG] = &qhs_pcie0_cfg,
1750 [SLAVE_PCIE_1_CFG] = &qhs_pcie1_cfg,
1751 [SLAVE_PCIE_2_CFG] = &qhs_pcie_modem_cfg,
1752 [SLAVE_PDM] = &qhs_pdm,
1753 [SLAVE_PIMEM_CFG] = &qhs_pimem_cfg,
1754 [SLAVE_PRNG] = &qhs_prng,
1755 [SLAVE_QDSS_CFG] = &qhs_qdss_cfg,
1756 [SLAVE_QSPI_0] = &qhs_qspi,
1757 [SLAVE_QUP_0] = &qhs_qup0,
1758 [SLAVE_QUP_1] = &qhs_qup1,
1759 [SLAVE_QUP_2] = &qhs_qup2,
1760 [SLAVE_SDCC_2] = &qhs_sdc2,
1761 [SLAVE_SDCC_4] = &qhs_sdc4,
1762 [SLAVE_SNOC_CFG] = &qhs_snoc_cfg,
1763 [SLAVE_TCSR] = &qhs_tcsr,
1764 [SLAVE_TLMM_NORTH] = &qhs_tlmm0,
1765 [SLAVE_TLMM_SOUTH] = &qhs_tlmm1,
1766 [SLAVE_TLMM_WEST] = &qhs_tlmm2,
1767 [SLAVE_TSIF] = &qhs_tsif,
1768 [SLAVE_UFS_CARD_CFG] = &qhs_ufs_card_cfg,
1769 [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
1770 [SLAVE_USB3] = &qhs_usb3_0,
1771 [SLAVE_USB3_1] = &qhs_usb3_1,
1772 [SLAVE_VENUS_CFG] = &qhs_venus_cfg,
1773 [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
1774 [SLAVE_CNOC_A2NOC] = &qns_cnoc_a2noc,
1775 [SLAVE_SERVICE_CNOC] = &srvc_cnoc,
1776};
1777
1778static const struct qcom_icc_desc sm8250_config_noc = {
1779 .nodes = config_noc_nodes,
1780 .num_nodes = ARRAY_SIZE(config_noc_nodes),
1781 .bcms = config_noc_bcms,
1782 .num_bcms = ARRAY_SIZE(config_noc_bcms),
1783};
1784
1785static struct qcom_icc_bcm * const dc_noc_bcms[] = {
1786};
1787
1788static struct qcom_icc_node * const dc_noc_nodes[] = {
1789 [MASTER_CNOC_DC_NOC] = &qhm_cnoc_dc_noc,
1790 [SLAVE_LLCC_CFG] = &qhs_llcc,
1791 [SLAVE_GEM_NOC_CFG] = &qhs_memnoc,
1792};
1793
1794static const struct qcom_icc_desc sm8250_dc_noc = {
1795 .nodes = dc_noc_nodes,
1796 .num_nodes = ARRAY_SIZE(dc_noc_nodes),
1797 .bcms = dc_noc_bcms,
1798 .num_bcms = ARRAY_SIZE(dc_noc_bcms),
1799};
1800
1801static struct qcom_icc_bcm * const gem_noc_bcms[] = {
1802 &bcm_sh0,
1803 &bcm_sh2,
1804 &bcm_sh3,
1805 &bcm_sh4,
1806};
1807
1808static struct qcom_icc_node * const gem_noc_nodes[] = {
1809 [MASTER_GPU_TCU] = &alm_gpu_tcu,
1810 [MASTER_SYS_TCU] = &alm_sys_tcu,
1811 [MASTER_AMPSS_M0] = &chm_apps,
1812 [MASTER_GEM_NOC_CFG] = &qhm_gemnoc_cfg,
1813 [MASTER_COMPUTE_NOC] = &qnm_cmpnoc,
1814 [MASTER_GRAPHICS_3D] = &qnm_gpu,
1815 [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
1816 [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
1817 [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
1818 [MASTER_SNOC_GC_MEM_NOC] = &qnm_snoc_gc,
1819 [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
1820 [SLAVE_GEM_NOC_SNOC] = &qns_gem_noc_snoc,
1821 [SLAVE_LLCC] = &qns_llcc,
1822 [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_sys_pcie,
1823 [SLAVE_SERVICE_GEM_NOC_1] = &srvc_even_gemnoc,
1824 [SLAVE_SERVICE_GEM_NOC_2] = &srvc_odd_gemnoc,
1825 [SLAVE_SERVICE_GEM_NOC] = &srvc_sys_gemnoc,
1826};
1827
1828static const struct qcom_icc_desc sm8250_gem_noc = {
1829 .nodes = gem_noc_nodes,
1830 .num_nodes = ARRAY_SIZE(gem_noc_nodes),
1831 .bcms = gem_noc_bcms,
1832 .num_bcms = ARRAY_SIZE(gem_noc_bcms),
1833};
1834
1835static struct qcom_icc_bcm * const mc_virt_bcms[] = {
1836 &bcm_acv,
1837 &bcm_mc0,
1838};
1839
1840static struct qcom_icc_node * const mc_virt_nodes[] = {
1841 [MASTER_LLCC] = &llcc_mc,
1842 [SLAVE_EBI_CH0] = &ebi,
1843};
1844
1845static const struct qcom_icc_desc sm8250_mc_virt = {
1846 .nodes = mc_virt_nodes,
1847 .num_nodes = ARRAY_SIZE(mc_virt_nodes),
1848 .bcms = mc_virt_bcms,
1849 .num_bcms = ARRAY_SIZE(mc_virt_bcms),
1850};
1851
1852static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
1853 &bcm_mm0,
1854 &bcm_mm1,
1855 &bcm_mm2,
1856 &bcm_mm3,
1857};
1858
1859static struct qcom_icc_node * const mmss_noc_nodes[] = {
1860 [MASTER_CNOC_MNOC_CFG] = &qhm_mnoc_cfg,
1861 [MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
1862 [MASTER_CAMNOC_ICP] = &qnm_camnoc_icp,
1863 [MASTER_CAMNOC_SF] = &qnm_camnoc_sf,
1864 [MASTER_VIDEO_P0] = &qnm_video0,
1865 [MASTER_VIDEO_P1] = &qnm_video1,
1866 [MASTER_VIDEO_PROC] = &qnm_video_cvp,
1867 [MASTER_MDP_PORT0] = &qxm_mdp0,
1868 [MASTER_MDP_PORT1] = &qxm_mdp1,
1869 [MASTER_ROTATOR] = &qxm_rot,
1870 [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
1871 [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
1872 [SLAVE_SERVICE_MNOC] = &srvc_mnoc,
1873};
1874
1875static const struct qcom_icc_desc sm8250_mmss_noc = {
1876 .nodes = mmss_noc_nodes,
1877 .num_nodes = ARRAY_SIZE(mmss_noc_nodes),
1878 .bcms = mmss_noc_bcms,
1879 .num_bcms = ARRAY_SIZE(mmss_noc_bcms),
1880};
1881
1882static struct qcom_icc_bcm * const npu_noc_bcms[] = {
1883};
1884
1885static struct qcom_icc_node * const npu_noc_nodes[] = {
1886 [MASTER_NPU_SYS] = &amm_npu_sys,
1887 [MASTER_NPU_CDP] = &amm_npu_sys_cdp_w,
1888 [MASTER_NPU_NOC_CFG] = &qhm_cfg,
1889 [SLAVE_NPU_CAL_DP0] = &qhs_cal_dp0,
1890 [SLAVE_NPU_CAL_DP1] = &qhs_cal_dp1,
1891 [SLAVE_NPU_CP] = &qhs_cp,
1892 [SLAVE_NPU_INT_DMA_BWMON_CFG] = &qhs_dma_bwmon,
1893 [SLAVE_NPU_DPM] = &qhs_dpm,
1894 [SLAVE_ISENSE_CFG] = &qhs_isense,
1895 [SLAVE_NPU_LLM_CFG] = &qhs_llm,
1896 [SLAVE_NPU_TCM] = &qhs_tcm,
1897 [SLAVE_NPU_COMPUTE_NOC] = &qns_npu_sys,
1898 [SLAVE_SERVICE_NPU_NOC] = &srvc_noc,
1899};
1900
1901static const struct qcom_icc_desc sm8250_npu_noc = {
1902 .nodes = npu_noc_nodes,
1903 .num_nodes = ARRAY_SIZE(npu_noc_nodes),
1904 .bcms = npu_noc_bcms,
1905 .num_bcms = ARRAY_SIZE(npu_noc_bcms),
1906};
1907
1908static struct qcom_icc_bcm * const system_noc_bcms[] = {
1909 &bcm_sn0,
1910 &bcm_sn1,
1911 &bcm_sn11,
1912 &bcm_sn2,
1913 &bcm_sn3,
1914 &bcm_sn4,
1915 &bcm_sn5,
1916 &bcm_sn6,
1917 &bcm_sn7,
1918 &bcm_sn8,
1919 &bcm_sn9,
1920};
1921
1922static struct qcom_icc_node * const system_noc_nodes[] = {
1923 [MASTER_SNOC_CFG] = &qhm_snoc_cfg,
1924 [A1NOC_SNOC_MAS] = &qnm_aggre1_noc,
1925 [A2NOC_SNOC_MAS] = &qnm_aggre2_noc,
1926 [MASTER_GEM_NOC_SNOC] = &qnm_gemnoc,
1927 [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
1928 [MASTER_PIMEM] = &qxm_pimem,
1929 [MASTER_GIC] = &xm_gic,
1930 [SLAVE_APPSS] = &qhs_apss,
1931 [SNOC_CNOC_SLV] = &qns_cnoc,
1932 [SLAVE_SNOC_GEM_NOC_GC] = &qns_gemnoc_gc,
1933 [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
1934 [SLAVE_OCIMEM] = &qxs_imem,
1935 [SLAVE_PIMEM] = &qxs_pimem,
1936 [SLAVE_SERVICE_SNOC] = &srvc_snoc,
1937 [SLAVE_PCIE_0] = &xs_pcie_0,
1938 [SLAVE_PCIE_1] = &xs_pcie_1,
1939 [SLAVE_PCIE_2] = &xs_pcie_modem,
1940 [SLAVE_QDSS_STM] = &xs_qdss_stm,
1941 [SLAVE_TCU] = &xs_sys_tcu_cfg,
1942};
1943
1944static const struct qcom_icc_desc sm8250_system_noc = {
1945 .nodes = system_noc_nodes,
1946 .num_nodes = ARRAY_SIZE(system_noc_nodes),
1947 .bcms = system_noc_bcms,
1948 .num_bcms = ARRAY_SIZE(system_noc_bcms),
1949};
1950
1951static const struct of_device_id qnoc_of_match[] = {
1952 { .compatible = "qcom,sm8250-aggre1-noc",
1953 .data = &sm8250_aggre1_noc},
1954 { .compatible = "qcom,sm8250-aggre2-noc",
1955 .data = &sm8250_aggre2_noc},
1956 { .compatible = "qcom,sm8250-compute-noc",
1957 .data = &sm8250_compute_noc},
1958 { .compatible = "qcom,sm8250-config-noc",
1959 .data = &sm8250_config_noc},
1960 { .compatible = "qcom,sm8250-dc-noc",
1961 .data = &sm8250_dc_noc},
1962 { .compatible = "qcom,sm8250-gem-noc",
1963 .data = &sm8250_gem_noc},
1964 { .compatible = "qcom,sm8250-mc-virt",
1965 .data = &sm8250_mc_virt},
1966 { .compatible = "qcom,sm8250-mmss-noc",
1967 .data = &sm8250_mmss_noc},
1968 { .compatible = "qcom,sm8250-npu-noc",
1969 .data = &sm8250_npu_noc},
1970 { .compatible = "qcom,sm8250-qup-virt",
1971 .data = &sm8250_qup_virt },
1972 { .compatible = "qcom,sm8250-system-noc",
1973 .data = &sm8250_system_noc},
1974 { }
1975};
1976MODULE_DEVICE_TABLE(of, qnoc_of_match);
1977
1978static struct platform_driver qnoc_driver = {
1979 .probe = qcom_icc_rpmh_probe,
1980 .remove = qcom_icc_rpmh_remove,
1981 .driver = {
1982 .name = "qnoc-sm8250",
1983 .of_match_table = qnoc_of_match,
1984 .sync_state = icc_sync_state,
1985 },
1986};
1987module_platform_driver(qnoc_driver);
1988
1989MODULE_DESCRIPTION("Qualcomm SM8250 NoC driver");
1990MODULE_LICENSE("GPL v2");