1 // SPDX-License-Identifier: GPL-2.0-only
3 * Qualcomm MSM8996 Network-on-Chip (NoC) QoS driver
5 * Copyright (c) 2021 Yassine Oudjana <y.oudjana@protonmail.com>
8 #include <linux/device.h>
9 #include <linux/interconnect-provider.h>
11 #include <linux/mod_devicetable.h>
12 #include <linux/module.h>
13 #include <linux/platform_device.h>
14 #include <linux/regmap.h>
16 #include <dt-bindings/interconnect/qcom,msm8996.h>
21 static const char * const mm_intf_clocks
[] = {
25 static const char * const a0noc_intf_clocks
[] = {
31 static const char * const a2noc_intf_clocks
[] = {
36 static const u16 mas_a0noc_common_links
[] = {
37 MSM8996_SLAVE_A0NOC_SNOC
40 static struct qcom_icc_node mas_pcie_0
= {
42 .id
= MSM8996_MASTER_PCIE_0
,
47 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
51 .num_links
= ARRAY_SIZE(mas_a0noc_common_links
),
52 .links
= mas_a0noc_common_links
55 static struct qcom_icc_node mas_pcie_1
= {
57 .id
= MSM8996_MASTER_PCIE_1
,
62 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
66 .num_links
= ARRAY_SIZE(mas_a0noc_common_links
),
67 .links
= mas_a0noc_common_links
70 static struct qcom_icc_node mas_pcie_2
= {
72 .id
= MSM8996_MASTER_PCIE_2
,
77 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
81 .num_links
= ARRAY_SIZE(mas_a0noc_common_links
),
82 .links
= mas_a0noc_common_links
85 static const u16 mas_a1noc_common_links
[] = {
86 MSM8996_SLAVE_A1NOC_SNOC
89 static struct qcom_icc_node mas_cnoc_a1noc
= {
90 .name
= "mas_cnoc_a1noc",
91 .id
= MSM8996_MASTER_CNOC_A1NOC
,
96 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
97 .num_links
= ARRAY_SIZE(mas_a1noc_common_links
),
98 .links
= mas_a1noc_common_links
101 static struct qcom_icc_node mas_crypto_c0
= {
102 .name
= "mas_crypto_c0",
103 .id
= MSM8996_MASTER_CRYPTO_CORE0
,
107 .qos
.ap_owned
= true,
108 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
112 .num_links
= ARRAY_SIZE(mas_a1noc_common_links
),
113 .links
= mas_a1noc_common_links
116 static struct qcom_icc_node mas_pnoc_a1noc
= {
117 .name
= "mas_pnoc_a1noc",
118 .id
= MSM8996_MASTER_PNOC_A1NOC
,
122 .qos
.ap_owned
= false,
123 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
127 .num_links
= ARRAY_SIZE(mas_a1noc_common_links
),
128 .links
= mas_a1noc_common_links
131 static const u16 mas_a2noc_common_links
[] = {
132 MSM8996_SLAVE_A2NOC_SNOC
135 static struct qcom_icc_node mas_usb3
= {
137 .id
= MSM8996_MASTER_USB3
,
141 .qos
.ap_owned
= true,
142 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
146 .num_links
= ARRAY_SIZE(mas_a2noc_common_links
),
147 .links
= mas_a2noc_common_links
150 static struct qcom_icc_node mas_ipa
= {
152 .id
= MSM8996_MASTER_IPA
,
156 .qos
.ap_owned
= true,
157 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
161 .num_links
= ARRAY_SIZE(mas_a2noc_common_links
),
162 .links
= mas_a2noc_common_links
165 static struct qcom_icc_node mas_ufs
= {
167 .id
= MSM8996_MASTER_UFS
,
171 .qos
.ap_owned
= true,
172 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
176 .num_links
= ARRAY_SIZE(mas_a2noc_common_links
),
177 .links
= mas_a2noc_common_links
180 static const u16 mas_apps_proc_links
[] = {
181 MSM8996_SLAVE_BIMC_SNOC_1
,
182 MSM8996_SLAVE_EBI_CH0
,
183 MSM8996_SLAVE_BIMC_SNOC_0
186 static struct qcom_icc_node mas_apps_proc
= {
187 .name
= "mas_apps_proc",
188 .id
= MSM8996_MASTER_AMPSS_M0
,
192 .qos
.ap_owned
= true,
193 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
197 .num_links
= ARRAY_SIZE(mas_apps_proc_links
),
198 .links
= mas_apps_proc_links
201 static const u16 mas_oxili_common_links
[] = {
202 MSM8996_SLAVE_BIMC_SNOC_1
,
203 MSM8996_SLAVE_HMSS_L3
,
204 MSM8996_SLAVE_EBI_CH0
,
205 MSM8996_SLAVE_BIMC_SNOC_0
208 static struct qcom_icc_node mas_oxili
= {
210 .id
= MSM8996_MASTER_GRAPHICS_3D
,
214 .qos
.ap_owned
= true,
215 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
219 .num_links
= ARRAY_SIZE(mas_oxili_common_links
),
220 .links
= mas_oxili_common_links
223 static struct qcom_icc_node mas_mnoc_bimc
= {
224 .name
= "mas_mnoc_bimc",
225 .id
= MSM8996_MASTER_MNOC_BIMC
,
229 .qos
.ap_owned
= true,
230 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
234 .num_links
= ARRAY_SIZE(mas_oxili_common_links
),
235 .links
= mas_oxili_common_links
238 static const u16 mas_snoc_bimc_links
[] = {
239 MSM8996_SLAVE_HMSS_L3
,
240 MSM8996_SLAVE_EBI_CH0
243 static struct qcom_icc_node mas_snoc_bimc
= {
244 .name
= "mas_snoc_bimc",
245 .id
= MSM8996_MASTER_SNOC_BIMC
,
249 .qos
.ap_owned
= false,
250 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
254 .num_links
= ARRAY_SIZE(mas_snoc_bimc_links
),
255 .links
= mas_snoc_bimc_links
258 static const u16 mas_snoc_cnoc_links
[] = {
259 MSM8996_SLAVE_CLK_CTL
,
260 MSM8996_SLAVE_RBCPR_CX
,
261 MSM8996_SLAVE_A2NOC_SMMU_CFG
,
262 MSM8996_SLAVE_A0NOC_MPU_CFG
,
263 MSM8996_SLAVE_MESSAGE_RAM
,
264 MSM8996_SLAVE_CNOC_MNOC_MMSS_CFG
,
265 MSM8996_SLAVE_PCIE_0_CFG
,
268 MSM8996_SLAVE_A0NOC_SMMU_CFG
,
269 MSM8996_SLAVE_EBI1_PHY_CFG
,
270 MSM8996_SLAVE_BIMC_CFG
,
271 MSM8996_SLAVE_PIMEM_CFG
,
272 MSM8996_SLAVE_RBCPR_MX
,
274 MSM8996_SLAVE_PCIE20_AHB2PHY
,
275 MSM8996_SLAVE_A2NOC_MPU_CFG
,
276 MSM8996_SLAVE_QDSS_CFG
,
277 MSM8996_SLAVE_A2NOC_CFG
,
278 MSM8996_SLAVE_A0NOC_CFG
,
279 MSM8996_SLAVE_UFS_CFG
,
280 MSM8996_SLAVE_CRYPTO_0_CFG
,
281 MSM8996_SLAVE_PCIE_1_CFG
,
282 MSM8996_SLAVE_SNOC_CFG
,
283 MSM8996_SLAVE_SNOC_MPU_CFG
,
284 MSM8996_SLAVE_A1NOC_MPU_CFG
,
285 MSM8996_SLAVE_A1NOC_SMMU_CFG
,
286 MSM8996_SLAVE_PCIE_2_CFG
,
287 MSM8996_SLAVE_CNOC_MNOC_CFG
,
288 MSM8996_SLAVE_QDSS_RBCPR_APU_CFG
,
289 MSM8996_SLAVE_PMIC_ARB
,
290 MSM8996_SLAVE_IMEM_CFG
,
291 MSM8996_SLAVE_A1NOC_CFG
,
292 MSM8996_SLAVE_SSC_CFG
,
294 MSM8996_SLAVE_LPASS_SMMU_CFG
,
295 MSM8996_SLAVE_DCC_CFG
298 static struct qcom_icc_node mas_snoc_cnoc
= {
299 .name
= "mas_snoc_cnoc",
300 .id
= MSM8996_MASTER_SNOC_CNOC
,
304 .num_links
= ARRAY_SIZE(mas_snoc_cnoc_links
),
305 .links
= mas_snoc_cnoc_links
308 static const u16 mas_qdss_dap_links
[] = {
309 MSM8996_SLAVE_QDSS_RBCPR_APU_CFG
,
310 MSM8996_SLAVE_RBCPR_CX
,
311 MSM8996_SLAVE_A2NOC_SMMU_CFG
,
312 MSM8996_SLAVE_A0NOC_MPU_CFG
,
313 MSM8996_SLAVE_MESSAGE_RAM
,
314 MSM8996_SLAVE_PCIE_0_CFG
,
317 MSM8996_SLAVE_A0NOC_SMMU_CFG
,
318 MSM8996_SLAVE_EBI1_PHY_CFG
,
319 MSM8996_SLAVE_BIMC_CFG
,
320 MSM8996_SLAVE_PIMEM_CFG
,
321 MSM8996_SLAVE_RBCPR_MX
,
322 MSM8996_SLAVE_CLK_CTL
,
324 MSM8996_SLAVE_PCIE20_AHB2PHY
,
325 MSM8996_SLAVE_A2NOC_MPU_CFG
,
326 MSM8996_SLAVE_QDSS_CFG
,
327 MSM8996_SLAVE_A2NOC_CFG
,
328 MSM8996_SLAVE_A0NOC_CFG
,
329 MSM8996_SLAVE_UFS_CFG
,
330 MSM8996_SLAVE_CRYPTO_0_CFG
,
331 MSM8996_SLAVE_CNOC_A1NOC
,
332 MSM8996_SLAVE_PCIE_1_CFG
,
333 MSM8996_SLAVE_SNOC_CFG
,
334 MSM8996_SLAVE_SNOC_MPU_CFG
,
335 MSM8996_SLAVE_A1NOC_MPU_CFG
,
336 MSM8996_SLAVE_A1NOC_SMMU_CFG
,
337 MSM8996_SLAVE_PCIE_2_CFG
,
338 MSM8996_SLAVE_CNOC_MNOC_CFG
,
339 MSM8996_SLAVE_CNOC_MNOC_MMSS_CFG
,
340 MSM8996_SLAVE_PMIC_ARB
,
341 MSM8996_SLAVE_IMEM_CFG
,
342 MSM8996_SLAVE_A1NOC_CFG
,
343 MSM8996_SLAVE_SSC_CFG
,
345 MSM8996_SLAVE_LPASS_SMMU_CFG
,
346 MSM8996_SLAVE_DCC_CFG
349 static struct qcom_icc_node mas_qdss_dap
= {
350 .name
= "mas_qdss_dap",
351 .id
= MSM8996_MASTER_QDSS_DAP
,
355 .qos
.ap_owned
= true,
356 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
357 .num_links
= ARRAY_SIZE(mas_qdss_dap_links
),
358 .links
= mas_qdss_dap_links
361 static const u16 mas_cnoc_mnoc_mmss_cfg_links
[] = {
362 MSM8996_SLAVE_MMAGIC_CFG
,
363 MSM8996_SLAVE_DSA_MPU_CFG
,
364 MSM8996_SLAVE_MMSS_CLK_CFG
,
365 MSM8996_SLAVE_CAMERA_THROTTLE_CFG
,
366 MSM8996_SLAVE_VENUS_CFG
,
367 MSM8996_SLAVE_SMMU_VFE_CFG
,
368 MSM8996_SLAVE_MISC_CFG
,
369 MSM8996_SLAVE_SMMU_CPP_CFG
,
370 MSM8996_SLAVE_GRAPHICS_3D_CFG
,
371 MSM8996_SLAVE_DISPLAY_THROTTLE_CFG
,
372 MSM8996_SLAVE_VENUS_THROTTLE_CFG
,
373 MSM8996_SLAVE_CAMERA_CFG
,
374 MSM8996_SLAVE_DISPLAY_CFG
,
375 MSM8996_SLAVE_CPR_CFG
,
376 MSM8996_SLAVE_SMMU_ROTATOR_CFG
,
377 MSM8996_SLAVE_DSA_CFG
,
378 MSM8996_SLAVE_SMMU_VENUS_CFG
,
379 MSM8996_SLAVE_VMEM_CFG
,
380 MSM8996_SLAVE_SMMU_JPEG_CFG
,
381 MSM8996_SLAVE_SMMU_MDP_CFG
,
382 MSM8996_SLAVE_MNOC_MPU_CFG
385 static struct qcom_icc_node mas_cnoc_mnoc_mmss_cfg
= {
386 .name
= "mas_cnoc_mnoc_mmss_cfg",
387 .id
= MSM8996_MASTER_CNOC_MNOC_MMSS_CFG
,
391 .qos
.ap_owned
= true,
392 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
393 .num_links
= ARRAY_SIZE(mas_cnoc_mnoc_mmss_cfg_links
),
394 .links
= mas_cnoc_mnoc_mmss_cfg_links
397 static const u16 mas_cnoc_mnoc_cfg_links
[] = {
398 MSM8996_SLAVE_SERVICE_MNOC
401 static struct qcom_icc_node mas_cnoc_mnoc_cfg
= {
402 .name
= "mas_cnoc_mnoc_cfg",
403 .id
= MSM8996_MASTER_CNOC_MNOC_CFG
,
407 .qos
.ap_owned
= true,
408 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
409 .num_links
= ARRAY_SIZE(mas_cnoc_mnoc_cfg_links
),
410 .links
= mas_cnoc_mnoc_cfg_links
413 static const u16 mas_mnoc_bimc_common_links
[] = {
414 MSM8996_SLAVE_MNOC_BIMC
417 static struct qcom_icc_node mas_cpp
= {
419 .id
= MSM8996_MASTER_CPP
,
423 .qos
.ap_owned
= true,
424 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
428 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
429 .links
= mas_mnoc_bimc_common_links
432 static struct qcom_icc_node mas_jpeg
= {
434 .id
= MSM8996_MASTER_JPEG
,
438 .qos
.ap_owned
= true,
439 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
443 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
444 .links
= mas_mnoc_bimc_common_links
447 static struct qcom_icc_node mas_mdp_p0
= {
448 .name
= "mas_mdp_p0",
449 .id
= MSM8996_MASTER_MDP_PORT0
,
454 .qos
.ap_owned
= true,
455 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
459 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
460 .links
= mas_mnoc_bimc_common_links
463 static struct qcom_icc_node mas_mdp_p1
= {
464 .name
= "mas_mdp_p1",
465 .id
= MSM8996_MASTER_MDP_PORT1
,
470 .qos
.ap_owned
= true,
471 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
475 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
476 .links
= mas_mnoc_bimc_common_links
479 static struct qcom_icc_node mas_rotator
= {
480 .name
= "mas_rotator",
481 .id
= MSM8996_MASTER_ROTATOR
,
485 .qos
.ap_owned
= true,
486 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
490 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
491 .links
= mas_mnoc_bimc_common_links
494 static struct qcom_icc_node mas_venus
= {
496 .id
= MSM8996_MASTER_VIDEO_P0
,
500 .qos
.ap_owned
= true,
501 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
505 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
506 .links
= mas_mnoc_bimc_common_links
509 static struct qcom_icc_node mas_vfe
= {
511 .id
= MSM8996_MASTER_VFE
,
515 .qos
.ap_owned
= true,
516 .qos
.qos_mode
= NOC_QOS_MODE_BYPASS
,
520 .num_links
= ARRAY_SIZE(mas_mnoc_bimc_common_links
),
521 .links
= mas_mnoc_bimc_common_links
524 static const u16 mas_vmem_common_links
[] = {
528 static struct qcom_icc_node mas_snoc_vmem
= {
529 .name
= "mas_snoc_vmem",
530 .id
= MSM8996_MASTER_SNOC_VMEM
,
534 .qos
.ap_owned
= true,
535 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
536 .num_links
= ARRAY_SIZE(mas_vmem_common_links
),
537 .links
= mas_vmem_common_links
540 static struct qcom_icc_node mas_venus_vmem
= {
541 .name
= "mas_venus_vmem",
542 .id
= MSM8996_MASTER_VIDEO_P0_OCMEM
,
546 .qos
.ap_owned
= true,
547 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
548 .num_links
= ARRAY_SIZE(mas_vmem_common_links
),
549 .links
= mas_vmem_common_links
552 static const u16 mas_snoc_pnoc_links
[] = {
553 MSM8996_SLAVE_BLSP_1
,
554 MSM8996_SLAVE_BLSP_2
,
555 MSM8996_SLAVE_SDCC_1
,
556 MSM8996_SLAVE_SDCC_2
,
557 MSM8996_SLAVE_SDCC_4
,
560 MSM8996_SLAVE_AHB2PHY
563 static struct qcom_icc_node mas_snoc_pnoc
= {
564 .name
= "mas_snoc_pnoc",
565 .id
= MSM8996_MASTER_SNOC_PNOC
,
569 .num_links
= ARRAY_SIZE(mas_snoc_pnoc_links
),
570 .links
= mas_snoc_pnoc_links
573 static const u16 mas_pnoc_a1noc_common_links
[] = {
574 MSM8996_SLAVE_PNOC_A1NOC
577 static struct qcom_icc_node mas_sdcc_1
= {
578 .name
= "mas_sdcc_1",
579 .id
= MSM8996_MASTER_SDCC_1
,
583 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
584 .links
= mas_pnoc_a1noc_common_links
587 static struct qcom_icc_node mas_sdcc_2
= {
588 .name
= "mas_sdcc_2",
589 .id
= MSM8996_MASTER_SDCC_2
,
593 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
594 .links
= mas_pnoc_a1noc_common_links
597 static struct qcom_icc_node mas_sdcc_4
= {
598 .name
= "mas_sdcc_4",
599 .id
= MSM8996_MASTER_SDCC_4
,
603 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
604 .links
= mas_pnoc_a1noc_common_links
607 static struct qcom_icc_node mas_usb_hs
= {
608 .name
= "mas_usb_hs",
609 .id
= MSM8996_MASTER_USB_HS
,
613 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
614 .links
= mas_pnoc_a1noc_common_links
617 static struct qcom_icc_node mas_blsp_1
= {
618 .name
= "mas_blsp_1",
619 .id
= MSM8996_MASTER_BLSP_1
,
623 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
624 .links
= mas_pnoc_a1noc_common_links
627 static struct qcom_icc_node mas_blsp_2
= {
628 .name
= "mas_blsp_2",
629 .id
= MSM8996_MASTER_BLSP_2
,
633 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
634 .links
= mas_pnoc_a1noc_common_links
637 static struct qcom_icc_node mas_tsif
= {
639 .id
= MSM8996_MASTER_TSIF
,
643 .num_links
= ARRAY_SIZE(mas_pnoc_a1noc_common_links
),
644 .links
= mas_pnoc_a1noc_common_links
647 static const u16 mas_hmss_links
[] = {
649 MSM8996_SLAVE_OCIMEM
,
650 MSM8996_SLAVE_SNOC_BIMC
653 static struct qcom_icc_node mas_hmss
= {
655 .id
= MSM8996_MASTER_HMSS
,
659 .qos
.ap_owned
= true,
660 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
664 .num_links
= ARRAY_SIZE(mas_hmss_links
),
665 .links
= mas_hmss_links
668 static const u16 mas_qdss_common_links
[] = {
671 MSM8996_SLAVE_OCIMEM
,
672 MSM8996_SLAVE_SNOC_BIMC
,
673 MSM8996_SLAVE_SNOC_PNOC
676 static struct qcom_icc_node mas_qdss_bam
= {
677 .name
= "mas_qdss_bam",
678 .id
= MSM8996_MASTER_QDSS_BAM
,
682 .qos
.ap_owned
= true,
683 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
687 .num_links
= ARRAY_SIZE(mas_qdss_common_links
),
688 .links
= mas_qdss_common_links
691 static const u16 mas_snoc_cfg_links
[] = {
692 MSM8996_SLAVE_SERVICE_SNOC
695 static struct qcom_icc_node mas_snoc_cfg
= {
696 .name
= "mas_snoc_cfg",
697 .id
= MSM8996_MASTER_SNOC_CFG
,
701 .qos
.ap_owned
= true,
702 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
703 .num_links
= ARRAY_SIZE(mas_snoc_cfg_links
),
704 .links
= mas_snoc_cfg_links
707 static const u16 mas_bimc_snoc_0_links
[] = {
708 MSM8996_SLAVE_SNOC_VMEM
,
713 MSM8996_SLAVE_SNOC_CNOC
,
714 MSM8996_SLAVE_SNOC_PNOC
,
715 MSM8996_SLAVE_OCIMEM
,
716 MSM8996_SLAVE_QDSS_STM
719 static struct qcom_icc_node mas_bimc_snoc_0
= {
720 .name
= "mas_bimc_snoc_0",
721 .id
= MSM8996_MASTER_BIMC_SNOC_0
,
725 .qos
.ap_owned
= true,
726 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
727 .num_links
= ARRAY_SIZE(mas_bimc_snoc_0_links
),
728 .links
= mas_bimc_snoc_0_links
731 static const u16 mas_bimc_snoc_1_links
[] = {
732 MSM8996_SLAVE_PCIE_2
,
733 MSM8996_SLAVE_PCIE_1
,
737 static struct qcom_icc_node mas_bimc_snoc_1
= {
738 .name
= "mas_bimc_snoc_1",
739 .id
= MSM8996_MASTER_BIMC_SNOC_1
,
743 .qos
.ap_owned
= true,
744 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
745 .num_links
= ARRAY_SIZE(mas_bimc_snoc_1_links
),
746 .links
= mas_bimc_snoc_1_links
749 static const u16 mas_a0noc_snoc_links
[] = {
750 MSM8996_SLAVE_SNOC_PNOC
,
751 MSM8996_SLAVE_OCIMEM
,
753 MSM8996_SLAVE_SNOC_BIMC
,
757 static struct qcom_icc_node mas_a0noc_snoc
= {
758 .name
= "mas_a0noc_snoc",
759 .id
= MSM8996_MASTER_A0NOC_SNOC
,
763 .qos
.ap_owned
= true,
764 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
765 .num_links
= ARRAY_SIZE(mas_a0noc_snoc_links
),
766 .links
= mas_a0noc_snoc_links
769 static const u16 mas_a1noc_snoc_links
[] = {
770 MSM8996_SLAVE_SNOC_VMEM
,
772 MSM8996_SLAVE_PCIE_0
,
774 MSM8996_SLAVE_PCIE_2
,
776 MSM8996_SLAVE_PCIE_1
,
778 MSM8996_SLAVE_SNOC_BIMC
,
779 MSM8996_SLAVE_SNOC_CNOC
,
780 MSM8996_SLAVE_SNOC_PNOC
,
781 MSM8996_SLAVE_OCIMEM
,
782 MSM8996_SLAVE_QDSS_STM
785 static struct qcom_icc_node mas_a1noc_snoc
= {
786 .name
= "mas_a1noc_snoc",
787 .id
= MSM8996_MASTER_A1NOC_SNOC
,
791 .num_links
= ARRAY_SIZE(mas_a1noc_snoc_links
),
792 .links
= mas_a1noc_snoc_links
795 static const u16 mas_a2noc_snoc_links
[] = {
796 MSM8996_SLAVE_SNOC_VMEM
,
798 MSM8996_SLAVE_PCIE_1
,
800 MSM8996_SLAVE_PCIE_2
,
801 MSM8996_SLAVE_QDSS_STM
,
803 MSM8996_SLAVE_SNOC_BIMC
,
804 MSM8996_SLAVE_SNOC_CNOC
,
805 MSM8996_SLAVE_SNOC_PNOC
,
806 MSM8996_SLAVE_OCIMEM
,
810 static struct qcom_icc_node mas_a2noc_snoc
= {
811 .name
= "mas_a2noc_snoc",
812 .id
= MSM8996_MASTER_A2NOC_SNOC
,
816 .num_links
= ARRAY_SIZE(mas_a2noc_snoc_links
),
817 .links
= mas_a2noc_snoc_links
820 static struct qcom_icc_node mas_qdss_etr
= {
821 .name
= "mas_qdss_etr",
822 .id
= MSM8996_MASTER_QDSS_ETR
,
826 .qos
.ap_owned
= true,
827 .qos
.qos_mode
= NOC_QOS_MODE_FIXED
,
831 .num_links
= ARRAY_SIZE(mas_qdss_common_links
),
832 .links
= mas_qdss_common_links
835 static const u16 slv_a0noc_snoc_links
[] = {
836 MSM8996_MASTER_A0NOC_SNOC
839 static struct qcom_icc_node slv_a0noc_snoc
= {
840 .name
= "slv_a0noc_snoc",
841 .id
= MSM8996_SLAVE_A0NOC_SNOC
,
845 .qos
.ap_owned
= true,
846 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
847 .num_links
= ARRAY_SIZE(slv_a0noc_snoc_links
),
848 .links
= slv_a0noc_snoc_links
851 static const u16 slv_a1noc_snoc_links
[] = {
852 MSM8996_MASTER_A1NOC_SNOC
855 static struct qcom_icc_node slv_a1noc_snoc
= {
856 .name
= "slv_a1noc_snoc",
857 .id
= MSM8996_SLAVE_A1NOC_SNOC
,
861 .num_links
= ARRAY_SIZE(slv_a1noc_snoc_links
),
862 .links
= slv_a1noc_snoc_links
865 static const u16 slv_a2noc_snoc_links
[] = {
866 MSM8996_MASTER_A2NOC_SNOC
869 static struct qcom_icc_node slv_a2noc_snoc
= {
870 .name
= "slv_a2noc_snoc",
871 .id
= MSM8996_SLAVE_A2NOC_SNOC
,
875 .num_links
= ARRAY_SIZE(slv_a2noc_snoc_links
),
876 .links
= slv_a2noc_snoc_links
879 static struct qcom_icc_node slv_ebi
= {
881 .id
= MSM8996_SLAVE_EBI_CH0
,
887 static struct qcom_icc_node slv_hmss_l3
= {
888 .name
= "slv_hmss_l3",
889 .id
= MSM8996_SLAVE_HMSS_L3
,
895 static const u16 slv_bimc_snoc_0_links
[] = {
896 MSM8996_MASTER_BIMC_SNOC_0
899 static struct qcom_icc_node slv_bimc_snoc_0
= {
900 .name
= "slv_bimc_snoc_0",
901 .id
= MSM8996_SLAVE_BIMC_SNOC_0
,
905 .qos
.ap_owned
= true,
906 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
907 .num_links
= ARRAY_SIZE(slv_bimc_snoc_0_links
),
908 .links
= slv_bimc_snoc_0_links
911 static const u16 slv_bimc_snoc_1_links
[] = {
912 MSM8996_MASTER_BIMC_SNOC_1
915 static struct qcom_icc_node slv_bimc_snoc_1
= {
916 .name
= "slv_bimc_snoc_1",
917 .id
= MSM8996_SLAVE_BIMC_SNOC_1
,
921 .qos
.ap_owned
= true,
922 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
923 .num_links
= ARRAY_SIZE(slv_bimc_snoc_1_links
),
924 .links
= slv_bimc_snoc_1_links
927 static const u16 slv_cnoc_a1noc_links
[] = {
928 MSM8996_MASTER_CNOC_A1NOC
931 static struct qcom_icc_node slv_cnoc_a1noc
= {
932 .name
= "slv_cnoc_a1noc",
933 .id
= MSM8996_SLAVE_CNOC_A1NOC
,
937 .qos
.ap_owned
= true,
938 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
939 .num_links
= ARRAY_SIZE(slv_cnoc_a1noc_links
),
940 .links
= slv_cnoc_a1noc_links
943 static struct qcom_icc_node slv_clk_ctl
= {
944 .name
= "slv_clk_ctl",
945 .id
= MSM8996_SLAVE_CLK_CTL
,
951 static struct qcom_icc_node slv_tcsr
= {
953 .id
= MSM8996_SLAVE_TCSR
,
959 static struct qcom_icc_node slv_tlmm
= {
961 .id
= MSM8996_SLAVE_TLMM
,
967 static struct qcom_icc_node slv_crypto0_cfg
= {
968 .name
= "slv_crypto0_cfg",
969 .id
= MSM8996_SLAVE_CRYPTO_0_CFG
,
973 .qos
.ap_owned
= true,
974 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
977 static struct qcom_icc_node slv_mpm
= {
979 .id
= MSM8996_SLAVE_MPM
,
983 .qos
.ap_owned
= true,
984 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
987 static struct qcom_icc_node slv_pimem_cfg
= {
988 .name
= "slv_pimem_cfg",
989 .id
= MSM8996_SLAVE_PIMEM_CFG
,
993 .qos
.ap_owned
= true,
994 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
997 static struct qcom_icc_node slv_imem_cfg
= {
998 .name
= "slv_imem_cfg",
999 .id
= MSM8996_SLAVE_IMEM_CFG
,
1003 .qos
.ap_owned
= true,
1004 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1007 static struct qcom_icc_node slv_message_ram
= {
1008 .name
= "slv_message_ram",
1009 .id
= MSM8996_SLAVE_MESSAGE_RAM
,
1015 static struct qcom_icc_node slv_bimc_cfg
= {
1016 .name
= "slv_bimc_cfg",
1017 .id
= MSM8996_SLAVE_BIMC_CFG
,
1021 .qos
.ap_owned
= true,
1022 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1025 static struct qcom_icc_node slv_pmic_arb
= {
1026 .name
= "slv_pmic_arb",
1027 .id
= MSM8996_SLAVE_PMIC_ARB
,
1033 static struct qcom_icc_node slv_prng
= {
1035 .id
= MSM8996_SLAVE_PRNG
,
1039 .qos
.ap_owned
= true,
1040 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1043 static struct qcom_icc_node slv_dcc_cfg
= {
1044 .name
= "slv_dcc_cfg",
1045 .id
= MSM8996_SLAVE_DCC_CFG
,
1049 .qos
.ap_owned
= true,
1050 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1053 static struct qcom_icc_node slv_rbcpr_mx
= {
1054 .name
= "slv_rbcpr_mx",
1055 .id
= MSM8996_SLAVE_RBCPR_MX
,
1059 .qos
.ap_owned
= true,
1060 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1063 static struct qcom_icc_node slv_qdss_cfg
= {
1064 .name
= "slv_qdss_cfg",
1065 .id
= MSM8996_SLAVE_QDSS_CFG
,
1069 .qos
.ap_owned
= true,
1070 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1073 static struct qcom_icc_node slv_rbcpr_cx
= {
1074 .name
= "slv_rbcpr_cx",
1075 .id
= MSM8996_SLAVE_RBCPR_CX
,
1079 .qos
.ap_owned
= true,
1080 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1083 static struct qcom_icc_node slv_cpu_apu_cfg
= {
1084 .name
= "slv_cpu_apu_cfg",
1085 .id
= MSM8996_SLAVE_QDSS_RBCPR_APU_CFG
,
1089 .qos
.ap_owned
= true,
1090 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1093 static const u16 slv_cnoc_mnoc_cfg_links
[] = {
1094 MSM8996_MASTER_CNOC_MNOC_CFG
1097 static struct qcom_icc_node slv_cnoc_mnoc_cfg
= {
1098 .name
= "slv_cnoc_mnoc_cfg",
1099 .id
= MSM8996_SLAVE_CNOC_MNOC_CFG
,
1103 .qos
.ap_owned
= true,
1104 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
1105 .num_links
= ARRAY_SIZE(slv_cnoc_mnoc_cfg_links
),
1106 .links
= slv_cnoc_mnoc_cfg_links
1109 static struct qcom_icc_node slv_snoc_cfg
= {
1110 .name
= "slv_snoc_cfg",
1111 .id
= MSM8996_SLAVE_SNOC_CFG
,
1115 .qos
.ap_owned
= true,
1116 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1119 static struct qcom_icc_node slv_snoc_mpu_cfg
= {
1120 .name
= "slv_snoc_mpu_cfg",
1121 .id
= MSM8996_SLAVE_SNOC_MPU_CFG
,
1125 .qos
.ap_owned
= true,
1126 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1129 static struct qcom_icc_node slv_ebi1_phy_cfg
= {
1130 .name
= "slv_ebi1_phy_cfg",
1131 .id
= MSM8996_SLAVE_EBI1_PHY_CFG
,
1135 .qos
.ap_owned
= true,
1136 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1139 static struct qcom_icc_node slv_a0noc_cfg
= {
1140 .name
= "slv_a0noc_cfg",
1141 .id
= MSM8996_SLAVE_A0NOC_CFG
,
1145 .qos
.ap_owned
= true,
1146 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1149 static struct qcom_icc_node slv_pcie_1_cfg
= {
1150 .name
= "slv_pcie_1_cfg",
1151 .id
= MSM8996_SLAVE_PCIE_1_CFG
,
1155 .qos
.ap_owned
= true,
1156 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1159 static struct qcom_icc_node slv_pcie_2_cfg
= {
1160 .name
= "slv_pcie_2_cfg",
1161 .id
= MSM8996_SLAVE_PCIE_2_CFG
,
1165 .qos
.ap_owned
= true,
1166 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1169 static struct qcom_icc_node slv_pcie_0_cfg
= {
1170 .name
= "slv_pcie_0_cfg",
1171 .id
= MSM8996_SLAVE_PCIE_0_CFG
,
1175 .qos
.ap_owned
= true,
1176 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1179 static struct qcom_icc_node slv_pcie20_ahb2phy
= {
1180 .name
= "slv_pcie20_ahb2phy",
1181 .id
= MSM8996_SLAVE_PCIE20_AHB2PHY
,
1185 .qos
.ap_owned
= true,
1186 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1189 static struct qcom_icc_node slv_a0noc_mpu_cfg
= {
1190 .name
= "slv_a0noc_mpu_cfg",
1191 .id
= MSM8996_SLAVE_A0NOC_MPU_CFG
,
1195 .qos
.ap_owned
= true,
1196 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1199 static struct qcom_icc_node slv_ufs_cfg
= {
1200 .name
= "slv_ufs_cfg",
1201 .id
= MSM8996_SLAVE_UFS_CFG
,
1205 .qos
.ap_owned
= true,
1206 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1209 static struct qcom_icc_node slv_a1noc_cfg
= {
1210 .name
= "slv_a1noc_cfg",
1211 .id
= MSM8996_SLAVE_A1NOC_CFG
,
1215 .qos
.ap_owned
= true,
1216 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1219 static struct qcom_icc_node slv_a1noc_mpu_cfg
= {
1220 .name
= "slv_a1noc_mpu_cfg",
1221 .id
= MSM8996_SLAVE_A1NOC_MPU_CFG
,
1225 .qos
.ap_owned
= true,
1226 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1229 static struct qcom_icc_node slv_a2noc_cfg
= {
1230 .name
= "slv_a2noc_cfg",
1231 .id
= MSM8996_SLAVE_A2NOC_CFG
,
1235 .qos
.ap_owned
= true,
1236 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1239 static struct qcom_icc_node slv_a2noc_mpu_cfg
= {
1240 .name
= "slv_a2noc_mpu_cfg",
1241 .id
= MSM8996_SLAVE_A2NOC_MPU_CFG
,
1245 .qos
.ap_owned
= true,
1246 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1249 static struct qcom_icc_node slv_ssc_cfg
= {
1250 .name
= "slv_ssc_cfg",
1251 .id
= MSM8996_SLAVE_SSC_CFG
,
1255 .qos
.ap_owned
= true,
1256 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1259 static struct qcom_icc_node slv_a0noc_smmu_cfg
= {
1260 .name
= "slv_a0noc_smmu_cfg",
1261 .id
= MSM8996_SLAVE_A0NOC_SMMU_CFG
,
1265 .qos
.ap_owned
= true,
1266 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1269 static struct qcom_icc_node slv_a1noc_smmu_cfg
= {
1270 .name
= "slv_a1noc_smmu_cfg",
1271 .id
= MSM8996_SLAVE_A1NOC_SMMU_CFG
,
1275 .qos
.ap_owned
= true,
1276 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1279 static struct qcom_icc_node slv_a2noc_smmu_cfg
= {
1280 .name
= "slv_a2noc_smmu_cfg",
1281 .id
= MSM8996_SLAVE_A2NOC_SMMU_CFG
,
1285 .qos
.ap_owned
= true,
1286 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1289 static struct qcom_icc_node slv_lpass_smmu_cfg
= {
1290 .name
= "slv_lpass_smmu_cfg",
1291 .id
= MSM8996_SLAVE_LPASS_SMMU_CFG
,
1295 .qos
.ap_owned
= true,
1296 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1299 static const u16 slv_cnoc_mnoc_mmss_cfg_links
[] = {
1300 MSM8996_MASTER_CNOC_MNOC_MMSS_CFG
1303 static struct qcom_icc_node slv_cnoc_mnoc_mmss_cfg
= {
1304 .name
= "slv_cnoc_mnoc_mmss_cfg",
1305 .id
= MSM8996_SLAVE_CNOC_MNOC_MMSS_CFG
,
1309 .qos
.ap_owned
= true,
1310 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
1311 .num_links
= ARRAY_SIZE(slv_cnoc_mnoc_mmss_cfg_links
),
1312 .links
= slv_cnoc_mnoc_mmss_cfg_links
1315 static struct qcom_icc_node slv_mmagic_cfg
= {
1316 .name
= "slv_mmagic_cfg",
1317 .id
= MSM8996_SLAVE_MMAGIC_CFG
,
1321 .qos
.ap_owned
= true,
1322 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1325 static struct qcom_icc_node slv_cpr_cfg
= {
1326 .name
= "slv_cpr_cfg",
1327 .id
= MSM8996_SLAVE_CPR_CFG
,
1331 .qos
.ap_owned
= true,
1332 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1335 static struct qcom_icc_node slv_misc_cfg
= {
1336 .name
= "slv_misc_cfg",
1337 .id
= MSM8996_SLAVE_MISC_CFG
,
1341 .qos
.ap_owned
= true,
1342 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1345 static struct qcom_icc_node slv_venus_throttle_cfg
= {
1346 .name
= "slv_venus_throttle_cfg",
1347 .id
= MSM8996_SLAVE_VENUS_THROTTLE_CFG
,
1351 .qos
.ap_owned
= true,
1352 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1355 static struct qcom_icc_node slv_venus_cfg
= {
1356 .name
= "slv_venus_cfg",
1357 .id
= MSM8996_SLAVE_VENUS_CFG
,
1361 .qos
.ap_owned
= true,
1362 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1365 static struct qcom_icc_node slv_vmem_cfg
= {
1366 .name
= "slv_vmem_cfg",
1367 .id
= MSM8996_SLAVE_VMEM_CFG
,
1371 .qos
.ap_owned
= true,
1372 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1375 static struct qcom_icc_node slv_dsa_cfg
= {
1376 .name
= "slv_dsa_cfg",
1377 .id
= MSM8996_SLAVE_DSA_CFG
,
1381 .qos
.ap_owned
= true,
1382 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1385 static struct qcom_icc_node slv_mnoc_clocks_cfg
= {
1386 .name
= "slv_mnoc_clocks_cfg",
1387 .id
= MSM8996_SLAVE_MMSS_CLK_CFG
,
1391 .qos
.ap_owned
= true,
1392 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1395 static struct qcom_icc_node slv_dsa_mpu_cfg
= {
1396 .name
= "slv_dsa_mpu_cfg",
1397 .id
= MSM8996_SLAVE_DSA_MPU_CFG
,
1401 .qos
.ap_owned
= true,
1402 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1405 static struct qcom_icc_node slv_mnoc_mpu_cfg
= {
1406 .name
= "slv_mnoc_mpu_cfg",
1407 .id
= MSM8996_SLAVE_MNOC_MPU_CFG
,
1411 .qos
.ap_owned
= true,
1412 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1415 static struct qcom_icc_node slv_display_cfg
= {
1416 .name
= "slv_display_cfg",
1417 .id
= MSM8996_SLAVE_DISPLAY_CFG
,
1421 .qos
.ap_owned
= true,
1422 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1425 static struct qcom_icc_node slv_display_throttle_cfg
= {
1426 .name
= "slv_display_throttle_cfg",
1427 .id
= MSM8996_SLAVE_DISPLAY_THROTTLE_CFG
,
1431 .qos
.ap_owned
= true,
1432 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1435 static struct qcom_icc_node slv_camera_cfg
= {
1436 .name
= "slv_camera_cfg",
1437 .id
= MSM8996_SLAVE_CAMERA_CFG
,
1441 .qos
.ap_owned
= true,
1442 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1445 static struct qcom_icc_node slv_camera_throttle_cfg
= {
1446 .name
= "slv_camera_throttle_cfg",
1447 .id
= MSM8996_SLAVE_CAMERA_THROTTLE_CFG
,
1451 .qos
.ap_owned
= true,
1452 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1455 static struct qcom_icc_node slv_oxili_cfg
= {
1456 .name
= "slv_oxili_cfg",
1457 .id
= MSM8996_SLAVE_GRAPHICS_3D_CFG
,
1461 .qos
.ap_owned
= true,
1462 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1465 static struct qcom_icc_node slv_smmu_mdp_cfg
= {
1466 .name
= "slv_smmu_mdp_cfg",
1467 .id
= MSM8996_SLAVE_SMMU_MDP_CFG
,
1471 .qos
.ap_owned
= true,
1472 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1475 static struct qcom_icc_node slv_smmu_rot_cfg
= {
1476 .name
= "slv_smmu_rot_cfg",
1477 .id
= MSM8996_SLAVE_SMMU_ROTATOR_CFG
,
1481 .qos
.ap_owned
= true,
1482 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1485 static struct qcom_icc_node slv_smmu_venus_cfg
= {
1486 .name
= "slv_smmu_venus_cfg",
1487 .id
= MSM8996_SLAVE_SMMU_VENUS_CFG
,
1491 .qos
.ap_owned
= true,
1492 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1495 static struct qcom_icc_node slv_smmu_cpp_cfg
= {
1496 .name
= "slv_smmu_cpp_cfg",
1497 .id
= MSM8996_SLAVE_SMMU_CPP_CFG
,
1501 .qos
.ap_owned
= true,
1502 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1505 static struct qcom_icc_node slv_smmu_jpeg_cfg
= {
1506 .name
= "slv_smmu_jpeg_cfg",
1507 .id
= MSM8996_SLAVE_SMMU_JPEG_CFG
,
1511 .qos
.ap_owned
= true,
1512 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1515 static struct qcom_icc_node slv_smmu_vfe_cfg
= {
1516 .name
= "slv_smmu_vfe_cfg",
1517 .id
= MSM8996_SLAVE_SMMU_VFE_CFG
,
1521 .qos
.ap_owned
= true,
1522 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1525 static const u16 slv_mnoc_bimc_links
[] = {
1526 MSM8996_MASTER_MNOC_BIMC
1529 static struct qcom_icc_node slv_mnoc_bimc
= {
1530 .name
= "slv_mnoc_bimc",
1531 .id
= MSM8996_SLAVE_MNOC_BIMC
,
1535 .qos
.ap_owned
= true,
1536 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
1537 .num_links
= ARRAY_SIZE(slv_mnoc_bimc_links
),
1538 .links
= slv_mnoc_bimc_links
1541 static struct qcom_icc_node slv_vmem
= {
1543 .id
= MSM8996_SLAVE_VMEM
,
1547 .qos
.ap_owned
= true,
1548 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1551 static struct qcom_icc_node slv_srvc_mnoc
= {
1552 .name
= "slv_srvc_mnoc",
1553 .id
= MSM8996_SLAVE_SERVICE_MNOC
,
1557 .qos
.ap_owned
= true,
1558 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1561 static const u16 slv_pnoc_a1noc_links
[] = {
1562 MSM8996_MASTER_PNOC_A1NOC
1565 static struct qcom_icc_node slv_pnoc_a1noc
= {
1566 .name
= "slv_pnoc_a1noc",
1567 .id
= MSM8996_SLAVE_PNOC_A1NOC
,
1571 .num_links
= ARRAY_SIZE(slv_pnoc_a1noc_links
),
1572 .links
= slv_pnoc_a1noc_links
1575 static struct qcom_icc_node slv_usb_hs
= {
1576 .name
= "slv_usb_hs",
1577 .id
= MSM8996_SLAVE_USB_HS
,
1583 static struct qcom_icc_node slv_sdcc_2
= {
1584 .name
= "slv_sdcc_2",
1585 .id
= MSM8996_SLAVE_SDCC_2
,
1591 static struct qcom_icc_node slv_sdcc_4
= {
1592 .name
= "slv_sdcc_4",
1593 .id
= MSM8996_SLAVE_SDCC_4
,
1599 static struct qcom_icc_node slv_tsif
= {
1601 .id
= MSM8996_SLAVE_TSIF
,
1607 static struct qcom_icc_node slv_blsp_2
= {
1608 .name
= "slv_blsp_2",
1609 .id
= MSM8996_SLAVE_BLSP_2
,
1615 static struct qcom_icc_node slv_sdcc_1
= {
1616 .name
= "slv_sdcc_1",
1617 .id
= MSM8996_SLAVE_SDCC_1
,
1623 static struct qcom_icc_node slv_blsp_1
= {
1624 .name
= "slv_blsp_1",
1625 .id
= MSM8996_SLAVE_BLSP_1
,
1631 static struct qcom_icc_node slv_pdm
= {
1633 .id
= MSM8996_SLAVE_PDM
,
1639 static struct qcom_icc_node slv_ahb2phy
= {
1640 .name
= "slv_ahb2phy",
1641 .id
= MSM8996_SLAVE_AHB2PHY
,
1645 .qos
.ap_owned
= true,
1646 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1649 static struct qcom_icc_node slv_hmss
= {
1651 .id
= MSM8996_SLAVE_APPSS
,
1655 .qos
.ap_owned
= true,
1656 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1659 static struct qcom_icc_node slv_lpass
= {
1660 .name
= "slv_lpass",
1661 .id
= MSM8996_SLAVE_LPASS
,
1665 .qos
.ap_owned
= true,
1666 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1669 static struct qcom_icc_node slv_usb3
= {
1671 .id
= MSM8996_SLAVE_USB3
,
1675 .qos
.ap_owned
= true,
1676 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1679 static const u16 slv_snoc_bimc_links
[] = {
1680 MSM8996_MASTER_SNOC_BIMC
1683 static struct qcom_icc_node slv_snoc_bimc
= {
1684 .name
= "slv_snoc_bimc",
1685 .id
= MSM8996_SLAVE_SNOC_BIMC
,
1689 .num_links
= ARRAY_SIZE(slv_snoc_bimc_links
),
1690 .links
= slv_snoc_bimc_links
1693 static const u16 slv_snoc_cnoc_links
[] = {
1694 MSM8996_MASTER_SNOC_CNOC
1697 static struct qcom_icc_node slv_snoc_cnoc
= {
1698 .name
= "slv_snoc_cnoc",
1699 .id
= MSM8996_SLAVE_SNOC_CNOC
,
1703 .num_links
= ARRAY_SIZE(slv_snoc_cnoc_links
),
1704 .links
= slv_snoc_cnoc_links
1707 static struct qcom_icc_node slv_imem
= {
1709 .id
= MSM8996_SLAVE_OCIMEM
,
1715 static struct qcom_icc_node slv_pimem
= {
1716 .name
= "slv_pimem",
1717 .id
= MSM8996_SLAVE_PIMEM
,
1723 static const u16 slv_snoc_vmem_links
[] = {
1724 MSM8996_MASTER_SNOC_VMEM
1727 static struct qcom_icc_node slv_snoc_vmem
= {
1728 .name
= "slv_snoc_vmem",
1729 .id
= MSM8996_SLAVE_SNOC_VMEM
,
1733 .qos
.ap_owned
= true,
1734 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
,
1735 .num_links
= ARRAY_SIZE(slv_snoc_vmem_links
),
1736 .links
= slv_snoc_vmem_links
1739 static const u16 slv_snoc_pnoc_links
[] = {
1740 MSM8996_MASTER_SNOC_PNOC
1743 static struct qcom_icc_node slv_snoc_pnoc
= {
1744 .name
= "slv_snoc_pnoc",
1745 .id
= MSM8996_SLAVE_SNOC_PNOC
,
1749 .num_links
= ARRAY_SIZE(slv_snoc_pnoc_links
),
1750 .links
= slv_snoc_pnoc_links
1753 static struct qcom_icc_node slv_qdss_stm
= {
1754 .name
= "slv_qdss_stm",
1755 .id
= MSM8996_SLAVE_QDSS_STM
,
1761 static struct qcom_icc_node slv_pcie_0
= {
1762 .name
= "slv_pcie_0",
1763 .id
= MSM8996_SLAVE_PCIE_0
,
1767 .qos
.ap_owned
= true,
1768 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1771 static struct qcom_icc_node slv_pcie_1
= {
1772 .name
= "slv_pcie_1",
1773 .id
= MSM8996_SLAVE_PCIE_1
,
1777 .qos
.ap_owned
= true,
1778 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1781 static struct qcom_icc_node slv_pcie_2
= {
1782 .name
= "slv_pcie_2",
1783 .id
= MSM8996_SLAVE_PCIE_2
,
1787 .qos
.ap_owned
= true,
1788 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1791 static struct qcom_icc_node slv_srvc_snoc
= {
1792 .name
= "slv_srvc_snoc",
1793 .id
= MSM8996_SLAVE_SERVICE_SNOC
,
1797 .qos
.ap_owned
= true,
1798 .qos
.qos_mode
= NOC_QOS_MODE_INVALID
1801 static struct qcom_icc_node
* const a0noc_nodes
[] = {
1802 [MASTER_PCIE_0
] = &mas_pcie_0
,
1803 [MASTER_PCIE_1
] = &mas_pcie_1
,
1804 [MASTER_PCIE_2
] = &mas_pcie_2
1807 static const struct regmap_config msm8996_a0noc_regmap_config
= {
1811 .max_register
= 0x6000,
1815 static const struct qcom_icc_desc msm8996_a0noc
= {
1816 .type
= QCOM_ICC_NOC
,
1817 .nodes
= a0noc_nodes
,
1818 .num_nodes
= ARRAY_SIZE(a0noc_nodes
),
1819 .intf_clocks
= a0noc_intf_clocks
,
1820 .num_intf_clocks
= ARRAY_SIZE(a0noc_intf_clocks
),
1821 .regmap_cfg
= &msm8996_a0noc_regmap_config
1824 static struct qcom_icc_node
* const a1noc_nodes
[] = {
1825 [MASTER_CNOC_A1NOC
] = &mas_cnoc_a1noc
,
1826 [MASTER_CRYPTO_CORE0
] = &mas_crypto_c0
,
1827 [MASTER_PNOC_A1NOC
] = &mas_pnoc_a1noc
1830 static const struct regmap_config msm8996_a1noc_regmap_config
= {
1834 .max_register
= 0x5000,
1838 static const struct qcom_icc_desc msm8996_a1noc
= {
1839 .type
= QCOM_ICC_NOC
,
1840 .nodes
= a1noc_nodes
,
1841 .num_nodes
= ARRAY_SIZE(a1noc_nodes
),
1842 .bus_clk_desc
= &aggre1_branch_clk
,
1843 .regmap_cfg
= &msm8996_a1noc_regmap_config
1846 static struct qcom_icc_node
* const a2noc_nodes
[] = {
1847 [MASTER_USB3
] = &mas_usb3
,
1848 [MASTER_IPA
] = &mas_ipa
,
1849 [MASTER_UFS
] = &mas_ufs
1852 static const struct regmap_config msm8996_a2noc_regmap_config
= {
1856 .max_register
= 0x7000,
1860 static const struct qcom_icc_desc msm8996_a2noc
= {
1861 .type
= QCOM_ICC_NOC
,
1862 .nodes
= a2noc_nodes
,
1863 .num_nodes
= ARRAY_SIZE(a2noc_nodes
),
1864 .bus_clk_desc
= &aggre2_branch_clk
,
1865 .intf_clocks
= a2noc_intf_clocks
,
1866 .num_intf_clocks
= ARRAY_SIZE(a2noc_intf_clocks
),
1867 .regmap_cfg
= &msm8996_a2noc_regmap_config
1870 static struct qcom_icc_node
* const bimc_nodes
[] = {
1871 [MASTER_AMPSS_M0
] = &mas_apps_proc
,
1872 [MASTER_GRAPHICS_3D
] = &mas_oxili
,
1873 [MASTER_MNOC_BIMC
] = &mas_mnoc_bimc
,
1874 [MASTER_SNOC_BIMC
] = &mas_snoc_bimc
,
1875 [SLAVE_EBI_CH0
] = &slv_ebi
,
1876 [SLAVE_HMSS_L3
] = &slv_hmss_l3
,
1877 [SLAVE_BIMC_SNOC_0
] = &slv_bimc_snoc_0
,
1878 [SLAVE_BIMC_SNOC_1
] = &slv_bimc_snoc_1
1881 static const struct regmap_config msm8996_bimc_regmap_config
= {
1885 .max_register
= 0x5a000,
1889 static const struct qcom_icc_desc msm8996_bimc
= {
1890 .type
= QCOM_ICC_BIMC
,
1891 .nodes
= bimc_nodes
,
1892 .num_nodes
= ARRAY_SIZE(bimc_nodes
),
1893 .bus_clk_desc
= &bimc_clk
,
1894 .regmap_cfg
= &msm8996_bimc_regmap_config
,
1898 static struct qcom_icc_node
* const cnoc_nodes
[] = {
1899 [MASTER_SNOC_CNOC
] = &mas_snoc_cnoc
,
1900 [MASTER_QDSS_DAP
] = &mas_qdss_dap
,
1901 [SLAVE_CNOC_A1NOC
] = &slv_cnoc_a1noc
,
1902 [SLAVE_CLK_CTL
] = &slv_clk_ctl
,
1903 [SLAVE_TCSR
] = &slv_tcsr
,
1904 [SLAVE_TLMM
] = &slv_tlmm
,
1905 [SLAVE_CRYPTO_0_CFG
] = &slv_crypto0_cfg
,
1906 [SLAVE_MPM
] = &slv_mpm
,
1907 [SLAVE_PIMEM_CFG
] = &slv_pimem_cfg
,
1908 [SLAVE_IMEM_CFG
] = &slv_imem_cfg
,
1909 [SLAVE_MESSAGE_RAM
] = &slv_message_ram
,
1910 [SLAVE_BIMC_CFG
] = &slv_bimc_cfg
,
1911 [SLAVE_PMIC_ARB
] = &slv_pmic_arb
,
1912 [SLAVE_PRNG
] = &slv_prng
,
1913 [SLAVE_DCC_CFG
] = &slv_dcc_cfg
,
1914 [SLAVE_RBCPR_MX
] = &slv_rbcpr_mx
,
1915 [SLAVE_QDSS_CFG
] = &slv_qdss_cfg
,
1916 [SLAVE_RBCPR_CX
] = &slv_rbcpr_cx
,
1917 [SLAVE_QDSS_RBCPR_APU
] = &slv_cpu_apu_cfg
,
1918 [SLAVE_CNOC_MNOC_CFG
] = &slv_cnoc_mnoc_cfg
,
1919 [SLAVE_SNOC_CFG
] = &slv_snoc_cfg
,
1920 [SLAVE_SNOC_MPU_CFG
] = &slv_snoc_mpu_cfg
,
1921 [SLAVE_EBI1_PHY_CFG
] = &slv_ebi1_phy_cfg
,
1922 [SLAVE_A0NOC_CFG
] = &slv_a0noc_cfg
,
1923 [SLAVE_PCIE_1_CFG
] = &slv_pcie_1_cfg
,
1924 [SLAVE_PCIE_2_CFG
] = &slv_pcie_2_cfg
,
1925 [SLAVE_PCIE_0_CFG
] = &slv_pcie_0_cfg
,
1926 [SLAVE_PCIE20_AHB2PHY
] = &slv_pcie20_ahb2phy
,
1927 [SLAVE_A0NOC_MPU_CFG
] = &slv_a0noc_mpu_cfg
,
1928 [SLAVE_UFS_CFG
] = &slv_ufs_cfg
,
1929 [SLAVE_A1NOC_CFG
] = &slv_a1noc_cfg
,
1930 [SLAVE_A1NOC_MPU_CFG
] = &slv_a1noc_mpu_cfg
,
1931 [SLAVE_A2NOC_CFG
] = &slv_a2noc_cfg
,
1932 [SLAVE_A2NOC_MPU_CFG
] = &slv_a2noc_mpu_cfg
,
1933 [SLAVE_SSC_CFG
] = &slv_ssc_cfg
,
1934 [SLAVE_A0NOC_SMMU_CFG
] = &slv_a0noc_smmu_cfg
,
1935 [SLAVE_A1NOC_SMMU_CFG
] = &slv_a1noc_smmu_cfg
,
1936 [SLAVE_A2NOC_SMMU_CFG
] = &slv_a2noc_smmu_cfg
,
1937 [SLAVE_LPASS_SMMU_CFG
] = &slv_lpass_smmu_cfg
,
1938 [SLAVE_CNOC_MNOC_MMSS_CFG
] = &slv_cnoc_mnoc_mmss_cfg
1941 static const struct regmap_config msm8996_cnoc_regmap_config
= {
1945 .max_register
= 0x1000,
1949 static const struct qcom_icc_desc msm8996_cnoc
= {
1950 .type
= QCOM_ICC_NOC
,
1951 .nodes
= cnoc_nodes
,
1952 .num_nodes
= ARRAY_SIZE(cnoc_nodes
),
1953 .bus_clk_desc
= &bus_2_clk
,
1954 .regmap_cfg
= &msm8996_cnoc_regmap_config
1957 static struct qcom_icc_node
* const mnoc_nodes
[] = {
1958 [MASTER_CNOC_MNOC_CFG
] = &mas_cnoc_mnoc_cfg
,
1959 [MASTER_CPP
] = &mas_cpp
,
1960 [MASTER_JPEG
] = &mas_jpeg
,
1961 [MASTER_MDP_PORT0
] = &mas_mdp_p0
,
1962 [MASTER_MDP_PORT1
] = &mas_mdp_p1
,
1963 [MASTER_ROTATOR
] = &mas_rotator
,
1964 [MASTER_VIDEO_P0
] = &mas_venus
,
1965 [MASTER_VFE
] = &mas_vfe
,
1966 [MASTER_SNOC_VMEM
] = &mas_snoc_vmem
,
1967 [MASTER_VIDEO_P0_OCMEM
] = &mas_venus_vmem
,
1968 [MASTER_CNOC_MNOC_MMSS_CFG
] = &mas_cnoc_mnoc_mmss_cfg
,
1969 [SLAVE_MNOC_BIMC
] = &slv_mnoc_bimc
,
1970 [SLAVE_VMEM
] = &slv_vmem
,
1971 [SLAVE_SERVICE_MNOC
] = &slv_srvc_mnoc
,
1972 [SLAVE_MMAGIC_CFG
] = &slv_mmagic_cfg
,
1973 [SLAVE_CPR_CFG
] = &slv_cpr_cfg
,
1974 [SLAVE_MISC_CFG
] = &slv_misc_cfg
,
1975 [SLAVE_VENUS_THROTTLE_CFG
] = &slv_venus_throttle_cfg
,
1976 [SLAVE_VENUS_CFG
] = &slv_venus_cfg
,
1977 [SLAVE_VMEM_CFG
] = &slv_vmem_cfg
,
1978 [SLAVE_DSA_CFG
] = &slv_dsa_cfg
,
1979 [SLAVE_MMSS_CLK_CFG
] = &slv_mnoc_clocks_cfg
,
1980 [SLAVE_DSA_MPU_CFG
] = &slv_dsa_mpu_cfg
,
1981 [SLAVE_MNOC_MPU_CFG
] = &slv_mnoc_mpu_cfg
,
1982 [SLAVE_DISPLAY_CFG
] = &slv_display_cfg
,
1983 [SLAVE_DISPLAY_THROTTLE_CFG
] = &slv_display_throttle_cfg
,
1984 [SLAVE_CAMERA_CFG
] = &slv_camera_cfg
,
1985 [SLAVE_CAMERA_THROTTLE_CFG
] = &slv_camera_throttle_cfg
,
1986 [SLAVE_GRAPHICS_3D_CFG
] = &slv_oxili_cfg
,
1987 [SLAVE_SMMU_MDP_CFG
] = &slv_smmu_mdp_cfg
,
1988 [SLAVE_SMMU_ROT_CFG
] = &slv_smmu_rot_cfg
,
1989 [SLAVE_SMMU_VENUS_CFG
] = &slv_smmu_venus_cfg
,
1990 [SLAVE_SMMU_CPP_CFG
] = &slv_smmu_cpp_cfg
,
1991 [SLAVE_SMMU_JPEG_CFG
] = &slv_smmu_jpeg_cfg
,
1992 [SLAVE_SMMU_VFE_CFG
] = &slv_smmu_vfe_cfg
1995 static const struct regmap_config msm8996_mnoc_regmap_config
= {
1999 .max_register
= 0x1c000,
2003 static const struct qcom_icc_desc msm8996_mnoc
= {
2004 .type
= QCOM_ICC_NOC
,
2005 .nodes
= mnoc_nodes
,
2006 .num_nodes
= ARRAY_SIZE(mnoc_nodes
),
2007 .bus_clk_desc
= &mmaxi_0_clk
,
2008 .intf_clocks
= mm_intf_clocks
,
2009 .num_intf_clocks
= ARRAY_SIZE(mm_intf_clocks
),
2010 .regmap_cfg
= &msm8996_mnoc_regmap_config
,
2014 static struct qcom_icc_node
* const pnoc_nodes
[] = {
2015 [MASTER_SNOC_PNOC
] = &mas_snoc_pnoc
,
2016 [MASTER_SDCC_1
] = &mas_sdcc_1
,
2017 [MASTER_SDCC_2
] = &mas_sdcc_2
,
2018 [MASTER_SDCC_4
] = &mas_sdcc_4
,
2019 [MASTER_USB_HS
] = &mas_usb_hs
,
2020 [MASTER_BLSP_1
] = &mas_blsp_1
,
2021 [MASTER_BLSP_2
] = &mas_blsp_2
,
2022 [MASTER_TSIF
] = &mas_tsif
,
2023 [SLAVE_PNOC_A1NOC
] = &slv_pnoc_a1noc
,
2024 [SLAVE_USB_HS
] = &slv_usb_hs
,
2025 [SLAVE_SDCC_2
] = &slv_sdcc_2
,
2026 [SLAVE_SDCC_4
] = &slv_sdcc_4
,
2027 [SLAVE_TSIF
] = &slv_tsif
,
2028 [SLAVE_BLSP_2
] = &slv_blsp_2
,
2029 [SLAVE_SDCC_1
] = &slv_sdcc_1
,
2030 [SLAVE_BLSP_1
] = &slv_blsp_1
,
2031 [SLAVE_PDM
] = &slv_pdm
,
2032 [SLAVE_AHB2PHY
] = &slv_ahb2phy
2035 static const struct regmap_config msm8996_pnoc_regmap_config
= {
2039 .max_register
= 0x3000,
2043 static const struct qcom_icc_desc msm8996_pnoc
= {
2044 .type
= QCOM_ICC_NOC
,
2045 .nodes
= pnoc_nodes
,
2046 .num_nodes
= ARRAY_SIZE(pnoc_nodes
),
2047 .bus_clk_desc
= &bus_0_clk
,
2048 .regmap_cfg
= &msm8996_pnoc_regmap_config
2051 static struct qcom_icc_node
* const snoc_nodes
[] = {
2052 [MASTER_HMSS
] = &mas_hmss
,
2053 [MASTER_QDSS_BAM
] = &mas_qdss_bam
,
2054 [MASTER_SNOC_CFG
] = &mas_snoc_cfg
,
2055 [MASTER_BIMC_SNOC_0
] = &mas_bimc_snoc_0
,
2056 [MASTER_BIMC_SNOC_1
] = &mas_bimc_snoc_1
,
2057 [MASTER_A0NOC_SNOC
] = &mas_a0noc_snoc
,
2058 [MASTER_A1NOC_SNOC
] = &mas_a1noc_snoc
,
2059 [MASTER_A2NOC_SNOC
] = &mas_a2noc_snoc
,
2060 [MASTER_QDSS_ETR
] = &mas_qdss_etr
,
2061 [SLAVE_A0NOC_SNOC
] = &slv_a0noc_snoc
,
2062 [SLAVE_A1NOC_SNOC
] = &slv_a1noc_snoc
,
2063 [SLAVE_A2NOC_SNOC
] = &slv_a2noc_snoc
,
2064 [SLAVE_HMSS
] = &slv_hmss
,
2065 [SLAVE_LPASS
] = &slv_lpass
,
2066 [SLAVE_USB3
] = &slv_usb3
,
2067 [SLAVE_SNOC_BIMC
] = &slv_snoc_bimc
,
2068 [SLAVE_SNOC_CNOC
] = &slv_snoc_cnoc
,
2069 [SLAVE_IMEM
] = &slv_imem
,
2070 [SLAVE_PIMEM
] = &slv_pimem
,
2071 [SLAVE_SNOC_VMEM
] = &slv_snoc_vmem
,
2072 [SLAVE_SNOC_PNOC
] = &slv_snoc_pnoc
,
2073 [SLAVE_QDSS_STM
] = &slv_qdss_stm
,
2074 [SLAVE_PCIE_0
] = &slv_pcie_0
,
2075 [SLAVE_PCIE_1
] = &slv_pcie_1
,
2076 [SLAVE_PCIE_2
] = &slv_pcie_2
,
2077 [SLAVE_SERVICE_SNOC
] = &slv_srvc_snoc
2080 static const struct regmap_config msm8996_snoc_regmap_config
= {
2084 .max_register
= 0x20000,
2088 static const struct qcom_icc_desc msm8996_snoc
= {
2089 .type
= QCOM_ICC_NOC
,
2090 .nodes
= snoc_nodes
,
2091 .num_nodes
= ARRAY_SIZE(snoc_nodes
),
2092 .bus_clk_desc
= &bus_1_clk
,
2093 .regmap_cfg
= &msm8996_snoc_regmap_config
2096 static const struct of_device_id qnoc_of_match
[] = {
2097 { .compatible
= "qcom,msm8996-a0noc", .data
= &msm8996_a0noc
},
2098 { .compatible
= "qcom,msm8996-a1noc", .data
= &msm8996_a1noc
},
2099 { .compatible
= "qcom,msm8996-a2noc", .data
= &msm8996_a2noc
},
2100 { .compatible
= "qcom,msm8996-bimc", .data
= &msm8996_bimc
},
2101 { .compatible
= "qcom,msm8996-cnoc", .data
= &msm8996_cnoc
},
2102 { .compatible
= "qcom,msm8996-mnoc", .data
= &msm8996_mnoc
},
2103 { .compatible
= "qcom,msm8996-pnoc", .data
= &msm8996_pnoc
},
2104 { .compatible
= "qcom,msm8996-snoc", .data
= &msm8996_snoc
},
2107 MODULE_DEVICE_TABLE(of
, qnoc_of_match
);
2109 static struct platform_driver qnoc_driver
= {
2110 .probe
= qnoc_probe
,
2111 .remove
= qnoc_remove
,
2113 .name
= "qnoc-msm8996",
2114 .of_match_table
= qnoc_of_match
,
2115 .sync_state
= icc_sync_state
,
2118 static int __init
qnoc_driver_init(void)
2120 return platform_driver_register(&qnoc_driver
);
2122 core_initcall(qnoc_driver_init
);
2124 static void __exit
qnoc_driver_exit(void)
2126 platform_driver_unregister(&qnoc_driver
);
2128 module_exit(qnoc_driver_exit
);
2130 MODULE_AUTHOR("Yassine Oudjana <y.oudjana@protonmail.com>");
2131 MODULE_DESCRIPTION("Qualcomm MSM8996 NoC driver");
2132 MODULE_LICENSE("GPL v2");