162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2019 Linaro Ltd
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <dt-bindings/interconnect/qcom,qcs404.h>
762306a36Sopenharmony_ci#include <linux/device.h>
862306a36Sopenharmony_ci#include <linux/interconnect-provider.h>
962306a36Sopenharmony_ci#include <linux/io.h>
1062306a36Sopenharmony_ci#include <linux/module.h>
1162306a36Sopenharmony_ci#include <linux/mod_devicetable.h>
1262306a36Sopenharmony_ci#include <linux/platform_device.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include "icc-rpm.h"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cienum {
1862306a36Sopenharmony_ci	QCS404_MASTER_AMPSS_M0 = 1,
1962306a36Sopenharmony_ci	QCS404_MASTER_GRAPHICS_3D,
2062306a36Sopenharmony_ci	QCS404_MASTER_MDP_PORT0,
2162306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_MAS,
2262306a36Sopenharmony_ci	QCS404_MASTER_TCU_0,
2362306a36Sopenharmony_ci	QCS404_MASTER_SPDM,
2462306a36Sopenharmony_ci	QCS404_MASTER_BLSP_1,
2562306a36Sopenharmony_ci	QCS404_MASTER_BLSP_2,
2662306a36Sopenharmony_ci	QCS404_MASTER_XM_USB_HS1,
2762306a36Sopenharmony_ci	QCS404_MASTER_CRYPTO_CORE0,
2862306a36Sopenharmony_ci	QCS404_MASTER_SDCC_1,
2962306a36Sopenharmony_ci	QCS404_MASTER_SDCC_2,
3062306a36Sopenharmony_ci	QCS404_SNOC_PNOC_MAS,
3162306a36Sopenharmony_ci	QCS404_MASTER_QPIC,
3262306a36Sopenharmony_ci	QCS404_MASTER_QDSS_BAM,
3362306a36Sopenharmony_ci	QCS404_BIMC_SNOC_MAS,
3462306a36Sopenharmony_ci	QCS404_PNOC_SNOC_MAS,
3562306a36Sopenharmony_ci	QCS404_MASTER_QDSS_ETR,
3662306a36Sopenharmony_ci	QCS404_MASTER_EMAC,
3762306a36Sopenharmony_ci	QCS404_MASTER_PCIE,
3862306a36Sopenharmony_ci	QCS404_MASTER_USB3,
3962306a36Sopenharmony_ci	QCS404_PNOC_INT_0,
4062306a36Sopenharmony_ci	QCS404_PNOC_INT_2,
4162306a36Sopenharmony_ci	QCS404_PNOC_INT_3,
4262306a36Sopenharmony_ci	QCS404_PNOC_SLV_0,
4362306a36Sopenharmony_ci	QCS404_PNOC_SLV_1,
4462306a36Sopenharmony_ci	QCS404_PNOC_SLV_2,
4562306a36Sopenharmony_ci	QCS404_PNOC_SLV_3,
4662306a36Sopenharmony_ci	QCS404_PNOC_SLV_4,
4762306a36Sopenharmony_ci	QCS404_PNOC_SLV_6,
4862306a36Sopenharmony_ci	QCS404_PNOC_SLV_7,
4962306a36Sopenharmony_ci	QCS404_PNOC_SLV_8,
5062306a36Sopenharmony_ci	QCS404_PNOC_SLV_9,
5162306a36Sopenharmony_ci	QCS404_PNOC_SLV_10,
5262306a36Sopenharmony_ci	QCS404_PNOC_SLV_11,
5362306a36Sopenharmony_ci	QCS404_SNOC_QDSS_INT,
5462306a36Sopenharmony_ci	QCS404_SNOC_INT_0,
5562306a36Sopenharmony_ci	QCS404_SNOC_INT_1,
5662306a36Sopenharmony_ci	QCS404_SNOC_INT_2,
5762306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0,
5862306a36Sopenharmony_ci	QCS404_BIMC_SNOC_SLV,
5962306a36Sopenharmony_ci	QCS404_SLAVE_SPDM_WRAPPER,
6062306a36Sopenharmony_ci	QCS404_SLAVE_PDM,
6162306a36Sopenharmony_ci	QCS404_SLAVE_PRNG,
6262306a36Sopenharmony_ci	QCS404_SLAVE_TCSR,
6362306a36Sopenharmony_ci	QCS404_SLAVE_SNOC_CFG,
6462306a36Sopenharmony_ci	QCS404_SLAVE_MESSAGE_RAM,
6562306a36Sopenharmony_ci	QCS404_SLAVE_DISPLAY_CFG,
6662306a36Sopenharmony_ci	QCS404_SLAVE_GRAPHICS_3D_CFG,
6762306a36Sopenharmony_ci	QCS404_SLAVE_BLSP_1,
6862306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_NORTH,
6962306a36Sopenharmony_ci	QCS404_SLAVE_PCIE_1,
7062306a36Sopenharmony_ci	QCS404_SLAVE_EMAC_CFG,
7162306a36Sopenharmony_ci	QCS404_SLAVE_BLSP_2,
7262306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_EAST,
7362306a36Sopenharmony_ci	QCS404_SLAVE_TCU,
7462306a36Sopenharmony_ci	QCS404_SLAVE_PMIC_ARB,
7562306a36Sopenharmony_ci	QCS404_SLAVE_SDCC_1,
7662306a36Sopenharmony_ci	QCS404_SLAVE_SDCC_2,
7762306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_SOUTH,
7862306a36Sopenharmony_ci	QCS404_SLAVE_USB_HS,
7962306a36Sopenharmony_ci	QCS404_SLAVE_USB3,
8062306a36Sopenharmony_ci	QCS404_SLAVE_CRYPTO_0_CFG,
8162306a36Sopenharmony_ci	QCS404_PNOC_SNOC_SLV,
8262306a36Sopenharmony_ci	QCS404_SLAVE_APPSS,
8362306a36Sopenharmony_ci	QCS404_SLAVE_WCSS,
8462306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
8562306a36Sopenharmony_ci	QCS404_SLAVE_OCIMEM,
8662306a36Sopenharmony_ci	QCS404_SNOC_PNOC_SLV,
8762306a36Sopenharmony_ci	QCS404_SLAVE_QDSS_STM,
8862306a36Sopenharmony_ci	QCS404_SLAVE_CATS_128,
8962306a36Sopenharmony_ci	QCS404_SLAVE_OCMEM_64,
9062306a36Sopenharmony_ci	QCS404_SLAVE_LPASS,
9162306a36Sopenharmony_ci};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cistatic const u16 mas_apps_proc_links[] = {
9462306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0,
9562306a36Sopenharmony_ci	QCS404_BIMC_SNOC_SLV
9662306a36Sopenharmony_ci};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_cistatic struct qcom_icc_node mas_apps_proc = {
9962306a36Sopenharmony_ci	.name = "mas_apps_proc",
10062306a36Sopenharmony_ci	.id = QCS404_MASTER_AMPSS_M0,
10162306a36Sopenharmony_ci	.buswidth = 8,
10262306a36Sopenharmony_ci	.mas_rpm_id = 0,
10362306a36Sopenharmony_ci	.slv_rpm_id = -1,
10462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_apps_proc_links),
10562306a36Sopenharmony_ci	.links = mas_apps_proc_links,
10662306a36Sopenharmony_ci};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_cistatic const u16 mas_oxili_links[] = {
10962306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0,
11062306a36Sopenharmony_ci	QCS404_BIMC_SNOC_SLV
11162306a36Sopenharmony_ci};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_cistatic struct qcom_icc_node mas_oxili = {
11462306a36Sopenharmony_ci	.name = "mas_oxili",
11562306a36Sopenharmony_ci	.id = QCS404_MASTER_GRAPHICS_3D,
11662306a36Sopenharmony_ci	.buswidth = 8,
11762306a36Sopenharmony_ci	.mas_rpm_id = -1,
11862306a36Sopenharmony_ci	.slv_rpm_id = -1,
11962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_oxili_links),
12062306a36Sopenharmony_ci	.links = mas_oxili_links,
12162306a36Sopenharmony_ci};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_cistatic const u16 mas_mdp_links[] = {
12462306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0,
12562306a36Sopenharmony_ci	QCS404_BIMC_SNOC_SLV
12662306a36Sopenharmony_ci};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_cistatic struct qcom_icc_node mas_mdp = {
12962306a36Sopenharmony_ci	.name = "mas_mdp",
13062306a36Sopenharmony_ci	.id = QCS404_MASTER_MDP_PORT0,
13162306a36Sopenharmony_ci	.buswidth = 8,
13262306a36Sopenharmony_ci	.mas_rpm_id = -1,
13362306a36Sopenharmony_ci	.slv_rpm_id = -1,
13462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_mdp_links),
13562306a36Sopenharmony_ci	.links = mas_mdp_links,
13662306a36Sopenharmony_ci};
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_cistatic const u16 mas_snoc_bimc_1_links[] = {
13962306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0
14062306a36Sopenharmony_ci};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_bimc_1 = {
14362306a36Sopenharmony_ci	.name = "mas_snoc_bimc_1",
14462306a36Sopenharmony_ci	.id = QCS404_SNOC_BIMC_1_MAS,
14562306a36Sopenharmony_ci	.buswidth = 8,
14662306a36Sopenharmony_ci	.mas_rpm_id = 76,
14762306a36Sopenharmony_ci	.slv_rpm_id = -1,
14862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_bimc_1_links),
14962306a36Sopenharmony_ci	.links = mas_snoc_bimc_1_links,
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_cistatic const u16 mas_tcu_0_links[] = {
15362306a36Sopenharmony_ci	QCS404_SLAVE_EBI_CH0,
15462306a36Sopenharmony_ci	QCS404_BIMC_SNOC_SLV
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_cistatic struct qcom_icc_node mas_tcu_0 = {
15862306a36Sopenharmony_ci	.name = "mas_tcu_0",
15962306a36Sopenharmony_ci	.id = QCS404_MASTER_TCU_0,
16062306a36Sopenharmony_ci	.buswidth = 8,
16162306a36Sopenharmony_ci	.mas_rpm_id = -1,
16262306a36Sopenharmony_ci	.slv_rpm_id = -1,
16362306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_tcu_0_links),
16462306a36Sopenharmony_ci	.links = mas_tcu_0_links,
16562306a36Sopenharmony_ci};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_cistatic const u16 mas_spdm_links[] = {
16862306a36Sopenharmony_ci	QCS404_PNOC_INT_3
16962306a36Sopenharmony_ci};
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_cistatic struct qcom_icc_node mas_spdm = {
17262306a36Sopenharmony_ci	.name = "mas_spdm",
17362306a36Sopenharmony_ci	.id = QCS404_MASTER_SPDM,
17462306a36Sopenharmony_ci	.buswidth = 4,
17562306a36Sopenharmony_ci	.mas_rpm_id = -1,
17662306a36Sopenharmony_ci	.slv_rpm_id = -1,
17762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_spdm_links),
17862306a36Sopenharmony_ci	.links = mas_spdm_links,
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_cistatic const u16 mas_blsp_1_links[] = {
18262306a36Sopenharmony_ci	QCS404_PNOC_INT_3
18362306a36Sopenharmony_ci};
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_cistatic struct qcom_icc_node mas_blsp_1 = {
18662306a36Sopenharmony_ci	.name = "mas_blsp_1",
18762306a36Sopenharmony_ci	.id = QCS404_MASTER_BLSP_1,
18862306a36Sopenharmony_ci	.buswidth = 4,
18962306a36Sopenharmony_ci	.mas_rpm_id = 41,
19062306a36Sopenharmony_ci	.slv_rpm_id = -1,
19162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_blsp_1_links),
19262306a36Sopenharmony_ci	.links = mas_blsp_1_links,
19362306a36Sopenharmony_ci};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_cistatic const u16 mas_blsp_2_links[] = {
19662306a36Sopenharmony_ci	QCS404_PNOC_INT_3
19762306a36Sopenharmony_ci};
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_cistatic struct qcom_icc_node mas_blsp_2 = {
20062306a36Sopenharmony_ci	.name = "mas_blsp_2",
20162306a36Sopenharmony_ci	.id = QCS404_MASTER_BLSP_2,
20262306a36Sopenharmony_ci	.buswidth = 4,
20362306a36Sopenharmony_ci	.mas_rpm_id = 39,
20462306a36Sopenharmony_ci	.slv_rpm_id = -1,
20562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_blsp_2_links),
20662306a36Sopenharmony_ci	.links = mas_blsp_2_links,
20762306a36Sopenharmony_ci};
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_cistatic const u16 mas_xi_usb_hs1_links[] = {
21062306a36Sopenharmony_ci	QCS404_PNOC_INT_0
21162306a36Sopenharmony_ci};
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_cistatic struct qcom_icc_node mas_xi_usb_hs1 = {
21462306a36Sopenharmony_ci	.name = "mas_xi_usb_hs1",
21562306a36Sopenharmony_ci	.id = QCS404_MASTER_XM_USB_HS1,
21662306a36Sopenharmony_ci	.buswidth = 8,
21762306a36Sopenharmony_ci	.mas_rpm_id = 138,
21862306a36Sopenharmony_ci	.slv_rpm_id = -1,
21962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_xi_usb_hs1_links),
22062306a36Sopenharmony_ci	.links = mas_xi_usb_hs1_links,
22162306a36Sopenharmony_ci};
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_cistatic const u16 mas_crypto_links[] = {
22462306a36Sopenharmony_ci	QCS404_PNOC_SNOC_SLV,
22562306a36Sopenharmony_ci	QCS404_PNOC_INT_2
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_cistatic struct qcom_icc_node mas_crypto = {
22962306a36Sopenharmony_ci	.name = "mas_crypto",
23062306a36Sopenharmony_ci	.id = QCS404_MASTER_CRYPTO_CORE0,
23162306a36Sopenharmony_ci	.buswidth = 8,
23262306a36Sopenharmony_ci	.mas_rpm_id = 23,
23362306a36Sopenharmony_ci	.slv_rpm_id = -1,
23462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_crypto_links),
23562306a36Sopenharmony_ci	.links = mas_crypto_links,
23662306a36Sopenharmony_ci};
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_cistatic const u16 mas_sdcc_1_links[] = {
23962306a36Sopenharmony_ci	QCS404_PNOC_INT_0
24062306a36Sopenharmony_ci};
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_cistatic struct qcom_icc_node mas_sdcc_1 = {
24362306a36Sopenharmony_ci	.name = "mas_sdcc_1",
24462306a36Sopenharmony_ci	.id = QCS404_MASTER_SDCC_1,
24562306a36Sopenharmony_ci	.buswidth = 8,
24662306a36Sopenharmony_ci	.mas_rpm_id = 33,
24762306a36Sopenharmony_ci	.slv_rpm_id = -1,
24862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_sdcc_1_links),
24962306a36Sopenharmony_ci	.links = mas_sdcc_1_links,
25062306a36Sopenharmony_ci};
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_cistatic const u16 mas_sdcc_2_links[] = {
25362306a36Sopenharmony_ci	QCS404_PNOC_INT_0
25462306a36Sopenharmony_ci};
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_cistatic struct qcom_icc_node mas_sdcc_2 = {
25762306a36Sopenharmony_ci	.name = "mas_sdcc_2",
25862306a36Sopenharmony_ci	.id = QCS404_MASTER_SDCC_2,
25962306a36Sopenharmony_ci	.buswidth = 8,
26062306a36Sopenharmony_ci	.mas_rpm_id = 35,
26162306a36Sopenharmony_ci	.slv_rpm_id = -1,
26262306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_sdcc_2_links),
26362306a36Sopenharmony_ci	.links = mas_sdcc_2_links,
26462306a36Sopenharmony_ci};
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_cistatic const u16 mas_snoc_pcnoc_links[] = {
26762306a36Sopenharmony_ci	QCS404_PNOC_INT_2
26862306a36Sopenharmony_ci};
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_cistatic struct qcom_icc_node mas_snoc_pcnoc = {
27162306a36Sopenharmony_ci	.name = "mas_snoc_pcnoc",
27262306a36Sopenharmony_ci	.id = QCS404_SNOC_PNOC_MAS,
27362306a36Sopenharmony_ci	.buswidth = 8,
27462306a36Sopenharmony_ci	.mas_rpm_id = 77,
27562306a36Sopenharmony_ci	.slv_rpm_id = -1,
27662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_snoc_pcnoc_links),
27762306a36Sopenharmony_ci	.links = mas_snoc_pcnoc_links,
27862306a36Sopenharmony_ci};
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_cistatic const u16 mas_qpic_links[] = {
28162306a36Sopenharmony_ci	QCS404_PNOC_INT_0
28262306a36Sopenharmony_ci};
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_cistatic struct qcom_icc_node mas_qpic = {
28562306a36Sopenharmony_ci	.name = "mas_qpic",
28662306a36Sopenharmony_ci	.id = QCS404_MASTER_QPIC,
28762306a36Sopenharmony_ci	.buswidth = 4,
28862306a36Sopenharmony_ci	.mas_rpm_id = -1,
28962306a36Sopenharmony_ci	.slv_rpm_id = -1,
29062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qpic_links),
29162306a36Sopenharmony_ci	.links = mas_qpic_links,
29262306a36Sopenharmony_ci};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_cistatic const u16 mas_qdss_bam_links[] = {
29562306a36Sopenharmony_ci	QCS404_SNOC_QDSS_INT
29662306a36Sopenharmony_ci};
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_cistatic struct qcom_icc_node mas_qdss_bam = {
29962306a36Sopenharmony_ci	.name = "mas_qdss_bam",
30062306a36Sopenharmony_ci	.id = QCS404_MASTER_QDSS_BAM,
30162306a36Sopenharmony_ci	.buswidth = 4,
30262306a36Sopenharmony_ci	.mas_rpm_id = -1,
30362306a36Sopenharmony_ci	.slv_rpm_id = -1,
30462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qdss_bam_links),
30562306a36Sopenharmony_ci	.links = mas_qdss_bam_links,
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic const u16 mas_bimc_snoc_links[] = {
30962306a36Sopenharmony_ci	QCS404_SLAVE_OCMEM_64,
31062306a36Sopenharmony_ci	QCS404_SLAVE_CATS_128,
31162306a36Sopenharmony_ci	QCS404_SNOC_INT_0,
31262306a36Sopenharmony_ci	QCS404_SNOC_INT_1
31362306a36Sopenharmony_ci};
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_cistatic struct qcom_icc_node mas_bimc_snoc = {
31662306a36Sopenharmony_ci	.name = "mas_bimc_snoc",
31762306a36Sopenharmony_ci	.id = QCS404_BIMC_SNOC_MAS,
31862306a36Sopenharmony_ci	.buswidth = 8,
31962306a36Sopenharmony_ci	.mas_rpm_id = 21,
32062306a36Sopenharmony_ci	.slv_rpm_id = -1,
32162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_bimc_snoc_links),
32262306a36Sopenharmony_ci	.links = mas_bimc_snoc_links,
32362306a36Sopenharmony_ci};
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_cistatic const u16 mas_pcnoc_snoc_links[] = {
32662306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
32762306a36Sopenharmony_ci	QCS404_SNOC_INT_2,
32862306a36Sopenharmony_ci	QCS404_SNOC_INT_0
32962306a36Sopenharmony_ci};
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_cistatic struct qcom_icc_node mas_pcnoc_snoc = {
33262306a36Sopenharmony_ci	.name = "mas_pcnoc_snoc",
33362306a36Sopenharmony_ci	.id = QCS404_PNOC_SNOC_MAS,
33462306a36Sopenharmony_ci	.buswidth = 8,
33562306a36Sopenharmony_ci	.mas_rpm_id = 29,
33662306a36Sopenharmony_ci	.slv_rpm_id = -1,
33762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_pcnoc_snoc_links),
33862306a36Sopenharmony_ci	.links = mas_pcnoc_snoc_links,
33962306a36Sopenharmony_ci};
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_cistatic const u16 mas_qdss_etr_links[] = {
34262306a36Sopenharmony_ci	QCS404_SNOC_QDSS_INT
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cistatic struct qcom_icc_node mas_qdss_etr = {
34662306a36Sopenharmony_ci	.name = "mas_qdss_etr",
34762306a36Sopenharmony_ci	.id = QCS404_MASTER_QDSS_ETR,
34862306a36Sopenharmony_ci	.buswidth = 8,
34962306a36Sopenharmony_ci	.mas_rpm_id = -1,
35062306a36Sopenharmony_ci	.slv_rpm_id = -1,
35162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_qdss_etr_links),
35262306a36Sopenharmony_ci	.links = mas_qdss_etr_links,
35362306a36Sopenharmony_ci};
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_cistatic const u16 mas_emac_links[] = {
35662306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
35762306a36Sopenharmony_ci	QCS404_SNOC_INT_1
35862306a36Sopenharmony_ci};
35962306a36Sopenharmony_ci
36062306a36Sopenharmony_cistatic struct qcom_icc_node mas_emac = {
36162306a36Sopenharmony_ci	.name = "mas_emac",
36262306a36Sopenharmony_ci	.id = QCS404_MASTER_EMAC,
36362306a36Sopenharmony_ci	.buswidth = 8,
36462306a36Sopenharmony_ci	.mas_rpm_id = -1,
36562306a36Sopenharmony_ci	.slv_rpm_id = -1,
36662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_emac_links),
36762306a36Sopenharmony_ci	.links = mas_emac_links,
36862306a36Sopenharmony_ci};
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_cistatic const u16 mas_pcie_links[] = {
37162306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
37262306a36Sopenharmony_ci	QCS404_SNOC_INT_1
37362306a36Sopenharmony_ci};
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_cistatic struct qcom_icc_node mas_pcie = {
37662306a36Sopenharmony_ci	.name = "mas_pcie",
37762306a36Sopenharmony_ci	.id = QCS404_MASTER_PCIE,
37862306a36Sopenharmony_ci	.buswidth = 8,
37962306a36Sopenharmony_ci	.mas_rpm_id = -1,
38062306a36Sopenharmony_ci	.slv_rpm_id = -1,
38162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_pcie_links),
38262306a36Sopenharmony_ci	.links = mas_pcie_links,
38362306a36Sopenharmony_ci};
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_cistatic const u16 mas_usb3_links[] = {
38662306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
38762306a36Sopenharmony_ci	QCS404_SNOC_INT_1
38862306a36Sopenharmony_ci};
38962306a36Sopenharmony_ci
39062306a36Sopenharmony_cistatic struct qcom_icc_node mas_usb3 = {
39162306a36Sopenharmony_ci	.name = "mas_usb3",
39262306a36Sopenharmony_ci	.id = QCS404_MASTER_USB3,
39362306a36Sopenharmony_ci	.buswidth = 8,
39462306a36Sopenharmony_ci	.mas_rpm_id = -1,
39562306a36Sopenharmony_ci	.slv_rpm_id = -1,
39662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(mas_usb3_links),
39762306a36Sopenharmony_ci	.links = mas_usb3_links,
39862306a36Sopenharmony_ci};
39962306a36Sopenharmony_ci
40062306a36Sopenharmony_cistatic const u16 pcnoc_int_0_links[] = {
40162306a36Sopenharmony_ci	QCS404_PNOC_SNOC_SLV,
40262306a36Sopenharmony_ci	QCS404_PNOC_INT_2
40362306a36Sopenharmony_ci};
40462306a36Sopenharmony_ci
40562306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_int_0 = {
40662306a36Sopenharmony_ci	.name = "pcnoc_int_0",
40762306a36Sopenharmony_ci	.id = QCS404_PNOC_INT_0,
40862306a36Sopenharmony_ci	.buswidth = 8,
40962306a36Sopenharmony_ci	.mas_rpm_id = 85,
41062306a36Sopenharmony_ci	.slv_rpm_id = 114,
41162306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_int_0_links),
41262306a36Sopenharmony_ci	.links = pcnoc_int_0_links,
41362306a36Sopenharmony_ci};
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_cistatic const u16 pcnoc_int_2_links[] = {
41662306a36Sopenharmony_ci	QCS404_PNOC_SLV_10,
41762306a36Sopenharmony_ci	QCS404_SLAVE_TCU,
41862306a36Sopenharmony_ci	QCS404_PNOC_SLV_11,
41962306a36Sopenharmony_ci	QCS404_PNOC_SLV_2,
42062306a36Sopenharmony_ci	QCS404_PNOC_SLV_3,
42162306a36Sopenharmony_ci	QCS404_PNOC_SLV_0,
42262306a36Sopenharmony_ci	QCS404_PNOC_SLV_1,
42362306a36Sopenharmony_ci	QCS404_PNOC_SLV_6,
42462306a36Sopenharmony_ci	QCS404_PNOC_SLV_7,
42562306a36Sopenharmony_ci	QCS404_PNOC_SLV_4,
42662306a36Sopenharmony_ci	QCS404_PNOC_SLV_8,
42762306a36Sopenharmony_ci	QCS404_PNOC_SLV_9
42862306a36Sopenharmony_ci};
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_int_2 = {
43162306a36Sopenharmony_ci	.name = "pcnoc_int_2",
43262306a36Sopenharmony_ci	.id = QCS404_PNOC_INT_2,
43362306a36Sopenharmony_ci	.buswidth = 8,
43462306a36Sopenharmony_ci	.mas_rpm_id = 124,
43562306a36Sopenharmony_ci	.slv_rpm_id = 184,
43662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_int_2_links),
43762306a36Sopenharmony_ci	.links = pcnoc_int_2_links,
43862306a36Sopenharmony_ci};
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_cistatic const u16 pcnoc_int_3_links[] = {
44162306a36Sopenharmony_ci	QCS404_PNOC_SNOC_SLV
44262306a36Sopenharmony_ci};
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_int_3 = {
44562306a36Sopenharmony_ci	.name = "pcnoc_int_3",
44662306a36Sopenharmony_ci	.id = QCS404_PNOC_INT_3,
44762306a36Sopenharmony_ci	.buswidth = 8,
44862306a36Sopenharmony_ci	.mas_rpm_id = 125,
44962306a36Sopenharmony_ci	.slv_rpm_id = 185,
45062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_int_3_links),
45162306a36Sopenharmony_ci	.links = pcnoc_int_3_links,
45262306a36Sopenharmony_ci};
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_cistatic const u16 pcnoc_s_0_links[] = {
45562306a36Sopenharmony_ci	QCS404_SLAVE_PRNG,
45662306a36Sopenharmony_ci	QCS404_SLAVE_SPDM_WRAPPER,
45762306a36Sopenharmony_ci	QCS404_SLAVE_PDM
45862306a36Sopenharmony_ci};
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_0 = {
46162306a36Sopenharmony_ci	.name = "pcnoc_s_0",
46262306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_0,
46362306a36Sopenharmony_ci	.buswidth = 4,
46462306a36Sopenharmony_ci	.mas_rpm_id = 89,
46562306a36Sopenharmony_ci	.slv_rpm_id = 118,
46662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_0_links),
46762306a36Sopenharmony_ci	.links = pcnoc_s_0_links,
46862306a36Sopenharmony_ci};
46962306a36Sopenharmony_ci
47062306a36Sopenharmony_cistatic const u16 pcnoc_s_1_links[] = {
47162306a36Sopenharmony_ci	QCS404_SLAVE_TCSR
47262306a36Sopenharmony_ci};
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_1 = {
47562306a36Sopenharmony_ci	.name = "pcnoc_s_1",
47662306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_1,
47762306a36Sopenharmony_ci	.buswidth = 4,
47862306a36Sopenharmony_ci	.mas_rpm_id = 90,
47962306a36Sopenharmony_ci	.slv_rpm_id = 119,
48062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_1_links),
48162306a36Sopenharmony_ci	.links = pcnoc_s_1_links,
48262306a36Sopenharmony_ci};
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_cistatic const u16 pcnoc_s_2_links[] = {
48562306a36Sopenharmony_ci	QCS404_SLAVE_GRAPHICS_3D_CFG
48662306a36Sopenharmony_ci};
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_2 = {
48962306a36Sopenharmony_ci	.name = "pcnoc_s_2",
49062306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_2,
49162306a36Sopenharmony_ci	.buswidth = 4,
49262306a36Sopenharmony_ci	.mas_rpm_id = -1,
49362306a36Sopenharmony_ci	.slv_rpm_id = -1,
49462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_2_links),
49562306a36Sopenharmony_ci	.links = pcnoc_s_2_links,
49662306a36Sopenharmony_ci};
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_cistatic const u16 pcnoc_s_3_links[] = {
49962306a36Sopenharmony_ci	QCS404_SLAVE_MESSAGE_RAM
50062306a36Sopenharmony_ci};
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_3 = {
50362306a36Sopenharmony_ci	.name = "pcnoc_s_3",
50462306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_3,
50562306a36Sopenharmony_ci	.buswidth = 4,
50662306a36Sopenharmony_ci	.mas_rpm_id = 92,
50762306a36Sopenharmony_ci	.slv_rpm_id = 121,
50862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_3_links),
50962306a36Sopenharmony_ci	.links = pcnoc_s_3_links,
51062306a36Sopenharmony_ci};
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_cistatic const u16 pcnoc_s_4_links[] = {
51362306a36Sopenharmony_ci	QCS404_SLAVE_SNOC_CFG
51462306a36Sopenharmony_ci};
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_4 = {
51762306a36Sopenharmony_ci	.name = "pcnoc_s_4",
51862306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_4,
51962306a36Sopenharmony_ci	.buswidth = 4,
52062306a36Sopenharmony_ci	.mas_rpm_id = 93,
52162306a36Sopenharmony_ci	.slv_rpm_id = 122,
52262306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_4_links),
52362306a36Sopenharmony_ci	.links = pcnoc_s_4_links,
52462306a36Sopenharmony_ci};
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_cistatic const u16 pcnoc_s_6_links[] = {
52762306a36Sopenharmony_ci	QCS404_SLAVE_BLSP_1,
52862306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_NORTH,
52962306a36Sopenharmony_ci	QCS404_SLAVE_EMAC_CFG
53062306a36Sopenharmony_ci};
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_6 = {
53362306a36Sopenharmony_ci	.name = "pcnoc_s_6",
53462306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_6,
53562306a36Sopenharmony_ci	.buswidth = 4,
53662306a36Sopenharmony_ci	.mas_rpm_id = 94,
53762306a36Sopenharmony_ci	.slv_rpm_id = 123,
53862306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_6_links),
53962306a36Sopenharmony_ci	.links = pcnoc_s_6_links,
54062306a36Sopenharmony_ci};
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_cistatic const u16 pcnoc_s_7_links[] = {
54362306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_SOUTH,
54462306a36Sopenharmony_ci	QCS404_SLAVE_DISPLAY_CFG,
54562306a36Sopenharmony_ci	QCS404_SLAVE_SDCC_1,
54662306a36Sopenharmony_ci	QCS404_SLAVE_PCIE_1,
54762306a36Sopenharmony_ci	QCS404_SLAVE_SDCC_2
54862306a36Sopenharmony_ci};
54962306a36Sopenharmony_ci
55062306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_7 = {
55162306a36Sopenharmony_ci	.name = "pcnoc_s_7",
55262306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_7,
55362306a36Sopenharmony_ci	.buswidth = 4,
55462306a36Sopenharmony_ci	.mas_rpm_id = 95,
55562306a36Sopenharmony_ci	.slv_rpm_id = 124,
55662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_7_links),
55762306a36Sopenharmony_ci	.links = pcnoc_s_7_links,
55862306a36Sopenharmony_ci};
55962306a36Sopenharmony_ci
56062306a36Sopenharmony_cistatic const u16 pcnoc_s_8_links[] = {
56162306a36Sopenharmony_ci	QCS404_SLAVE_CRYPTO_0_CFG
56262306a36Sopenharmony_ci};
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_8 = {
56562306a36Sopenharmony_ci	.name = "pcnoc_s_8",
56662306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_8,
56762306a36Sopenharmony_ci	.buswidth = 4,
56862306a36Sopenharmony_ci	.mas_rpm_id = 96,
56962306a36Sopenharmony_ci	.slv_rpm_id = 125,
57062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_8_links),
57162306a36Sopenharmony_ci	.links = pcnoc_s_8_links,
57262306a36Sopenharmony_ci};
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_cistatic const u16 pcnoc_s_9_links[] = {
57562306a36Sopenharmony_ci	QCS404_SLAVE_BLSP_2,
57662306a36Sopenharmony_ci	QCS404_SLAVE_TLMM_EAST,
57762306a36Sopenharmony_ci	QCS404_SLAVE_PMIC_ARB
57862306a36Sopenharmony_ci};
57962306a36Sopenharmony_ci
58062306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_9 = {
58162306a36Sopenharmony_ci	.name = "pcnoc_s_9",
58262306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_9,
58362306a36Sopenharmony_ci	.buswidth = 4,
58462306a36Sopenharmony_ci	.mas_rpm_id = 97,
58562306a36Sopenharmony_ci	.slv_rpm_id = 126,
58662306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_9_links),
58762306a36Sopenharmony_ci	.links = pcnoc_s_9_links,
58862306a36Sopenharmony_ci};
58962306a36Sopenharmony_ci
59062306a36Sopenharmony_cistatic const u16 pcnoc_s_10_links[] = {
59162306a36Sopenharmony_ci	QCS404_SLAVE_USB_HS
59262306a36Sopenharmony_ci};
59362306a36Sopenharmony_ci
59462306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_10 = {
59562306a36Sopenharmony_ci	.name = "pcnoc_s_10",
59662306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_10,
59762306a36Sopenharmony_ci	.buswidth = 4,
59862306a36Sopenharmony_ci	.mas_rpm_id = 157,
59962306a36Sopenharmony_ci	.slv_rpm_id = -1,
60062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_10_links),
60162306a36Sopenharmony_ci	.links = pcnoc_s_10_links,
60262306a36Sopenharmony_ci};
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_cistatic const u16 pcnoc_s_11_links[] = {
60562306a36Sopenharmony_ci	QCS404_SLAVE_USB3
60662306a36Sopenharmony_ci};
60762306a36Sopenharmony_ci
60862306a36Sopenharmony_cistatic struct qcom_icc_node pcnoc_s_11 = {
60962306a36Sopenharmony_ci	.name = "pcnoc_s_11",
61062306a36Sopenharmony_ci	.id = QCS404_PNOC_SLV_11,
61162306a36Sopenharmony_ci	.buswidth = 4,
61262306a36Sopenharmony_ci	.mas_rpm_id = 158,
61362306a36Sopenharmony_ci	.slv_rpm_id = 246,
61462306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(pcnoc_s_11_links),
61562306a36Sopenharmony_ci	.links = pcnoc_s_11_links,
61662306a36Sopenharmony_ci};
61762306a36Sopenharmony_ci
61862306a36Sopenharmony_cistatic const u16 qdss_int_links[] = {
61962306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_SLV,
62062306a36Sopenharmony_ci	QCS404_SNOC_INT_1
62162306a36Sopenharmony_ci};
62262306a36Sopenharmony_ci
62362306a36Sopenharmony_cistatic struct qcom_icc_node qdss_int = {
62462306a36Sopenharmony_ci	.name = "qdss_int",
62562306a36Sopenharmony_ci	.id = QCS404_SNOC_QDSS_INT,
62662306a36Sopenharmony_ci	.buswidth = 8,
62762306a36Sopenharmony_ci	.mas_rpm_id = -1,
62862306a36Sopenharmony_ci	.slv_rpm_id = -1,
62962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(qdss_int_links),
63062306a36Sopenharmony_ci	.links = qdss_int_links,
63162306a36Sopenharmony_ci};
63262306a36Sopenharmony_ci
63362306a36Sopenharmony_cistatic const u16 snoc_int_0_links[] = {
63462306a36Sopenharmony_ci	QCS404_SLAVE_LPASS,
63562306a36Sopenharmony_ci	QCS404_SLAVE_APPSS,
63662306a36Sopenharmony_ci	QCS404_SLAVE_WCSS
63762306a36Sopenharmony_ci};
63862306a36Sopenharmony_ci
63962306a36Sopenharmony_cistatic struct qcom_icc_node snoc_int_0 = {
64062306a36Sopenharmony_ci	.name = "snoc_int_0",
64162306a36Sopenharmony_ci	.id = QCS404_SNOC_INT_0,
64262306a36Sopenharmony_ci	.buswidth = 8,
64362306a36Sopenharmony_ci	.mas_rpm_id = 99,
64462306a36Sopenharmony_ci	.slv_rpm_id = 130,
64562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(snoc_int_0_links),
64662306a36Sopenharmony_ci	.links = snoc_int_0_links,
64762306a36Sopenharmony_ci};
64862306a36Sopenharmony_ci
64962306a36Sopenharmony_cistatic const u16 snoc_int_1_links[] = {
65062306a36Sopenharmony_ci	QCS404_SNOC_PNOC_SLV,
65162306a36Sopenharmony_ci	QCS404_SNOC_INT_2
65262306a36Sopenharmony_ci};
65362306a36Sopenharmony_ci
65462306a36Sopenharmony_cistatic struct qcom_icc_node snoc_int_1 = {
65562306a36Sopenharmony_ci	.name = "snoc_int_1",
65662306a36Sopenharmony_ci	.id = QCS404_SNOC_INT_1,
65762306a36Sopenharmony_ci	.buswidth = 8,
65862306a36Sopenharmony_ci	.mas_rpm_id = 100,
65962306a36Sopenharmony_ci	.slv_rpm_id = 131,
66062306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(snoc_int_1_links),
66162306a36Sopenharmony_ci	.links = snoc_int_1_links,
66262306a36Sopenharmony_ci};
66362306a36Sopenharmony_ci
66462306a36Sopenharmony_cistatic const u16 snoc_int_2_links[] = {
66562306a36Sopenharmony_ci	QCS404_SLAVE_QDSS_STM,
66662306a36Sopenharmony_ci	QCS404_SLAVE_OCIMEM
66762306a36Sopenharmony_ci};
66862306a36Sopenharmony_ci
66962306a36Sopenharmony_cistatic struct qcom_icc_node snoc_int_2 = {
67062306a36Sopenharmony_ci	.name = "snoc_int_2",
67162306a36Sopenharmony_ci	.id = QCS404_SNOC_INT_2,
67262306a36Sopenharmony_ci	.buswidth = 8,
67362306a36Sopenharmony_ci	.mas_rpm_id = 134,
67462306a36Sopenharmony_ci	.slv_rpm_id = 197,
67562306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(snoc_int_2_links),
67662306a36Sopenharmony_ci	.links = snoc_int_2_links,
67762306a36Sopenharmony_ci};
67862306a36Sopenharmony_ci
67962306a36Sopenharmony_cistatic struct qcom_icc_node slv_ebi = {
68062306a36Sopenharmony_ci	.name = "slv_ebi",
68162306a36Sopenharmony_ci	.id = QCS404_SLAVE_EBI_CH0,
68262306a36Sopenharmony_ci	.buswidth = 8,
68362306a36Sopenharmony_ci	.mas_rpm_id = -1,
68462306a36Sopenharmony_ci	.slv_rpm_id = 0,
68562306a36Sopenharmony_ci};
68662306a36Sopenharmony_ci
68762306a36Sopenharmony_cistatic const u16 slv_bimc_snoc_links[] = {
68862306a36Sopenharmony_ci	QCS404_BIMC_SNOC_MAS
68962306a36Sopenharmony_ci};
69062306a36Sopenharmony_ci
69162306a36Sopenharmony_cistatic struct qcom_icc_node slv_bimc_snoc = {
69262306a36Sopenharmony_ci	.name = "slv_bimc_snoc",
69362306a36Sopenharmony_ci	.id = QCS404_BIMC_SNOC_SLV,
69462306a36Sopenharmony_ci	.buswidth = 8,
69562306a36Sopenharmony_ci	.mas_rpm_id = -1,
69662306a36Sopenharmony_ci	.slv_rpm_id = 2,
69762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_bimc_snoc_links),
69862306a36Sopenharmony_ci	.links = slv_bimc_snoc_links,
69962306a36Sopenharmony_ci};
70062306a36Sopenharmony_ci
70162306a36Sopenharmony_cistatic struct qcom_icc_node slv_spdm = {
70262306a36Sopenharmony_ci	.name = "slv_spdm",
70362306a36Sopenharmony_ci	.id = QCS404_SLAVE_SPDM_WRAPPER,
70462306a36Sopenharmony_ci	.buswidth = 4,
70562306a36Sopenharmony_ci	.mas_rpm_id = -1,
70662306a36Sopenharmony_ci	.slv_rpm_id = -1,
70762306a36Sopenharmony_ci};
70862306a36Sopenharmony_ci
70962306a36Sopenharmony_cistatic struct qcom_icc_node slv_pdm = {
71062306a36Sopenharmony_ci	.name = "slv_pdm",
71162306a36Sopenharmony_ci	.id = QCS404_SLAVE_PDM,
71262306a36Sopenharmony_ci	.buswidth = 4,
71362306a36Sopenharmony_ci	.mas_rpm_id = -1,
71462306a36Sopenharmony_ci	.slv_rpm_id = 41,
71562306a36Sopenharmony_ci};
71662306a36Sopenharmony_ci
71762306a36Sopenharmony_cistatic struct qcom_icc_node slv_prng = {
71862306a36Sopenharmony_ci	.name = "slv_prng",
71962306a36Sopenharmony_ci	.id = QCS404_SLAVE_PRNG,
72062306a36Sopenharmony_ci	.buswidth = 4,
72162306a36Sopenharmony_ci	.mas_rpm_id = -1,
72262306a36Sopenharmony_ci	.slv_rpm_id = 44,
72362306a36Sopenharmony_ci};
72462306a36Sopenharmony_ci
72562306a36Sopenharmony_cistatic struct qcom_icc_node slv_tcsr = {
72662306a36Sopenharmony_ci	.name = "slv_tcsr",
72762306a36Sopenharmony_ci	.id = QCS404_SLAVE_TCSR,
72862306a36Sopenharmony_ci	.buswidth = 4,
72962306a36Sopenharmony_ci	.mas_rpm_id = -1,
73062306a36Sopenharmony_ci	.slv_rpm_id = 50,
73162306a36Sopenharmony_ci};
73262306a36Sopenharmony_ci
73362306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_cfg = {
73462306a36Sopenharmony_ci	.name = "slv_snoc_cfg",
73562306a36Sopenharmony_ci	.id = QCS404_SLAVE_SNOC_CFG,
73662306a36Sopenharmony_ci	.buswidth = 4,
73762306a36Sopenharmony_ci	.mas_rpm_id = -1,
73862306a36Sopenharmony_ci	.slv_rpm_id = 70,
73962306a36Sopenharmony_ci};
74062306a36Sopenharmony_ci
74162306a36Sopenharmony_cistatic struct qcom_icc_node slv_message_ram = {
74262306a36Sopenharmony_ci	.name = "slv_message_ram",
74362306a36Sopenharmony_ci	.id = QCS404_SLAVE_MESSAGE_RAM,
74462306a36Sopenharmony_ci	.buswidth = 4,
74562306a36Sopenharmony_ci	.mas_rpm_id = -1,
74662306a36Sopenharmony_ci	.slv_rpm_id = 55,
74762306a36Sopenharmony_ci};
74862306a36Sopenharmony_ci
74962306a36Sopenharmony_cistatic struct qcom_icc_node slv_disp_ss_cfg = {
75062306a36Sopenharmony_ci	.name = "slv_disp_ss_cfg",
75162306a36Sopenharmony_ci	.id = QCS404_SLAVE_DISPLAY_CFG,
75262306a36Sopenharmony_ci	.buswidth = 4,
75362306a36Sopenharmony_ci	.mas_rpm_id = -1,
75462306a36Sopenharmony_ci	.slv_rpm_id = -1,
75562306a36Sopenharmony_ci};
75662306a36Sopenharmony_ci
75762306a36Sopenharmony_cistatic struct qcom_icc_node slv_gpu_cfg = {
75862306a36Sopenharmony_ci	.name = "slv_gpu_cfg",
75962306a36Sopenharmony_ci	.id = QCS404_SLAVE_GRAPHICS_3D_CFG,
76062306a36Sopenharmony_ci	.buswidth = 4,
76162306a36Sopenharmony_ci	.mas_rpm_id = -1,
76262306a36Sopenharmony_ci	.slv_rpm_id = -1,
76362306a36Sopenharmony_ci};
76462306a36Sopenharmony_ci
76562306a36Sopenharmony_cistatic struct qcom_icc_node slv_blsp_1 = {
76662306a36Sopenharmony_ci	.name = "slv_blsp_1",
76762306a36Sopenharmony_ci	.id = QCS404_SLAVE_BLSP_1,
76862306a36Sopenharmony_ci	.buswidth = 4,
76962306a36Sopenharmony_ci	.mas_rpm_id = -1,
77062306a36Sopenharmony_ci	.slv_rpm_id = 39,
77162306a36Sopenharmony_ci};
77262306a36Sopenharmony_ci
77362306a36Sopenharmony_cistatic struct qcom_icc_node slv_tlmm_north = {
77462306a36Sopenharmony_ci	.name = "slv_tlmm_north",
77562306a36Sopenharmony_ci	.id = QCS404_SLAVE_TLMM_NORTH,
77662306a36Sopenharmony_ci	.buswidth = 4,
77762306a36Sopenharmony_ci	.mas_rpm_id = -1,
77862306a36Sopenharmony_ci	.slv_rpm_id = 214,
77962306a36Sopenharmony_ci};
78062306a36Sopenharmony_ci
78162306a36Sopenharmony_cistatic struct qcom_icc_node slv_pcie = {
78262306a36Sopenharmony_ci	.name = "slv_pcie",
78362306a36Sopenharmony_ci	.id = QCS404_SLAVE_PCIE_1,
78462306a36Sopenharmony_ci	.buswidth = 4,
78562306a36Sopenharmony_ci	.mas_rpm_id = -1,
78662306a36Sopenharmony_ci	.slv_rpm_id = -1,
78762306a36Sopenharmony_ci};
78862306a36Sopenharmony_ci
78962306a36Sopenharmony_cistatic struct qcom_icc_node slv_ethernet = {
79062306a36Sopenharmony_ci	.name = "slv_ethernet",
79162306a36Sopenharmony_ci	.id = QCS404_SLAVE_EMAC_CFG,
79262306a36Sopenharmony_ci	.buswidth = 4,
79362306a36Sopenharmony_ci	.mas_rpm_id = -1,
79462306a36Sopenharmony_ci	.slv_rpm_id = -1,
79562306a36Sopenharmony_ci};
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_cistatic struct qcom_icc_node slv_blsp_2 = {
79862306a36Sopenharmony_ci	.name = "slv_blsp_2",
79962306a36Sopenharmony_ci	.id = QCS404_SLAVE_BLSP_2,
80062306a36Sopenharmony_ci	.buswidth = 4,
80162306a36Sopenharmony_ci	.mas_rpm_id = -1,
80262306a36Sopenharmony_ci	.slv_rpm_id = 37,
80362306a36Sopenharmony_ci};
80462306a36Sopenharmony_ci
80562306a36Sopenharmony_cistatic struct qcom_icc_node slv_tlmm_east = {
80662306a36Sopenharmony_ci	.name = "slv_tlmm_east",
80762306a36Sopenharmony_ci	.id = QCS404_SLAVE_TLMM_EAST,
80862306a36Sopenharmony_ci	.buswidth = 4,
80962306a36Sopenharmony_ci	.mas_rpm_id = -1,
81062306a36Sopenharmony_ci	.slv_rpm_id = 213,
81162306a36Sopenharmony_ci};
81262306a36Sopenharmony_ci
81362306a36Sopenharmony_cistatic struct qcom_icc_node slv_tcu = {
81462306a36Sopenharmony_ci	.name = "slv_tcu",
81562306a36Sopenharmony_ci	.id = QCS404_SLAVE_TCU,
81662306a36Sopenharmony_ci	.buswidth = 8,
81762306a36Sopenharmony_ci	.mas_rpm_id = -1,
81862306a36Sopenharmony_ci	.slv_rpm_id = -1,
81962306a36Sopenharmony_ci};
82062306a36Sopenharmony_ci
82162306a36Sopenharmony_cistatic struct qcom_icc_node slv_pmic_arb = {
82262306a36Sopenharmony_ci	.name = "slv_pmic_arb",
82362306a36Sopenharmony_ci	.id = QCS404_SLAVE_PMIC_ARB,
82462306a36Sopenharmony_ci	.buswidth = 4,
82562306a36Sopenharmony_ci	.mas_rpm_id = -1,
82662306a36Sopenharmony_ci	.slv_rpm_id = 59,
82762306a36Sopenharmony_ci};
82862306a36Sopenharmony_ci
82962306a36Sopenharmony_cistatic struct qcom_icc_node slv_sdcc_1 = {
83062306a36Sopenharmony_ci	.name = "slv_sdcc_1",
83162306a36Sopenharmony_ci	.id = QCS404_SLAVE_SDCC_1,
83262306a36Sopenharmony_ci	.buswidth = 4,
83362306a36Sopenharmony_ci	.mas_rpm_id = -1,
83462306a36Sopenharmony_ci	.slv_rpm_id = 31,
83562306a36Sopenharmony_ci};
83662306a36Sopenharmony_ci
83762306a36Sopenharmony_cistatic struct qcom_icc_node slv_sdcc_2 = {
83862306a36Sopenharmony_ci	.name = "slv_sdcc_2",
83962306a36Sopenharmony_ci	.id = QCS404_SLAVE_SDCC_2,
84062306a36Sopenharmony_ci	.buswidth = 4,
84162306a36Sopenharmony_ci	.mas_rpm_id = -1,
84262306a36Sopenharmony_ci	.slv_rpm_id = 33,
84362306a36Sopenharmony_ci};
84462306a36Sopenharmony_ci
84562306a36Sopenharmony_cistatic struct qcom_icc_node slv_tlmm_south = {
84662306a36Sopenharmony_ci	.name = "slv_tlmm_south",
84762306a36Sopenharmony_ci	.id = QCS404_SLAVE_TLMM_SOUTH,
84862306a36Sopenharmony_ci	.buswidth = 4,
84962306a36Sopenharmony_ci	.mas_rpm_id = -1,
85062306a36Sopenharmony_ci	.slv_rpm_id = -1,
85162306a36Sopenharmony_ci};
85262306a36Sopenharmony_ci
85362306a36Sopenharmony_cistatic struct qcom_icc_node slv_usb_hs = {
85462306a36Sopenharmony_ci	.name = "slv_usb_hs",
85562306a36Sopenharmony_ci	.id = QCS404_SLAVE_USB_HS,
85662306a36Sopenharmony_ci	.buswidth = 4,
85762306a36Sopenharmony_ci	.mas_rpm_id = -1,
85862306a36Sopenharmony_ci	.slv_rpm_id = 40,
85962306a36Sopenharmony_ci};
86062306a36Sopenharmony_ci
86162306a36Sopenharmony_cistatic struct qcom_icc_node slv_usb3 = {
86262306a36Sopenharmony_ci	.name = "slv_usb3",
86362306a36Sopenharmony_ci	.id = QCS404_SLAVE_USB3,
86462306a36Sopenharmony_ci	.buswidth = 4,
86562306a36Sopenharmony_ci	.mas_rpm_id = -1,
86662306a36Sopenharmony_ci	.slv_rpm_id = 22,
86762306a36Sopenharmony_ci};
86862306a36Sopenharmony_ci
86962306a36Sopenharmony_cistatic struct qcom_icc_node slv_crypto_0_cfg = {
87062306a36Sopenharmony_ci	.name = "slv_crypto_0_cfg",
87162306a36Sopenharmony_ci	.id = QCS404_SLAVE_CRYPTO_0_CFG,
87262306a36Sopenharmony_ci	.buswidth = 4,
87362306a36Sopenharmony_ci	.mas_rpm_id = -1,
87462306a36Sopenharmony_ci	.slv_rpm_id = 52,
87562306a36Sopenharmony_ci};
87662306a36Sopenharmony_ci
87762306a36Sopenharmony_cistatic const u16 slv_pcnoc_snoc_links[] = {
87862306a36Sopenharmony_ci	QCS404_PNOC_SNOC_MAS
87962306a36Sopenharmony_ci};
88062306a36Sopenharmony_ci
88162306a36Sopenharmony_cistatic struct qcom_icc_node slv_pcnoc_snoc = {
88262306a36Sopenharmony_ci	.name = "slv_pcnoc_snoc",
88362306a36Sopenharmony_ci	.id = QCS404_PNOC_SNOC_SLV,
88462306a36Sopenharmony_ci	.buswidth = 8,
88562306a36Sopenharmony_ci	.mas_rpm_id = -1,
88662306a36Sopenharmony_ci	.slv_rpm_id = 45,
88762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_pcnoc_snoc_links),
88862306a36Sopenharmony_ci	.links = slv_pcnoc_snoc_links,
88962306a36Sopenharmony_ci};
89062306a36Sopenharmony_ci
89162306a36Sopenharmony_cistatic struct qcom_icc_node slv_kpss_ahb = {
89262306a36Sopenharmony_ci	.name = "slv_kpss_ahb",
89362306a36Sopenharmony_ci	.id = QCS404_SLAVE_APPSS,
89462306a36Sopenharmony_ci	.buswidth = 4,
89562306a36Sopenharmony_ci	.mas_rpm_id = -1,
89662306a36Sopenharmony_ci	.slv_rpm_id = -1,
89762306a36Sopenharmony_ci};
89862306a36Sopenharmony_ci
89962306a36Sopenharmony_cistatic struct qcom_icc_node slv_wcss = {
90062306a36Sopenharmony_ci	.name = "slv_wcss",
90162306a36Sopenharmony_ci	.id = QCS404_SLAVE_WCSS,
90262306a36Sopenharmony_ci	.buswidth = 4,
90362306a36Sopenharmony_ci	.mas_rpm_id = -1,
90462306a36Sopenharmony_ci	.slv_rpm_id = 23,
90562306a36Sopenharmony_ci};
90662306a36Sopenharmony_ci
90762306a36Sopenharmony_cistatic const u16 slv_snoc_bimc_1_links[] = {
90862306a36Sopenharmony_ci	QCS404_SNOC_BIMC_1_MAS
90962306a36Sopenharmony_ci};
91062306a36Sopenharmony_ci
91162306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_bimc_1 = {
91262306a36Sopenharmony_ci	.name = "slv_snoc_bimc_1",
91362306a36Sopenharmony_ci	.id = QCS404_SNOC_BIMC_1_SLV,
91462306a36Sopenharmony_ci	.buswidth = 8,
91562306a36Sopenharmony_ci	.mas_rpm_id = -1,
91662306a36Sopenharmony_ci	.slv_rpm_id = 104,
91762306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_bimc_1_links),
91862306a36Sopenharmony_ci	.links = slv_snoc_bimc_1_links,
91962306a36Sopenharmony_ci};
92062306a36Sopenharmony_ci
92162306a36Sopenharmony_cistatic struct qcom_icc_node slv_imem = {
92262306a36Sopenharmony_ci	.name = "slv_imem",
92362306a36Sopenharmony_ci	.id = QCS404_SLAVE_OCIMEM,
92462306a36Sopenharmony_ci	.buswidth = 8,
92562306a36Sopenharmony_ci	.mas_rpm_id = -1,
92662306a36Sopenharmony_ci	.slv_rpm_id = 26,
92762306a36Sopenharmony_ci};
92862306a36Sopenharmony_ci
92962306a36Sopenharmony_cistatic const u16 slv_snoc_pcnoc_links[] = {
93062306a36Sopenharmony_ci	QCS404_SNOC_PNOC_MAS
93162306a36Sopenharmony_ci};
93262306a36Sopenharmony_ci
93362306a36Sopenharmony_cistatic struct qcom_icc_node slv_snoc_pcnoc = {
93462306a36Sopenharmony_ci	.name = "slv_snoc_pcnoc",
93562306a36Sopenharmony_ci	.id = QCS404_SNOC_PNOC_SLV,
93662306a36Sopenharmony_ci	.buswidth = 8,
93762306a36Sopenharmony_ci	.mas_rpm_id = -1,
93862306a36Sopenharmony_ci	.slv_rpm_id = 28,
93962306a36Sopenharmony_ci	.num_links = ARRAY_SIZE(slv_snoc_pcnoc_links),
94062306a36Sopenharmony_ci	.links = slv_snoc_pcnoc_links,
94162306a36Sopenharmony_ci};
94262306a36Sopenharmony_ci
94362306a36Sopenharmony_cistatic struct qcom_icc_node slv_qdss_stm = {
94462306a36Sopenharmony_ci	.name = "slv_qdss_stm",
94562306a36Sopenharmony_ci	.id = QCS404_SLAVE_QDSS_STM,
94662306a36Sopenharmony_ci	.buswidth = 4,
94762306a36Sopenharmony_ci	.mas_rpm_id = -1,
94862306a36Sopenharmony_ci	.slv_rpm_id = 30,
94962306a36Sopenharmony_ci};
95062306a36Sopenharmony_ci
95162306a36Sopenharmony_cistatic struct qcom_icc_node slv_cats_0 = {
95262306a36Sopenharmony_ci	.name = "slv_cats_0",
95362306a36Sopenharmony_ci	.id = QCS404_SLAVE_CATS_128,
95462306a36Sopenharmony_ci	.buswidth = 16,
95562306a36Sopenharmony_ci	.mas_rpm_id = -1,
95662306a36Sopenharmony_ci	.slv_rpm_id = -1,
95762306a36Sopenharmony_ci};
95862306a36Sopenharmony_ci
95962306a36Sopenharmony_cistatic struct qcom_icc_node slv_cats_1 = {
96062306a36Sopenharmony_ci	.name = "slv_cats_1",
96162306a36Sopenharmony_ci	.id = QCS404_SLAVE_OCMEM_64,
96262306a36Sopenharmony_ci	.buswidth = 8,
96362306a36Sopenharmony_ci	.mas_rpm_id = -1,
96462306a36Sopenharmony_ci	.slv_rpm_id = -1,
96562306a36Sopenharmony_ci};
96662306a36Sopenharmony_ci
96762306a36Sopenharmony_cistatic struct qcom_icc_node slv_lpass = {
96862306a36Sopenharmony_ci	.name = "slv_lpass",
96962306a36Sopenharmony_ci	.id = QCS404_SLAVE_LPASS,
97062306a36Sopenharmony_ci	.buswidth = 4,
97162306a36Sopenharmony_ci	.mas_rpm_id = -1,
97262306a36Sopenharmony_ci	.slv_rpm_id = -1,
97362306a36Sopenharmony_ci};
97462306a36Sopenharmony_ci
97562306a36Sopenharmony_cistatic struct qcom_icc_node * const qcs404_bimc_nodes[] = {
97662306a36Sopenharmony_ci	[MASTER_AMPSS_M0] = &mas_apps_proc,
97762306a36Sopenharmony_ci	[MASTER_OXILI] = &mas_oxili,
97862306a36Sopenharmony_ci	[MASTER_MDP_PORT0] = &mas_mdp,
97962306a36Sopenharmony_ci	[MASTER_SNOC_BIMC_1] = &mas_snoc_bimc_1,
98062306a36Sopenharmony_ci	[MASTER_TCU_0] = &mas_tcu_0,
98162306a36Sopenharmony_ci	[SLAVE_EBI_CH0] = &slv_ebi,
98262306a36Sopenharmony_ci	[SLAVE_BIMC_SNOC] = &slv_bimc_snoc,
98362306a36Sopenharmony_ci};
98462306a36Sopenharmony_ci
98562306a36Sopenharmony_cistatic const struct qcom_icc_desc qcs404_bimc = {
98662306a36Sopenharmony_ci	.bus_clk_desc = &bimc_clk,
98762306a36Sopenharmony_ci	.nodes = qcs404_bimc_nodes,
98862306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcs404_bimc_nodes),
98962306a36Sopenharmony_ci};
99062306a36Sopenharmony_ci
99162306a36Sopenharmony_cistatic struct qcom_icc_node * const qcs404_pcnoc_nodes[] = {
99262306a36Sopenharmony_ci	[MASTER_SPDM] = &mas_spdm,
99362306a36Sopenharmony_ci	[MASTER_BLSP_1] = &mas_blsp_1,
99462306a36Sopenharmony_ci	[MASTER_BLSP_2] = &mas_blsp_2,
99562306a36Sopenharmony_ci	[MASTER_XI_USB_HS1] = &mas_xi_usb_hs1,
99662306a36Sopenharmony_ci	[MASTER_CRYPT0] = &mas_crypto,
99762306a36Sopenharmony_ci	[MASTER_SDCC_1] = &mas_sdcc_1,
99862306a36Sopenharmony_ci	[MASTER_SDCC_2] = &mas_sdcc_2,
99962306a36Sopenharmony_ci	[MASTER_SNOC_PCNOC] = &mas_snoc_pcnoc,
100062306a36Sopenharmony_ci	[MASTER_QPIC] = &mas_qpic,
100162306a36Sopenharmony_ci	[PCNOC_INT_0] = &pcnoc_int_0,
100262306a36Sopenharmony_ci	[PCNOC_INT_2] = &pcnoc_int_2,
100362306a36Sopenharmony_ci	[PCNOC_INT_3] = &pcnoc_int_3,
100462306a36Sopenharmony_ci	[PCNOC_S_0] = &pcnoc_s_0,
100562306a36Sopenharmony_ci	[PCNOC_S_1] = &pcnoc_s_1,
100662306a36Sopenharmony_ci	[PCNOC_S_2] = &pcnoc_s_2,
100762306a36Sopenharmony_ci	[PCNOC_S_3] = &pcnoc_s_3,
100862306a36Sopenharmony_ci	[PCNOC_S_4] = &pcnoc_s_4,
100962306a36Sopenharmony_ci	[PCNOC_S_6] = &pcnoc_s_6,
101062306a36Sopenharmony_ci	[PCNOC_S_7] = &pcnoc_s_7,
101162306a36Sopenharmony_ci	[PCNOC_S_8] = &pcnoc_s_8,
101262306a36Sopenharmony_ci	[PCNOC_S_9] = &pcnoc_s_9,
101362306a36Sopenharmony_ci	[PCNOC_S_10] = &pcnoc_s_10,
101462306a36Sopenharmony_ci	[PCNOC_S_11] = &pcnoc_s_11,
101562306a36Sopenharmony_ci	[SLAVE_SPDM] = &slv_spdm,
101662306a36Sopenharmony_ci	[SLAVE_PDM] = &slv_pdm,
101762306a36Sopenharmony_ci	[SLAVE_PRNG] = &slv_prng,
101862306a36Sopenharmony_ci	[SLAVE_TCSR] = &slv_tcsr,
101962306a36Sopenharmony_ci	[SLAVE_SNOC_CFG] = &slv_snoc_cfg,
102062306a36Sopenharmony_ci	[SLAVE_MESSAGE_RAM] = &slv_message_ram,
102162306a36Sopenharmony_ci	[SLAVE_DISP_SS_CFG] = &slv_disp_ss_cfg,
102262306a36Sopenharmony_ci	[SLAVE_GPU_CFG] = &slv_gpu_cfg,
102362306a36Sopenharmony_ci	[SLAVE_BLSP_1] = &slv_blsp_1,
102462306a36Sopenharmony_ci	[SLAVE_BLSP_2] = &slv_blsp_2,
102562306a36Sopenharmony_ci	[SLAVE_TLMM_NORTH] = &slv_tlmm_north,
102662306a36Sopenharmony_ci	[SLAVE_PCIE] = &slv_pcie,
102762306a36Sopenharmony_ci	[SLAVE_ETHERNET] = &slv_ethernet,
102862306a36Sopenharmony_ci	[SLAVE_TLMM_EAST] = &slv_tlmm_east,
102962306a36Sopenharmony_ci	[SLAVE_TCU] = &slv_tcu,
103062306a36Sopenharmony_ci	[SLAVE_PMIC_ARB] = &slv_pmic_arb,
103162306a36Sopenharmony_ci	[SLAVE_SDCC_1] = &slv_sdcc_1,
103262306a36Sopenharmony_ci	[SLAVE_SDCC_2] = &slv_sdcc_2,
103362306a36Sopenharmony_ci	[SLAVE_TLMM_SOUTH] = &slv_tlmm_south,
103462306a36Sopenharmony_ci	[SLAVE_USB_HS] = &slv_usb_hs,
103562306a36Sopenharmony_ci	[SLAVE_USB3] = &slv_usb3,
103662306a36Sopenharmony_ci	[SLAVE_CRYPTO_0_CFG] = &slv_crypto_0_cfg,
103762306a36Sopenharmony_ci	[SLAVE_PCNOC_SNOC] = &slv_pcnoc_snoc,
103862306a36Sopenharmony_ci};
103962306a36Sopenharmony_ci
104062306a36Sopenharmony_cistatic const struct qcom_icc_desc qcs404_pcnoc = {
104162306a36Sopenharmony_ci	.bus_clk_desc = &bus_0_clk,
104262306a36Sopenharmony_ci	.nodes = qcs404_pcnoc_nodes,
104362306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcs404_pcnoc_nodes),
104462306a36Sopenharmony_ci};
104562306a36Sopenharmony_ci
104662306a36Sopenharmony_cistatic struct qcom_icc_node * const qcs404_snoc_nodes[] = {
104762306a36Sopenharmony_ci	[MASTER_QDSS_BAM] = &mas_qdss_bam,
104862306a36Sopenharmony_ci	[MASTER_BIMC_SNOC] = &mas_bimc_snoc,
104962306a36Sopenharmony_ci	[MASTER_PCNOC_SNOC] = &mas_pcnoc_snoc,
105062306a36Sopenharmony_ci	[MASTER_QDSS_ETR] = &mas_qdss_etr,
105162306a36Sopenharmony_ci	[MASTER_EMAC] = &mas_emac,
105262306a36Sopenharmony_ci	[MASTER_PCIE] = &mas_pcie,
105362306a36Sopenharmony_ci	[MASTER_USB3] = &mas_usb3,
105462306a36Sopenharmony_ci	[QDSS_INT] = &qdss_int,
105562306a36Sopenharmony_ci	[SNOC_INT_0] = &snoc_int_0,
105662306a36Sopenharmony_ci	[SNOC_INT_1] = &snoc_int_1,
105762306a36Sopenharmony_ci	[SNOC_INT_2] = &snoc_int_2,
105862306a36Sopenharmony_ci	[SLAVE_KPSS_AHB] = &slv_kpss_ahb,
105962306a36Sopenharmony_ci	[SLAVE_WCSS] = &slv_wcss,
106062306a36Sopenharmony_ci	[SLAVE_SNOC_BIMC_1] = &slv_snoc_bimc_1,
106162306a36Sopenharmony_ci	[SLAVE_IMEM] = &slv_imem,
106262306a36Sopenharmony_ci	[SLAVE_SNOC_PCNOC] = &slv_snoc_pcnoc,
106362306a36Sopenharmony_ci	[SLAVE_QDSS_STM] = &slv_qdss_stm,
106462306a36Sopenharmony_ci	[SLAVE_CATS_0] = &slv_cats_0,
106562306a36Sopenharmony_ci	[SLAVE_CATS_1] = &slv_cats_1,
106662306a36Sopenharmony_ci	[SLAVE_LPASS] = &slv_lpass,
106762306a36Sopenharmony_ci};
106862306a36Sopenharmony_ci
106962306a36Sopenharmony_cistatic const struct qcom_icc_desc qcs404_snoc = {
107062306a36Sopenharmony_ci	.bus_clk_desc = &bus_1_clk,
107162306a36Sopenharmony_ci	.nodes = qcs404_snoc_nodes,
107262306a36Sopenharmony_ci	.num_nodes = ARRAY_SIZE(qcs404_snoc_nodes),
107362306a36Sopenharmony_ci};
107462306a36Sopenharmony_ci
107562306a36Sopenharmony_ci
107662306a36Sopenharmony_cistatic const struct of_device_id qcs404_noc_of_match[] = {
107762306a36Sopenharmony_ci	{ .compatible = "qcom,qcs404-bimc", .data = &qcs404_bimc },
107862306a36Sopenharmony_ci	{ .compatible = "qcom,qcs404-pcnoc", .data = &qcs404_pcnoc },
107962306a36Sopenharmony_ci	{ .compatible = "qcom,qcs404-snoc", .data = &qcs404_snoc },
108062306a36Sopenharmony_ci	{ },
108162306a36Sopenharmony_ci};
108262306a36Sopenharmony_ciMODULE_DEVICE_TABLE(of, qcs404_noc_of_match);
108362306a36Sopenharmony_ci
108462306a36Sopenharmony_cistatic struct platform_driver qcs404_noc_driver = {
108562306a36Sopenharmony_ci	.probe = qnoc_probe,
108662306a36Sopenharmony_ci	.remove = qnoc_remove,
108762306a36Sopenharmony_ci	.driver = {
108862306a36Sopenharmony_ci		.name = "qnoc-qcs404",
108962306a36Sopenharmony_ci		.of_match_table = qcs404_noc_of_match,
109062306a36Sopenharmony_ci	},
109162306a36Sopenharmony_ci};
109262306a36Sopenharmony_cimodule_platform_driver(qcs404_noc_driver);
109362306a36Sopenharmony_ciMODULE_DESCRIPTION("Qualcomm QCS404 NoC driver");
109462306a36Sopenharmony_ciMODULE_LICENSE("GPL v2");
1095