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