162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Qualcomm QCM2290 Network-on-Chip (NoC) QoS driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2021, Linaro Ltd.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <dt-bindings/interconnect/qcom,qcm2290.h>
1062306a36Sopenharmony_ci#include <linux/device.h>
1162306a36Sopenharmony_ci#include <linux/interconnect-provider.h>
1262306a36Sopenharmony_ci#include <linux/io.h>
1362306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1462306a36Sopenharmony_ci#include <linux/module.h>
1562306a36Sopenharmony_ci#include <linux/platform_device.h>
1662306a36Sopenharmony_ci#include <linux/regmap.h>
1762306a36Sopenharmony_ci#include <linux/slab.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include "icc-rpm.h"
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_cienum {
2262306a36Sopenharmony_ci	QCM2290_MASTER_APPSS_PROC = 1,
2362306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC_RT,
2462306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC_NRT,
2562306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC,
2662306a36Sopenharmony_ci	QCM2290_MASTER_TCU_0,
2762306a36Sopenharmony_ci	QCM2290_MASTER_GFX3D,
2862306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_CNOC,
2962306a36Sopenharmony_ci	QCM2290_MASTER_QDSS_DAP,
3062306a36Sopenharmony_ci	QCM2290_MASTER_CRYPTO_CORE0,
3162306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_CFG,
3262306a36Sopenharmony_ci	QCM2290_MASTER_TIC,
3362306a36Sopenharmony_ci	QCM2290_MASTER_ANOC_SNOC,
3462306a36Sopenharmony_ci	QCM2290_MASTER_BIMC_SNOC,
3562306a36Sopenharmony_ci	QCM2290_MASTER_PIMEM,
3662306a36Sopenharmony_ci	QCM2290_MASTER_QDSS_BAM,
3762306a36Sopenharmony_ci	QCM2290_MASTER_QUP_0,
3862306a36Sopenharmony_ci	QCM2290_MASTER_IPA,
3962306a36Sopenharmony_ci	QCM2290_MASTER_QDSS_ETR,
4062306a36Sopenharmony_ci	QCM2290_MASTER_SDCC_1,
4162306a36Sopenharmony_ci	QCM2290_MASTER_SDCC_2,
4262306a36Sopenharmony_ci	QCM2290_MASTER_QPIC,
4362306a36Sopenharmony_ci	QCM2290_MASTER_USB3_0,
4462306a36Sopenharmony_ci	QCM2290_MASTER_QUP_CORE_0,
4562306a36Sopenharmony_ci	QCM2290_MASTER_CAMNOC_SF,
4662306a36Sopenharmony_ci	QCM2290_MASTER_VIDEO_P0,
4762306a36Sopenharmony_ci	QCM2290_MASTER_VIDEO_PROC,
4862306a36Sopenharmony_ci	QCM2290_MASTER_CAMNOC_HF,
4962306a36Sopenharmony_ci	QCM2290_MASTER_MDP0,
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
5262306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_SNOC,
5362306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_CFG,
5462306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_NRT_THROTTLE_CFG,
5562306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_RT_THROTTLE_CFG,
5662306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_CFG,
5762306a36Sopenharmony_ci	QCM2290_SLAVE_CLK_CTL,
5862306a36Sopenharmony_ci	QCM2290_SLAVE_CRYPTO_0_CFG,
5962306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_CFG,
6062306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_THROTTLE_CFG,
6162306a36Sopenharmony_ci	QCM2290_SLAVE_GPU_CFG,
6262306a36Sopenharmony_ci	QCM2290_SLAVE_HWKM,
6362306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM_CFG,
6462306a36Sopenharmony_ci	QCM2290_SLAVE_IPA_CFG,
6562306a36Sopenharmony_ci	QCM2290_SLAVE_LPASS,
6662306a36Sopenharmony_ci	QCM2290_SLAVE_MESSAGE_RAM,
6762306a36Sopenharmony_ci	QCM2290_SLAVE_PDM,
6862306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM_CFG,
6962306a36Sopenharmony_ci	QCM2290_SLAVE_PKA_WRAPPER,
7062306a36Sopenharmony_ci	QCM2290_SLAVE_PMIC_ARB,
7162306a36Sopenharmony_ci	QCM2290_SLAVE_PRNG,
7262306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_CFG,
7362306a36Sopenharmony_ci	QCM2290_SLAVE_QM_CFG,
7462306a36Sopenharmony_ci	QCM2290_SLAVE_QM_MPU_CFG,
7562306a36Sopenharmony_ci	QCM2290_SLAVE_QPIC,
7662306a36Sopenharmony_ci	QCM2290_SLAVE_QUP_0,
7762306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_1,
7862306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_2,
7962306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CFG,
8062306a36Sopenharmony_ci	QCM2290_SLAVE_TCSR,
8162306a36Sopenharmony_ci	QCM2290_SLAVE_USB3,
8262306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_CFG,
8362306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_THROTTLE_CFG,
8462306a36Sopenharmony_ci	QCM2290_SLAVE_VSENSE_CTRL_CFG,
8562306a36Sopenharmony_ci	QCM2290_SLAVE_SERVICE_CNOC,
8662306a36Sopenharmony_ci	QCM2290_SLAVE_APPSS,
8762306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CNOC,
8862306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM,
8962306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM,
9062306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC,
9162306a36Sopenharmony_ci	QCM2290_SLAVE_SERVICE_SNOC,
9262306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_STM,
9362306a36Sopenharmony_ci	QCM2290_SLAVE_TCU,
9462306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
9562306a36Sopenharmony_ci	QCM2290_SLAVE_QUP_CORE_0,
9662306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_NRT,
9762306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_RT,
9862306a36Sopenharmony_ci};
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci/* Master nodes */
10162306a36Sopenharmony_cistatic const u16 mas_appss_proc_links[] = {
10262306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
10362306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_SNOC,
10462306a36Sopenharmony_ci};
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_cistatic struct qcom_icc_node mas_appss_proc = {
10762306a36Sopenharmony_ci	.id = QCM2290_MASTER_APPSS_PROC,
10862306a36Sopenharmony_ci	.name = "mas_apps_proc",
10962306a36Sopenharmony_ci	.buswidth = 16,
11062306a36Sopenharmony_ci	.qos.ap_owned = true,
11162306a36Sopenharmony_ci	.qos.qos_port = 0,
11262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
11362306a36Sopenharmony_ci	.qos.prio_level = 0,
11462306a36Sopenharmony_ci	.qos.areq_prio = 0,
11562306a36Sopenharmony_ci	.mas_rpm_id = 0,
11662306a36Sopenharmony_ci	.slv_rpm_id = -1,
11762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_appss_proc_links),
11862306a36Sopenharmony_ci	.links = mas_appss_proc_links,
11962306a36Sopenharmony_ci};
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_cistatic const u16 mas_snoc_bimc_rt_links[] = {
12262306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
12362306a36Sopenharmony_ci};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_bimc_rt = {
12662306a36Sopenharmony_ci	.id = QCM2290_MASTER_SNOC_BIMC_RT,
12762306a36Sopenharmony_ci	.name = "mas_snoc_bimc_rt",
12862306a36Sopenharmony_ci	.buswidth = 16,
12962306a36Sopenharmony_ci	.qos.ap_owned = true,
13062306a36Sopenharmony_ci	.qos.qos_port = 2,
13162306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
13262306a36Sopenharmony_ci	.mas_rpm_id = 163,
13362306a36Sopenharmony_ci	.slv_rpm_id = -1,
13462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_bimc_rt_links),
13562306a36Sopenharmony_ci	.links = mas_snoc_bimc_rt_links,
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cistatic const u16 mas_snoc_bimc_nrt_links[] = {
13962306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
14062306a36Sopenharmony_ci};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_bimc_nrt = {
14362306a36Sopenharmony_ci	.id = QCM2290_MASTER_SNOC_BIMC_NRT,
14462306a36Sopenharmony_ci	.name = "mas_snoc_bimc_nrt",
14562306a36Sopenharmony_ci	.buswidth = 16,
14662306a36Sopenharmony_ci	.qos.ap_owned = true,
14762306a36Sopenharmony_ci	.qos.qos_port = 3,
14862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
14962306a36Sopenharmony_ci	.mas_rpm_id = 164,
15062306a36Sopenharmony_ci	.slv_rpm_id = -1,
15162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_bimc_nrt_links),
15262306a36Sopenharmony_ci	.links = mas_snoc_bimc_nrt_links,
15362306a36Sopenharmony_ci};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_cistatic const u16 mas_snoc_bimc_links[] = {
15662306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
15762306a36Sopenharmony_ci};
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_bimc = {
16062306a36Sopenharmony_ci	.id = QCM2290_MASTER_SNOC_BIMC,
16162306a36Sopenharmony_ci	.name = "mas_snoc_bimc",
16262306a36Sopenharmony_ci	.buswidth = 16,
16362306a36Sopenharmony_ci	.qos.ap_owned = true,
16462306a36Sopenharmony_ci	.qos.qos_port = 2,
16562306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
16662306a36Sopenharmony_ci	.mas_rpm_id = 164,
16762306a36Sopenharmony_ci	.slv_rpm_id = -1,
16862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_bimc_links),
16962306a36Sopenharmony_ci	.links = mas_snoc_bimc_links,
17062306a36Sopenharmony_ci};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_cistatic const u16 mas_tcu_0_links[] = {
17362306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
17462306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_SNOC,
17562306a36Sopenharmony_ci};
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_cistatic struct qcom_icc_node mas_tcu_0 = {
17862306a36Sopenharmony_ci	.id = QCM2290_MASTER_TCU_0,
17962306a36Sopenharmony_ci	.name = "mas_tcu_0",
18062306a36Sopenharmony_ci	.buswidth = 8,
18162306a36Sopenharmony_ci	.qos.ap_owned = true,
18262306a36Sopenharmony_ci	.qos.qos_port = 4,
18362306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
18462306a36Sopenharmony_ci	.qos.prio_level = 6,
18562306a36Sopenharmony_ci	.qos.areq_prio = 6,
18662306a36Sopenharmony_ci	.mas_rpm_id = 102,
18762306a36Sopenharmony_ci	.slv_rpm_id = -1,
18862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_tcu_0_links),
18962306a36Sopenharmony_ci	.links = mas_tcu_0_links,
19062306a36Sopenharmony_ci};
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_cistatic const u16 mas_snoc_cnoc_links[] = {
19362306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_RT_THROTTLE_CFG,
19462306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_2,
19562306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_1,
19662306a36Sopenharmony_ci	QCM2290_SLAVE_QM_CFG,
19762306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_CFG,
19862306a36Sopenharmony_ci	QCM2290_SLAVE_USB3,
19962306a36Sopenharmony_ci	QCM2290_SLAVE_QM_MPU_CFG,
20062306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_NRT_THROTTLE_CFG,
20162306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_CFG,
20262306a36Sopenharmony_ci	QCM2290_SLAVE_PDM,
20362306a36Sopenharmony_ci	QCM2290_SLAVE_IPA_CFG,
20462306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_THROTTLE_CFG,
20562306a36Sopenharmony_ci	QCM2290_SLAVE_TCSR,
20662306a36Sopenharmony_ci	QCM2290_SLAVE_MESSAGE_RAM,
20762306a36Sopenharmony_ci	QCM2290_SLAVE_PMIC_ARB,
20862306a36Sopenharmony_ci	QCM2290_SLAVE_LPASS,
20962306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_CFG,
21062306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_CFG,
21162306a36Sopenharmony_ci	QCM2290_SLAVE_GPU_CFG,
21262306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM_CFG,
21362306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CFG,
21462306a36Sopenharmony_ci	QCM2290_SLAVE_SERVICE_CNOC,
21562306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_THROTTLE_CFG,
21662306a36Sopenharmony_ci	QCM2290_SLAVE_PKA_WRAPPER,
21762306a36Sopenharmony_ci	QCM2290_SLAVE_HWKM,
21862306a36Sopenharmony_ci	QCM2290_SLAVE_PRNG,
21962306a36Sopenharmony_ci	QCM2290_SLAVE_VSENSE_CTRL_CFG,
22062306a36Sopenharmony_ci	QCM2290_SLAVE_CRYPTO_0_CFG,
22162306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM_CFG,
22262306a36Sopenharmony_ci	QCM2290_SLAVE_QUP_0,
22362306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_CFG,
22462306a36Sopenharmony_ci	QCM2290_SLAVE_CLK_CTL,
22562306a36Sopenharmony_ci	QCM2290_SLAVE_QPIC,
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_cnoc = {
22962306a36Sopenharmony_ci	.id = QCM2290_MASTER_SNOC_CNOC,
23062306a36Sopenharmony_ci	.name = "mas_snoc_cnoc",
23162306a36Sopenharmony_ci	.buswidth = 8,
23262306a36Sopenharmony_ci	.qos.ap_owned = true,
23362306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
23462306a36Sopenharmony_ci	.mas_rpm_id = 52,
23562306a36Sopenharmony_ci	.slv_rpm_id = -1,
23662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_cnoc_links),
23762306a36Sopenharmony_ci	.links = mas_snoc_cnoc_links,
23862306a36Sopenharmony_ci};
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_cistatic const u16 mas_qdss_dap_links[] = {
24162306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_RT_THROTTLE_CFG,
24262306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_2,
24362306a36Sopenharmony_ci	QCM2290_SLAVE_SDCC_1,
24462306a36Sopenharmony_ci	QCM2290_SLAVE_QM_CFG,
24562306a36Sopenharmony_ci	QCM2290_SLAVE_BIMC_CFG,
24662306a36Sopenharmony_ci	QCM2290_SLAVE_USB3,
24762306a36Sopenharmony_ci	QCM2290_SLAVE_QM_MPU_CFG,
24862306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_NRT_THROTTLE_CFG,
24962306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_CFG,
25062306a36Sopenharmony_ci	QCM2290_SLAVE_PDM,
25162306a36Sopenharmony_ci	QCM2290_SLAVE_IPA_CFG,
25262306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_THROTTLE_CFG,
25362306a36Sopenharmony_ci	QCM2290_SLAVE_TCSR,
25462306a36Sopenharmony_ci	QCM2290_SLAVE_MESSAGE_RAM,
25562306a36Sopenharmony_ci	QCM2290_SLAVE_PMIC_ARB,
25662306a36Sopenharmony_ci	QCM2290_SLAVE_LPASS,
25762306a36Sopenharmony_ci	QCM2290_SLAVE_DISPLAY_CFG,
25862306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_CFG,
25962306a36Sopenharmony_ci	QCM2290_SLAVE_GPU_CFG,
26062306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM_CFG,
26162306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CFG,
26262306a36Sopenharmony_ci	QCM2290_SLAVE_SERVICE_CNOC,
26362306a36Sopenharmony_ci	QCM2290_SLAVE_VENUS_THROTTLE_CFG,
26462306a36Sopenharmony_ci	QCM2290_SLAVE_PKA_WRAPPER,
26562306a36Sopenharmony_ci	QCM2290_SLAVE_HWKM,
26662306a36Sopenharmony_ci	QCM2290_SLAVE_PRNG,
26762306a36Sopenharmony_ci	QCM2290_SLAVE_VSENSE_CTRL_CFG,
26862306a36Sopenharmony_ci	QCM2290_SLAVE_CRYPTO_0_CFG,
26962306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM_CFG,
27062306a36Sopenharmony_ci	QCM2290_SLAVE_QUP_0,
27162306a36Sopenharmony_ci	QCM2290_SLAVE_CAMERA_CFG,
27262306a36Sopenharmony_ci	QCM2290_SLAVE_CLK_CTL,
27362306a36Sopenharmony_ci	QCM2290_SLAVE_QPIC,
27462306a36Sopenharmony_ci};
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_cistatic struct qcom_icc_node mas_qdss_dap = {
27762306a36Sopenharmony_ci	.id = QCM2290_MASTER_QDSS_DAP,
27862306a36Sopenharmony_ci	.name = "mas_qdss_dap",
27962306a36Sopenharmony_ci	.buswidth = 8,
28062306a36Sopenharmony_ci	.qos.ap_owned = true,
28162306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
28262306a36Sopenharmony_ci	.mas_rpm_id = 49,
28362306a36Sopenharmony_ci	.slv_rpm_id = -1,
28462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qdss_dap_links),
28562306a36Sopenharmony_ci	.links = mas_qdss_dap_links,
28662306a36Sopenharmony_ci};
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_cistatic const u16 mas_crypto_core0_links[] = {
28962306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC
29062306a36Sopenharmony_ci};
29162306a36Sopenharmony_ci
29262306a36Sopenharmony_cistatic struct qcom_icc_node mas_crypto_core0 = {
29362306a36Sopenharmony_ci	.id = QCM2290_MASTER_CRYPTO_CORE0,
29462306a36Sopenharmony_ci	.name = "mas_crypto_core0",
29562306a36Sopenharmony_ci	.buswidth = 8,
29662306a36Sopenharmony_ci	.qos.ap_owned = true,
29762306a36Sopenharmony_ci	.qos.qos_port = 22,
29862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
29962306a36Sopenharmony_ci	.qos.areq_prio = 2,
30062306a36Sopenharmony_ci	.mas_rpm_id = 23,
30162306a36Sopenharmony_ci	.slv_rpm_id = -1,
30262306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_crypto_core0_links),
30362306a36Sopenharmony_ci	.links = mas_crypto_core0_links,
30462306a36Sopenharmony_ci};
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_cistatic const u16 mas_qup_core_0_links[] = {
30762306a36Sopenharmony_ci	QCM2290_SLAVE_QUP_CORE_0,
30862306a36Sopenharmony_ci};
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_cistatic struct qcom_icc_node mas_qup_core_0 = {
31162306a36Sopenharmony_ci	.id = QCM2290_MASTER_QUP_CORE_0,
31262306a36Sopenharmony_ci	.name = "mas_qup_core_0",
31362306a36Sopenharmony_ci	.buswidth = 4,
31462306a36Sopenharmony_ci	.mas_rpm_id = 170,
31562306a36Sopenharmony_ci	.slv_rpm_id = -1,
31662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qup_core_0_links),
31762306a36Sopenharmony_ci	.links = mas_qup_core_0_links,
31862306a36Sopenharmony_ci};
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_cistatic const u16 mas_camnoc_sf_links[] = {
32162306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_NRT,
32262306a36Sopenharmony_ci};
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_cistatic struct qcom_icc_node mas_camnoc_sf = {
32562306a36Sopenharmony_ci	.id = QCM2290_MASTER_CAMNOC_SF,
32662306a36Sopenharmony_ci	.name = "mas_camnoc_sf",
32762306a36Sopenharmony_ci	.buswidth = 32,
32862306a36Sopenharmony_ci	.qos.ap_owned = true,
32962306a36Sopenharmony_ci	.qos.qos_port = 4,
33062306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
33162306a36Sopenharmony_ci	.qos.areq_prio = 3,
33262306a36Sopenharmony_ci	.mas_rpm_id = 172,
33362306a36Sopenharmony_ci	.slv_rpm_id = -1,
33462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_camnoc_sf_links),
33562306a36Sopenharmony_ci	.links = mas_camnoc_sf_links,
33662306a36Sopenharmony_ci};
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_cistatic const u16 mas_camnoc_hf_links[] = {
33962306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_RT,
34062306a36Sopenharmony_ci};
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_cistatic struct qcom_icc_node mas_camnoc_hf = {
34362306a36Sopenharmony_ci	.id = QCM2290_MASTER_CAMNOC_HF,
34462306a36Sopenharmony_ci	.name = "mas_camnoc_hf",
34562306a36Sopenharmony_ci	.buswidth = 32,
34662306a36Sopenharmony_ci	.qos.ap_owned = true,
34762306a36Sopenharmony_ci	.qos.qos_port = 10,
34862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
34962306a36Sopenharmony_ci	.qos.areq_prio = 3,
35062306a36Sopenharmony_ci	.qos.urg_fwd_en = true,
35162306a36Sopenharmony_ci	.mas_rpm_id = 173,
35262306a36Sopenharmony_ci	.slv_rpm_id = -1,
35362306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_camnoc_hf_links),
35462306a36Sopenharmony_ci	.links = mas_camnoc_hf_links,
35562306a36Sopenharmony_ci};
35662306a36Sopenharmony_ci
35762306a36Sopenharmony_cistatic const u16 mas_mdp0_links[] = {
35862306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_RT,
35962306a36Sopenharmony_ci};
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_cistatic struct qcom_icc_node mas_mdp0 = {
36262306a36Sopenharmony_ci	.id = QCM2290_MASTER_MDP0,
36362306a36Sopenharmony_ci	.name = "mas_mdp0",
36462306a36Sopenharmony_ci	.buswidth = 16,
36562306a36Sopenharmony_ci	.qos.ap_owned = true,
36662306a36Sopenharmony_ci	.qos.qos_port = 5,
36762306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
36862306a36Sopenharmony_ci	.qos.areq_prio = 3,
36962306a36Sopenharmony_ci	.qos.urg_fwd_en = true,
37062306a36Sopenharmony_ci	.mas_rpm_id = 8,
37162306a36Sopenharmony_ci	.slv_rpm_id = -1,
37262306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_mdp0_links),
37362306a36Sopenharmony_ci	.links = mas_mdp0_links,
37462306a36Sopenharmony_ci};
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_cistatic const u16 mas_video_p0_links[] = {
37762306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_NRT,
37862306a36Sopenharmony_ci};
37962306a36Sopenharmony_ci
38062306a36Sopenharmony_cistatic struct qcom_icc_node mas_video_p0 = {
38162306a36Sopenharmony_ci	.id = QCM2290_MASTER_VIDEO_P0,
38262306a36Sopenharmony_ci	.name = "mas_video_p0",
38362306a36Sopenharmony_ci	.buswidth = 16,
38462306a36Sopenharmony_ci	.qos.ap_owned = true,
38562306a36Sopenharmony_ci	.qos.qos_port = 9,
38662306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
38762306a36Sopenharmony_ci	.qos.areq_prio = 3,
38862306a36Sopenharmony_ci	.qos.urg_fwd_en = true,
38962306a36Sopenharmony_ci	.mas_rpm_id = 9,
39062306a36Sopenharmony_ci	.slv_rpm_id = -1,
39162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_video_p0_links),
39262306a36Sopenharmony_ci	.links = mas_video_p0_links,
39362306a36Sopenharmony_ci};
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_cistatic const u16 mas_video_proc_links[] = {
39662306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC_NRT,
39762306a36Sopenharmony_ci};
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_cistatic struct qcom_icc_node mas_video_proc = {
40062306a36Sopenharmony_ci	.id = QCM2290_MASTER_VIDEO_PROC,
40162306a36Sopenharmony_ci	.name = "mas_video_proc",
40262306a36Sopenharmony_ci	.buswidth = 8,
40362306a36Sopenharmony_ci	.qos.ap_owned = true,
40462306a36Sopenharmony_ci	.qos.qos_port = 13,
40562306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
40662306a36Sopenharmony_ci	.qos.areq_prio = 4,
40762306a36Sopenharmony_ci	.mas_rpm_id = 168,
40862306a36Sopenharmony_ci	.slv_rpm_id = -1,
40962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_video_proc_links),
41062306a36Sopenharmony_ci	.links = mas_video_proc_links,
41162306a36Sopenharmony_ci};
41262306a36Sopenharmony_ci
41362306a36Sopenharmony_cistatic const u16 mas_snoc_cfg_links[] = {
41462306a36Sopenharmony_ci	QCM2290_SLAVE_SERVICE_SNOC,
41562306a36Sopenharmony_ci};
41662306a36Sopenharmony_ci
41762306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_cfg = {
41862306a36Sopenharmony_ci	.id = QCM2290_MASTER_SNOC_CFG,
41962306a36Sopenharmony_ci	.name = "mas_snoc_cfg",
42062306a36Sopenharmony_ci	.buswidth = 4,
42162306a36Sopenharmony_ci	.qos.ap_owned = true,
42262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
42362306a36Sopenharmony_ci	.mas_rpm_id = 20,
42462306a36Sopenharmony_ci	.slv_rpm_id = -1,
42562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_cfg_links),
42662306a36Sopenharmony_ci	.links = mas_snoc_cfg_links,
42762306a36Sopenharmony_ci};
42862306a36Sopenharmony_ci
42962306a36Sopenharmony_cistatic const u16 mas_tic_links[] = {
43062306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM,
43162306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM,
43262306a36Sopenharmony_ci	QCM2290_SLAVE_APPSS,
43362306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC,
43462306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CNOC,
43562306a36Sopenharmony_ci	QCM2290_SLAVE_TCU,
43662306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_STM,
43762306a36Sopenharmony_ci};
43862306a36Sopenharmony_ci
43962306a36Sopenharmony_cistatic struct qcom_icc_node mas_tic = {
44062306a36Sopenharmony_ci	.id = QCM2290_MASTER_TIC,
44162306a36Sopenharmony_ci	.name = "mas_tic",
44262306a36Sopenharmony_ci	.buswidth = 4,
44362306a36Sopenharmony_ci	.qos.ap_owned = true,
44462306a36Sopenharmony_ci	.qos.qos_port = 8,
44562306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
44662306a36Sopenharmony_ci	.qos.areq_prio = 2,
44762306a36Sopenharmony_ci	.mas_rpm_id = 51,
44862306a36Sopenharmony_ci	.slv_rpm_id = -1,
44962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_tic_links),
45062306a36Sopenharmony_ci	.links = mas_tic_links,
45162306a36Sopenharmony_ci};
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_cistatic const u16 mas_anoc_snoc_links[] = {
45462306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM,
45562306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM,
45662306a36Sopenharmony_ci	QCM2290_SLAVE_APPSS,
45762306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC,
45862306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CNOC,
45962306a36Sopenharmony_ci	QCM2290_SLAVE_TCU,
46062306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_STM,
46162306a36Sopenharmony_ci};
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_cistatic struct qcom_icc_node mas_anoc_snoc = {
46462306a36Sopenharmony_ci	.id = QCM2290_MASTER_ANOC_SNOC,
46562306a36Sopenharmony_ci	.name = "mas_anoc_snoc",
46662306a36Sopenharmony_ci	.buswidth = 16,
46762306a36Sopenharmony_ci	.mas_rpm_id = 110,
46862306a36Sopenharmony_ci	.slv_rpm_id = -1,
46962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_anoc_snoc_links),
47062306a36Sopenharmony_ci	.links = mas_anoc_snoc_links,
47162306a36Sopenharmony_ci};
47262306a36Sopenharmony_ci
47362306a36Sopenharmony_cistatic const u16 mas_bimc_snoc_links[] = {
47462306a36Sopenharmony_ci	QCM2290_SLAVE_PIMEM,
47562306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM,
47662306a36Sopenharmony_ci	QCM2290_SLAVE_APPSS,
47762306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_CNOC,
47862306a36Sopenharmony_ci	QCM2290_SLAVE_TCU,
47962306a36Sopenharmony_ci	QCM2290_SLAVE_QDSS_STM,
48062306a36Sopenharmony_ci};
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_cistatic struct qcom_icc_node mas_bimc_snoc = {
48362306a36Sopenharmony_ci	.id = QCM2290_MASTER_BIMC_SNOC,
48462306a36Sopenharmony_ci	.name = "mas_bimc_snoc",
48562306a36Sopenharmony_ci	.buswidth = 8,
48662306a36Sopenharmony_ci	.mas_rpm_id = 21,
48762306a36Sopenharmony_ci	.slv_rpm_id = -1,
48862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_bimc_snoc_links),
48962306a36Sopenharmony_ci	.links = mas_bimc_snoc_links,
49062306a36Sopenharmony_ci};
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_cistatic const u16 mas_pimem_links[] = {
49362306a36Sopenharmony_ci	QCM2290_SLAVE_IMEM,
49462306a36Sopenharmony_ci	QCM2290_SLAVE_SNOC_BIMC,
49562306a36Sopenharmony_ci};
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_cistatic struct qcom_icc_node mas_pimem = {
49862306a36Sopenharmony_ci	.id = QCM2290_MASTER_PIMEM,
49962306a36Sopenharmony_ci	.name = "mas_pimem",
50062306a36Sopenharmony_ci	.buswidth = 8,
50162306a36Sopenharmony_ci	.qos.ap_owned = true,
50262306a36Sopenharmony_ci	.qos.qos_port = 20,
50362306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
50462306a36Sopenharmony_ci	.qos.areq_prio = 2,
50562306a36Sopenharmony_ci	.mas_rpm_id = 113,
50662306a36Sopenharmony_ci	.slv_rpm_id = -1,
50762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_pimem_links),
50862306a36Sopenharmony_ci	.links = mas_pimem_links,
50962306a36Sopenharmony_ci};
51062306a36Sopenharmony_ci
51162306a36Sopenharmony_cistatic const u16 mas_qdss_bam_links[] = {
51262306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
51362306a36Sopenharmony_ci};
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_cistatic struct qcom_icc_node mas_qdss_bam = {
51662306a36Sopenharmony_ci	.id = QCM2290_MASTER_QDSS_BAM,
51762306a36Sopenharmony_ci	.name = "mas_qdss_bam",
51862306a36Sopenharmony_ci	.buswidth = 4,
51962306a36Sopenharmony_ci	.qos.ap_owned = true,
52062306a36Sopenharmony_ci	.qos.qos_port = 2,
52162306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
52262306a36Sopenharmony_ci	.qos.areq_prio = 2,
52362306a36Sopenharmony_ci	.mas_rpm_id = 19,
52462306a36Sopenharmony_ci	.slv_rpm_id = -1,
52562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qdss_bam_links),
52662306a36Sopenharmony_ci	.links = mas_qdss_bam_links,
52762306a36Sopenharmony_ci};
52862306a36Sopenharmony_ci
52962306a36Sopenharmony_cistatic const u16 mas_qup_0_links[] = {
53062306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
53162306a36Sopenharmony_ci};
53262306a36Sopenharmony_ci
53362306a36Sopenharmony_cistatic struct qcom_icc_node mas_qup_0 = {
53462306a36Sopenharmony_ci	.id = QCM2290_MASTER_QUP_0,
53562306a36Sopenharmony_ci	.name = "mas_qup_0",
53662306a36Sopenharmony_ci	.buswidth = 4,
53762306a36Sopenharmony_ci	.qos.ap_owned = true,
53862306a36Sopenharmony_ci	.qos.qos_port = 0,
53962306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
54062306a36Sopenharmony_ci	.qos.areq_prio = 2,
54162306a36Sopenharmony_ci	.mas_rpm_id = 166,
54262306a36Sopenharmony_ci	.slv_rpm_id = -1,
54362306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qup_0_links),
54462306a36Sopenharmony_ci	.links = mas_qup_0_links,
54562306a36Sopenharmony_ci};
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_cistatic const u16 mas_ipa_links[] = {
54862306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
54962306a36Sopenharmony_ci};
55062306a36Sopenharmony_ci
55162306a36Sopenharmony_cistatic struct qcom_icc_node mas_ipa = {
55262306a36Sopenharmony_ci	.id = QCM2290_MASTER_IPA,
55362306a36Sopenharmony_ci	.name = "mas_ipa",
55462306a36Sopenharmony_ci	.buswidth = 8,
55562306a36Sopenharmony_ci	.qos.ap_owned = true,
55662306a36Sopenharmony_ci	.qos.qos_port = 3,
55762306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
55862306a36Sopenharmony_ci	.qos.areq_prio = 2,
55962306a36Sopenharmony_ci	.mas_rpm_id = 59,
56062306a36Sopenharmony_ci	.slv_rpm_id = -1,
56162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_ipa_links),
56262306a36Sopenharmony_ci	.links = mas_ipa_links,
56362306a36Sopenharmony_ci};
56462306a36Sopenharmony_ci
56562306a36Sopenharmony_cistatic const u16 mas_qdss_etr_links[] = {
56662306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
56762306a36Sopenharmony_ci};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_cistatic struct qcom_icc_node mas_qdss_etr = {
57062306a36Sopenharmony_ci	.id = QCM2290_MASTER_QDSS_ETR,
57162306a36Sopenharmony_ci	.name = "mas_qdss_etr",
57262306a36Sopenharmony_ci	.buswidth = 8,
57362306a36Sopenharmony_ci	.qos.ap_owned = true,
57462306a36Sopenharmony_ci	.qos.qos_port = 12,
57562306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
57662306a36Sopenharmony_ci	.qos.areq_prio = 2,
57762306a36Sopenharmony_ci	.mas_rpm_id = 31,
57862306a36Sopenharmony_ci	.slv_rpm_id = -1,
57962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qdss_etr_links),
58062306a36Sopenharmony_ci	.links = mas_qdss_etr_links,
58162306a36Sopenharmony_ci};
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_cistatic const u16 mas_sdcc_1_links[] = {
58462306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
58562306a36Sopenharmony_ci};
58662306a36Sopenharmony_ci
58762306a36Sopenharmony_cistatic struct qcom_icc_node mas_sdcc_1 = {
58862306a36Sopenharmony_ci	.id = QCM2290_MASTER_SDCC_1,
58962306a36Sopenharmony_ci	.name = "mas_sdcc_1",
59062306a36Sopenharmony_ci	.buswidth = 8,
59162306a36Sopenharmony_ci	.qos.ap_owned = true,
59262306a36Sopenharmony_ci	.qos.qos_port = 17,
59362306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
59462306a36Sopenharmony_ci	.qos.areq_prio = 2,
59562306a36Sopenharmony_ci	.mas_rpm_id = 33,
59662306a36Sopenharmony_ci	.slv_rpm_id = -1,
59762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_sdcc_1_links),
59862306a36Sopenharmony_ci	.links = mas_sdcc_1_links,
59962306a36Sopenharmony_ci};
60062306a36Sopenharmony_ci
60162306a36Sopenharmony_cistatic const u16 mas_sdcc_2_links[] = {
60262306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
60362306a36Sopenharmony_ci};
60462306a36Sopenharmony_ci
60562306a36Sopenharmony_cistatic struct qcom_icc_node mas_sdcc_2 = {
60662306a36Sopenharmony_ci	.id = QCM2290_MASTER_SDCC_2,
60762306a36Sopenharmony_ci	.name = "mas_sdcc_2",
60862306a36Sopenharmony_ci	.buswidth = 8,
60962306a36Sopenharmony_ci	.qos.ap_owned = true,
61062306a36Sopenharmony_ci	.qos.qos_port = 23,
61162306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
61262306a36Sopenharmony_ci	.qos.areq_prio = 2,
61362306a36Sopenharmony_ci	.mas_rpm_id = 35,
61462306a36Sopenharmony_ci	.slv_rpm_id = -1,
61562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_sdcc_2_links),
61662306a36Sopenharmony_ci	.links = mas_sdcc_2_links,
61762306a36Sopenharmony_ci};
61862306a36Sopenharmony_ci
61962306a36Sopenharmony_cistatic const u16 mas_qpic_links[] = {
62062306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
62162306a36Sopenharmony_ci};
62262306a36Sopenharmony_ci
62362306a36Sopenharmony_cistatic struct qcom_icc_node mas_qpic = {
62462306a36Sopenharmony_ci	.id = QCM2290_MASTER_QPIC,
62562306a36Sopenharmony_ci	.name = "mas_qpic",
62662306a36Sopenharmony_ci	.buswidth = 4,
62762306a36Sopenharmony_ci	.qos.ap_owned = true,
62862306a36Sopenharmony_ci	.qos.qos_port = 1,
62962306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
63062306a36Sopenharmony_ci	.qos.areq_prio = 2,
63162306a36Sopenharmony_ci	.mas_rpm_id = 58,
63262306a36Sopenharmony_ci	.slv_rpm_id = -1,
63362306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qpic_links),
63462306a36Sopenharmony_ci	.links = mas_qpic_links,
63562306a36Sopenharmony_ci};
63662306a36Sopenharmony_ci
63762306a36Sopenharmony_cistatic const u16 mas_usb3_0_links[] = {
63862306a36Sopenharmony_ci	QCM2290_SLAVE_ANOC_SNOC,
63962306a36Sopenharmony_ci};
64062306a36Sopenharmony_ci
64162306a36Sopenharmony_cistatic struct qcom_icc_node mas_usb3_0 = {
64262306a36Sopenharmony_ci	.id = QCM2290_MASTER_USB3_0,
64362306a36Sopenharmony_ci	.name = "mas_usb3_0",
64462306a36Sopenharmony_ci	.buswidth = 8,
64562306a36Sopenharmony_ci	.qos.ap_owned = true,
64662306a36Sopenharmony_ci	.qos.qos_port = 24,
64762306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
64862306a36Sopenharmony_ci	.qos.areq_prio = 2,
64962306a36Sopenharmony_ci	.mas_rpm_id = 32,
65062306a36Sopenharmony_ci	.slv_rpm_id = -1,
65162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_usb3_0_links),
65262306a36Sopenharmony_ci	.links = mas_usb3_0_links,
65362306a36Sopenharmony_ci};
65462306a36Sopenharmony_ci
65562306a36Sopenharmony_cistatic const u16 mas_gfx3d_links[] = {
65662306a36Sopenharmony_ci	QCM2290_SLAVE_EBI1,
65762306a36Sopenharmony_ci};
65862306a36Sopenharmony_ci
65962306a36Sopenharmony_cistatic struct qcom_icc_node mas_gfx3d = {
66062306a36Sopenharmony_ci	.id = QCM2290_MASTER_GFX3D,
66162306a36Sopenharmony_ci	.name = "mas_gfx3d",
66262306a36Sopenharmony_ci	.buswidth = 32,
66362306a36Sopenharmony_ci	.qos.ap_owned = true,
66462306a36Sopenharmony_ci	.qos.qos_port = 1,
66562306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_FIXED,
66662306a36Sopenharmony_ci	.qos.prio_level = 0,
66762306a36Sopenharmony_ci	.qos.areq_prio = 0,
66862306a36Sopenharmony_ci	.mas_rpm_id = 6,
66962306a36Sopenharmony_ci	.slv_rpm_id = -1,
67062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_gfx3d_links),
67162306a36Sopenharmony_ci	.links = mas_gfx3d_links,
67262306a36Sopenharmony_ci};
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ci/* Slave nodes */
67562306a36Sopenharmony_cistatic struct qcom_icc_node slv_ebi1 = {
67662306a36Sopenharmony_ci	.name = "slv_ebi1",
67762306a36Sopenharmony_ci	.id = QCM2290_SLAVE_EBI1,
67862306a36Sopenharmony_ci	.buswidth = 8,
67962306a36Sopenharmony_ci	.mas_rpm_id = -1,
68062306a36Sopenharmony_ci	.slv_rpm_id = 0,
68162306a36Sopenharmony_ci};
68262306a36Sopenharmony_ci
68362306a36Sopenharmony_cistatic const u16 slv_bimc_snoc_links[] = {
68462306a36Sopenharmony_ci	QCM2290_MASTER_BIMC_SNOC,
68562306a36Sopenharmony_ci};
68662306a36Sopenharmony_ci
68762306a36Sopenharmony_cistatic struct qcom_icc_node slv_bimc_snoc = {
68862306a36Sopenharmony_ci	.name = "slv_bimc_snoc",
68962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_BIMC_SNOC,
69062306a36Sopenharmony_ci	.buswidth = 8,
69162306a36Sopenharmony_ci	.mas_rpm_id = -1,
69262306a36Sopenharmony_ci	.slv_rpm_id = 2,
69362306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_bimc_snoc_links),
69462306a36Sopenharmony_ci	.links = slv_bimc_snoc_links,
69562306a36Sopenharmony_ci};
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_cistatic struct qcom_icc_node slv_bimc_cfg = {
69862306a36Sopenharmony_ci	.name = "slv_bimc_cfg",
69962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_BIMC_CFG,
70062306a36Sopenharmony_ci	.buswidth = 4,
70162306a36Sopenharmony_ci	.qos.ap_owned = true,
70262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
70362306a36Sopenharmony_ci	.mas_rpm_id = -1,
70462306a36Sopenharmony_ci	.slv_rpm_id = 56,
70562306a36Sopenharmony_ci};
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_cistatic struct qcom_icc_node slv_camera_nrt_throttle_cfg = {
70862306a36Sopenharmony_ci	.name = "slv_camera_nrt_throttle_cfg",
70962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_CAMERA_NRT_THROTTLE_CFG,
71062306a36Sopenharmony_ci	.buswidth = 4,
71162306a36Sopenharmony_ci	.qos.ap_owned = true,
71262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
71362306a36Sopenharmony_ci	.mas_rpm_id = -1,
71462306a36Sopenharmony_ci	.slv_rpm_id = 271,
71562306a36Sopenharmony_ci};
71662306a36Sopenharmony_ci
71762306a36Sopenharmony_cistatic struct qcom_icc_node slv_camera_rt_throttle_cfg = {
71862306a36Sopenharmony_ci	.name = "slv_camera_rt_throttle_cfg",
71962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_CAMERA_RT_THROTTLE_CFG,
72062306a36Sopenharmony_ci	.buswidth = 4,
72162306a36Sopenharmony_ci	.qos.ap_owned = true,
72262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
72362306a36Sopenharmony_ci	.mas_rpm_id = -1,
72462306a36Sopenharmony_ci	.slv_rpm_id = 279,
72562306a36Sopenharmony_ci};
72662306a36Sopenharmony_ci
72762306a36Sopenharmony_cistatic struct qcom_icc_node slv_camera_cfg = {
72862306a36Sopenharmony_ci	.name = "slv_camera_cfg",
72962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_CAMERA_CFG,
73062306a36Sopenharmony_ci	.buswidth = 4,
73162306a36Sopenharmony_ci	.qos.ap_owned = true,
73262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
73362306a36Sopenharmony_ci	.mas_rpm_id = -1,
73462306a36Sopenharmony_ci	.slv_rpm_id = 3,
73562306a36Sopenharmony_ci};
73662306a36Sopenharmony_ci
73762306a36Sopenharmony_cistatic struct qcom_icc_node slv_clk_ctl = {
73862306a36Sopenharmony_ci	.name = "slv_clk_ctl",
73962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_CLK_CTL,
74062306a36Sopenharmony_ci	.buswidth = 4,
74162306a36Sopenharmony_ci	.qos.ap_owned = true,
74262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
74362306a36Sopenharmony_ci	.mas_rpm_id = -1,
74462306a36Sopenharmony_ci	.slv_rpm_id = 47,
74562306a36Sopenharmony_ci};
74662306a36Sopenharmony_ci
74762306a36Sopenharmony_cistatic struct qcom_icc_node slv_crypto_0_cfg = {
74862306a36Sopenharmony_ci	.name = "slv_crypto_0_cfg",
74962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_CRYPTO_0_CFG,
75062306a36Sopenharmony_ci	.buswidth = 4,
75162306a36Sopenharmony_ci	.qos.ap_owned = true,
75262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
75362306a36Sopenharmony_ci	.mas_rpm_id = -1,
75462306a36Sopenharmony_ci	.slv_rpm_id = 52,
75562306a36Sopenharmony_ci};
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_cistatic struct qcom_icc_node slv_display_cfg = {
75862306a36Sopenharmony_ci	.name = "slv_display_cfg",
75962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_DISPLAY_CFG,
76062306a36Sopenharmony_ci	.buswidth = 4,
76162306a36Sopenharmony_ci	.qos.ap_owned = true,
76262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
76362306a36Sopenharmony_ci	.mas_rpm_id = -1,
76462306a36Sopenharmony_ci	.slv_rpm_id = 4,
76562306a36Sopenharmony_ci};
76662306a36Sopenharmony_ci
76762306a36Sopenharmony_cistatic struct qcom_icc_node slv_display_throttle_cfg = {
76862306a36Sopenharmony_ci	.name = "slv_display_throttle_cfg",
76962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_DISPLAY_THROTTLE_CFG,
77062306a36Sopenharmony_ci	.buswidth = 4,
77162306a36Sopenharmony_ci	.qos.ap_owned = true,
77262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
77362306a36Sopenharmony_ci	.mas_rpm_id = -1,
77462306a36Sopenharmony_ci	.slv_rpm_id = 156,
77562306a36Sopenharmony_ci};
77662306a36Sopenharmony_ci
77762306a36Sopenharmony_cistatic struct qcom_icc_node slv_gpu_cfg = {
77862306a36Sopenharmony_ci	.name = "slv_gpu_cfg",
77962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_GPU_CFG,
78062306a36Sopenharmony_ci	.buswidth = 8,
78162306a36Sopenharmony_ci	.qos.ap_owned = true,
78262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
78362306a36Sopenharmony_ci	.mas_rpm_id = -1,
78462306a36Sopenharmony_ci	.slv_rpm_id = 275,
78562306a36Sopenharmony_ci};
78662306a36Sopenharmony_ci
78762306a36Sopenharmony_cistatic struct qcom_icc_node slv_hwkm = {
78862306a36Sopenharmony_ci	.name = "slv_hwkm",
78962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_HWKM,
79062306a36Sopenharmony_ci	.buswidth = 4,
79162306a36Sopenharmony_ci	.qos.ap_owned = true,
79262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
79362306a36Sopenharmony_ci	.mas_rpm_id = -1,
79462306a36Sopenharmony_ci	.slv_rpm_id = 280,
79562306a36Sopenharmony_ci};
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_cistatic struct qcom_icc_node slv_imem_cfg = {
79862306a36Sopenharmony_ci	.name = "slv_imem_cfg",
79962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_IMEM_CFG,
80062306a36Sopenharmony_ci	.buswidth = 4,
80162306a36Sopenharmony_ci	.qos.ap_owned = true,
80262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
80362306a36Sopenharmony_ci	.mas_rpm_id = -1,
80462306a36Sopenharmony_ci	.slv_rpm_id = 54,
80562306a36Sopenharmony_ci};
80662306a36Sopenharmony_ci
80762306a36Sopenharmony_cistatic struct qcom_icc_node slv_ipa_cfg = {
80862306a36Sopenharmony_ci	.name = "slv_ipa_cfg",
80962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_IPA_CFG,
81062306a36Sopenharmony_ci	.buswidth = 4,
81162306a36Sopenharmony_ci	.qos.ap_owned = true,
81262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
81362306a36Sopenharmony_ci	.mas_rpm_id = -1,
81462306a36Sopenharmony_ci	.slv_rpm_id = 183,
81562306a36Sopenharmony_ci};
81662306a36Sopenharmony_ci
81762306a36Sopenharmony_cistatic struct qcom_icc_node slv_lpass = {
81862306a36Sopenharmony_ci	.name = "slv_lpass",
81962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_LPASS,
82062306a36Sopenharmony_ci	.buswidth = 4,
82162306a36Sopenharmony_ci	.qos.ap_owned = true,
82262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
82362306a36Sopenharmony_ci	.mas_rpm_id = -1,
82462306a36Sopenharmony_ci	.slv_rpm_id = 21,
82562306a36Sopenharmony_ci};
82662306a36Sopenharmony_ci
82762306a36Sopenharmony_cistatic struct qcom_icc_node slv_message_ram = {
82862306a36Sopenharmony_ci	.name = "slv_message_ram",
82962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_MESSAGE_RAM,
83062306a36Sopenharmony_ci	.buswidth = 4,
83162306a36Sopenharmony_ci	.qos.ap_owned = true,
83262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
83362306a36Sopenharmony_ci	.mas_rpm_id = -1,
83462306a36Sopenharmony_ci	.slv_rpm_id = 55,
83562306a36Sopenharmony_ci};
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_cistatic struct qcom_icc_node slv_pdm = {
83862306a36Sopenharmony_ci	.name = "slv_pdm",
83962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PDM,
84062306a36Sopenharmony_ci	.buswidth = 4,
84162306a36Sopenharmony_ci	.qos.ap_owned = true,
84262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
84362306a36Sopenharmony_ci	.mas_rpm_id = -1,
84462306a36Sopenharmony_ci	.slv_rpm_id = 41,
84562306a36Sopenharmony_ci};
84662306a36Sopenharmony_ci
84762306a36Sopenharmony_cistatic struct qcom_icc_node slv_pimem_cfg = {
84862306a36Sopenharmony_ci	.name = "slv_pimem_cfg",
84962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PIMEM_CFG,
85062306a36Sopenharmony_ci	.buswidth = 4,
85162306a36Sopenharmony_ci	.qos.ap_owned = true,
85262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
85362306a36Sopenharmony_ci	.mas_rpm_id = -1,
85462306a36Sopenharmony_ci	.slv_rpm_id = 167,
85562306a36Sopenharmony_ci};
85662306a36Sopenharmony_ci
85762306a36Sopenharmony_cistatic struct qcom_icc_node slv_pka_wrapper = {
85862306a36Sopenharmony_ci	.name = "slv_pka_wrapper",
85962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PKA_WRAPPER,
86062306a36Sopenharmony_ci	.buswidth = 4,
86162306a36Sopenharmony_ci	.qos.ap_owned = true,
86262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
86362306a36Sopenharmony_ci	.mas_rpm_id = -1,
86462306a36Sopenharmony_ci	.slv_rpm_id = 281,
86562306a36Sopenharmony_ci};
86662306a36Sopenharmony_ci
86762306a36Sopenharmony_cistatic struct qcom_icc_node slv_pmic_arb = {
86862306a36Sopenharmony_ci	.name = "slv_pmic_arb",
86962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PMIC_ARB,
87062306a36Sopenharmony_ci	.buswidth = 4,
87162306a36Sopenharmony_ci	.qos.ap_owned = true,
87262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
87362306a36Sopenharmony_ci	.mas_rpm_id = -1,
87462306a36Sopenharmony_ci	.slv_rpm_id = 59,
87562306a36Sopenharmony_ci};
87662306a36Sopenharmony_ci
87762306a36Sopenharmony_cistatic struct qcom_icc_node slv_prng = {
87862306a36Sopenharmony_ci	.name = "slv_prng",
87962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PRNG,
88062306a36Sopenharmony_ci	.buswidth = 4,
88162306a36Sopenharmony_ci	.qos.ap_owned = true,
88262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
88362306a36Sopenharmony_ci	.mas_rpm_id = -1,
88462306a36Sopenharmony_ci	.slv_rpm_id = 44,
88562306a36Sopenharmony_ci};
88662306a36Sopenharmony_ci
88762306a36Sopenharmony_cistatic struct qcom_icc_node slv_qdss_cfg = {
88862306a36Sopenharmony_ci	.name = "slv_qdss_cfg",
88962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QDSS_CFG,
89062306a36Sopenharmony_ci	.buswidth = 4,
89162306a36Sopenharmony_ci	.qos.ap_owned = true,
89262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
89362306a36Sopenharmony_ci	.mas_rpm_id = -1,
89462306a36Sopenharmony_ci	.slv_rpm_id = 63,
89562306a36Sopenharmony_ci};
89662306a36Sopenharmony_ci
89762306a36Sopenharmony_cistatic struct qcom_icc_node slv_qm_cfg = {
89862306a36Sopenharmony_ci	.name = "slv_qm_cfg",
89962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QM_CFG,
90062306a36Sopenharmony_ci	.buswidth = 4,
90162306a36Sopenharmony_ci	.qos.ap_owned = true,
90262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
90362306a36Sopenharmony_ci	.mas_rpm_id = -1,
90462306a36Sopenharmony_ci	.slv_rpm_id = 212,
90562306a36Sopenharmony_ci};
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_cistatic struct qcom_icc_node slv_qm_mpu_cfg = {
90862306a36Sopenharmony_ci	.name = "slv_qm_mpu_cfg",
90962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QM_MPU_CFG,
91062306a36Sopenharmony_ci	.buswidth = 4,
91162306a36Sopenharmony_ci	.qos.ap_owned = true,
91262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
91362306a36Sopenharmony_ci	.mas_rpm_id = -1,
91462306a36Sopenharmony_ci	.slv_rpm_id = 231,
91562306a36Sopenharmony_ci};
91662306a36Sopenharmony_ci
91762306a36Sopenharmony_cistatic struct qcom_icc_node slv_qpic = {
91862306a36Sopenharmony_ci	.name = "slv_qpic",
91962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QPIC,
92062306a36Sopenharmony_ci	.buswidth = 4,
92162306a36Sopenharmony_ci	.qos.ap_owned = true,
92262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
92362306a36Sopenharmony_ci	.mas_rpm_id = -1,
92462306a36Sopenharmony_ci	.slv_rpm_id = 80,
92562306a36Sopenharmony_ci};
92662306a36Sopenharmony_ci
92762306a36Sopenharmony_cistatic struct qcom_icc_node slv_qup_0 = {
92862306a36Sopenharmony_ci	.name = "slv_qup_0",
92962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QUP_0,
93062306a36Sopenharmony_ci	.buswidth = 4,
93162306a36Sopenharmony_ci	.qos.ap_owned = true,
93262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
93362306a36Sopenharmony_ci	.mas_rpm_id = -1,
93462306a36Sopenharmony_ci	.slv_rpm_id = 261,
93562306a36Sopenharmony_ci};
93662306a36Sopenharmony_ci
93762306a36Sopenharmony_cistatic struct qcom_icc_node slv_sdcc_1 = {
93862306a36Sopenharmony_ci	.name = "slv_sdcc_1",
93962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SDCC_1,
94062306a36Sopenharmony_ci	.buswidth = 4,
94162306a36Sopenharmony_ci	.qos.ap_owned = true,
94262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
94362306a36Sopenharmony_ci	.mas_rpm_id = -1,
94462306a36Sopenharmony_ci	.slv_rpm_id = 31,
94562306a36Sopenharmony_ci};
94662306a36Sopenharmony_ci
94762306a36Sopenharmony_cistatic struct qcom_icc_node slv_sdcc_2 = {
94862306a36Sopenharmony_ci	.name = "slv_sdcc_2",
94962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SDCC_2,
95062306a36Sopenharmony_ci	.buswidth = 4,
95162306a36Sopenharmony_ci	.qos.ap_owned = true,
95262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
95362306a36Sopenharmony_ci	.mas_rpm_id = -1,
95462306a36Sopenharmony_ci	.slv_rpm_id = 33,
95562306a36Sopenharmony_ci};
95662306a36Sopenharmony_ci
95762306a36Sopenharmony_cistatic const u16 slv_snoc_cfg_links[] = {
95862306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_CFG,
95962306a36Sopenharmony_ci};
96062306a36Sopenharmony_ci
96162306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_cfg = {
96262306a36Sopenharmony_ci	.name = "slv_snoc_cfg",
96362306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SNOC_CFG,
96462306a36Sopenharmony_ci	.buswidth = 4,
96562306a36Sopenharmony_ci	.qos.ap_owned = true,
96662306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
96762306a36Sopenharmony_ci	.mas_rpm_id = -1,
96862306a36Sopenharmony_ci	.slv_rpm_id = 70,
96962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_cfg_links),
97062306a36Sopenharmony_ci	.links = slv_snoc_cfg_links,
97162306a36Sopenharmony_ci};
97262306a36Sopenharmony_ci
97362306a36Sopenharmony_cistatic struct qcom_icc_node slv_tcsr = {
97462306a36Sopenharmony_ci	.name = "slv_tcsr",
97562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_TCSR,
97662306a36Sopenharmony_ci	.buswidth = 4,
97762306a36Sopenharmony_ci	.qos.ap_owned = true,
97862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
97962306a36Sopenharmony_ci	.mas_rpm_id = -1,
98062306a36Sopenharmony_ci	.slv_rpm_id = 50,
98162306a36Sopenharmony_ci};
98262306a36Sopenharmony_ci
98362306a36Sopenharmony_cistatic struct qcom_icc_node slv_usb3 = {
98462306a36Sopenharmony_ci	.name = "slv_usb3",
98562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_USB3,
98662306a36Sopenharmony_ci	.buswidth = 4,
98762306a36Sopenharmony_ci	.qos.ap_owned = true,
98862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
98962306a36Sopenharmony_ci	.mas_rpm_id = -1,
99062306a36Sopenharmony_ci	.slv_rpm_id = 22,
99162306a36Sopenharmony_ci};
99262306a36Sopenharmony_ci
99362306a36Sopenharmony_cistatic struct qcom_icc_node slv_venus_cfg = {
99462306a36Sopenharmony_ci	.name = "slv_venus_cfg",
99562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_VENUS_CFG,
99662306a36Sopenharmony_ci	.buswidth = 4,
99762306a36Sopenharmony_ci	.qos.ap_owned = true,
99862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
99962306a36Sopenharmony_ci	.mas_rpm_id = -1,
100062306a36Sopenharmony_ci	.slv_rpm_id = 10,
100162306a36Sopenharmony_ci};
100262306a36Sopenharmony_ci
100362306a36Sopenharmony_cistatic struct qcom_icc_node slv_venus_throttle_cfg = {
100462306a36Sopenharmony_ci	.name = "slv_venus_throttle_cfg",
100562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_VENUS_THROTTLE_CFG,
100662306a36Sopenharmony_ci	.buswidth = 4,
100762306a36Sopenharmony_ci	.qos.ap_owned = true,
100862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
100962306a36Sopenharmony_ci	.mas_rpm_id = -1,
101062306a36Sopenharmony_ci	.slv_rpm_id = 178,
101162306a36Sopenharmony_ci};
101262306a36Sopenharmony_ci
101362306a36Sopenharmony_cistatic struct qcom_icc_node slv_vsense_ctrl_cfg = {
101462306a36Sopenharmony_ci	.name = "slv_vsense_ctrl_cfg",
101562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_VSENSE_CTRL_CFG,
101662306a36Sopenharmony_ci	.buswidth = 4,
101762306a36Sopenharmony_ci	.qos.ap_owned = true,
101862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
101962306a36Sopenharmony_ci	.mas_rpm_id = -1,
102062306a36Sopenharmony_ci	.slv_rpm_id = 263,
102162306a36Sopenharmony_ci};
102262306a36Sopenharmony_ci
102362306a36Sopenharmony_cistatic struct qcom_icc_node slv_service_cnoc = {
102462306a36Sopenharmony_ci	.name = "slv_service_cnoc",
102562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SERVICE_CNOC,
102662306a36Sopenharmony_ci	.buswidth = 4,
102762306a36Sopenharmony_ci	.qos.ap_owned = true,
102862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
102962306a36Sopenharmony_ci	.mas_rpm_id = -1,
103062306a36Sopenharmony_ci	.slv_rpm_id = 76,
103162306a36Sopenharmony_ci};
103262306a36Sopenharmony_ci
103362306a36Sopenharmony_cistatic struct qcom_icc_node slv_qup_core_0 = {
103462306a36Sopenharmony_ci	.name = "slv_qup_core_0",
103562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QUP_CORE_0,
103662306a36Sopenharmony_ci	.buswidth = 4,
103762306a36Sopenharmony_ci	.qos.ap_owned = true,
103862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
103962306a36Sopenharmony_ci	.mas_rpm_id = -1,
104062306a36Sopenharmony_ci	.slv_rpm_id = 264,
104162306a36Sopenharmony_ci};
104262306a36Sopenharmony_ci
104362306a36Sopenharmony_cistatic const u16 slv_snoc_bimc_nrt_links[] = {
104462306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC_NRT,
104562306a36Sopenharmony_ci};
104662306a36Sopenharmony_ci
104762306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_bimc_nrt = {
104862306a36Sopenharmony_ci	.name = "slv_snoc_bimc_nrt",
104962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SNOC_BIMC_NRT,
105062306a36Sopenharmony_ci	.buswidth = 16,
105162306a36Sopenharmony_ci	.qos.ap_owned = true,
105262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
105362306a36Sopenharmony_ci	.mas_rpm_id = -1,
105462306a36Sopenharmony_ci	.slv_rpm_id = 259,
105562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_bimc_nrt_links),
105662306a36Sopenharmony_ci	.links = slv_snoc_bimc_nrt_links,
105762306a36Sopenharmony_ci};
105862306a36Sopenharmony_ci
105962306a36Sopenharmony_cistatic const u16 slv_snoc_bimc_rt_links[] = {
106062306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC_RT,
106162306a36Sopenharmony_ci};
106262306a36Sopenharmony_ci
106362306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_bimc_rt = {
106462306a36Sopenharmony_ci	.name = "slv_snoc_bimc_rt",
106562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SNOC_BIMC_RT,
106662306a36Sopenharmony_ci	.buswidth = 16,
106762306a36Sopenharmony_ci	.qos.ap_owned = true,
106862306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
106962306a36Sopenharmony_ci	.mas_rpm_id = -1,
107062306a36Sopenharmony_ci	.slv_rpm_id = 260,
107162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_bimc_rt_links),
107262306a36Sopenharmony_ci	.links = slv_snoc_bimc_rt_links,
107362306a36Sopenharmony_ci};
107462306a36Sopenharmony_ci
107562306a36Sopenharmony_cistatic struct qcom_icc_node slv_appss = {
107662306a36Sopenharmony_ci	.name = "slv_appss",
107762306a36Sopenharmony_ci	.id = QCM2290_SLAVE_APPSS,
107862306a36Sopenharmony_ci	.buswidth = 8,
107962306a36Sopenharmony_ci	.qos.ap_owned = true,
108062306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
108162306a36Sopenharmony_ci	.mas_rpm_id = -1,
108262306a36Sopenharmony_ci	.slv_rpm_id = 20,
108362306a36Sopenharmony_ci};
108462306a36Sopenharmony_ci
108562306a36Sopenharmony_cistatic const u16 slv_snoc_cnoc_links[] = {
108662306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_CNOC,
108762306a36Sopenharmony_ci};
108862306a36Sopenharmony_ci
108962306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_cnoc = {
109062306a36Sopenharmony_ci	.name = "slv_snoc_cnoc",
109162306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SNOC_CNOC,
109262306a36Sopenharmony_ci	.buswidth = 8,
109362306a36Sopenharmony_ci	.mas_rpm_id = -1,
109462306a36Sopenharmony_ci	.slv_rpm_id = 25,
109562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_cnoc_links),
109662306a36Sopenharmony_ci	.links = slv_snoc_cnoc_links,
109762306a36Sopenharmony_ci};
109862306a36Sopenharmony_ci
109962306a36Sopenharmony_cistatic struct qcom_icc_node slv_imem = {
110062306a36Sopenharmony_ci	.name = "slv_imem",
110162306a36Sopenharmony_ci	.id = QCM2290_SLAVE_IMEM,
110262306a36Sopenharmony_ci	.buswidth = 8,
110362306a36Sopenharmony_ci	.mas_rpm_id = -1,
110462306a36Sopenharmony_ci	.slv_rpm_id = 26,
110562306a36Sopenharmony_ci};
110662306a36Sopenharmony_ci
110762306a36Sopenharmony_cistatic struct qcom_icc_node slv_pimem = {
110862306a36Sopenharmony_ci	.name = "slv_pimem",
110962306a36Sopenharmony_ci	.id = QCM2290_SLAVE_PIMEM,
111062306a36Sopenharmony_ci	.buswidth = 8,
111162306a36Sopenharmony_ci	.qos.ap_owned = true,
111262306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
111362306a36Sopenharmony_ci	.mas_rpm_id = -1,
111462306a36Sopenharmony_ci	.slv_rpm_id = 166,
111562306a36Sopenharmony_ci};
111662306a36Sopenharmony_ci
111762306a36Sopenharmony_cistatic const u16 slv_snoc_bimc_links[] = {
111862306a36Sopenharmony_ci	QCM2290_MASTER_SNOC_BIMC,
111962306a36Sopenharmony_ci};
112062306a36Sopenharmony_ci
112162306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_bimc = {
112262306a36Sopenharmony_ci	.name = "slv_snoc_bimc",
112362306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SNOC_BIMC,
112462306a36Sopenharmony_ci	.buswidth = 16,
112562306a36Sopenharmony_ci	.mas_rpm_id = -1,
112662306a36Sopenharmony_ci	.slv_rpm_id = 24,
112762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_bimc_links),
112862306a36Sopenharmony_ci	.links = slv_snoc_bimc_links,
112962306a36Sopenharmony_ci};
113062306a36Sopenharmony_ci
113162306a36Sopenharmony_cistatic struct qcom_icc_node slv_service_snoc = {
113262306a36Sopenharmony_ci	.name = "slv_service_snoc",
113362306a36Sopenharmony_ci	.id = QCM2290_SLAVE_SERVICE_SNOC,
113462306a36Sopenharmony_ci	.buswidth = 4,
113562306a36Sopenharmony_ci	.qos.ap_owned = true,
113662306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
113762306a36Sopenharmony_ci	.mas_rpm_id = -1,
113862306a36Sopenharmony_ci	.slv_rpm_id = 29,
113962306a36Sopenharmony_ci};
114062306a36Sopenharmony_ci
114162306a36Sopenharmony_cistatic struct qcom_icc_node slv_qdss_stm = {
114262306a36Sopenharmony_ci	.name = "slv_qdss_stm",
114362306a36Sopenharmony_ci	.id = QCM2290_SLAVE_QDSS_STM,
114462306a36Sopenharmony_ci	.buswidth = 4,
114562306a36Sopenharmony_ci	.mas_rpm_id = -1,
114662306a36Sopenharmony_ci	.slv_rpm_id = 30,
114762306a36Sopenharmony_ci};
114862306a36Sopenharmony_ci
114962306a36Sopenharmony_cistatic struct qcom_icc_node slv_tcu = {
115062306a36Sopenharmony_ci	.name = "slv_tcu",
115162306a36Sopenharmony_ci	.id = QCM2290_SLAVE_TCU,
115262306a36Sopenharmony_ci	.buswidth = 8,
115362306a36Sopenharmony_ci	.qos.ap_owned = true,
115462306a36Sopenharmony_ci	.qos.qos_mode = NOC_QOS_MODE_INVALID,
115562306a36Sopenharmony_ci	.mas_rpm_id = -1,
115662306a36Sopenharmony_ci	.slv_rpm_id = 133,
115762306a36Sopenharmony_ci};
115862306a36Sopenharmony_ci
115962306a36Sopenharmony_cistatic const u16 slv_anoc_snoc_links[] = {
116062306a36Sopenharmony_ci	QCM2290_MASTER_ANOC_SNOC,
116162306a36Sopenharmony_ci};
116262306a36Sopenharmony_ci
116362306a36Sopenharmony_cistatic struct qcom_icc_node slv_anoc_snoc = {
116462306a36Sopenharmony_ci	.name = "slv_anoc_snoc",
116562306a36Sopenharmony_ci	.id = QCM2290_SLAVE_ANOC_SNOC,
116662306a36Sopenharmony_ci	.buswidth = 16,
116762306a36Sopenharmony_ci	.mas_rpm_id = -1,
116862306a36Sopenharmony_ci	.slv_rpm_id = 141,
116962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_anoc_snoc_links),
117062306a36Sopenharmony_ci	.links = slv_anoc_snoc_links,
117162306a36Sopenharmony_ci};
117262306a36Sopenharmony_ci
117362306a36Sopenharmony_ci/* NoC descriptors */
117462306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_bimc_nodes[] = {
117562306a36Sopenharmony_ci	[MASTER_APPSS_PROC] = &mas_appss_proc,
117662306a36Sopenharmony_ci	[MASTER_SNOC_BIMC_RT] = &mas_snoc_bimc_rt,
117762306a36Sopenharmony_ci	[MASTER_SNOC_BIMC_NRT] = &mas_snoc_bimc_nrt,
117862306a36Sopenharmony_ci	[MASTER_SNOC_BIMC] = &mas_snoc_bimc,
117962306a36Sopenharmony_ci	[MASTER_TCU_0] = &mas_tcu_0,
118062306a36Sopenharmony_ci	[MASTER_GFX3D] = &mas_gfx3d,
118162306a36Sopenharmony_ci	[SLAVE_EBI1] = &slv_ebi1,
118262306a36Sopenharmony_ci	[SLAVE_BIMC_SNOC] = &slv_bimc_snoc,
118362306a36Sopenharmony_ci};
118462306a36Sopenharmony_ci
118562306a36Sopenharmony_cistatic const struct regmap_config qcm2290_bimc_regmap_config = {
118662306a36Sopenharmony_ci	.reg_bits	= 32,
118762306a36Sopenharmony_ci	.reg_stride	= 4,
118862306a36Sopenharmony_ci	.val_bits	= 32,
118962306a36Sopenharmony_ci	.max_register	= 0x80000,
119062306a36Sopenharmony_ci	.fast_io	= true,
119162306a36Sopenharmony_ci};
119262306a36Sopenharmony_ci
119362306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_bimc = {
119462306a36Sopenharmony_ci	.type = QCOM_ICC_BIMC,
119562306a36Sopenharmony_ci	.nodes = qcm2290_bimc_nodes,
119662306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_bimc_nodes),
119762306a36Sopenharmony_ci	.bus_clk_desc = &bimc_clk,
119862306a36Sopenharmony_ci	.regmap_cfg = &qcm2290_bimc_regmap_config,
119962306a36Sopenharmony_ci	.keep_alive = true,
120062306a36Sopenharmony_ci	/* M_REG_BASE() in vendor msm_bus_bimc_adhoc driver */
120162306a36Sopenharmony_ci	.qos_offset = 0x8000,
120262306a36Sopenharmony_ci};
120362306a36Sopenharmony_ci
120462306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_cnoc_nodes[] = {
120562306a36Sopenharmony_ci	[MASTER_SNOC_CNOC] = &mas_snoc_cnoc,
120662306a36Sopenharmony_ci	[MASTER_QDSS_DAP] = &mas_qdss_dap,
120762306a36Sopenharmony_ci	[SLAVE_BIMC_CFG] = &slv_bimc_cfg,
120862306a36Sopenharmony_ci	[SLAVE_CAMERA_NRT_THROTTLE_CFG] = &slv_camera_nrt_throttle_cfg,
120962306a36Sopenharmony_ci	[SLAVE_CAMERA_RT_THROTTLE_CFG] = &slv_camera_rt_throttle_cfg,
121062306a36Sopenharmony_ci	[SLAVE_CAMERA_CFG] = &slv_camera_cfg,
121162306a36Sopenharmony_ci	[SLAVE_CLK_CTL] = &slv_clk_ctl,
121262306a36Sopenharmony_ci	[SLAVE_CRYPTO_0_CFG] = &slv_crypto_0_cfg,
121362306a36Sopenharmony_ci	[SLAVE_DISPLAY_CFG] = &slv_display_cfg,
121462306a36Sopenharmony_ci	[SLAVE_DISPLAY_THROTTLE_CFG] = &slv_display_throttle_cfg,
121562306a36Sopenharmony_ci	[SLAVE_GPU_CFG] = &slv_gpu_cfg,
121662306a36Sopenharmony_ci	[SLAVE_HWKM] = &slv_hwkm,
121762306a36Sopenharmony_ci	[SLAVE_IMEM_CFG] = &slv_imem_cfg,
121862306a36Sopenharmony_ci	[SLAVE_IPA_CFG] = &slv_ipa_cfg,
121962306a36Sopenharmony_ci	[SLAVE_LPASS] = &slv_lpass,
122062306a36Sopenharmony_ci	[SLAVE_MESSAGE_RAM] = &slv_message_ram,
122162306a36Sopenharmony_ci	[SLAVE_PDM] = &slv_pdm,
122262306a36Sopenharmony_ci	[SLAVE_PIMEM_CFG] = &slv_pimem_cfg,
122362306a36Sopenharmony_ci	[SLAVE_PKA_WRAPPER] = &slv_pka_wrapper,
122462306a36Sopenharmony_ci	[SLAVE_PMIC_ARB] = &slv_pmic_arb,
122562306a36Sopenharmony_ci	[SLAVE_PRNG] = &slv_prng,
122662306a36Sopenharmony_ci	[SLAVE_QDSS_CFG] = &slv_qdss_cfg,
122762306a36Sopenharmony_ci	[SLAVE_QM_CFG] = &slv_qm_cfg,
122862306a36Sopenharmony_ci	[SLAVE_QM_MPU_CFG] = &slv_qm_mpu_cfg,
122962306a36Sopenharmony_ci	[SLAVE_QPIC] = &slv_qpic,
123062306a36Sopenharmony_ci	[SLAVE_QUP_0] = &slv_qup_0,
123162306a36Sopenharmony_ci	[SLAVE_SDCC_1] = &slv_sdcc_1,
123262306a36Sopenharmony_ci	[SLAVE_SDCC_2] = &slv_sdcc_2,
123362306a36Sopenharmony_ci	[SLAVE_SNOC_CFG] = &slv_snoc_cfg,
123462306a36Sopenharmony_ci	[SLAVE_TCSR] = &slv_tcsr,
123562306a36Sopenharmony_ci	[SLAVE_USB3] = &slv_usb3,
123662306a36Sopenharmony_ci	[SLAVE_VENUS_CFG] = &slv_venus_cfg,
123762306a36Sopenharmony_ci	[SLAVE_VENUS_THROTTLE_CFG] = &slv_venus_throttle_cfg,
123862306a36Sopenharmony_ci	[SLAVE_VSENSE_CTRL_CFG] = &slv_vsense_ctrl_cfg,
123962306a36Sopenharmony_ci	[SLAVE_SERVICE_CNOC] = &slv_service_cnoc,
124062306a36Sopenharmony_ci};
124162306a36Sopenharmony_ci
124262306a36Sopenharmony_cistatic const struct regmap_config qcm2290_cnoc_regmap_config = {
124362306a36Sopenharmony_ci	.reg_bits	= 32,
124462306a36Sopenharmony_ci	.reg_stride	= 4,
124562306a36Sopenharmony_ci	.val_bits	= 32,
124662306a36Sopenharmony_ci	.max_register	= 0x8200,
124762306a36Sopenharmony_ci	.fast_io	= true,
124862306a36Sopenharmony_ci};
124962306a36Sopenharmony_ci
125062306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_cnoc = {
125162306a36Sopenharmony_ci	.type = QCOM_ICC_NOC,
125262306a36Sopenharmony_ci	.nodes = qcm2290_cnoc_nodes,
125362306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_cnoc_nodes),
125462306a36Sopenharmony_ci	.bus_clk_desc = &bus_1_clk,
125562306a36Sopenharmony_ci	.regmap_cfg = &qcm2290_cnoc_regmap_config,
125662306a36Sopenharmony_ci	.keep_alive = true,
125762306a36Sopenharmony_ci};
125862306a36Sopenharmony_ci
125962306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_snoc_nodes[] = {
126062306a36Sopenharmony_ci	[MASTER_CRYPTO_CORE0] = &mas_crypto_core0,
126162306a36Sopenharmony_ci	[MASTER_SNOC_CFG] = &mas_snoc_cfg,
126262306a36Sopenharmony_ci	[MASTER_TIC] = &mas_tic,
126362306a36Sopenharmony_ci	[MASTER_ANOC_SNOC] = &mas_anoc_snoc,
126462306a36Sopenharmony_ci	[MASTER_BIMC_SNOC] = &mas_bimc_snoc,
126562306a36Sopenharmony_ci	[MASTER_PIMEM] = &mas_pimem,
126662306a36Sopenharmony_ci	[MASTER_QDSS_BAM] = &mas_qdss_bam,
126762306a36Sopenharmony_ci	[MASTER_QUP_0] = &mas_qup_0,
126862306a36Sopenharmony_ci	[MASTER_IPA] = &mas_ipa,
126962306a36Sopenharmony_ci	[MASTER_QDSS_ETR] = &mas_qdss_etr,
127062306a36Sopenharmony_ci	[MASTER_SDCC_1] = &mas_sdcc_1,
127162306a36Sopenharmony_ci	[MASTER_SDCC_2] = &mas_sdcc_2,
127262306a36Sopenharmony_ci	[MASTER_QPIC] = &mas_qpic,
127362306a36Sopenharmony_ci	[MASTER_USB3_0] = &mas_usb3_0,
127462306a36Sopenharmony_ci	[SLAVE_APPSS] = &slv_appss,
127562306a36Sopenharmony_ci	[SLAVE_SNOC_CNOC] = &slv_snoc_cnoc,
127662306a36Sopenharmony_ci	[SLAVE_IMEM] = &slv_imem,
127762306a36Sopenharmony_ci	[SLAVE_PIMEM] = &slv_pimem,
127862306a36Sopenharmony_ci	[SLAVE_SNOC_BIMC] = &slv_snoc_bimc,
127962306a36Sopenharmony_ci	[SLAVE_SERVICE_SNOC] = &slv_service_snoc,
128062306a36Sopenharmony_ci	[SLAVE_QDSS_STM] = &slv_qdss_stm,
128162306a36Sopenharmony_ci	[SLAVE_TCU] = &slv_tcu,
128262306a36Sopenharmony_ci	[SLAVE_ANOC_SNOC] = &slv_anoc_snoc,
128362306a36Sopenharmony_ci};
128462306a36Sopenharmony_ci
128562306a36Sopenharmony_cistatic const struct regmap_config qcm2290_snoc_regmap_config = {
128662306a36Sopenharmony_ci	.reg_bits	= 32,
128762306a36Sopenharmony_ci	.reg_stride	= 4,
128862306a36Sopenharmony_ci	.val_bits	= 32,
128962306a36Sopenharmony_ci	.max_register	= 0x60200,
129062306a36Sopenharmony_ci	.fast_io	= true,
129162306a36Sopenharmony_ci};
129262306a36Sopenharmony_ci
129362306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_snoc = {
129462306a36Sopenharmony_ci	.type = QCOM_ICC_QNOC,
129562306a36Sopenharmony_ci	.nodes = qcm2290_snoc_nodes,
129662306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_snoc_nodes),
129762306a36Sopenharmony_ci	.bus_clk_desc = &bus_2_clk,
129862306a36Sopenharmony_ci	.regmap_cfg = &qcm2290_snoc_regmap_config,
129962306a36Sopenharmony_ci	.keep_alive = true,
130062306a36Sopenharmony_ci	/* Vendor DT node fab-sys_noc property 'qcom,base-offset' */
130162306a36Sopenharmony_ci	.qos_offset = 0x15000,
130262306a36Sopenharmony_ci};
130362306a36Sopenharmony_ci
130462306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_qup_virt_nodes[] = {
130562306a36Sopenharmony_ci	[MASTER_QUP_CORE_0] = &mas_qup_core_0,
130662306a36Sopenharmony_ci	[SLAVE_QUP_CORE_0] = &slv_qup_core_0
130762306a36Sopenharmony_ci};
130862306a36Sopenharmony_ci
130962306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_qup_virt = {
131062306a36Sopenharmony_ci	.type = QCOM_ICC_QNOC,
131162306a36Sopenharmony_ci	.nodes = qcm2290_qup_virt_nodes,
131262306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_qup_virt_nodes),
131362306a36Sopenharmony_ci	.bus_clk_desc = &qup_clk,
131462306a36Sopenharmony_ci	.keep_alive = true,
131562306a36Sopenharmony_ci};
131662306a36Sopenharmony_ci
131762306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_mmnrt_virt_nodes[] = {
131862306a36Sopenharmony_ci	[MASTER_CAMNOC_SF] = &mas_camnoc_sf,
131962306a36Sopenharmony_ci	[MASTER_VIDEO_P0] = &mas_video_p0,
132062306a36Sopenharmony_ci	[MASTER_VIDEO_PROC] = &mas_video_proc,
132162306a36Sopenharmony_ci	[SLAVE_SNOC_BIMC_NRT] = &slv_snoc_bimc_nrt,
132262306a36Sopenharmony_ci};
132362306a36Sopenharmony_ci
132462306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_mmnrt_virt = {
132562306a36Sopenharmony_ci	.type = QCOM_ICC_QNOC,
132662306a36Sopenharmony_ci	.nodes = qcm2290_mmnrt_virt_nodes,
132762306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_mmnrt_virt_nodes),
132862306a36Sopenharmony_ci	.bus_clk_desc = &mmaxi_0_clk,
132962306a36Sopenharmony_ci	.regmap_cfg = &qcm2290_snoc_regmap_config,
133062306a36Sopenharmony_ci	.keep_alive = true,
133162306a36Sopenharmony_ci	.qos_offset = 0x15000,
133262306a36Sopenharmony_ci};
133362306a36Sopenharmony_ci
133462306a36Sopenharmony_cistatic struct qcom_icc_node * const qcm2290_mmrt_virt_nodes[] = {
133562306a36Sopenharmony_ci	[MASTER_CAMNOC_HF] = &mas_camnoc_hf,
133662306a36Sopenharmony_ci	[MASTER_MDP0] = &mas_mdp0,
133762306a36Sopenharmony_ci	[SLAVE_SNOC_BIMC_RT] = &slv_snoc_bimc_rt,
133862306a36Sopenharmony_ci};
133962306a36Sopenharmony_ci
134062306a36Sopenharmony_cistatic const struct qcom_icc_desc qcm2290_mmrt_virt = {
134162306a36Sopenharmony_ci	.type = QCOM_ICC_QNOC,
134262306a36Sopenharmony_ci	.nodes = qcm2290_mmrt_virt_nodes,
134362306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcm2290_mmrt_virt_nodes),
134462306a36Sopenharmony_ci	.bus_clk_desc = &mmaxi_1_clk,
134562306a36Sopenharmony_ci	.regmap_cfg = &qcm2290_snoc_regmap_config,
134662306a36Sopenharmony_ci	.keep_alive = true,
134762306a36Sopenharmony_ci	.qos_offset = 0x15000,
134862306a36Sopenharmony_ci};
134962306a36Sopenharmony_ci
135062306a36Sopenharmony_cistatic const struct of_device_id qcm2290_noc_of_match[] = {
135162306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-bimc", .data = &qcm2290_bimc },
135262306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-cnoc", .data = &qcm2290_cnoc },
135362306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-snoc", .data = &qcm2290_snoc },
135462306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-qup-virt", .data = &qcm2290_qup_virt },
135562306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-mmrt-virt", .data = &qcm2290_mmrt_virt },
135662306a36Sopenharmony_ci	{ .compatible = "qcom,qcm2290-mmnrt-virt", .data = &qcm2290_mmnrt_virt },
135762306a36Sopenharmony_ci	{ },
135862306a36Sopenharmony_ci};
135962306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, qcm2290_noc_of_match);
136062306a36Sopenharmony_ci
136162306a36Sopenharmony_cistatic struct platform_driver qcm2290_noc_driver = {
136262306a36Sopenharmony_ci	.probe = qnoc_probe,
136362306a36Sopenharmony_ci	.remove = qnoc_remove,
136462306a36Sopenharmony_ci	.driver = {
136562306a36Sopenharmony_ci		.name = "qnoc-qcm2290",
136662306a36Sopenharmony_ci		.of_match_table = qcm2290_noc_of_match,
136762306a36Sopenharmony_ci		.sync_state = icc_sync_state,
136862306a36Sopenharmony_ci	},
136962306a36Sopenharmony_ci};
137062306a36Sopenharmony_cimodule_platform_driver(qcm2290_noc_driver);
137162306a36Sopenharmony_ci
137262306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm QCM2290 NoC driver");
137362306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
1374