GNU Linux-libre 6.7.9-gnu
[releases.git] / drivers / interconnect / qcom / sdm660.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Qualcomm SDM630/SDM636/SDM660 Network-on-Chip (NoC) QoS driver
4  * Copyright (C) 2020, AngeloGioacchino Del Regno <kholk11@gmail.com>
5  */
6
7 #include <dt-bindings/interconnect/qcom,sdm660.h>
8 #include <linux/device.h>
9 #include <linux/interconnect-provider.h>
10 #include <linux/io.h>
11 #include <linux/mod_devicetable.h>
12 #include <linux/module.h>
13 #include <linux/platform_device.h>
14 #include <linux/regmap.h>
15 #include <linux/slab.h>
16
17 #include "icc-rpm.h"
18
19 enum {
20         SDM660_MASTER_IPA = 1,
21         SDM660_MASTER_CNOC_A2NOC,
22         SDM660_MASTER_SDCC_1,
23         SDM660_MASTER_SDCC_2,
24         SDM660_MASTER_BLSP_1,
25         SDM660_MASTER_BLSP_2,
26         SDM660_MASTER_UFS,
27         SDM660_MASTER_USB_HS,
28         SDM660_MASTER_USB3,
29         SDM660_MASTER_CRYPTO_C0,
30         SDM660_MASTER_GNOC_BIMC,
31         SDM660_MASTER_OXILI,
32         SDM660_MASTER_MNOC_BIMC,
33         SDM660_MASTER_SNOC_BIMC,
34         SDM660_MASTER_PIMEM,
35         SDM660_MASTER_SNOC_CNOC,
36         SDM660_MASTER_QDSS_DAP,
37         SDM660_MASTER_APPS_PROC,
38         SDM660_MASTER_CNOC_MNOC_MMSS_CFG,
39         SDM660_MASTER_CNOC_MNOC_CFG,
40         SDM660_MASTER_CPP,
41         SDM660_MASTER_JPEG,
42         SDM660_MASTER_MDP_P0,
43         SDM660_MASTER_MDP_P1,
44         SDM660_MASTER_VENUS,
45         SDM660_MASTER_VFE,
46         SDM660_MASTER_QDSS_ETR,
47         SDM660_MASTER_QDSS_BAM,
48         SDM660_MASTER_SNOC_CFG,
49         SDM660_MASTER_BIMC_SNOC,
50         SDM660_MASTER_A2NOC_SNOC,
51         SDM660_MASTER_GNOC_SNOC,
52
53         SDM660_SLAVE_A2NOC_SNOC,
54         SDM660_SLAVE_EBI,
55         SDM660_SLAVE_HMSS_L3,
56         SDM660_SLAVE_BIMC_SNOC,
57         SDM660_SLAVE_CNOC_A2NOC,
58         SDM660_SLAVE_MPM,
59         SDM660_SLAVE_PMIC_ARB,
60         SDM660_SLAVE_TLMM_NORTH,
61         SDM660_SLAVE_TCSR,
62         SDM660_SLAVE_PIMEM_CFG,
63         SDM660_SLAVE_IMEM_CFG,
64         SDM660_SLAVE_MESSAGE_RAM,
65         SDM660_SLAVE_GLM,
66         SDM660_SLAVE_BIMC_CFG,
67         SDM660_SLAVE_PRNG,
68         SDM660_SLAVE_SPDM,
69         SDM660_SLAVE_QDSS_CFG,
70         SDM660_SLAVE_CNOC_MNOC_CFG,
71         SDM660_SLAVE_SNOC_CFG,
72         SDM660_SLAVE_QM_CFG,
73         SDM660_SLAVE_CLK_CTL,
74         SDM660_SLAVE_MSS_CFG,
75         SDM660_SLAVE_TLMM_SOUTH,
76         SDM660_SLAVE_UFS_CFG,
77         SDM660_SLAVE_A2NOC_CFG,
78         SDM660_SLAVE_A2NOC_SMMU_CFG,
79         SDM660_SLAVE_GPUSS_CFG,
80         SDM660_SLAVE_AHB2PHY,
81         SDM660_SLAVE_BLSP_1,
82         SDM660_SLAVE_SDCC_1,
83         SDM660_SLAVE_SDCC_2,
84         SDM660_SLAVE_TLMM_CENTER,
85         SDM660_SLAVE_BLSP_2,
86         SDM660_SLAVE_PDM,
87         SDM660_SLAVE_CNOC_MNOC_MMSS_CFG,
88         SDM660_SLAVE_USB_HS,
89         SDM660_SLAVE_USB3_0,
90         SDM660_SLAVE_SRVC_CNOC,
91         SDM660_SLAVE_GNOC_BIMC,
92         SDM660_SLAVE_GNOC_SNOC,
93         SDM660_SLAVE_CAMERA_CFG,
94         SDM660_SLAVE_CAMERA_THROTTLE_CFG,
95         SDM660_SLAVE_MISC_CFG,
96         SDM660_SLAVE_VENUS_THROTTLE_CFG,
97         SDM660_SLAVE_VENUS_CFG,
98         SDM660_SLAVE_MMSS_CLK_XPU_CFG,
99         SDM660_SLAVE_MMSS_CLK_CFG,
100         SDM660_SLAVE_MNOC_MPU_CFG,
101         SDM660_SLAVE_DISPLAY_CFG,
102         SDM660_SLAVE_CSI_PHY_CFG,
103         SDM660_SLAVE_DISPLAY_THROTTLE_CFG,
104         SDM660_SLAVE_SMMU_CFG,
105         SDM660_SLAVE_MNOC_BIMC,
106         SDM660_SLAVE_SRVC_MNOC,
107         SDM660_SLAVE_HMSS,
108         SDM660_SLAVE_LPASS,
109         SDM660_SLAVE_WLAN,
110         SDM660_SLAVE_CDSP,
111         SDM660_SLAVE_IPA,
112         SDM660_SLAVE_SNOC_BIMC,
113         SDM660_SLAVE_SNOC_CNOC,
114         SDM660_SLAVE_IMEM,
115         SDM660_SLAVE_PIMEM,
116         SDM660_SLAVE_QDSS_STM,
117         SDM660_SLAVE_SRVC_SNOC,
118
119         SDM660_A2NOC,
120         SDM660_BIMC,
121         SDM660_CNOC,
122         SDM660_GNOC,
123         SDM660_MNOC,
124         SDM660_SNOC,
125 };
126
127 static const char * const mm_intf_clocks[] = {
128         "iface",
129 };
130
131 static const char * const a2noc_intf_clocks[] = {
132         "ipa",
133         "ufs_axi",
134         "aggre2_ufs_axi",
135         "aggre2_usb3_axi",
136         "cfg_noc_usb2_axi",
137 };
138
139 static const u16 mas_ipa_links[] = {
140         SDM660_SLAVE_A2NOC_SNOC
141 };
142
143 static struct qcom_icc_node mas_ipa = {
144         .name = "mas_ipa",
145         .id = SDM660_MASTER_IPA,
146         .buswidth = 8,
147         .mas_rpm_id = 59,
148         .slv_rpm_id = -1,
149         .qos.ap_owned = true,
150         .qos.qos_mode = NOC_QOS_MODE_FIXED,
151         .qos.areq_prio = 1,
152         .qos.prio_level = 1,
153         .qos.qos_port = 3,
154         .num_links = ARRAY_SIZE(mas_ipa_links),
155         .links = mas_ipa_links,
156 };
157
158 static const u16 mas_cnoc_a2noc_links[] = {
159         SDM660_SLAVE_A2NOC_SNOC
160 };
161
162 static struct qcom_icc_node mas_cnoc_a2noc = {
163         .name = "mas_cnoc_a2noc",
164         .id = SDM660_MASTER_CNOC_A2NOC,
165         .buswidth = 8,
166         .mas_rpm_id = 146,
167         .slv_rpm_id = -1,
168         .qos.ap_owned = true,
169         .qos.qos_mode = NOC_QOS_MODE_INVALID,
170         .num_links = ARRAY_SIZE(mas_cnoc_a2noc_links),
171         .links = mas_cnoc_a2noc_links,
172 };
173
174 static const u16 mas_sdcc_1_links[] = {
175         SDM660_SLAVE_A2NOC_SNOC
176 };
177
178 static struct qcom_icc_node mas_sdcc_1 = {
179         .name = "mas_sdcc_1",
180         .id = SDM660_MASTER_SDCC_1,
181         .buswidth = 8,
182         .mas_rpm_id = 33,
183         .slv_rpm_id = -1,
184         .num_links = ARRAY_SIZE(mas_sdcc_1_links),
185         .links = mas_sdcc_1_links,
186 };
187
188 static const u16 mas_sdcc_2_links[] = {
189         SDM660_SLAVE_A2NOC_SNOC
190 };
191
192 static struct qcom_icc_node mas_sdcc_2 = {
193         .name = "mas_sdcc_2",
194         .id = SDM660_MASTER_SDCC_2,
195         .buswidth = 8,
196         .mas_rpm_id = 35,
197         .slv_rpm_id = -1,
198         .num_links = ARRAY_SIZE(mas_sdcc_2_links),
199         .links = mas_sdcc_2_links,
200 };
201
202 static const u16 mas_blsp_1_links[] = {
203         SDM660_SLAVE_A2NOC_SNOC
204 };
205
206 static struct qcom_icc_node mas_blsp_1 = {
207         .name = "mas_blsp_1",
208         .id = SDM660_MASTER_BLSP_1,
209         .buswidth = 4,
210         .mas_rpm_id = 41,
211         .slv_rpm_id = -1,
212         .num_links = ARRAY_SIZE(mas_blsp_1_links),
213         .links = mas_blsp_1_links,
214 };
215
216 static const u16 mas_blsp_2_links[] = {
217         SDM660_SLAVE_A2NOC_SNOC
218 };
219
220 static struct qcom_icc_node mas_blsp_2 = {
221         .name = "mas_blsp_2",
222         .id = SDM660_MASTER_BLSP_2,
223         .buswidth = 4,
224         .mas_rpm_id = 39,
225         .slv_rpm_id = -1,
226         .num_links = ARRAY_SIZE(mas_blsp_2_links),
227         .links = mas_blsp_2_links,
228 };
229
230 static const u16 mas_ufs_links[] = {
231         SDM660_SLAVE_A2NOC_SNOC
232 };
233
234 static struct qcom_icc_node mas_ufs = {
235         .name = "mas_ufs",
236         .id = SDM660_MASTER_UFS,
237         .buswidth = 8,
238         .mas_rpm_id = 68,
239         .slv_rpm_id = -1,
240         .qos.ap_owned = true,
241         .qos.qos_mode = NOC_QOS_MODE_FIXED,
242         .qos.areq_prio = 1,
243         .qos.prio_level = 1,
244         .qos.qos_port = 4,
245         .num_links = ARRAY_SIZE(mas_ufs_links),
246         .links = mas_ufs_links,
247 };
248
249 static const u16 mas_usb_hs_links[] = {
250         SDM660_SLAVE_A2NOC_SNOC
251 };
252
253 static struct qcom_icc_node mas_usb_hs = {
254         .name = "mas_usb_hs",
255         .id = SDM660_MASTER_USB_HS,
256         .buswidth = 8,
257         .mas_rpm_id = 42,
258         .slv_rpm_id = -1,
259         .qos.ap_owned = true,
260         .qos.qos_mode = NOC_QOS_MODE_FIXED,
261         .qos.areq_prio = 1,
262         .qos.prio_level = 1,
263         .qos.qos_port = 1,
264         .num_links = ARRAY_SIZE(mas_usb_hs_links),
265         .links = mas_usb_hs_links,
266 };
267
268 static const u16 mas_usb3_links[] = {
269         SDM660_SLAVE_A2NOC_SNOC
270 };
271
272 static struct qcom_icc_node mas_usb3 = {
273         .name = "mas_usb3",
274         .id = SDM660_MASTER_USB3,
275         .buswidth = 8,
276         .mas_rpm_id = 32,
277         .slv_rpm_id = -1,
278         .qos.ap_owned = true,
279         .qos.qos_mode = NOC_QOS_MODE_FIXED,
280         .qos.areq_prio = 1,
281         .qos.prio_level = 1,
282         .qos.qos_port = 2,
283         .num_links = ARRAY_SIZE(mas_usb3_links),
284         .links = mas_usb3_links,
285 };
286
287 static const u16 mas_crypto_links[] = {
288         SDM660_SLAVE_A2NOC_SNOC
289 };
290
291 static struct qcom_icc_node mas_crypto = {
292         .name = "mas_crypto",
293         .id = SDM660_MASTER_CRYPTO_C0,
294         .buswidth = 8,
295         .mas_rpm_id = 23,
296         .slv_rpm_id = -1,
297         .qos.ap_owned = true,
298         .qos.qos_mode = NOC_QOS_MODE_FIXED,
299         .qos.areq_prio = 1,
300         .qos.prio_level = 1,
301         .qos.qos_port = 11,
302         .num_links = ARRAY_SIZE(mas_crypto_links),
303         .links = mas_crypto_links,
304 };
305
306 static const u16 mas_gnoc_bimc_links[] = {
307         SDM660_SLAVE_EBI
308 };
309
310 static struct qcom_icc_node mas_gnoc_bimc = {
311         .name = "mas_gnoc_bimc",
312         .id = SDM660_MASTER_GNOC_BIMC,
313         .buswidth = 4,
314         .mas_rpm_id = 144,
315         .slv_rpm_id = -1,
316         .qos.ap_owned = true,
317         .qos.qos_mode = NOC_QOS_MODE_FIXED,
318         .qos.areq_prio = 0,
319         .qos.prio_level = 0,
320         .qos.qos_port = 0,
321         .num_links = ARRAY_SIZE(mas_gnoc_bimc_links),
322         .links = mas_gnoc_bimc_links,
323 };
324
325 static const u16 mas_oxili_links[] = {
326         SDM660_SLAVE_HMSS_L3,
327         SDM660_SLAVE_EBI,
328         SDM660_SLAVE_BIMC_SNOC
329 };
330
331 static struct qcom_icc_node mas_oxili = {
332         .name = "mas_oxili",
333         .id = SDM660_MASTER_OXILI,
334         .buswidth = 4,
335         .mas_rpm_id = 6,
336         .slv_rpm_id = -1,
337         .qos.ap_owned = true,
338         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
339         .qos.areq_prio = 0,
340         .qos.prio_level = 0,
341         .qos.qos_port = 1,
342         .num_links = ARRAY_SIZE(mas_oxili_links),
343         .links = mas_oxili_links,
344 };
345
346 static const u16 mas_mnoc_bimc_links[] = {
347         SDM660_SLAVE_HMSS_L3,
348         SDM660_SLAVE_EBI,
349         SDM660_SLAVE_BIMC_SNOC
350 };
351
352 static struct qcom_icc_node mas_mnoc_bimc = {
353         .name = "mas_mnoc_bimc",
354         .id = SDM660_MASTER_MNOC_BIMC,
355         .buswidth = 4,
356         .mas_rpm_id = 2,
357         .slv_rpm_id = -1,
358         .qos.ap_owned = true,
359         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
360         .qos.areq_prio = 0,
361         .qos.prio_level = 0,
362         .qos.qos_port = 2,
363         .num_links = ARRAY_SIZE(mas_mnoc_bimc_links),
364         .links = mas_mnoc_bimc_links,
365 };
366
367 static const u16 mas_snoc_bimc_links[] = {
368         SDM660_SLAVE_HMSS_L3,
369         SDM660_SLAVE_EBI
370 };
371
372 static struct qcom_icc_node mas_snoc_bimc = {
373         .name = "mas_snoc_bimc",
374         .id = SDM660_MASTER_SNOC_BIMC,
375         .buswidth = 4,
376         .mas_rpm_id = 3,
377         .slv_rpm_id = -1,
378         .num_links = ARRAY_SIZE(mas_snoc_bimc_links),
379         .links = mas_snoc_bimc_links,
380 };
381
382 static const u16 mas_pimem_links[] = {
383         SDM660_SLAVE_HMSS_L3,
384         SDM660_SLAVE_EBI
385 };
386
387 static struct qcom_icc_node mas_pimem = {
388         .name = "mas_pimem",
389         .id = SDM660_MASTER_PIMEM,
390         .buswidth = 4,
391         .mas_rpm_id = 113,
392         .slv_rpm_id = -1,
393         .qos.ap_owned = true,
394         .qos.qos_mode = NOC_QOS_MODE_FIXED,
395         .qos.areq_prio = 1,
396         .qos.prio_level = 1,
397         .qos.qos_port = 4,
398         .num_links = ARRAY_SIZE(mas_pimem_links),
399         .links = mas_pimem_links,
400 };
401
402 static const u16 mas_snoc_cnoc_links[] = {
403         SDM660_SLAVE_CLK_CTL,
404         SDM660_SLAVE_QDSS_CFG,
405         SDM660_SLAVE_QM_CFG,
406         SDM660_SLAVE_SRVC_CNOC,
407         SDM660_SLAVE_UFS_CFG,
408         SDM660_SLAVE_TCSR,
409         SDM660_SLAVE_A2NOC_SMMU_CFG,
410         SDM660_SLAVE_SNOC_CFG,
411         SDM660_SLAVE_TLMM_SOUTH,
412         SDM660_SLAVE_MPM,
413         SDM660_SLAVE_CNOC_MNOC_MMSS_CFG,
414         SDM660_SLAVE_SDCC_2,
415         SDM660_SLAVE_SDCC_1,
416         SDM660_SLAVE_SPDM,
417         SDM660_SLAVE_PMIC_ARB,
418         SDM660_SLAVE_PRNG,
419         SDM660_SLAVE_MSS_CFG,
420         SDM660_SLAVE_GPUSS_CFG,
421         SDM660_SLAVE_IMEM_CFG,
422         SDM660_SLAVE_USB3_0,
423         SDM660_SLAVE_A2NOC_CFG,
424         SDM660_SLAVE_TLMM_NORTH,
425         SDM660_SLAVE_USB_HS,
426         SDM660_SLAVE_PDM,
427         SDM660_SLAVE_TLMM_CENTER,
428         SDM660_SLAVE_AHB2PHY,
429         SDM660_SLAVE_BLSP_2,
430         SDM660_SLAVE_BLSP_1,
431         SDM660_SLAVE_PIMEM_CFG,
432         SDM660_SLAVE_GLM,
433         SDM660_SLAVE_MESSAGE_RAM,
434         SDM660_SLAVE_BIMC_CFG,
435         SDM660_SLAVE_CNOC_MNOC_CFG
436 };
437
438 static struct qcom_icc_node mas_snoc_cnoc = {
439         .name = "mas_snoc_cnoc",
440         .id = SDM660_MASTER_SNOC_CNOC,
441         .buswidth = 8,
442         .mas_rpm_id = 52,
443         .slv_rpm_id = -1,
444         .qos.ap_owned = true,
445         .qos.qos_mode = NOC_QOS_MODE_INVALID,
446         .num_links = ARRAY_SIZE(mas_snoc_cnoc_links),
447         .links = mas_snoc_cnoc_links,
448 };
449
450 static const u16 mas_qdss_dap_links[] = {
451         SDM660_SLAVE_CLK_CTL,
452         SDM660_SLAVE_QDSS_CFG,
453         SDM660_SLAVE_QM_CFG,
454         SDM660_SLAVE_SRVC_CNOC,
455         SDM660_SLAVE_UFS_CFG,
456         SDM660_SLAVE_TCSR,
457         SDM660_SLAVE_A2NOC_SMMU_CFG,
458         SDM660_SLAVE_SNOC_CFG,
459         SDM660_SLAVE_TLMM_SOUTH,
460         SDM660_SLAVE_MPM,
461         SDM660_SLAVE_CNOC_MNOC_MMSS_CFG,
462         SDM660_SLAVE_SDCC_2,
463         SDM660_SLAVE_SDCC_1,
464         SDM660_SLAVE_SPDM,
465         SDM660_SLAVE_PMIC_ARB,
466         SDM660_SLAVE_PRNG,
467         SDM660_SLAVE_MSS_CFG,
468         SDM660_SLAVE_GPUSS_CFG,
469         SDM660_SLAVE_IMEM_CFG,
470         SDM660_SLAVE_USB3_0,
471         SDM660_SLAVE_A2NOC_CFG,
472         SDM660_SLAVE_TLMM_NORTH,
473         SDM660_SLAVE_USB_HS,
474         SDM660_SLAVE_PDM,
475         SDM660_SLAVE_TLMM_CENTER,
476         SDM660_SLAVE_AHB2PHY,
477         SDM660_SLAVE_BLSP_2,
478         SDM660_SLAVE_BLSP_1,
479         SDM660_SLAVE_PIMEM_CFG,
480         SDM660_SLAVE_GLM,
481         SDM660_SLAVE_MESSAGE_RAM,
482         SDM660_SLAVE_CNOC_A2NOC,
483         SDM660_SLAVE_BIMC_CFG,
484         SDM660_SLAVE_CNOC_MNOC_CFG
485 };
486
487 static struct qcom_icc_node mas_qdss_dap = {
488         .name = "mas_qdss_dap",
489         .id = SDM660_MASTER_QDSS_DAP,
490         .buswidth = 8,
491         .mas_rpm_id = 49,
492         .slv_rpm_id = -1,
493         .qos.ap_owned = true,
494         .qos.qos_mode = NOC_QOS_MODE_INVALID,
495         .num_links = ARRAY_SIZE(mas_qdss_dap_links),
496         .links = mas_qdss_dap_links,
497 };
498
499 static const u16 mas_apss_proc_links[] = {
500         SDM660_SLAVE_GNOC_SNOC,
501         SDM660_SLAVE_GNOC_BIMC
502 };
503
504 static struct qcom_icc_node mas_apss_proc = {
505         .name = "mas_apss_proc",
506         .id = SDM660_MASTER_APPS_PROC,
507         .buswidth = 16,
508         .mas_rpm_id = 0,
509         .slv_rpm_id = -1,
510         .qos.ap_owned = true,
511         .qos.qos_mode = NOC_QOS_MODE_INVALID,
512         .num_links = ARRAY_SIZE(mas_apss_proc_links),
513         .links = mas_apss_proc_links,
514 };
515
516 static const u16 mas_cnoc_mnoc_mmss_cfg_links[] = {
517         SDM660_SLAVE_VENUS_THROTTLE_CFG,
518         SDM660_SLAVE_VENUS_CFG,
519         SDM660_SLAVE_CAMERA_THROTTLE_CFG,
520         SDM660_SLAVE_SMMU_CFG,
521         SDM660_SLAVE_CAMERA_CFG,
522         SDM660_SLAVE_CSI_PHY_CFG,
523         SDM660_SLAVE_DISPLAY_THROTTLE_CFG,
524         SDM660_SLAVE_DISPLAY_CFG,
525         SDM660_SLAVE_MMSS_CLK_CFG,
526         SDM660_SLAVE_MNOC_MPU_CFG,
527         SDM660_SLAVE_MISC_CFG,
528         SDM660_SLAVE_MMSS_CLK_XPU_CFG
529 };
530
531 static struct qcom_icc_node mas_cnoc_mnoc_mmss_cfg = {
532         .name = "mas_cnoc_mnoc_mmss_cfg",
533         .id = SDM660_MASTER_CNOC_MNOC_MMSS_CFG,
534         .buswidth = 8,
535         .mas_rpm_id = 4,
536         .slv_rpm_id = -1,
537         .qos.ap_owned = true,
538         .qos.qos_mode = NOC_QOS_MODE_INVALID,
539         .num_links = ARRAY_SIZE(mas_cnoc_mnoc_mmss_cfg_links),
540         .links = mas_cnoc_mnoc_mmss_cfg_links,
541 };
542
543 static const u16 mas_cnoc_mnoc_cfg_links[] = {
544         SDM660_SLAVE_SRVC_MNOC
545 };
546
547 static struct qcom_icc_node mas_cnoc_mnoc_cfg = {
548         .name = "mas_cnoc_mnoc_cfg",
549         .id = SDM660_MASTER_CNOC_MNOC_CFG,
550         .buswidth = 4,
551         .mas_rpm_id = 5,
552         .slv_rpm_id = -1,
553         .qos.ap_owned = true,
554         .qos.qos_mode = NOC_QOS_MODE_INVALID,
555         .num_links = ARRAY_SIZE(mas_cnoc_mnoc_cfg_links),
556         .links = mas_cnoc_mnoc_cfg_links,
557 };
558
559 static const u16 mas_cpp_links[] = {
560         SDM660_SLAVE_MNOC_BIMC
561 };
562
563 static struct qcom_icc_node mas_cpp = {
564         .name = "mas_cpp",
565         .id = SDM660_MASTER_CPP,
566         .buswidth = 16,
567         .mas_rpm_id = 115,
568         .slv_rpm_id = -1,
569         .qos.ap_owned = true,
570         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
571         .qos.areq_prio = 0,
572         .qos.prio_level = 0,
573         .qos.qos_port = 4,
574         .num_links = ARRAY_SIZE(mas_cpp_links),
575         .links = mas_cpp_links,
576 };
577
578 static const u16 mas_jpeg_links[] = {
579         SDM660_SLAVE_MNOC_BIMC
580 };
581
582 static struct qcom_icc_node mas_jpeg = {
583         .name = "mas_jpeg",
584         .id = SDM660_MASTER_JPEG,
585         .buswidth = 16,
586         .mas_rpm_id = 7,
587         .slv_rpm_id = -1,
588         .qos.ap_owned = true,
589         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
590         .qos.areq_prio = 0,
591         .qos.prio_level = 0,
592         .qos.qos_port = 6,
593         .num_links = ARRAY_SIZE(mas_jpeg_links),
594         .links = mas_jpeg_links,
595 };
596
597 static const u16 mas_mdp_p0_links[] = {
598         SDM660_SLAVE_MNOC_BIMC
599 };
600
601 static struct qcom_icc_node mas_mdp_p0 = {
602         .name = "mas_mdp_p0",
603         .id = SDM660_MASTER_MDP_P0,
604         .buswidth = 16,
605         .ib_coeff = 50,
606         .mas_rpm_id = 8,
607         .slv_rpm_id = -1,
608         .qos.ap_owned = true,
609         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
610         .qos.areq_prio = 0,
611         .qos.prio_level = 0,
612         .qos.qos_port = 0,
613         .num_links = ARRAY_SIZE(mas_mdp_p0_links),
614         .links = mas_mdp_p0_links,
615 };
616
617 static const u16 mas_mdp_p1_links[] = {
618         SDM660_SLAVE_MNOC_BIMC
619 };
620
621 static struct qcom_icc_node mas_mdp_p1 = {
622         .name = "mas_mdp_p1",
623         .id = SDM660_MASTER_MDP_P1,
624         .buswidth = 16,
625         .ib_coeff = 50,
626         .mas_rpm_id = 61,
627         .slv_rpm_id = -1,
628         .qos.ap_owned = true,
629         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
630         .qos.areq_prio = 0,
631         .qos.prio_level = 0,
632         .qos.qos_port = 1,
633         .num_links = ARRAY_SIZE(mas_mdp_p1_links),
634         .links = mas_mdp_p1_links,
635 };
636
637 static const u16 mas_venus_links[] = {
638         SDM660_SLAVE_MNOC_BIMC
639 };
640
641 static struct qcom_icc_node mas_venus = {
642         .name = "mas_venus",
643         .id = SDM660_MASTER_VENUS,
644         .buswidth = 16,
645         .mas_rpm_id = 9,
646         .slv_rpm_id = -1,
647         .qos.ap_owned = true,
648         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
649         .qos.areq_prio = 0,
650         .qos.prio_level = 0,
651         .qos.qos_port = 1,
652         .num_links = ARRAY_SIZE(mas_venus_links),
653         .links = mas_venus_links,
654 };
655
656 static const u16 mas_vfe_links[] = {
657         SDM660_SLAVE_MNOC_BIMC
658 };
659
660 static struct qcom_icc_node mas_vfe = {
661         .name = "mas_vfe",
662         .id = SDM660_MASTER_VFE,
663         .buswidth = 16,
664         .mas_rpm_id = 11,
665         .slv_rpm_id = -1,
666         .qos.ap_owned = true,
667         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
668         .qos.areq_prio = 0,
669         .qos.prio_level = 0,
670         .qos.qos_port = 5,
671         .num_links = ARRAY_SIZE(mas_vfe_links),
672         .links = mas_vfe_links,
673 };
674
675 static const u16 mas_qdss_etr_links[] = {
676         SDM660_SLAVE_PIMEM,
677         SDM660_SLAVE_IMEM,
678         SDM660_SLAVE_SNOC_CNOC,
679         SDM660_SLAVE_SNOC_BIMC
680 };
681
682 static struct qcom_icc_node mas_qdss_etr = {
683         .name = "mas_qdss_etr",
684         .id = SDM660_MASTER_QDSS_ETR,
685         .buswidth = 8,
686         .mas_rpm_id = 31,
687         .slv_rpm_id = -1,
688         .qos.ap_owned = true,
689         .qos.qos_mode = NOC_QOS_MODE_FIXED,
690         .qos.areq_prio = 1,
691         .qos.prio_level = 1,
692         .qos.qos_port = 1,
693         .num_links = ARRAY_SIZE(mas_qdss_etr_links),
694         .links = mas_qdss_etr_links,
695 };
696
697 static const u16 mas_qdss_bam_links[] = {
698         SDM660_SLAVE_PIMEM,
699         SDM660_SLAVE_IMEM,
700         SDM660_SLAVE_SNOC_CNOC,
701         SDM660_SLAVE_SNOC_BIMC
702 };
703
704 static struct qcom_icc_node mas_qdss_bam = {
705         .name = "mas_qdss_bam",
706         .id = SDM660_MASTER_QDSS_BAM,
707         .buswidth = 4,
708         .mas_rpm_id = 19,
709         .slv_rpm_id = -1,
710         .qos.ap_owned = true,
711         .qos.qos_mode = NOC_QOS_MODE_FIXED,
712         .qos.areq_prio = 1,
713         .qos.prio_level = 1,
714         .qos.qos_port = 0,
715         .num_links = ARRAY_SIZE(mas_qdss_bam_links),
716         .links = mas_qdss_bam_links,
717 };
718
719 static const u16 mas_snoc_cfg_links[] = {
720         SDM660_SLAVE_SRVC_SNOC
721 };
722
723 static struct qcom_icc_node mas_snoc_cfg = {
724         .name = "mas_snoc_cfg",
725         .id = SDM660_MASTER_SNOC_CFG,
726         .buswidth = 4,
727         .mas_rpm_id = 20,
728         .slv_rpm_id = -1,
729         .num_links = ARRAY_SIZE(mas_snoc_cfg_links),
730         .links = mas_snoc_cfg_links,
731 };
732
733 static const u16 mas_bimc_snoc_links[] = {
734         SDM660_SLAVE_PIMEM,
735         SDM660_SLAVE_IPA,
736         SDM660_SLAVE_QDSS_STM,
737         SDM660_SLAVE_LPASS,
738         SDM660_SLAVE_HMSS,
739         SDM660_SLAVE_CDSP,
740         SDM660_SLAVE_SNOC_CNOC,
741         SDM660_SLAVE_WLAN,
742         SDM660_SLAVE_IMEM
743 };
744
745 static struct qcom_icc_node mas_bimc_snoc = {
746         .name = "mas_bimc_snoc",
747         .id = SDM660_MASTER_BIMC_SNOC,
748         .buswidth = 8,
749         .mas_rpm_id = 21,
750         .slv_rpm_id = -1,
751         .num_links = ARRAY_SIZE(mas_bimc_snoc_links),
752         .links = mas_bimc_snoc_links,
753 };
754
755 static const u16 mas_gnoc_snoc_links[] = {
756         SDM660_SLAVE_PIMEM,
757         SDM660_SLAVE_IPA,
758         SDM660_SLAVE_QDSS_STM,
759         SDM660_SLAVE_LPASS,
760         SDM660_SLAVE_HMSS,
761         SDM660_SLAVE_CDSP,
762         SDM660_SLAVE_SNOC_CNOC,
763         SDM660_SLAVE_WLAN,
764         SDM660_SLAVE_IMEM
765 };
766
767 static struct qcom_icc_node mas_gnoc_snoc = {
768         .name = "mas_gnoc_snoc",
769         .id = SDM660_MASTER_GNOC_SNOC,
770         .buswidth = 8,
771         .mas_rpm_id = 150,
772         .slv_rpm_id = -1,
773         .num_links = ARRAY_SIZE(mas_gnoc_snoc_links),
774         .links = mas_gnoc_snoc_links,
775 };
776
777 static const u16 mas_a2noc_snoc_links[] = {
778         SDM660_SLAVE_PIMEM,
779         SDM660_SLAVE_IPA,
780         SDM660_SLAVE_QDSS_STM,
781         SDM660_SLAVE_LPASS,
782         SDM660_SLAVE_HMSS,
783         SDM660_SLAVE_SNOC_BIMC,
784         SDM660_SLAVE_CDSP,
785         SDM660_SLAVE_SNOC_CNOC,
786         SDM660_SLAVE_WLAN,
787         SDM660_SLAVE_IMEM
788 };
789
790 static struct qcom_icc_node mas_a2noc_snoc = {
791         .name = "mas_a2noc_snoc",
792         .id = SDM660_MASTER_A2NOC_SNOC,
793         .buswidth = 16,
794         .mas_rpm_id = 112,
795         .slv_rpm_id = -1,
796         .num_links = ARRAY_SIZE(mas_a2noc_snoc_links),
797         .links = mas_a2noc_snoc_links,
798 };
799
800 static const u16 slv_a2noc_snoc_links[] = {
801         SDM660_MASTER_A2NOC_SNOC
802 };
803
804 static struct qcom_icc_node slv_a2noc_snoc = {
805         .name = "slv_a2noc_snoc",
806         .id = SDM660_SLAVE_A2NOC_SNOC,
807         .buswidth = 16,
808         .mas_rpm_id = -1,
809         .slv_rpm_id = 143,
810         .num_links = ARRAY_SIZE(slv_a2noc_snoc_links),
811         .links = slv_a2noc_snoc_links,
812 };
813
814 static struct qcom_icc_node slv_ebi = {
815         .name = "slv_ebi",
816         .id = SDM660_SLAVE_EBI,
817         .buswidth = 4,
818         .mas_rpm_id = -1,
819         .slv_rpm_id = 0,
820 };
821
822 static struct qcom_icc_node slv_hmss_l3 = {
823         .name = "slv_hmss_l3",
824         .id = SDM660_SLAVE_HMSS_L3,
825         .buswidth = 4,
826         .mas_rpm_id = -1,
827         .slv_rpm_id = 160,
828 };
829
830 static const u16 slv_bimc_snoc_links[] = {
831         SDM660_MASTER_BIMC_SNOC
832 };
833
834 static struct qcom_icc_node slv_bimc_snoc = {
835         .name = "slv_bimc_snoc",
836         .id = SDM660_SLAVE_BIMC_SNOC,
837         .buswidth = 4,
838         .mas_rpm_id = -1,
839         .slv_rpm_id = 2,
840         .num_links = ARRAY_SIZE(slv_bimc_snoc_links),
841         .links = slv_bimc_snoc_links,
842 };
843
844 static const u16 slv_cnoc_a2noc_links[] = {
845         SDM660_MASTER_CNOC_A2NOC
846 };
847
848 static struct qcom_icc_node slv_cnoc_a2noc = {
849         .name = "slv_cnoc_a2noc",
850         .id = SDM660_SLAVE_CNOC_A2NOC,
851         .buswidth = 8,
852         .mas_rpm_id = -1,
853         .slv_rpm_id = 208,
854         .qos.ap_owned = true,
855         .qos.qos_mode = NOC_QOS_MODE_INVALID,
856         .num_links = ARRAY_SIZE(slv_cnoc_a2noc_links),
857         .links = slv_cnoc_a2noc_links,
858 };
859
860 static struct qcom_icc_node slv_mpm = {
861         .name = "slv_mpm",
862         .id = SDM660_SLAVE_MPM,
863         .buswidth = 4,
864         .mas_rpm_id = -1,
865         .slv_rpm_id = 62,
866         .qos.ap_owned = true,
867         .qos.qos_mode = NOC_QOS_MODE_INVALID,
868 };
869
870 static struct qcom_icc_node slv_pmic_arb = {
871         .name = "slv_pmic_arb",
872         .id = SDM660_SLAVE_PMIC_ARB,
873         .buswidth = 4,
874         .mas_rpm_id = -1,
875         .slv_rpm_id = 59,
876         .qos.ap_owned = true,
877         .qos.qos_mode = NOC_QOS_MODE_INVALID,
878 };
879
880 static struct qcom_icc_node slv_tlmm_north = {
881         .name = "slv_tlmm_north",
882         .id = SDM660_SLAVE_TLMM_NORTH,
883         .buswidth = 8,
884         .mas_rpm_id = -1,
885         .slv_rpm_id = 214,
886         .qos.ap_owned = true,
887         .qos.qos_mode = NOC_QOS_MODE_INVALID,
888 };
889
890 static struct qcom_icc_node slv_tcsr = {
891         .name = "slv_tcsr",
892         .id = SDM660_SLAVE_TCSR,
893         .buswidth = 4,
894         .mas_rpm_id = -1,
895         .slv_rpm_id = 50,
896         .qos.ap_owned = true,
897         .qos.qos_mode = NOC_QOS_MODE_INVALID,
898 };
899
900 static struct qcom_icc_node slv_pimem_cfg = {
901         .name = "slv_pimem_cfg",
902         .id = SDM660_SLAVE_PIMEM_CFG,
903         .buswidth = 4,
904         .mas_rpm_id = -1,
905         .slv_rpm_id = 167,
906         .qos.ap_owned = true,
907         .qos.qos_mode = NOC_QOS_MODE_INVALID,
908 };
909
910 static struct qcom_icc_node slv_imem_cfg = {
911         .name = "slv_imem_cfg",
912         .id = SDM660_SLAVE_IMEM_CFG,
913         .buswidth = 4,
914         .mas_rpm_id = -1,
915         .slv_rpm_id = 54,
916         .qos.ap_owned = true,
917         .qos.qos_mode = NOC_QOS_MODE_INVALID,
918 };
919
920 static struct qcom_icc_node slv_message_ram = {
921         .name = "slv_message_ram",
922         .id = SDM660_SLAVE_MESSAGE_RAM,
923         .buswidth = 4,
924         .mas_rpm_id = -1,
925         .slv_rpm_id = 55,
926         .qos.ap_owned = true,
927         .qos.qos_mode = NOC_QOS_MODE_INVALID,
928 };
929
930 static struct qcom_icc_node slv_glm = {
931         .name = "slv_glm",
932         .id = SDM660_SLAVE_GLM,
933         .buswidth = 4,
934         .mas_rpm_id = -1,
935         .slv_rpm_id = 209,
936         .qos.ap_owned = true,
937         .qos.qos_mode = NOC_QOS_MODE_INVALID,
938 };
939
940 static struct qcom_icc_node slv_bimc_cfg = {
941         .name = "slv_bimc_cfg",
942         .id = SDM660_SLAVE_BIMC_CFG,
943         .buswidth = 4,
944         .mas_rpm_id = -1,
945         .slv_rpm_id = 56,
946         .qos.ap_owned = true,
947         .qos.qos_mode = NOC_QOS_MODE_INVALID,
948 };
949
950 static struct qcom_icc_node slv_prng = {
951         .name = "slv_prng",
952         .id = SDM660_SLAVE_PRNG,
953         .buswidth = 4,
954         .mas_rpm_id = -1,
955         .slv_rpm_id = 44,
956         .qos.ap_owned = true,
957         .qos.qos_mode = NOC_QOS_MODE_INVALID,
958 };
959
960 static struct qcom_icc_node slv_spdm = {
961         .name = "slv_spdm",
962         .id = SDM660_SLAVE_SPDM,
963         .buswidth = 4,
964         .mas_rpm_id = -1,
965         .slv_rpm_id = 60,
966         .qos.ap_owned = true,
967         .qos.qos_mode = NOC_QOS_MODE_INVALID,
968 };
969
970 static struct qcom_icc_node slv_qdss_cfg = {
971         .name = "slv_qdss_cfg",
972         .id = SDM660_SLAVE_QDSS_CFG,
973         .buswidth = 4,
974         .mas_rpm_id = -1,
975         .slv_rpm_id = 63,
976         .qos.ap_owned = true,
977         .qos.qos_mode = NOC_QOS_MODE_INVALID,
978 };
979
980 static const u16 slv_cnoc_mnoc_cfg_links[] = {
981         SDM660_MASTER_CNOC_MNOC_CFG
982 };
983
984 static struct qcom_icc_node slv_cnoc_mnoc_cfg = {
985         .name = "slv_cnoc_mnoc_cfg",
986         .id = SDM660_SLAVE_CNOC_MNOC_CFG,
987         .buswidth = 4,
988         .mas_rpm_id = -1,
989         .slv_rpm_id = 66,
990         .qos.ap_owned = true,
991         .qos.qos_mode = NOC_QOS_MODE_INVALID,
992         .num_links = ARRAY_SIZE(slv_cnoc_mnoc_cfg_links),
993         .links = slv_cnoc_mnoc_cfg_links,
994 };
995
996 static struct qcom_icc_node slv_snoc_cfg = {
997         .name = "slv_snoc_cfg",
998         .id = SDM660_SLAVE_SNOC_CFG,
999         .buswidth = 4,
1000         .mas_rpm_id = -1,
1001         .slv_rpm_id = 70,
1002         .qos.ap_owned = true,
1003         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1004 };
1005
1006 static struct qcom_icc_node slv_qm_cfg = {
1007         .name = "slv_qm_cfg",
1008         .id = SDM660_SLAVE_QM_CFG,
1009         .buswidth = 4,
1010         .mas_rpm_id = -1,
1011         .slv_rpm_id = 212,
1012         .qos.ap_owned = true,
1013         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1014 };
1015
1016 static struct qcom_icc_node slv_clk_ctl = {
1017         .name = "slv_clk_ctl",
1018         .id = SDM660_SLAVE_CLK_CTL,
1019         .buswidth = 4,
1020         .mas_rpm_id = -1,
1021         .slv_rpm_id = 47,
1022         .qos.ap_owned = true,
1023         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1024 };
1025
1026 static struct qcom_icc_node slv_mss_cfg = {
1027         .name = "slv_mss_cfg",
1028         .id = SDM660_SLAVE_MSS_CFG,
1029         .buswidth = 4,
1030         .mas_rpm_id = -1,
1031         .slv_rpm_id = 48,
1032         .qos.ap_owned = true,
1033         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1034 };
1035
1036 static struct qcom_icc_node slv_tlmm_south = {
1037         .name = "slv_tlmm_south",
1038         .id = SDM660_SLAVE_TLMM_SOUTH,
1039         .buswidth = 4,
1040         .mas_rpm_id = -1,
1041         .slv_rpm_id = 217,
1042         .qos.ap_owned = true,
1043         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1044 };
1045
1046 static struct qcom_icc_node slv_ufs_cfg = {
1047         .name = "slv_ufs_cfg",
1048         .id = SDM660_SLAVE_UFS_CFG,
1049         .buswidth = 4,
1050         .mas_rpm_id = -1,
1051         .slv_rpm_id = 92,
1052         .qos.ap_owned = true,
1053         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1054 };
1055
1056 static struct qcom_icc_node slv_a2noc_cfg = {
1057         .name = "slv_a2noc_cfg",
1058         .id = SDM660_SLAVE_A2NOC_CFG,
1059         .buswidth = 4,
1060         .mas_rpm_id = -1,
1061         .slv_rpm_id = 150,
1062         .qos.ap_owned = true,
1063         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1064 };
1065
1066 static struct qcom_icc_node slv_a2noc_smmu_cfg = {
1067         .name = "slv_a2noc_smmu_cfg",
1068         .id = SDM660_SLAVE_A2NOC_SMMU_CFG,
1069         .buswidth = 8,
1070         .mas_rpm_id = -1,
1071         .slv_rpm_id = 152,
1072         .qos.ap_owned = true,
1073         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1074 };
1075
1076 static struct qcom_icc_node slv_gpuss_cfg = {
1077         .name = "slv_gpuss_cfg",
1078         .id = SDM660_SLAVE_GPUSS_CFG,
1079         .buswidth = 8,
1080         .mas_rpm_id = -1,
1081         .slv_rpm_id = 11,
1082         .qos.ap_owned = true,
1083         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1084 };
1085
1086 static struct qcom_icc_node slv_ahb2phy = {
1087         .name = "slv_ahb2phy",
1088         .id = SDM660_SLAVE_AHB2PHY,
1089         .buswidth = 4,
1090         .mas_rpm_id = -1,
1091         .slv_rpm_id = 163,
1092         .qos.ap_owned = true,
1093         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1094 };
1095
1096 static struct qcom_icc_node slv_blsp_1 = {
1097         .name = "slv_blsp_1",
1098         .id = SDM660_SLAVE_BLSP_1,
1099         .buswidth = 4,
1100         .mas_rpm_id = -1,
1101         .slv_rpm_id = 39,
1102         .qos.ap_owned = true,
1103         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1104 };
1105
1106 static struct qcom_icc_node slv_sdcc_1 = {
1107         .name = "slv_sdcc_1",
1108         .id = SDM660_SLAVE_SDCC_1,
1109         .buswidth = 4,
1110         .mas_rpm_id = -1,
1111         .slv_rpm_id = 31,
1112         .qos.ap_owned = true,
1113         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1114 };
1115
1116 static struct qcom_icc_node slv_sdcc_2 = {
1117         .name = "slv_sdcc_2",
1118         .id = SDM660_SLAVE_SDCC_2,
1119         .buswidth = 4,
1120         .mas_rpm_id = -1,
1121         .slv_rpm_id = 33,
1122         .qos.ap_owned = true,
1123         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1124 };
1125
1126 static struct qcom_icc_node slv_tlmm_center = {
1127         .name = "slv_tlmm_center",
1128         .id = SDM660_SLAVE_TLMM_CENTER,
1129         .buswidth = 4,
1130         .mas_rpm_id = -1,
1131         .slv_rpm_id = 218,
1132         .qos.ap_owned = true,
1133         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1134 };
1135
1136 static struct qcom_icc_node slv_blsp_2 = {
1137         .name = "slv_blsp_2",
1138         .id = SDM660_SLAVE_BLSP_2,
1139         .buswidth = 4,
1140         .mas_rpm_id = -1,
1141         .slv_rpm_id = 37,
1142         .qos.ap_owned = true,
1143         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1144 };
1145
1146 static struct qcom_icc_node slv_pdm = {
1147         .name = "slv_pdm",
1148         .id = SDM660_SLAVE_PDM,
1149         .buswidth = 4,
1150         .mas_rpm_id = -1,
1151         .slv_rpm_id = 41,
1152         .qos.ap_owned = true,
1153         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1154 };
1155
1156 static const u16 slv_cnoc_mnoc_mmss_cfg_links[] = {
1157         SDM660_MASTER_CNOC_MNOC_MMSS_CFG
1158 };
1159
1160 static struct qcom_icc_node slv_cnoc_mnoc_mmss_cfg = {
1161         .name = "slv_cnoc_mnoc_mmss_cfg",
1162         .id = SDM660_SLAVE_CNOC_MNOC_MMSS_CFG,
1163         .buswidth = 8,
1164         .mas_rpm_id = -1,
1165         .slv_rpm_id = 58,
1166         .qos.ap_owned = true,
1167         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1168         .num_links = ARRAY_SIZE(slv_cnoc_mnoc_mmss_cfg_links),
1169         .links = slv_cnoc_mnoc_mmss_cfg_links,
1170 };
1171
1172 static struct qcom_icc_node slv_usb_hs = {
1173         .name = "slv_usb_hs",
1174         .id = SDM660_SLAVE_USB_HS,
1175         .buswidth = 4,
1176         .mas_rpm_id = -1,
1177         .slv_rpm_id = 40,
1178         .qos.ap_owned = true,
1179         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1180 };
1181
1182 static struct qcom_icc_node slv_usb3_0 = {
1183         .name = "slv_usb3_0",
1184         .id = SDM660_SLAVE_USB3_0,
1185         .buswidth = 4,
1186         .mas_rpm_id = -1,
1187         .slv_rpm_id = 22,
1188         .qos.ap_owned = true,
1189         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1190 };
1191
1192 static struct qcom_icc_node slv_srvc_cnoc = {
1193         .name = "slv_srvc_cnoc",
1194         .id = SDM660_SLAVE_SRVC_CNOC,
1195         .buswidth = 4,
1196         .mas_rpm_id = -1,
1197         .slv_rpm_id = 76,
1198         .qos.ap_owned = true,
1199         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1200 };
1201
1202 static const u16 slv_gnoc_bimc_links[] = {
1203         SDM660_MASTER_GNOC_BIMC
1204 };
1205
1206 static struct qcom_icc_node slv_gnoc_bimc = {
1207         .name = "slv_gnoc_bimc",
1208         .id = SDM660_SLAVE_GNOC_BIMC,
1209         .buswidth = 16,
1210         .mas_rpm_id = -1,
1211         .slv_rpm_id = 210,
1212         .qos.ap_owned = true,
1213         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1214         .num_links = ARRAY_SIZE(slv_gnoc_bimc_links),
1215         .links = slv_gnoc_bimc_links,
1216 };
1217
1218 static const u16 slv_gnoc_snoc_links[] = {
1219         SDM660_MASTER_GNOC_SNOC
1220 };
1221
1222 static struct qcom_icc_node slv_gnoc_snoc = {
1223         .name = "slv_gnoc_snoc",
1224         .id = SDM660_SLAVE_GNOC_SNOC,
1225         .buswidth = 8,
1226         .mas_rpm_id = -1,
1227         .slv_rpm_id = 211,
1228         .qos.ap_owned = true,
1229         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1230         .num_links = ARRAY_SIZE(slv_gnoc_snoc_links),
1231         .links = slv_gnoc_snoc_links,
1232 };
1233
1234 static struct qcom_icc_node slv_camera_cfg = {
1235         .name = "slv_camera_cfg",
1236         .id = SDM660_SLAVE_CAMERA_CFG,
1237         .buswidth = 4,
1238         .mas_rpm_id = -1,
1239         .slv_rpm_id = 3,
1240         .qos.ap_owned = true,
1241         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1242 };
1243
1244 static struct qcom_icc_node slv_camera_throttle_cfg = {
1245         .name = "slv_camera_throttle_cfg",
1246         .id = SDM660_SLAVE_CAMERA_THROTTLE_CFG,
1247         .buswidth = 4,
1248         .mas_rpm_id = -1,
1249         .slv_rpm_id = 154,
1250         .qos.ap_owned = true,
1251         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1252 };
1253
1254 static struct qcom_icc_node slv_misc_cfg = {
1255         .name = "slv_misc_cfg",
1256         .id = SDM660_SLAVE_MISC_CFG,
1257         .buswidth = 4,
1258         .mas_rpm_id = -1,
1259         .slv_rpm_id = 8,
1260         .qos.ap_owned = true,
1261         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1262 };
1263
1264 static struct qcom_icc_node slv_venus_throttle_cfg = {
1265         .name = "slv_venus_throttle_cfg",
1266         .id = SDM660_SLAVE_VENUS_THROTTLE_CFG,
1267         .buswidth = 4,
1268         .mas_rpm_id = -1,
1269         .slv_rpm_id = 178,
1270         .qos.ap_owned = true,
1271         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1272 };
1273
1274 static struct qcom_icc_node slv_venus_cfg = {
1275         .name = "slv_venus_cfg",
1276         .id = SDM660_SLAVE_VENUS_CFG,
1277         .buswidth = 4,
1278         .mas_rpm_id = -1,
1279         .slv_rpm_id = 10,
1280         .qos.ap_owned = true,
1281         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1282 };
1283
1284 static struct qcom_icc_node slv_mmss_clk_xpu_cfg = {
1285         .name = "slv_mmss_clk_xpu_cfg",
1286         .id = SDM660_SLAVE_MMSS_CLK_XPU_CFG,
1287         .buswidth = 4,
1288         .mas_rpm_id = -1,
1289         .slv_rpm_id = 13,
1290         .qos.ap_owned = true,
1291         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1292 };
1293
1294 static struct qcom_icc_node slv_mmss_clk_cfg = {
1295         .name = "slv_mmss_clk_cfg",
1296         .id = SDM660_SLAVE_MMSS_CLK_CFG,
1297         .buswidth = 4,
1298         .mas_rpm_id = -1,
1299         .slv_rpm_id = 12,
1300         .qos.ap_owned = true,
1301         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1302 };
1303
1304 static struct qcom_icc_node slv_mnoc_mpu_cfg = {
1305         .name = "slv_mnoc_mpu_cfg",
1306         .id = SDM660_SLAVE_MNOC_MPU_CFG,
1307         .buswidth = 4,
1308         .mas_rpm_id = -1,
1309         .slv_rpm_id = 14,
1310         .qos.ap_owned = true,
1311         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1312 };
1313
1314 static struct qcom_icc_node slv_display_cfg = {
1315         .name = "slv_display_cfg",
1316         .id = SDM660_SLAVE_DISPLAY_CFG,
1317         .buswidth = 4,
1318         .mas_rpm_id = -1,
1319         .slv_rpm_id = 4,
1320         .qos.ap_owned = true,
1321         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1322 };
1323
1324 static struct qcom_icc_node slv_csi_phy_cfg = {
1325         .name = "slv_csi_phy_cfg",
1326         .id = SDM660_SLAVE_CSI_PHY_CFG,
1327         .buswidth = 4,
1328         .mas_rpm_id = -1,
1329         .slv_rpm_id = 224,
1330         .qos.ap_owned = true,
1331         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1332 };
1333
1334 static struct qcom_icc_node slv_display_throttle_cfg = {
1335         .name = "slv_display_throttle_cfg",
1336         .id = SDM660_SLAVE_DISPLAY_THROTTLE_CFG,
1337         .buswidth = 4,
1338         .mas_rpm_id = -1,
1339         .slv_rpm_id = 156,
1340         .qos.ap_owned = true,
1341         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1342 };
1343
1344 static struct qcom_icc_node slv_smmu_cfg = {
1345         .name = "slv_smmu_cfg",
1346         .id = SDM660_SLAVE_SMMU_CFG,
1347         .buswidth = 8,
1348         .mas_rpm_id = -1,
1349         .slv_rpm_id = 205,
1350         .qos.ap_owned = true,
1351         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1352 };
1353
1354 static const u16 slv_mnoc_bimc_links[] = {
1355         SDM660_MASTER_MNOC_BIMC
1356 };
1357
1358 static struct qcom_icc_node slv_mnoc_bimc = {
1359         .name = "slv_mnoc_bimc",
1360         .id = SDM660_SLAVE_MNOC_BIMC,
1361         .buswidth = 16,
1362         .mas_rpm_id = -1,
1363         .slv_rpm_id = 16,
1364         .qos.ap_owned = true,
1365         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1366         .num_links = ARRAY_SIZE(slv_mnoc_bimc_links),
1367         .links = slv_mnoc_bimc_links,
1368 };
1369
1370 static struct qcom_icc_node slv_srvc_mnoc = {
1371         .name = "slv_srvc_mnoc",
1372         .id = SDM660_SLAVE_SRVC_MNOC,
1373         .buswidth = 8,
1374         .mas_rpm_id = -1,
1375         .slv_rpm_id = 17,
1376         .qos.ap_owned = true,
1377         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1378 };
1379
1380 static struct qcom_icc_node slv_hmss = {
1381         .name = "slv_hmss",
1382         .id = SDM660_SLAVE_HMSS,
1383         .buswidth = 8,
1384         .mas_rpm_id = -1,
1385         .slv_rpm_id = 20,
1386         .qos.ap_owned = true,
1387         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1388 };
1389
1390 static struct qcom_icc_node slv_lpass = {
1391         .name = "slv_lpass",
1392         .id = SDM660_SLAVE_LPASS,
1393         .buswidth = 4,
1394         .mas_rpm_id = -1,
1395         .slv_rpm_id = 21,
1396         .qos.ap_owned = true,
1397         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1398 };
1399
1400 static struct qcom_icc_node slv_wlan = {
1401         .name = "slv_wlan",
1402         .id = SDM660_SLAVE_WLAN,
1403         .buswidth = 4,
1404         .mas_rpm_id = -1,
1405         .slv_rpm_id = 206,
1406 };
1407
1408 static struct qcom_icc_node slv_cdsp = {
1409         .name = "slv_cdsp",
1410         .id = SDM660_SLAVE_CDSP,
1411         .buswidth = 4,
1412         .mas_rpm_id = -1,
1413         .slv_rpm_id = 221,
1414         .qos.ap_owned = true,
1415         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1416 };
1417
1418 static struct qcom_icc_node slv_ipa = {
1419         .name = "slv_ipa",
1420         .id = SDM660_SLAVE_IPA,
1421         .buswidth = 4,
1422         .mas_rpm_id = -1,
1423         .slv_rpm_id = 183,
1424         .qos.ap_owned = true,
1425         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1426 };
1427
1428 static const u16 slv_snoc_bimc_links[] = {
1429         SDM660_MASTER_SNOC_BIMC
1430 };
1431
1432 static struct qcom_icc_node slv_snoc_bimc = {
1433         .name = "slv_snoc_bimc",
1434         .id = SDM660_SLAVE_SNOC_BIMC,
1435         .buswidth = 16,
1436         .mas_rpm_id = -1,
1437         .slv_rpm_id = 24,
1438         .num_links = ARRAY_SIZE(slv_snoc_bimc_links),
1439         .links = slv_snoc_bimc_links,
1440 };
1441
1442 static const u16 slv_snoc_cnoc_links[] = {
1443         SDM660_MASTER_SNOC_CNOC
1444 };
1445
1446 static struct qcom_icc_node slv_snoc_cnoc = {
1447         .name = "slv_snoc_cnoc",
1448         .id = SDM660_SLAVE_SNOC_CNOC,
1449         .buswidth = 8,
1450         .mas_rpm_id = -1,
1451         .slv_rpm_id = 25,
1452         .num_links = ARRAY_SIZE(slv_snoc_cnoc_links),
1453         .links = slv_snoc_cnoc_links,
1454 };
1455
1456 static struct qcom_icc_node slv_imem = {
1457         .name = "slv_imem",
1458         .id = SDM660_SLAVE_IMEM,
1459         .buswidth = 8,
1460         .mas_rpm_id = -1,
1461         .slv_rpm_id = 26,
1462 };
1463
1464 static struct qcom_icc_node slv_pimem = {
1465         .name = "slv_pimem",
1466         .id = SDM660_SLAVE_PIMEM,
1467         .buswidth = 8,
1468         .mas_rpm_id = -1,
1469         .slv_rpm_id = 166,
1470 };
1471
1472 static struct qcom_icc_node slv_qdss_stm = {
1473         .name = "slv_qdss_stm",
1474         .id = SDM660_SLAVE_QDSS_STM,
1475         .buswidth = 4,
1476         .mas_rpm_id = -1,
1477         .slv_rpm_id = 30,
1478 };
1479
1480 static struct qcom_icc_node slv_srvc_snoc = {
1481         .name = "slv_srvc_snoc",
1482         .id = SDM660_SLAVE_SRVC_SNOC,
1483         .buswidth = 16,
1484         .mas_rpm_id = -1,
1485         .slv_rpm_id = 29,
1486 };
1487
1488 static struct qcom_icc_node * const sdm660_a2noc_nodes[] = {
1489         [MASTER_IPA] = &mas_ipa,
1490         [MASTER_CNOC_A2NOC] = &mas_cnoc_a2noc,
1491         [MASTER_SDCC_1] = &mas_sdcc_1,
1492         [MASTER_SDCC_2] = &mas_sdcc_2,
1493         [MASTER_BLSP_1] = &mas_blsp_1,
1494         [MASTER_BLSP_2] = &mas_blsp_2,
1495         [MASTER_UFS] = &mas_ufs,
1496         [MASTER_USB_HS] = &mas_usb_hs,
1497         [MASTER_USB3] = &mas_usb3,
1498         [MASTER_CRYPTO_C0] = &mas_crypto,
1499         [SLAVE_A2NOC_SNOC] = &slv_a2noc_snoc,
1500 };
1501
1502 static const struct regmap_config sdm660_a2noc_regmap_config = {
1503         .reg_bits       = 32,
1504         .reg_stride     = 4,
1505         .val_bits       = 32,
1506         .max_register   = 0x20000,
1507         .fast_io        = true,
1508 };
1509
1510 static const struct qcom_icc_desc sdm660_a2noc = {
1511         .type = QCOM_ICC_NOC,
1512         .nodes = sdm660_a2noc_nodes,
1513         .num_nodes = ARRAY_SIZE(sdm660_a2noc_nodes),
1514         .bus_clk_desc = &aggre2_clk,
1515         .intf_clocks = a2noc_intf_clocks,
1516         .num_intf_clocks = ARRAY_SIZE(a2noc_intf_clocks),
1517         .regmap_cfg = &sdm660_a2noc_regmap_config,
1518 };
1519
1520 static struct qcom_icc_node * const sdm660_bimc_nodes[] = {
1521         [MASTER_GNOC_BIMC] = &mas_gnoc_bimc,
1522         [MASTER_OXILI] = &mas_oxili,
1523         [MASTER_MNOC_BIMC] = &mas_mnoc_bimc,
1524         [MASTER_SNOC_BIMC] = &mas_snoc_bimc,
1525         [MASTER_PIMEM] = &mas_pimem,
1526         [SLAVE_EBI] = &slv_ebi,
1527         [SLAVE_HMSS_L3] = &slv_hmss_l3,
1528         [SLAVE_BIMC_SNOC] = &slv_bimc_snoc,
1529 };
1530
1531 static const struct regmap_config sdm660_bimc_regmap_config = {
1532         .reg_bits       = 32,
1533         .reg_stride     = 4,
1534         .val_bits       = 32,
1535         .max_register   = 0x80000,
1536         .fast_io        = true,
1537 };
1538
1539 static const struct qcom_icc_desc sdm660_bimc = {
1540         .type = QCOM_ICC_BIMC,
1541         .nodes = sdm660_bimc_nodes,
1542         .num_nodes = ARRAY_SIZE(sdm660_bimc_nodes),
1543         .bus_clk_desc = &bimc_clk,
1544         .regmap_cfg = &sdm660_bimc_regmap_config,
1545         .ab_coeff = 153,
1546 };
1547
1548 static struct qcom_icc_node * const sdm660_cnoc_nodes[] = {
1549         [MASTER_SNOC_CNOC] = &mas_snoc_cnoc,
1550         [MASTER_QDSS_DAP] = &mas_qdss_dap,
1551         [SLAVE_CNOC_A2NOC] = &slv_cnoc_a2noc,
1552         [SLAVE_MPM] = &slv_mpm,
1553         [SLAVE_PMIC_ARB] = &slv_pmic_arb,
1554         [SLAVE_TLMM_NORTH] = &slv_tlmm_north,
1555         [SLAVE_TCSR] = &slv_tcsr,
1556         [SLAVE_PIMEM_CFG] = &slv_pimem_cfg,
1557         [SLAVE_IMEM_CFG] = &slv_imem_cfg,
1558         [SLAVE_MESSAGE_RAM] = &slv_message_ram,
1559         [SLAVE_GLM] = &slv_glm,
1560         [SLAVE_BIMC_CFG] = &slv_bimc_cfg,
1561         [SLAVE_PRNG] = &slv_prng,
1562         [SLAVE_SPDM] = &slv_spdm,
1563         [SLAVE_QDSS_CFG] = &slv_qdss_cfg,
1564         [SLAVE_CNOC_MNOC_CFG] = &slv_cnoc_mnoc_cfg,
1565         [SLAVE_SNOC_CFG] = &slv_snoc_cfg,
1566         [SLAVE_QM_CFG] = &slv_qm_cfg,
1567         [SLAVE_CLK_CTL] = &slv_clk_ctl,
1568         [SLAVE_MSS_CFG] = &slv_mss_cfg,
1569         [SLAVE_TLMM_SOUTH] = &slv_tlmm_south,
1570         [SLAVE_UFS_CFG] = &slv_ufs_cfg,
1571         [SLAVE_A2NOC_CFG] = &slv_a2noc_cfg,
1572         [SLAVE_A2NOC_SMMU_CFG] = &slv_a2noc_smmu_cfg,
1573         [SLAVE_GPUSS_CFG] = &slv_gpuss_cfg,
1574         [SLAVE_AHB2PHY] = &slv_ahb2phy,
1575         [SLAVE_BLSP_1] = &slv_blsp_1,
1576         [SLAVE_SDCC_1] = &slv_sdcc_1,
1577         [SLAVE_SDCC_2] = &slv_sdcc_2,
1578         [SLAVE_TLMM_CENTER] = &slv_tlmm_center,
1579         [SLAVE_BLSP_2] = &slv_blsp_2,
1580         [SLAVE_PDM] = &slv_pdm,
1581         [SLAVE_CNOC_MNOC_MMSS_CFG] = &slv_cnoc_mnoc_mmss_cfg,
1582         [SLAVE_USB_HS] = &slv_usb_hs,
1583         [SLAVE_USB3_0] = &slv_usb3_0,
1584         [SLAVE_SRVC_CNOC] = &slv_srvc_cnoc,
1585 };
1586
1587 static const struct regmap_config sdm660_cnoc_regmap_config = {
1588         .reg_bits       = 32,
1589         .reg_stride     = 4,
1590         .val_bits       = 32,
1591         .max_register   = 0x10000,
1592         .fast_io        = true,
1593 };
1594
1595 static const struct qcom_icc_desc sdm660_cnoc = {
1596         .type = QCOM_ICC_NOC,
1597         .nodes = sdm660_cnoc_nodes,
1598         .num_nodes = ARRAY_SIZE(sdm660_cnoc_nodes),
1599         .bus_clk_desc = &bus_2_clk,
1600         .regmap_cfg = &sdm660_cnoc_regmap_config,
1601 };
1602
1603 static struct qcom_icc_node * const sdm660_gnoc_nodes[] = {
1604         [MASTER_APSS_PROC] = &mas_apss_proc,
1605         [SLAVE_GNOC_BIMC] = &slv_gnoc_bimc,
1606         [SLAVE_GNOC_SNOC] = &slv_gnoc_snoc,
1607 };
1608
1609 static const struct regmap_config sdm660_gnoc_regmap_config = {
1610         .reg_bits       = 32,
1611         .reg_stride     = 4,
1612         .val_bits       = 32,
1613         .max_register   = 0xe000,
1614         .fast_io        = true,
1615 };
1616
1617 static const struct qcom_icc_desc sdm660_gnoc = {
1618         .type = QCOM_ICC_NOC,
1619         .nodes = sdm660_gnoc_nodes,
1620         .num_nodes = ARRAY_SIZE(sdm660_gnoc_nodes),
1621         .regmap_cfg = &sdm660_gnoc_regmap_config,
1622 };
1623
1624 static struct qcom_icc_node * const sdm660_mnoc_nodes[] = {
1625         [MASTER_CPP] = &mas_cpp,
1626         [MASTER_JPEG] = &mas_jpeg,
1627         [MASTER_MDP_P0] = &mas_mdp_p0,
1628         [MASTER_MDP_P1] = &mas_mdp_p1,
1629         [MASTER_VENUS] = &mas_venus,
1630         [MASTER_VFE] = &mas_vfe,
1631         [MASTER_CNOC_MNOC_MMSS_CFG] = &mas_cnoc_mnoc_mmss_cfg,
1632         [MASTER_CNOC_MNOC_CFG] = &mas_cnoc_mnoc_cfg,
1633         [SLAVE_CAMERA_CFG] = &slv_camera_cfg,
1634         [SLAVE_CAMERA_THROTTLE_CFG] = &slv_camera_throttle_cfg,
1635         [SLAVE_MISC_CFG] = &slv_misc_cfg,
1636         [SLAVE_VENUS_THROTTLE_CFG] = &slv_venus_throttle_cfg,
1637         [SLAVE_VENUS_CFG] = &slv_venus_cfg,
1638         [SLAVE_MMSS_CLK_XPU_CFG] = &slv_mmss_clk_xpu_cfg,
1639         [SLAVE_MMSS_CLK_CFG] = &slv_mmss_clk_cfg,
1640         [SLAVE_MNOC_MPU_CFG] = &slv_mnoc_mpu_cfg,
1641         [SLAVE_DISPLAY_CFG] = &slv_display_cfg,
1642         [SLAVE_CSI_PHY_CFG] = &slv_csi_phy_cfg,
1643         [SLAVE_DISPLAY_THROTTLE_CFG] = &slv_display_throttle_cfg,
1644         [SLAVE_SMMU_CFG] = &slv_smmu_cfg,
1645         [SLAVE_SRVC_MNOC] = &slv_srvc_mnoc,
1646         [SLAVE_MNOC_BIMC] = &slv_mnoc_bimc,
1647 };
1648
1649 static const struct regmap_config sdm660_mnoc_regmap_config = {
1650         .reg_bits       = 32,
1651         .reg_stride     = 4,
1652         .val_bits       = 32,
1653         .max_register   = 0x10000,
1654         .fast_io        = true,
1655 };
1656
1657 static const struct qcom_icc_desc sdm660_mnoc = {
1658         .type = QCOM_ICC_NOC,
1659         .nodes = sdm660_mnoc_nodes,
1660         .num_nodes = ARRAY_SIZE(sdm660_mnoc_nodes),
1661         .bus_clk_desc = &mmaxi_0_clk,
1662         .intf_clocks = mm_intf_clocks,
1663         .num_intf_clocks = ARRAY_SIZE(mm_intf_clocks),
1664         .regmap_cfg = &sdm660_mnoc_regmap_config,
1665         .ab_coeff = 153,
1666 };
1667
1668 static struct qcom_icc_node * const sdm660_snoc_nodes[] = {
1669         [MASTER_QDSS_ETR] = &mas_qdss_etr,
1670         [MASTER_QDSS_BAM] = &mas_qdss_bam,
1671         [MASTER_SNOC_CFG] = &mas_snoc_cfg,
1672         [MASTER_BIMC_SNOC] = &mas_bimc_snoc,
1673         [MASTER_A2NOC_SNOC] = &mas_a2noc_snoc,
1674         [MASTER_GNOC_SNOC] = &mas_gnoc_snoc,
1675         [SLAVE_HMSS] = &slv_hmss,
1676         [SLAVE_LPASS] = &slv_lpass,
1677         [SLAVE_WLAN] = &slv_wlan,
1678         [SLAVE_CDSP] = &slv_cdsp,
1679         [SLAVE_IPA] = &slv_ipa,
1680         [SLAVE_SNOC_BIMC] = &slv_snoc_bimc,
1681         [SLAVE_SNOC_CNOC] = &slv_snoc_cnoc,
1682         [SLAVE_IMEM] = &slv_imem,
1683         [SLAVE_PIMEM] = &slv_pimem,
1684         [SLAVE_QDSS_STM] = &slv_qdss_stm,
1685         [SLAVE_SRVC_SNOC] = &slv_srvc_snoc,
1686 };
1687
1688 static const struct regmap_config sdm660_snoc_regmap_config = {
1689         .reg_bits       = 32,
1690         .reg_stride     = 4,
1691         .val_bits       = 32,
1692         .max_register   = 0x20000,
1693         .fast_io        = true,
1694 };
1695
1696 static const struct qcom_icc_desc sdm660_snoc = {
1697         .type = QCOM_ICC_NOC,
1698         .nodes = sdm660_snoc_nodes,
1699         .num_nodes = ARRAY_SIZE(sdm660_snoc_nodes),
1700         .bus_clk_desc = &bus_1_clk,
1701         .regmap_cfg = &sdm660_snoc_regmap_config,
1702 };
1703
1704 static const struct of_device_id sdm660_noc_of_match[] = {
1705         { .compatible = "qcom,sdm660-a2noc", .data = &sdm660_a2noc },
1706         { .compatible = "qcom,sdm660-bimc", .data = &sdm660_bimc },
1707         { .compatible = "qcom,sdm660-cnoc", .data = &sdm660_cnoc },
1708         { .compatible = "qcom,sdm660-gnoc", .data = &sdm660_gnoc },
1709         { .compatible = "qcom,sdm660-mnoc", .data = &sdm660_mnoc },
1710         { .compatible = "qcom,sdm660-snoc", .data = &sdm660_snoc },
1711         { },
1712 };
1713 MODULE_DEVICE_TABLE(of, sdm660_noc_of_match);
1714
1715 static struct platform_driver sdm660_noc_driver = {
1716         .probe = qnoc_probe,
1717         .remove = qnoc_remove,
1718         .driver = {
1719                 .name = "qnoc-sdm660",
1720                 .of_match_table = sdm660_noc_of_match,
1721         },
1722 };
1723 module_platform_driver(sdm660_noc_driver);
1724 MODULE_DESCRIPTION("Qualcomm sdm660 NoC driver");
1725 MODULE_LICENSE("GPL v2");