]> Git Repo - linux.git/blob - drivers/interconnect/qcom/sdm660.c
mm: abstract the vma_merge()/split_vma() pattern for mprotect() et al.
[linux.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 <[email protected]>
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         .mas_rpm_id = 8,
606         .slv_rpm_id = -1,
607         .qos.ap_owned = true,
608         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
609         .qos.areq_prio = 0,
610         .qos.prio_level = 0,
611         .qos.qos_port = 0,
612         .num_links = ARRAY_SIZE(mas_mdp_p0_links),
613         .links = mas_mdp_p0_links,
614 };
615
616 static const u16 mas_mdp_p1_links[] = {
617         SDM660_SLAVE_MNOC_BIMC
618 };
619
620 static struct qcom_icc_node mas_mdp_p1 = {
621         .name = "mas_mdp_p1",
622         .id = SDM660_MASTER_MDP_P1,
623         .buswidth = 16,
624         .mas_rpm_id = 61,
625         .slv_rpm_id = -1,
626         .qos.ap_owned = true,
627         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
628         .qos.areq_prio = 0,
629         .qos.prio_level = 0,
630         .qos.qos_port = 1,
631         .num_links = ARRAY_SIZE(mas_mdp_p1_links),
632         .links = mas_mdp_p1_links,
633 };
634
635 static const u16 mas_venus_links[] = {
636         SDM660_SLAVE_MNOC_BIMC
637 };
638
639 static struct qcom_icc_node mas_venus = {
640         .name = "mas_venus",
641         .id = SDM660_MASTER_VENUS,
642         .buswidth = 16,
643         .mas_rpm_id = 9,
644         .slv_rpm_id = -1,
645         .qos.ap_owned = true,
646         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
647         .qos.areq_prio = 0,
648         .qos.prio_level = 0,
649         .qos.qos_port = 1,
650         .num_links = ARRAY_SIZE(mas_venus_links),
651         .links = mas_venus_links,
652 };
653
654 static const u16 mas_vfe_links[] = {
655         SDM660_SLAVE_MNOC_BIMC
656 };
657
658 static struct qcom_icc_node mas_vfe = {
659         .name = "mas_vfe",
660         .id = SDM660_MASTER_VFE,
661         .buswidth = 16,
662         .mas_rpm_id = 11,
663         .slv_rpm_id = -1,
664         .qos.ap_owned = true,
665         .qos.qos_mode = NOC_QOS_MODE_BYPASS,
666         .qos.areq_prio = 0,
667         .qos.prio_level = 0,
668         .qos.qos_port = 5,
669         .num_links = ARRAY_SIZE(mas_vfe_links),
670         .links = mas_vfe_links,
671 };
672
673 static const u16 mas_qdss_etr_links[] = {
674         SDM660_SLAVE_PIMEM,
675         SDM660_SLAVE_IMEM,
676         SDM660_SLAVE_SNOC_CNOC,
677         SDM660_SLAVE_SNOC_BIMC
678 };
679
680 static struct qcom_icc_node mas_qdss_etr = {
681         .name = "mas_qdss_etr",
682         .id = SDM660_MASTER_QDSS_ETR,
683         .buswidth = 8,
684         .mas_rpm_id = 31,
685         .slv_rpm_id = -1,
686         .qos.ap_owned = true,
687         .qos.qos_mode = NOC_QOS_MODE_FIXED,
688         .qos.areq_prio = 1,
689         .qos.prio_level = 1,
690         .qos.qos_port = 1,
691         .num_links = ARRAY_SIZE(mas_qdss_etr_links),
692         .links = mas_qdss_etr_links,
693 };
694
695 static const u16 mas_qdss_bam_links[] = {
696         SDM660_SLAVE_PIMEM,
697         SDM660_SLAVE_IMEM,
698         SDM660_SLAVE_SNOC_CNOC,
699         SDM660_SLAVE_SNOC_BIMC
700 };
701
702 static struct qcom_icc_node mas_qdss_bam = {
703         .name = "mas_qdss_bam",
704         .id = SDM660_MASTER_QDSS_BAM,
705         .buswidth = 4,
706         .mas_rpm_id = 19,
707         .slv_rpm_id = -1,
708         .qos.ap_owned = true,
709         .qos.qos_mode = NOC_QOS_MODE_FIXED,
710         .qos.areq_prio = 1,
711         .qos.prio_level = 1,
712         .qos.qos_port = 0,
713         .num_links = ARRAY_SIZE(mas_qdss_bam_links),
714         .links = mas_qdss_bam_links,
715 };
716
717 static const u16 mas_snoc_cfg_links[] = {
718         SDM660_SLAVE_SRVC_SNOC
719 };
720
721 static struct qcom_icc_node mas_snoc_cfg = {
722         .name = "mas_snoc_cfg",
723         .id = SDM660_MASTER_SNOC_CFG,
724         .buswidth = 4,
725         .mas_rpm_id = 20,
726         .slv_rpm_id = -1,
727         .num_links = ARRAY_SIZE(mas_snoc_cfg_links),
728         .links = mas_snoc_cfg_links,
729 };
730
731 static const u16 mas_bimc_snoc_links[] = {
732         SDM660_SLAVE_PIMEM,
733         SDM660_SLAVE_IPA,
734         SDM660_SLAVE_QDSS_STM,
735         SDM660_SLAVE_LPASS,
736         SDM660_SLAVE_HMSS,
737         SDM660_SLAVE_CDSP,
738         SDM660_SLAVE_SNOC_CNOC,
739         SDM660_SLAVE_WLAN,
740         SDM660_SLAVE_IMEM
741 };
742
743 static struct qcom_icc_node mas_bimc_snoc = {
744         .name = "mas_bimc_snoc",
745         .id = SDM660_MASTER_BIMC_SNOC,
746         .buswidth = 8,
747         .mas_rpm_id = 21,
748         .slv_rpm_id = -1,
749         .num_links = ARRAY_SIZE(mas_bimc_snoc_links),
750         .links = mas_bimc_snoc_links,
751 };
752
753 static const u16 mas_gnoc_snoc_links[] = {
754         SDM660_SLAVE_PIMEM,
755         SDM660_SLAVE_IPA,
756         SDM660_SLAVE_QDSS_STM,
757         SDM660_SLAVE_LPASS,
758         SDM660_SLAVE_HMSS,
759         SDM660_SLAVE_CDSP,
760         SDM660_SLAVE_SNOC_CNOC,
761         SDM660_SLAVE_WLAN,
762         SDM660_SLAVE_IMEM
763 };
764
765 static struct qcom_icc_node mas_gnoc_snoc = {
766         .name = "mas_gnoc_snoc",
767         .id = SDM660_MASTER_GNOC_SNOC,
768         .buswidth = 8,
769         .mas_rpm_id = 150,
770         .slv_rpm_id = -1,
771         .num_links = ARRAY_SIZE(mas_gnoc_snoc_links),
772         .links = mas_gnoc_snoc_links,
773 };
774
775 static const u16 mas_a2noc_snoc_links[] = {
776         SDM660_SLAVE_PIMEM,
777         SDM660_SLAVE_IPA,
778         SDM660_SLAVE_QDSS_STM,
779         SDM660_SLAVE_LPASS,
780         SDM660_SLAVE_HMSS,
781         SDM660_SLAVE_SNOC_BIMC,
782         SDM660_SLAVE_CDSP,
783         SDM660_SLAVE_SNOC_CNOC,
784         SDM660_SLAVE_WLAN,
785         SDM660_SLAVE_IMEM
786 };
787
788 static struct qcom_icc_node mas_a2noc_snoc = {
789         .name = "mas_a2noc_snoc",
790         .id = SDM660_MASTER_A2NOC_SNOC,
791         .buswidth = 16,
792         .mas_rpm_id = 112,
793         .slv_rpm_id = -1,
794         .num_links = ARRAY_SIZE(mas_a2noc_snoc_links),
795         .links = mas_a2noc_snoc_links,
796 };
797
798 static const u16 slv_a2noc_snoc_links[] = {
799         SDM660_MASTER_A2NOC_SNOC
800 };
801
802 static struct qcom_icc_node slv_a2noc_snoc = {
803         .name = "slv_a2noc_snoc",
804         .id = SDM660_SLAVE_A2NOC_SNOC,
805         .buswidth = 16,
806         .mas_rpm_id = -1,
807         .slv_rpm_id = 143,
808         .num_links = ARRAY_SIZE(slv_a2noc_snoc_links),
809         .links = slv_a2noc_snoc_links,
810 };
811
812 static struct qcom_icc_node slv_ebi = {
813         .name = "slv_ebi",
814         .id = SDM660_SLAVE_EBI,
815         .buswidth = 4,
816         .mas_rpm_id = -1,
817         .slv_rpm_id = 0,
818 };
819
820 static struct qcom_icc_node slv_hmss_l3 = {
821         .name = "slv_hmss_l3",
822         .id = SDM660_SLAVE_HMSS_L3,
823         .buswidth = 4,
824         .mas_rpm_id = -1,
825         .slv_rpm_id = 160,
826 };
827
828 static const u16 slv_bimc_snoc_links[] = {
829         SDM660_MASTER_BIMC_SNOC
830 };
831
832 static struct qcom_icc_node slv_bimc_snoc = {
833         .name = "slv_bimc_snoc",
834         .id = SDM660_SLAVE_BIMC_SNOC,
835         .buswidth = 4,
836         .mas_rpm_id = -1,
837         .slv_rpm_id = 2,
838         .num_links = ARRAY_SIZE(slv_bimc_snoc_links),
839         .links = slv_bimc_snoc_links,
840 };
841
842 static const u16 slv_cnoc_a2noc_links[] = {
843         SDM660_MASTER_CNOC_A2NOC
844 };
845
846 static struct qcom_icc_node slv_cnoc_a2noc = {
847         .name = "slv_cnoc_a2noc",
848         .id = SDM660_SLAVE_CNOC_A2NOC,
849         .buswidth = 8,
850         .mas_rpm_id = -1,
851         .slv_rpm_id = 208,
852         .qos.ap_owned = true,
853         .qos.qos_mode = NOC_QOS_MODE_INVALID,
854         .num_links = ARRAY_SIZE(slv_cnoc_a2noc_links),
855         .links = slv_cnoc_a2noc_links,
856 };
857
858 static struct qcom_icc_node slv_mpm = {
859         .name = "slv_mpm",
860         .id = SDM660_SLAVE_MPM,
861         .buswidth = 4,
862         .mas_rpm_id = -1,
863         .slv_rpm_id = 62,
864         .qos.ap_owned = true,
865         .qos.qos_mode = NOC_QOS_MODE_INVALID,
866 };
867
868 static struct qcom_icc_node slv_pmic_arb = {
869         .name = "slv_pmic_arb",
870         .id = SDM660_SLAVE_PMIC_ARB,
871         .buswidth = 4,
872         .mas_rpm_id = -1,
873         .slv_rpm_id = 59,
874         .qos.ap_owned = true,
875         .qos.qos_mode = NOC_QOS_MODE_INVALID,
876 };
877
878 static struct qcom_icc_node slv_tlmm_north = {
879         .name = "slv_tlmm_north",
880         .id = SDM660_SLAVE_TLMM_NORTH,
881         .buswidth = 8,
882         .mas_rpm_id = -1,
883         .slv_rpm_id = 214,
884         .qos.ap_owned = true,
885         .qos.qos_mode = NOC_QOS_MODE_INVALID,
886 };
887
888 static struct qcom_icc_node slv_tcsr = {
889         .name = "slv_tcsr",
890         .id = SDM660_SLAVE_TCSR,
891         .buswidth = 4,
892         .mas_rpm_id = -1,
893         .slv_rpm_id = 50,
894         .qos.ap_owned = true,
895         .qos.qos_mode = NOC_QOS_MODE_INVALID,
896 };
897
898 static struct qcom_icc_node slv_pimem_cfg = {
899         .name = "slv_pimem_cfg",
900         .id = SDM660_SLAVE_PIMEM_CFG,
901         .buswidth = 4,
902         .mas_rpm_id = -1,
903         .slv_rpm_id = 167,
904         .qos.ap_owned = true,
905         .qos.qos_mode = NOC_QOS_MODE_INVALID,
906 };
907
908 static struct qcom_icc_node slv_imem_cfg = {
909         .name = "slv_imem_cfg",
910         .id = SDM660_SLAVE_IMEM_CFG,
911         .buswidth = 4,
912         .mas_rpm_id = -1,
913         .slv_rpm_id = 54,
914         .qos.ap_owned = true,
915         .qos.qos_mode = NOC_QOS_MODE_INVALID,
916 };
917
918 static struct qcom_icc_node slv_message_ram = {
919         .name = "slv_message_ram",
920         .id = SDM660_SLAVE_MESSAGE_RAM,
921         .buswidth = 4,
922         .mas_rpm_id = -1,
923         .slv_rpm_id = 55,
924         .qos.ap_owned = true,
925         .qos.qos_mode = NOC_QOS_MODE_INVALID,
926 };
927
928 static struct qcom_icc_node slv_glm = {
929         .name = "slv_glm",
930         .id = SDM660_SLAVE_GLM,
931         .buswidth = 4,
932         .mas_rpm_id = -1,
933         .slv_rpm_id = 209,
934         .qos.ap_owned = true,
935         .qos.qos_mode = NOC_QOS_MODE_INVALID,
936 };
937
938 static struct qcom_icc_node slv_bimc_cfg = {
939         .name = "slv_bimc_cfg",
940         .id = SDM660_SLAVE_BIMC_CFG,
941         .buswidth = 4,
942         .mas_rpm_id = -1,
943         .slv_rpm_id = 56,
944         .qos.ap_owned = true,
945         .qos.qos_mode = NOC_QOS_MODE_INVALID,
946 };
947
948 static struct qcom_icc_node slv_prng = {
949         .name = "slv_prng",
950         .id = SDM660_SLAVE_PRNG,
951         .buswidth = 4,
952         .mas_rpm_id = -1,
953         .slv_rpm_id = 44,
954         .qos.ap_owned = true,
955         .qos.qos_mode = NOC_QOS_MODE_INVALID,
956 };
957
958 static struct qcom_icc_node slv_spdm = {
959         .name = "slv_spdm",
960         .id = SDM660_SLAVE_SPDM,
961         .buswidth = 4,
962         .mas_rpm_id = -1,
963         .slv_rpm_id = 60,
964         .qos.ap_owned = true,
965         .qos.qos_mode = NOC_QOS_MODE_INVALID,
966 };
967
968 static struct qcom_icc_node slv_qdss_cfg = {
969         .name = "slv_qdss_cfg",
970         .id = SDM660_SLAVE_QDSS_CFG,
971         .buswidth = 4,
972         .mas_rpm_id = -1,
973         .slv_rpm_id = 63,
974         .qos.ap_owned = true,
975         .qos.qos_mode = NOC_QOS_MODE_INVALID,
976 };
977
978 static const u16 slv_cnoc_mnoc_cfg_links[] = {
979         SDM660_MASTER_CNOC_MNOC_CFG
980 };
981
982 static struct qcom_icc_node slv_cnoc_mnoc_cfg = {
983         .name = "slv_cnoc_mnoc_cfg",
984         .id = SDM660_SLAVE_CNOC_MNOC_CFG,
985         .buswidth = 4,
986         .mas_rpm_id = -1,
987         .slv_rpm_id = 66,
988         .qos.ap_owned = true,
989         .qos.qos_mode = NOC_QOS_MODE_INVALID,
990         .num_links = ARRAY_SIZE(slv_cnoc_mnoc_cfg_links),
991         .links = slv_cnoc_mnoc_cfg_links,
992 };
993
994 static struct qcom_icc_node slv_snoc_cfg = {
995         .name = "slv_snoc_cfg",
996         .id = SDM660_SLAVE_SNOC_CFG,
997         .buswidth = 4,
998         .mas_rpm_id = -1,
999         .slv_rpm_id = 70,
1000         .qos.ap_owned = true,
1001         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1002 };
1003
1004 static struct qcom_icc_node slv_qm_cfg = {
1005         .name = "slv_qm_cfg",
1006         .id = SDM660_SLAVE_QM_CFG,
1007         .buswidth = 4,
1008         .mas_rpm_id = -1,
1009         .slv_rpm_id = 212,
1010         .qos.ap_owned = true,
1011         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1012 };
1013
1014 static struct qcom_icc_node slv_clk_ctl = {
1015         .name = "slv_clk_ctl",
1016         .id = SDM660_SLAVE_CLK_CTL,
1017         .buswidth = 4,
1018         .mas_rpm_id = -1,
1019         .slv_rpm_id = 47,
1020         .qos.ap_owned = true,
1021         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1022 };
1023
1024 static struct qcom_icc_node slv_mss_cfg = {
1025         .name = "slv_mss_cfg",
1026         .id = SDM660_SLAVE_MSS_CFG,
1027         .buswidth = 4,
1028         .mas_rpm_id = -1,
1029         .slv_rpm_id = 48,
1030         .qos.ap_owned = true,
1031         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1032 };
1033
1034 static struct qcom_icc_node slv_tlmm_south = {
1035         .name = "slv_tlmm_south",
1036         .id = SDM660_SLAVE_TLMM_SOUTH,
1037         .buswidth = 4,
1038         .mas_rpm_id = -1,
1039         .slv_rpm_id = 217,
1040         .qos.ap_owned = true,
1041         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1042 };
1043
1044 static struct qcom_icc_node slv_ufs_cfg = {
1045         .name = "slv_ufs_cfg",
1046         .id = SDM660_SLAVE_UFS_CFG,
1047         .buswidth = 4,
1048         .mas_rpm_id = -1,
1049         .slv_rpm_id = 92,
1050         .qos.ap_owned = true,
1051         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1052 };
1053
1054 static struct qcom_icc_node slv_a2noc_cfg = {
1055         .name = "slv_a2noc_cfg",
1056         .id = SDM660_SLAVE_A2NOC_CFG,
1057         .buswidth = 4,
1058         .mas_rpm_id = -1,
1059         .slv_rpm_id = 150,
1060         .qos.ap_owned = true,
1061         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1062 };
1063
1064 static struct qcom_icc_node slv_a2noc_smmu_cfg = {
1065         .name = "slv_a2noc_smmu_cfg",
1066         .id = SDM660_SLAVE_A2NOC_SMMU_CFG,
1067         .buswidth = 8,
1068         .mas_rpm_id = -1,
1069         .slv_rpm_id = 152,
1070         .qos.ap_owned = true,
1071         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1072 };
1073
1074 static struct qcom_icc_node slv_gpuss_cfg = {
1075         .name = "slv_gpuss_cfg",
1076         .id = SDM660_SLAVE_GPUSS_CFG,
1077         .buswidth = 8,
1078         .mas_rpm_id = -1,
1079         .slv_rpm_id = 11,
1080         .qos.ap_owned = true,
1081         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1082 };
1083
1084 static struct qcom_icc_node slv_ahb2phy = {
1085         .name = "slv_ahb2phy",
1086         .id = SDM660_SLAVE_AHB2PHY,
1087         .buswidth = 4,
1088         .mas_rpm_id = -1,
1089         .slv_rpm_id = 163,
1090         .qos.ap_owned = true,
1091         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1092 };
1093
1094 static struct qcom_icc_node slv_blsp_1 = {
1095         .name = "slv_blsp_1",
1096         .id = SDM660_SLAVE_BLSP_1,
1097         .buswidth = 4,
1098         .mas_rpm_id = -1,
1099         .slv_rpm_id = 39,
1100         .qos.ap_owned = true,
1101         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1102 };
1103
1104 static struct qcom_icc_node slv_sdcc_1 = {
1105         .name = "slv_sdcc_1",
1106         .id = SDM660_SLAVE_SDCC_1,
1107         .buswidth = 4,
1108         .mas_rpm_id = -1,
1109         .slv_rpm_id = 31,
1110         .qos.ap_owned = true,
1111         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1112 };
1113
1114 static struct qcom_icc_node slv_sdcc_2 = {
1115         .name = "slv_sdcc_2",
1116         .id = SDM660_SLAVE_SDCC_2,
1117         .buswidth = 4,
1118         .mas_rpm_id = -1,
1119         .slv_rpm_id = 33,
1120         .qos.ap_owned = true,
1121         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1122 };
1123
1124 static struct qcom_icc_node slv_tlmm_center = {
1125         .name = "slv_tlmm_center",
1126         .id = SDM660_SLAVE_TLMM_CENTER,
1127         .buswidth = 4,
1128         .mas_rpm_id = -1,
1129         .slv_rpm_id = 218,
1130         .qos.ap_owned = true,
1131         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1132 };
1133
1134 static struct qcom_icc_node slv_blsp_2 = {
1135         .name = "slv_blsp_2",
1136         .id = SDM660_SLAVE_BLSP_2,
1137         .buswidth = 4,
1138         .mas_rpm_id = -1,
1139         .slv_rpm_id = 37,
1140         .qos.ap_owned = true,
1141         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1142 };
1143
1144 static struct qcom_icc_node slv_pdm = {
1145         .name = "slv_pdm",
1146         .id = SDM660_SLAVE_PDM,
1147         .buswidth = 4,
1148         .mas_rpm_id = -1,
1149         .slv_rpm_id = 41,
1150         .qos.ap_owned = true,
1151         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1152 };
1153
1154 static const u16 slv_cnoc_mnoc_mmss_cfg_links[] = {
1155         SDM660_MASTER_CNOC_MNOC_MMSS_CFG
1156 };
1157
1158 static struct qcom_icc_node slv_cnoc_mnoc_mmss_cfg = {
1159         .name = "slv_cnoc_mnoc_mmss_cfg",
1160         .id = SDM660_SLAVE_CNOC_MNOC_MMSS_CFG,
1161         .buswidth = 8,
1162         .mas_rpm_id = -1,
1163         .slv_rpm_id = 58,
1164         .qos.ap_owned = true,
1165         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1166         .num_links = ARRAY_SIZE(slv_cnoc_mnoc_mmss_cfg_links),
1167         .links = slv_cnoc_mnoc_mmss_cfg_links,
1168 };
1169
1170 static struct qcom_icc_node slv_usb_hs = {
1171         .name = "slv_usb_hs",
1172         .id = SDM660_SLAVE_USB_HS,
1173         .buswidth = 4,
1174         .mas_rpm_id = -1,
1175         .slv_rpm_id = 40,
1176         .qos.ap_owned = true,
1177         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1178 };
1179
1180 static struct qcom_icc_node slv_usb3_0 = {
1181         .name = "slv_usb3_0",
1182         .id = SDM660_SLAVE_USB3_0,
1183         .buswidth = 4,
1184         .mas_rpm_id = -1,
1185         .slv_rpm_id = 22,
1186         .qos.ap_owned = true,
1187         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1188 };
1189
1190 static struct qcom_icc_node slv_srvc_cnoc = {
1191         .name = "slv_srvc_cnoc",
1192         .id = SDM660_SLAVE_SRVC_CNOC,
1193         .buswidth = 4,
1194         .mas_rpm_id = -1,
1195         .slv_rpm_id = 76,
1196         .qos.ap_owned = true,
1197         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1198 };
1199
1200 static const u16 slv_gnoc_bimc_links[] = {
1201         SDM660_MASTER_GNOC_BIMC
1202 };
1203
1204 static struct qcom_icc_node slv_gnoc_bimc = {
1205         .name = "slv_gnoc_bimc",
1206         .id = SDM660_SLAVE_GNOC_BIMC,
1207         .buswidth = 16,
1208         .mas_rpm_id = -1,
1209         .slv_rpm_id = 210,
1210         .qos.ap_owned = true,
1211         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1212         .num_links = ARRAY_SIZE(slv_gnoc_bimc_links),
1213         .links = slv_gnoc_bimc_links,
1214 };
1215
1216 static const u16 slv_gnoc_snoc_links[] = {
1217         SDM660_MASTER_GNOC_SNOC
1218 };
1219
1220 static struct qcom_icc_node slv_gnoc_snoc = {
1221         .name = "slv_gnoc_snoc",
1222         .id = SDM660_SLAVE_GNOC_SNOC,
1223         .buswidth = 8,
1224         .mas_rpm_id = -1,
1225         .slv_rpm_id = 211,
1226         .qos.ap_owned = true,
1227         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1228         .num_links = ARRAY_SIZE(slv_gnoc_snoc_links),
1229         .links = slv_gnoc_snoc_links,
1230 };
1231
1232 static struct qcom_icc_node slv_camera_cfg = {
1233         .name = "slv_camera_cfg",
1234         .id = SDM660_SLAVE_CAMERA_CFG,
1235         .buswidth = 4,
1236         .mas_rpm_id = -1,
1237         .slv_rpm_id = 3,
1238         .qos.ap_owned = true,
1239         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1240 };
1241
1242 static struct qcom_icc_node slv_camera_throttle_cfg = {
1243         .name = "slv_camera_throttle_cfg",
1244         .id = SDM660_SLAVE_CAMERA_THROTTLE_CFG,
1245         .buswidth = 4,
1246         .mas_rpm_id = -1,
1247         .slv_rpm_id = 154,
1248         .qos.ap_owned = true,
1249         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1250 };
1251
1252 static struct qcom_icc_node slv_misc_cfg = {
1253         .name = "slv_misc_cfg",
1254         .id = SDM660_SLAVE_MISC_CFG,
1255         .buswidth = 4,
1256         .mas_rpm_id = -1,
1257         .slv_rpm_id = 8,
1258         .qos.ap_owned = true,
1259         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1260 };
1261
1262 static struct qcom_icc_node slv_venus_throttle_cfg = {
1263         .name = "slv_venus_throttle_cfg",
1264         .id = SDM660_SLAVE_VENUS_THROTTLE_CFG,
1265         .buswidth = 4,
1266         .mas_rpm_id = -1,
1267         .slv_rpm_id = 178,
1268         .qos.ap_owned = true,
1269         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1270 };
1271
1272 static struct qcom_icc_node slv_venus_cfg = {
1273         .name = "slv_venus_cfg",
1274         .id = SDM660_SLAVE_VENUS_CFG,
1275         .buswidth = 4,
1276         .mas_rpm_id = -1,
1277         .slv_rpm_id = 10,
1278         .qos.ap_owned = true,
1279         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1280 };
1281
1282 static struct qcom_icc_node slv_mmss_clk_xpu_cfg = {
1283         .name = "slv_mmss_clk_xpu_cfg",
1284         .id = SDM660_SLAVE_MMSS_CLK_XPU_CFG,
1285         .buswidth = 4,
1286         .mas_rpm_id = -1,
1287         .slv_rpm_id = 13,
1288         .qos.ap_owned = true,
1289         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1290 };
1291
1292 static struct qcom_icc_node slv_mmss_clk_cfg = {
1293         .name = "slv_mmss_clk_cfg",
1294         .id = SDM660_SLAVE_MMSS_CLK_CFG,
1295         .buswidth = 4,
1296         .mas_rpm_id = -1,
1297         .slv_rpm_id = 12,
1298         .qos.ap_owned = true,
1299         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1300 };
1301
1302 static struct qcom_icc_node slv_mnoc_mpu_cfg = {
1303         .name = "slv_mnoc_mpu_cfg",
1304         .id = SDM660_SLAVE_MNOC_MPU_CFG,
1305         .buswidth = 4,
1306         .mas_rpm_id = -1,
1307         .slv_rpm_id = 14,
1308         .qos.ap_owned = true,
1309         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1310 };
1311
1312 static struct qcom_icc_node slv_display_cfg = {
1313         .name = "slv_display_cfg",
1314         .id = SDM660_SLAVE_DISPLAY_CFG,
1315         .buswidth = 4,
1316         .mas_rpm_id = -1,
1317         .slv_rpm_id = 4,
1318         .qos.ap_owned = true,
1319         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1320 };
1321
1322 static struct qcom_icc_node slv_csi_phy_cfg = {
1323         .name = "slv_csi_phy_cfg",
1324         .id = SDM660_SLAVE_CSI_PHY_CFG,
1325         .buswidth = 4,
1326         .mas_rpm_id = -1,
1327         .slv_rpm_id = 224,
1328         .qos.ap_owned = true,
1329         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1330 };
1331
1332 static struct qcom_icc_node slv_display_throttle_cfg = {
1333         .name = "slv_display_throttle_cfg",
1334         .id = SDM660_SLAVE_DISPLAY_THROTTLE_CFG,
1335         .buswidth = 4,
1336         .mas_rpm_id = -1,
1337         .slv_rpm_id = 156,
1338         .qos.ap_owned = true,
1339         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1340 };
1341
1342 static struct qcom_icc_node slv_smmu_cfg = {
1343         .name = "slv_smmu_cfg",
1344         .id = SDM660_SLAVE_SMMU_CFG,
1345         .buswidth = 8,
1346         .mas_rpm_id = -1,
1347         .slv_rpm_id = 205,
1348         .qos.ap_owned = true,
1349         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1350 };
1351
1352 static const u16 slv_mnoc_bimc_links[] = {
1353         SDM660_MASTER_MNOC_BIMC
1354 };
1355
1356 static struct qcom_icc_node slv_mnoc_bimc = {
1357         .name = "slv_mnoc_bimc",
1358         .id = SDM660_SLAVE_MNOC_BIMC,
1359         .buswidth = 16,
1360         .mas_rpm_id = -1,
1361         .slv_rpm_id = 16,
1362         .qos.ap_owned = true,
1363         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1364         .num_links = ARRAY_SIZE(slv_mnoc_bimc_links),
1365         .links = slv_mnoc_bimc_links,
1366 };
1367
1368 static struct qcom_icc_node slv_srvc_mnoc = {
1369         .name = "slv_srvc_mnoc",
1370         .id = SDM660_SLAVE_SRVC_MNOC,
1371         .buswidth = 8,
1372         .mas_rpm_id = -1,
1373         .slv_rpm_id = 17,
1374         .qos.ap_owned = true,
1375         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1376 };
1377
1378 static struct qcom_icc_node slv_hmss = {
1379         .name = "slv_hmss",
1380         .id = SDM660_SLAVE_HMSS,
1381         .buswidth = 8,
1382         .mas_rpm_id = -1,
1383         .slv_rpm_id = 20,
1384         .qos.ap_owned = true,
1385         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1386 };
1387
1388 static struct qcom_icc_node slv_lpass = {
1389         .name = "slv_lpass",
1390         .id = SDM660_SLAVE_LPASS,
1391         .buswidth = 4,
1392         .mas_rpm_id = -1,
1393         .slv_rpm_id = 21,
1394         .qos.ap_owned = true,
1395         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1396 };
1397
1398 static struct qcom_icc_node slv_wlan = {
1399         .name = "slv_wlan",
1400         .id = SDM660_SLAVE_WLAN,
1401         .buswidth = 4,
1402         .mas_rpm_id = -1,
1403         .slv_rpm_id = 206,
1404 };
1405
1406 static struct qcom_icc_node slv_cdsp = {
1407         .name = "slv_cdsp",
1408         .id = SDM660_SLAVE_CDSP,
1409         .buswidth = 4,
1410         .mas_rpm_id = -1,
1411         .slv_rpm_id = 221,
1412         .qos.ap_owned = true,
1413         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1414 };
1415
1416 static struct qcom_icc_node slv_ipa = {
1417         .name = "slv_ipa",
1418         .id = SDM660_SLAVE_IPA,
1419         .buswidth = 4,
1420         .mas_rpm_id = -1,
1421         .slv_rpm_id = 183,
1422         .qos.ap_owned = true,
1423         .qos.qos_mode = NOC_QOS_MODE_INVALID,
1424 };
1425
1426 static const u16 slv_snoc_bimc_links[] = {
1427         SDM660_MASTER_SNOC_BIMC
1428 };
1429
1430 static struct qcom_icc_node slv_snoc_bimc = {
1431         .name = "slv_snoc_bimc",
1432         .id = SDM660_SLAVE_SNOC_BIMC,
1433         .buswidth = 16,
1434         .mas_rpm_id = -1,
1435         .slv_rpm_id = 24,
1436         .num_links = ARRAY_SIZE(slv_snoc_bimc_links),
1437         .links = slv_snoc_bimc_links,
1438 };
1439
1440 static const u16 slv_snoc_cnoc_links[] = {
1441         SDM660_MASTER_SNOC_CNOC
1442 };
1443
1444 static struct qcom_icc_node slv_snoc_cnoc = {
1445         .name = "slv_snoc_cnoc",
1446         .id = SDM660_SLAVE_SNOC_CNOC,
1447         .buswidth = 8,
1448         .mas_rpm_id = -1,
1449         .slv_rpm_id = 25,
1450         .num_links = ARRAY_SIZE(slv_snoc_cnoc_links),
1451         .links = slv_snoc_cnoc_links,
1452 };
1453
1454 static struct qcom_icc_node slv_imem = {
1455         .name = "slv_imem",
1456         .id = SDM660_SLAVE_IMEM,
1457         .buswidth = 8,
1458         .mas_rpm_id = -1,
1459         .slv_rpm_id = 26,
1460 };
1461
1462 static struct qcom_icc_node slv_pimem = {
1463         .name = "slv_pimem",
1464         .id = SDM660_SLAVE_PIMEM,
1465         .buswidth = 8,
1466         .mas_rpm_id = -1,
1467         .slv_rpm_id = 166,
1468 };
1469
1470 static struct qcom_icc_node slv_qdss_stm = {
1471         .name = "slv_qdss_stm",
1472         .id = SDM660_SLAVE_QDSS_STM,
1473         .buswidth = 4,
1474         .mas_rpm_id = -1,
1475         .slv_rpm_id = 30,
1476 };
1477
1478 static struct qcom_icc_node slv_srvc_snoc = {
1479         .name = "slv_srvc_snoc",
1480         .id = SDM660_SLAVE_SRVC_SNOC,
1481         .buswidth = 16,
1482         .mas_rpm_id = -1,
1483         .slv_rpm_id = 29,
1484 };
1485
1486 static struct qcom_icc_node * const sdm660_a2noc_nodes[] = {
1487         [MASTER_IPA] = &mas_ipa,
1488         [MASTER_CNOC_A2NOC] = &mas_cnoc_a2noc,
1489         [MASTER_SDCC_1] = &mas_sdcc_1,
1490         [MASTER_SDCC_2] = &mas_sdcc_2,
1491         [MASTER_BLSP_1] = &mas_blsp_1,
1492         [MASTER_BLSP_2] = &mas_blsp_2,
1493         [MASTER_UFS] = &mas_ufs,
1494         [MASTER_USB_HS] = &mas_usb_hs,
1495         [MASTER_USB3] = &mas_usb3,
1496         [MASTER_CRYPTO_C0] = &mas_crypto,
1497         [SLAVE_A2NOC_SNOC] = &slv_a2noc_snoc,
1498 };
1499
1500 static const struct regmap_config sdm660_a2noc_regmap_config = {
1501         .reg_bits       = 32,
1502         .reg_stride     = 4,
1503         .val_bits       = 32,
1504         .max_register   = 0x20000,
1505         .fast_io        = true,
1506 };
1507
1508 static const struct qcom_icc_desc sdm660_a2noc = {
1509         .type = QCOM_ICC_NOC,
1510         .nodes = sdm660_a2noc_nodes,
1511         .num_nodes = ARRAY_SIZE(sdm660_a2noc_nodes),
1512         .bus_clk_desc = &aggre2_clk,
1513         .intf_clocks = a2noc_intf_clocks,
1514         .num_intf_clocks = ARRAY_SIZE(a2noc_intf_clocks),
1515         .regmap_cfg = &sdm660_a2noc_regmap_config,
1516 };
1517
1518 static struct qcom_icc_node * const sdm660_bimc_nodes[] = {
1519         [MASTER_GNOC_BIMC] = &mas_gnoc_bimc,
1520         [MASTER_OXILI] = &mas_oxili,
1521         [MASTER_MNOC_BIMC] = &mas_mnoc_bimc,
1522         [MASTER_SNOC_BIMC] = &mas_snoc_bimc,
1523         [MASTER_PIMEM] = &mas_pimem,
1524         [SLAVE_EBI] = &slv_ebi,
1525         [SLAVE_HMSS_L3] = &slv_hmss_l3,
1526         [SLAVE_BIMC_SNOC] = &slv_bimc_snoc,
1527 };
1528
1529 static const struct regmap_config sdm660_bimc_regmap_config = {
1530         .reg_bits       = 32,
1531         .reg_stride     = 4,
1532         .val_bits       = 32,
1533         .max_register   = 0x80000,
1534         .fast_io        = true,
1535 };
1536
1537 static const struct qcom_icc_desc sdm660_bimc = {
1538         .type = QCOM_ICC_BIMC,
1539         .nodes = sdm660_bimc_nodes,
1540         .num_nodes = ARRAY_SIZE(sdm660_bimc_nodes),
1541         .bus_clk_desc = &bimc_clk,
1542         .regmap_cfg = &sdm660_bimc_regmap_config,
1543 };
1544
1545 static struct qcom_icc_node * const sdm660_cnoc_nodes[] = {
1546         [MASTER_SNOC_CNOC] = &mas_snoc_cnoc,
1547         [MASTER_QDSS_DAP] = &mas_qdss_dap,
1548         [SLAVE_CNOC_A2NOC] = &slv_cnoc_a2noc,
1549         [SLAVE_MPM] = &slv_mpm,
1550         [SLAVE_PMIC_ARB] = &slv_pmic_arb,
1551         [SLAVE_TLMM_NORTH] = &slv_tlmm_north,
1552         [SLAVE_TCSR] = &slv_tcsr,
1553         [SLAVE_PIMEM_CFG] = &slv_pimem_cfg,
1554         [SLAVE_IMEM_CFG] = &slv_imem_cfg,
1555         [SLAVE_MESSAGE_RAM] = &slv_message_ram,
1556         [SLAVE_GLM] = &slv_glm,
1557         [SLAVE_BIMC_CFG] = &slv_bimc_cfg,
1558         [SLAVE_PRNG] = &slv_prng,
1559         [SLAVE_SPDM] = &slv_spdm,
1560         [SLAVE_QDSS_CFG] = &slv_qdss_cfg,
1561         [SLAVE_CNOC_MNOC_CFG] = &slv_cnoc_mnoc_cfg,
1562         [SLAVE_SNOC_CFG] = &slv_snoc_cfg,
1563         [SLAVE_QM_CFG] = &slv_qm_cfg,
1564         [SLAVE_CLK_CTL] = &slv_clk_ctl,
1565         [SLAVE_MSS_CFG] = &slv_mss_cfg,
1566         [SLAVE_TLMM_SOUTH] = &slv_tlmm_south,
1567         [SLAVE_UFS_CFG] = &slv_ufs_cfg,
1568         [SLAVE_A2NOC_CFG] = &slv_a2noc_cfg,
1569         [SLAVE_A2NOC_SMMU_CFG] = &slv_a2noc_smmu_cfg,
1570         [SLAVE_GPUSS_CFG] = &slv_gpuss_cfg,
1571         [SLAVE_AHB2PHY] = &slv_ahb2phy,
1572         [SLAVE_BLSP_1] = &slv_blsp_1,
1573         [SLAVE_SDCC_1] = &slv_sdcc_1,
1574         [SLAVE_SDCC_2] = &slv_sdcc_2,
1575         [SLAVE_TLMM_CENTER] = &slv_tlmm_center,
1576         [SLAVE_BLSP_2] = &slv_blsp_2,
1577         [SLAVE_PDM] = &slv_pdm,
1578         [SLAVE_CNOC_MNOC_MMSS_CFG] = &slv_cnoc_mnoc_mmss_cfg,
1579         [SLAVE_USB_HS] = &slv_usb_hs,
1580         [SLAVE_USB3_0] = &slv_usb3_0,
1581         [SLAVE_SRVC_CNOC] = &slv_srvc_cnoc,
1582 };
1583
1584 static const struct regmap_config sdm660_cnoc_regmap_config = {
1585         .reg_bits       = 32,
1586         .reg_stride     = 4,
1587         .val_bits       = 32,
1588         .max_register   = 0x10000,
1589         .fast_io        = true,
1590 };
1591
1592 static const struct qcom_icc_desc sdm660_cnoc = {
1593         .type = QCOM_ICC_NOC,
1594         .nodes = sdm660_cnoc_nodes,
1595         .num_nodes = ARRAY_SIZE(sdm660_cnoc_nodes),
1596         .bus_clk_desc = &bus_2_clk,
1597         .regmap_cfg = &sdm660_cnoc_regmap_config,
1598 };
1599
1600 static struct qcom_icc_node * const sdm660_gnoc_nodes[] = {
1601         [MASTER_APSS_PROC] = &mas_apss_proc,
1602         [SLAVE_GNOC_BIMC] = &slv_gnoc_bimc,
1603         [SLAVE_GNOC_SNOC] = &slv_gnoc_snoc,
1604 };
1605
1606 static const struct regmap_config sdm660_gnoc_regmap_config = {
1607         .reg_bits       = 32,
1608         .reg_stride     = 4,
1609         .val_bits       = 32,
1610         .max_register   = 0xe000,
1611         .fast_io        = true,
1612 };
1613
1614 static const struct qcom_icc_desc sdm660_gnoc = {
1615         .type = QCOM_ICC_NOC,
1616         .nodes = sdm660_gnoc_nodes,
1617         .num_nodes = ARRAY_SIZE(sdm660_gnoc_nodes),
1618         .regmap_cfg = &sdm660_gnoc_regmap_config,
1619 };
1620
1621 static struct qcom_icc_node * const sdm660_mnoc_nodes[] = {
1622         [MASTER_CPP] = &mas_cpp,
1623         [MASTER_JPEG] = &mas_jpeg,
1624         [MASTER_MDP_P0] = &mas_mdp_p0,
1625         [MASTER_MDP_P1] = &mas_mdp_p1,
1626         [MASTER_VENUS] = &mas_venus,
1627         [MASTER_VFE] = &mas_vfe,
1628         [MASTER_CNOC_MNOC_MMSS_CFG] = &mas_cnoc_mnoc_mmss_cfg,
1629         [MASTER_CNOC_MNOC_CFG] = &mas_cnoc_mnoc_cfg,
1630         [SLAVE_CAMERA_CFG] = &slv_camera_cfg,
1631         [SLAVE_CAMERA_THROTTLE_CFG] = &slv_camera_throttle_cfg,
1632         [SLAVE_MISC_CFG] = &slv_misc_cfg,
1633         [SLAVE_VENUS_THROTTLE_CFG] = &slv_venus_throttle_cfg,
1634         [SLAVE_VENUS_CFG] = &slv_venus_cfg,
1635         [SLAVE_MMSS_CLK_XPU_CFG] = &slv_mmss_clk_xpu_cfg,
1636         [SLAVE_MMSS_CLK_CFG] = &slv_mmss_clk_cfg,
1637         [SLAVE_MNOC_MPU_CFG] = &slv_mnoc_mpu_cfg,
1638         [SLAVE_DISPLAY_CFG] = &slv_display_cfg,
1639         [SLAVE_CSI_PHY_CFG] = &slv_csi_phy_cfg,
1640         [SLAVE_DISPLAY_THROTTLE_CFG] = &slv_display_throttle_cfg,
1641         [SLAVE_SMMU_CFG] = &slv_smmu_cfg,
1642         [SLAVE_SRVC_MNOC] = &slv_srvc_mnoc,
1643         [SLAVE_MNOC_BIMC] = &slv_mnoc_bimc,
1644 };
1645
1646 static const struct regmap_config sdm660_mnoc_regmap_config = {
1647         .reg_bits       = 32,
1648         .reg_stride     = 4,
1649         .val_bits       = 32,
1650         .max_register   = 0x10000,
1651         .fast_io        = true,
1652 };
1653
1654 static const struct qcom_icc_desc sdm660_mnoc = {
1655         .type = QCOM_ICC_NOC,
1656         .nodes = sdm660_mnoc_nodes,
1657         .num_nodes = ARRAY_SIZE(sdm660_mnoc_nodes),
1658         .bus_clk_desc = &mmaxi_0_clk,
1659         .intf_clocks = mm_intf_clocks,
1660         .num_intf_clocks = ARRAY_SIZE(mm_intf_clocks),
1661         .regmap_cfg = &sdm660_mnoc_regmap_config,
1662 };
1663
1664 static struct qcom_icc_node * const sdm660_snoc_nodes[] = {
1665         [MASTER_QDSS_ETR] = &mas_qdss_etr,
1666         [MASTER_QDSS_BAM] = &mas_qdss_bam,
1667         [MASTER_SNOC_CFG] = &mas_snoc_cfg,
1668         [MASTER_BIMC_SNOC] = &mas_bimc_snoc,
1669         [MASTER_A2NOC_SNOC] = &mas_a2noc_snoc,
1670         [MASTER_GNOC_SNOC] = &mas_gnoc_snoc,
1671         [SLAVE_HMSS] = &slv_hmss,
1672         [SLAVE_LPASS] = &slv_lpass,
1673         [SLAVE_WLAN] = &slv_wlan,
1674         [SLAVE_CDSP] = &slv_cdsp,
1675         [SLAVE_IPA] = &slv_ipa,
1676         [SLAVE_SNOC_BIMC] = &slv_snoc_bimc,
1677         [SLAVE_SNOC_CNOC] = &slv_snoc_cnoc,
1678         [SLAVE_IMEM] = &slv_imem,
1679         [SLAVE_PIMEM] = &slv_pimem,
1680         [SLAVE_QDSS_STM] = &slv_qdss_stm,
1681         [SLAVE_SRVC_SNOC] = &slv_srvc_snoc,
1682 };
1683
1684 static const struct regmap_config sdm660_snoc_regmap_config = {
1685         .reg_bits       = 32,
1686         .reg_stride     = 4,
1687         .val_bits       = 32,
1688         .max_register   = 0x20000,
1689         .fast_io        = true,
1690 };
1691
1692 static const struct qcom_icc_desc sdm660_snoc = {
1693         .type = QCOM_ICC_NOC,
1694         .nodes = sdm660_snoc_nodes,
1695         .num_nodes = ARRAY_SIZE(sdm660_snoc_nodes),
1696         .bus_clk_desc = &bus_1_clk,
1697         .regmap_cfg = &sdm660_snoc_regmap_config,
1698 };
1699
1700 static const struct of_device_id sdm660_noc_of_match[] = {
1701         { .compatible = "qcom,sdm660-a2noc", .data = &sdm660_a2noc },
1702         { .compatible = "qcom,sdm660-bimc", .data = &sdm660_bimc },
1703         { .compatible = "qcom,sdm660-cnoc", .data = &sdm660_cnoc },
1704         { .compatible = "qcom,sdm660-gnoc", .data = &sdm660_gnoc },
1705         { .compatible = "qcom,sdm660-mnoc", .data = &sdm660_mnoc },
1706         { .compatible = "qcom,sdm660-snoc", .data = &sdm660_snoc },
1707         { },
1708 };
1709 MODULE_DEVICE_TABLE(of, sdm660_noc_of_match);
1710
1711 static struct platform_driver sdm660_noc_driver = {
1712         .probe = qnoc_probe,
1713         .remove = qnoc_remove,
1714         .driver = {
1715                 .name = "qnoc-sdm660",
1716                 .of_match_table = sdm660_noc_of_match,
1717         },
1718 };
1719 module_platform_driver(sdm660_noc_driver);
1720 MODULE_DESCRIPTION("Qualcomm sdm660 NoC driver");
1721 MODULE_LICENSE("GPL v2");
This page took 0.130973 seconds and 4 git commands to generate.