xref: /linux/drivers/interconnect/qcom/msm8937.c (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1*755acd36SAdam Skladowski // SPDX-License-Identifier: GPL-2.0-only
2*755acd36SAdam Skladowski /*
3*755acd36SAdam Skladowski  * Based on data from msm8937-bus.dtsi in Qualcomm's msm-3.18 release:
4*755acd36SAdam Skladowski  *   Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
5*755acd36SAdam Skladowski  */
6*755acd36SAdam Skladowski 
7*755acd36SAdam Skladowski #include <linux/device.h>
8*755acd36SAdam Skladowski #include <linux/interconnect-provider.h>
9*755acd36SAdam Skladowski #include <linux/mod_devicetable.h>
10*755acd36SAdam Skladowski #include <linux/module.h>
11*755acd36SAdam Skladowski #include <linux/platform_device.h>
12*755acd36SAdam Skladowski #include <linux/regmap.h>
13*755acd36SAdam Skladowski 
14*755acd36SAdam Skladowski #include <dt-bindings/interconnect/qcom,msm8937.h>
15*755acd36SAdam Skladowski 
16*755acd36SAdam Skladowski #include "icc-rpm.h"
17*755acd36SAdam Skladowski 
18*755acd36SAdam Skladowski enum {
19*755acd36SAdam Skladowski 	QNOC_MASTER_AMPSS_M0 = 1,
20*755acd36SAdam Skladowski 	QNOC_MASTER_GRAPHICS_3D,
21*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_MAS,
22*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_MAS,
23*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_1_MAS,
24*755acd36SAdam Skladowski 	QNOC_MASTER_TCU_0,
25*755acd36SAdam Skladowski 	QNOC_MASTER_SPDM,
26*755acd36SAdam Skladowski 	QNOC_MASTER_BLSP_1,
27*755acd36SAdam Skladowski 	QNOC_MASTER_BLSP_2,
28*755acd36SAdam Skladowski 	QNOC_MASTER_USB_HS,
29*755acd36SAdam Skladowski 	QNOC_MASTER_XM_USB_HS1,
30*755acd36SAdam Skladowski 	QNOC_MASTER_CRYPTO_CORE0,
31*755acd36SAdam Skladowski 	QNOC_MASTER_SDCC_1,
32*755acd36SAdam Skladowski 	QNOC_MASTER_SDCC_2,
33*755acd36SAdam Skladowski 	QNOC_SNOC_PNOC_MAS,
34*755acd36SAdam Skladowski 	QNOC_MASTER_QDSS_BAM,
35*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_MAS,
36*755acd36SAdam Skladowski 	QNOC_MASTER_JPEG,
37*755acd36SAdam Skladowski 	QNOC_MASTER_MDP_PORT0,
38*755acd36SAdam Skladowski 	QNOC_PNOC_SNOC_MAS,
39*755acd36SAdam Skladowski 	QNOC_MASTER_VIDEO_P0,
40*755acd36SAdam Skladowski 	QNOC_MASTER_VFE,
41*755acd36SAdam Skladowski 	QNOC_MASTER_VFE1,
42*755acd36SAdam Skladowski 	QNOC_MASTER_CPP,
43*755acd36SAdam Skladowski 	QNOC_MASTER_QDSS_ETR,
44*755acd36SAdam Skladowski 	QNOC_PNOC_M_0,
45*755acd36SAdam Skladowski 	QNOC_PNOC_M_1,
46*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0,
47*755acd36SAdam Skladowski 	QNOC_PNOC_INT_1,
48*755acd36SAdam Skladowski 	QNOC_PNOC_INT_2,
49*755acd36SAdam Skladowski 	QNOC_PNOC_INT_3,
50*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_0,
51*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_1,
52*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_2,
53*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_3,
54*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_4,
55*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_6,
56*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_7,
57*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_8,
58*755acd36SAdam Skladowski 	QNOC_SNOC_QDSS_INT,
59*755acd36SAdam Skladowski 	QNOC_SNOC_INT_0,
60*755acd36SAdam Skladowski 	QNOC_SNOC_INT_1,
61*755acd36SAdam Skladowski 	QNOC_SNOC_INT_2,
62*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
63*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV,
64*755acd36SAdam Skladowski 	QNOC_SLAVE_SDCC_2,
65*755acd36SAdam Skladowski 	QNOC_SLAVE_SPDM_WRAPPER,
66*755acd36SAdam Skladowski 	QNOC_SLAVE_PDM,
67*755acd36SAdam Skladowski 	QNOC_SLAVE_PRNG,
68*755acd36SAdam Skladowski 	QNOC_SLAVE_TCSR,
69*755acd36SAdam Skladowski 	QNOC_SLAVE_SNOC_CFG,
70*755acd36SAdam Skladowski 	QNOC_SLAVE_MESSAGE_RAM,
71*755acd36SAdam Skladowski 	QNOC_SLAVE_CAMERA_CFG,
72*755acd36SAdam Skladowski 	QNOC_SLAVE_DISPLAY_CFG,
73*755acd36SAdam Skladowski 	QNOC_SLAVE_VENUS_CFG,
74*755acd36SAdam Skladowski 	QNOC_SLAVE_GRAPHICS_3D_CFG,
75*755acd36SAdam Skladowski 	QNOC_SLAVE_TLMM,
76*755acd36SAdam Skladowski 	QNOC_SLAVE_BLSP_1,
77*755acd36SAdam Skladowski 	QNOC_SLAVE_BLSP_2,
78*755acd36SAdam Skladowski 	QNOC_SLAVE_PMIC_ARB,
79*755acd36SAdam Skladowski 	QNOC_SLAVE_SDCC_1,
80*755acd36SAdam Skladowski 	QNOC_SLAVE_CRYPTO_0_CFG,
81*755acd36SAdam Skladowski 	QNOC_SLAVE_USB_HS,
82*755acd36SAdam Skladowski 	QNOC_SLAVE_TCU,
83*755acd36SAdam Skladowski 	QNOC_PNOC_SNOC_SLV,
84*755acd36SAdam Skladowski 	QNOC_SLAVE_APPSS,
85*755acd36SAdam Skladowski 	QNOC_SLAVE_WCSS,
86*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_SLV,
87*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_1_SLV,
88*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_SLV,
89*755acd36SAdam Skladowski 	QNOC_SLAVE_OCIMEM,
90*755acd36SAdam Skladowski 	QNOC_SNOC_PNOC_SLV,
91*755acd36SAdam Skladowski 	QNOC_SLAVE_QDSS_STM,
92*755acd36SAdam Skladowski 	QNOC_SLAVE_CATS_128,
93*755acd36SAdam Skladowski 	QNOC_SLAVE_OCMEM_64,
94*755acd36SAdam Skladowski 	QNOC_SLAVE_LPASS,
95*755acd36SAdam Skladowski };
96*755acd36SAdam Skladowski 
97*755acd36SAdam Skladowski static const u16 mas_apps_proc_links[] = {
98*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
99*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV
100*755acd36SAdam Skladowski };
101*755acd36SAdam Skladowski 
102*755acd36SAdam Skladowski static struct qcom_icc_node mas_apps_proc = {
103*755acd36SAdam Skladowski 	.name = "mas_apps_proc",
104*755acd36SAdam Skladowski 	.id = QNOC_MASTER_AMPSS_M0,
105*755acd36SAdam Skladowski 	.buswidth = 8,
106*755acd36SAdam Skladowski 	.mas_rpm_id = 0,
107*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
108*755acd36SAdam Skladowski 	.qos.ap_owned = true,
109*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
110*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
111*755acd36SAdam Skladowski 	.qos.prio_level = 0,
112*755acd36SAdam Skladowski 	.qos.qos_port = 0,
113*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_apps_proc_links),
114*755acd36SAdam Skladowski 	.links = mas_apps_proc_links,
115*755acd36SAdam Skladowski };
116*755acd36SAdam Skladowski 
117*755acd36SAdam Skladowski static const u16 mas_oxili_links[] = {
118*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
119*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV
120*755acd36SAdam Skladowski };
121*755acd36SAdam Skladowski 
122*755acd36SAdam Skladowski static struct qcom_icc_node mas_oxili = {
123*755acd36SAdam Skladowski 	.name = "mas_oxili",
124*755acd36SAdam Skladowski 	.id = QNOC_MASTER_GRAPHICS_3D,
125*755acd36SAdam Skladowski 	.buswidth = 8,
126*755acd36SAdam Skladowski 	.mas_rpm_id = 6,
127*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
128*755acd36SAdam Skladowski 	.qos.ap_owned = true,
129*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
130*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
131*755acd36SAdam Skladowski 	.qos.prio_level = 0,
132*755acd36SAdam Skladowski 	.qos.qos_port = 2,
133*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_oxili_links),
134*755acd36SAdam Skladowski 	.links = mas_oxili_links,
135*755acd36SAdam Skladowski };
136*755acd36SAdam Skladowski 
137*755acd36SAdam Skladowski static const u16 mas_snoc_bimc_0_links[] = {
138*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
139*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV
140*755acd36SAdam Skladowski };
141*755acd36SAdam Skladowski 
142*755acd36SAdam Skladowski static struct qcom_icc_node mas_snoc_bimc_0 = {
143*755acd36SAdam Skladowski 	.name = "mas_snoc_bimc_0",
144*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_0_MAS,
145*755acd36SAdam Skladowski 	.buswidth = 8,
146*755acd36SAdam Skladowski 	.mas_rpm_id = 3,
147*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
148*755acd36SAdam Skladowski 	.qos.ap_owned = true,
149*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
150*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
151*755acd36SAdam Skladowski 	.qos.prio_level = 0,
152*755acd36SAdam Skladowski 	.qos.qos_port = 3,
153*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_snoc_bimc_0_links),
154*755acd36SAdam Skladowski 	.links = mas_snoc_bimc_0_links,
155*755acd36SAdam Skladowski };
156*755acd36SAdam Skladowski 
157*755acd36SAdam Skladowski static const u16 mas_snoc_bimc_2_links[] = {
158*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
159*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV
160*755acd36SAdam Skladowski };
161*755acd36SAdam Skladowski 
162*755acd36SAdam Skladowski static struct qcom_icc_node mas_snoc_bimc_2 = {
163*755acd36SAdam Skladowski 	.name = "mas_snoc_bimc_2",
164*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_2_MAS,
165*755acd36SAdam Skladowski 	.buswidth = 8,
166*755acd36SAdam Skladowski 	.mas_rpm_id = 108,
167*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
168*755acd36SAdam Skladowski 	.qos.ap_owned = true,
169*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
170*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
171*755acd36SAdam Skladowski 	.qos.prio_level = 0,
172*755acd36SAdam Skladowski 	.qos.qos_port = 4,
173*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_snoc_bimc_2_links),
174*755acd36SAdam Skladowski 	.links = mas_snoc_bimc_2_links,
175*755acd36SAdam Skladowski };
176*755acd36SAdam Skladowski 
177*755acd36SAdam Skladowski static const u16 mas_snoc_bimc_1_links[] = {
178*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0
179*755acd36SAdam Skladowski };
180*755acd36SAdam Skladowski 
181*755acd36SAdam Skladowski static struct qcom_icc_node mas_snoc_bimc_1 = {
182*755acd36SAdam Skladowski 	.name = "mas_snoc_bimc_1",
183*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_1_MAS,
184*755acd36SAdam Skladowski 	.buswidth = 8,
185*755acd36SAdam Skladowski 	.mas_rpm_id = 76,
186*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
187*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
188*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
189*755acd36SAdam Skladowski 	.qos.prio_level = 0,
190*755acd36SAdam Skladowski 	.qos.qos_port = 5,
191*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_snoc_bimc_1_links),
192*755acd36SAdam Skladowski 	.links = mas_snoc_bimc_1_links,
193*755acd36SAdam Skladowski };
194*755acd36SAdam Skladowski 
195*755acd36SAdam Skladowski static const u16 mas_tcu_0_links[] = {
196*755acd36SAdam Skladowski 	QNOC_SLAVE_EBI_CH0,
197*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_SLV
198*755acd36SAdam Skladowski };
199*755acd36SAdam Skladowski 
200*755acd36SAdam Skladowski static struct qcom_icc_node mas_tcu_0 = {
201*755acd36SAdam Skladowski 	.name = "mas_tcu_0",
202*755acd36SAdam Skladowski 	.id = QNOC_MASTER_TCU_0,
203*755acd36SAdam Skladowski 	.buswidth = 8,
204*755acd36SAdam Skladowski 	.mas_rpm_id = 102,
205*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
206*755acd36SAdam Skladowski 	.qos.ap_owned = true,
207*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
208*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
209*755acd36SAdam Skladowski 	.qos.prio_level = 2,
210*755acd36SAdam Skladowski 	.qos.qos_port = 6,
211*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_tcu_0_links),
212*755acd36SAdam Skladowski 	.links = mas_tcu_0_links,
213*755acd36SAdam Skladowski };
214*755acd36SAdam Skladowski 
215*755acd36SAdam Skladowski static const u16 mas_spdm_links[] = {
216*755acd36SAdam Skladowski 	QNOC_PNOC_M_0
217*755acd36SAdam Skladowski };
218*755acd36SAdam Skladowski 
219*755acd36SAdam Skladowski static struct qcom_icc_node mas_spdm = {
220*755acd36SAdam Skladowski 	.name = "mas_spdm",
221*755acd36SAdam Skladowski 	.id = QNOC_MASTER_SPDM,
222*755acd36SAdam Skladowski 	.buswidth = 4,
223*755acd36SAdam Skladowski 	.mas_rpm_id = 50,
224*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
225*755acd36SAdam Skladowski 	.qos.ap_owned = true,
226*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
227*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_spdm_links),
228*755acd36SAdam Skladowski 	.links = mas_spdm_links,
229*755acd36SAdam Skladowski };
230*755acd36SAdam Skladowski 
231*755acd36SAdam Skladowski static const u16 mas_blsp_1_links[] = {
232*755acd36SAdam Skladowski 	QNOC_PNOC_M_1
233*755acd36SAdam Skladowski };
234*755acd36SAdam Skladowski 
235*755acd36SAdam Skladowski static struct qcom_icc_node mas_blsp_1 = {
236*755acd36SAdam Skladowski 	.name = "mas_blsp_1",
237*755acd36SAdam Skladowski 	.id = QNOC_MASTER_BLSP_1,
238*755acd36SAdam Skladowski 	.buswidth = 4,
239*755acd36SAdam Skladowski 	.mas_rpm_id = 41,
240*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
241*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_blsp_1_links),
242*755acd36SAdam Skladowski 	.links = mas_blsp_1_links,
243*755acd36SAdam Skladowski };
244*755acd36SAdam Skladowski 
245*755acd36SAdam Skladowski static const u16 mas_blsp_2_links[] = {
246*755acd36SAdam Skladowski 	QNOC_PNOC_M_1
247*755acd36SAdam Skladowski };
248*755acd36SAdam Skladowski 
249*755acd36SAdam Skladowski static struct qcom_icc_node mas_blsp_2 = {
250*755acd36SAdam Skladowski 	.name = "mas_blsp_2",
251*755acd36SAdam Skladowski 	.id = QNOC_MASTER_BLSP_2,
252*755acd36SAdam Skladowski 	.buswidth = 4,
253*755acd36SAdam Skladowski 	.mas_rpm_id = 39,
254*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
255*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_blsp_2_links),
256*755acd36SAdam Skladowski 	.links = mas_blsp_2_links,
257*755acd36SAdam Skladowski };
258*755acd36SAdam Skladowski 
259*755acd36SAdam Skladowski static const u16 mas_usb_hs1_links[] = {
260*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
261*755acd36SAdam Skladowski };
262*755acd36SAdam Skladowski 
263*755acd36SAdam Skladowski static struct qcom_icc_node mas_usb_hs1 = {
264*755acd36SAdam Skladowski 	.name = "mas_usb_hs1",
265*755acd36SAdam Skladowski 	.id = QNOC_MASTER_USB_HS,
266*755acd36SAdam Skladowski 	.buswidth = 4,
267*755acd36SAdam Skladowski 	.mas_rpm_id = 42,
268*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
269*755acd36SAdam Skladowski 	.qos.ap_owned = true,
270*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
271*755acd36SAdam Skladowski 	.qos.areq_prio = 1,
272*755acd36SAdam Skladowski 	.qos.prio_level = 1,
273*755acd36SAdam Skladowski 	.qos.qos_port = 12,
274*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_usb_hs1_links),
275*755acd36SAdam Skladowski 	.links = mas_usb_hs1_links,
276*755acd36SAdam Skladowski };
277*755acd36SAdam Skladowski 
278*755acd36SAdam Skladowski static const u16 mas_xi_usb_hs1_links[] = {
279*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
280*755acd36SAdam Skladowski };
281*755acd36SAdam Skladowski 
282*755acd36SAdam Skladowski static struct qcom_icc_node mas_xi_usb_hs1 = {
283*755acd36SAdam Skladowski 	.name = "mas_xi_usb_hs1",
284*755acd36SAdam Skladowski 	.id = QNOC_MASTER_XM_USB_HS1,
285*755acd36SAdam Skladowski 	.buswidth = 8,
286*755acd36SAdam Skladowski 	.mas_rpm_id = 138,
287*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
288*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
289*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
290*755acd36SAdam Skladowski 	.qos.prio_level = 0,
291*755acd36SAdam Skladowski 	.qos.qos_port = 11,
292*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_xi_usb_hs1_links),
293*755acd36SAdam Skladowski 	.links = mas_xi_usb_hs1_links,
294*755acd36SAdam Skladowski };
295*755acd36SAdam Skladowski 
296*755acd36SAdam Skladowski static const u16 mas_crypto_links[] = {
297*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
298*755acd36SAdam Skladowski };
299*755acd36SAdam Skladowski 
300*755acd36SAdam Skladowski static struct qcom_icc_node mas_crypto = {
301*755acd36SAdam Skladowski 	.name = "mas_crypto",
302*755acd36SAdam Skladowski 	.id = QNOC_MASTER_CRYPTO_CORE0,
303*755acd36SAdam Skladowski 	.buswidth = 8,
304*755acd36SAdam Skladowski 	.mas_rpm_id = 23,
305*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
306*755acd36SAdam Skladowski 	.qos.ap_owned = true,
307*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
308*755acd36SAdam Skladowski 	.qos.areq_prio = 1,
309*755acd36SAdam Skladowski 	.qos.prio_level = 1,
310*755acd36SAdam Skladowski 	.qos.qos_port = 0,
311*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_crypto_links),
312*755acd36SAdam Skladowski 	.links = mas_crypto_links,
313*755acd36SAdam Skladowski };
314*755acd36SAdam Skladowski 
315*755acd36SAdam Skladowski static const u16 mas_sdcc_1_links[] = {
316*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
317*755acd36SAdam Skladowski };
318*755acd36SAdam Skladowski 
319*755acd36SAdam Skladowski static struct qcom_icc_node mas_sdcc_1 = {
320*755acd36SAdam Skladowski 	.name = "mas_sdcc_1",
321*755acd36SAdam Skladowski 	.id = QNOC_MASTER_SDCC_1,
322*755acd36SAdam Skladowski 	.buswidth = 8,
323*755acd36SAdam Skladowski 	.mas_rpm_id = 33,
324*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
325*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
326*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
327*755acd36SAdam Skladowski 	.qos.prio_level = 0,
328*755acd36SAdam Skladowski 	.qos.qos_port = 7,
329*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_sdcc_1_links),
330*755acd36SAdam Skladowski 	.links = mas_sdcc_1_links,
331*755acd36SAdam Skladowski };
332*755acd36SAdam Skladowski 
333*755acd36SAdam Skladowski static const u16 mas_sdcc_2_links[] = {
334*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
335*755acd36SAdam Skladowski };
336*755acd36SAdam Skladowski 
337*755acd36SAdam Skladowski static struct qcom_icc_node mas_sdcc_2 = {
338*755acd36SAdam Skladowski 	.name = "mas_sdcc_2",
339*755acd36SAdam Skladowski 	.id = QNOC_MASTER_SDCC_2,
340*755acd36SAdam Skladowski 	.buswidth = 8,
341*755acd36SAdam Skladowski 	.mas_rpm_id = 35,
342*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
343*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
344*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
345*755acd36SAdam Skladowski 	.qos.prio_level = 0,
346*755acd36SAdam Skladowski 	.qos.qos_port = 8,
347*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_sdcc_2_links),
348*755acd36SAdam Skladowski 	.links = mas_sdcc_2_links,
349*755acd36SAdam Skladowski };
350*755acd36SAdam Skladowski 
351*755acd36SAdam Skladowski static const u16 mas_snoc_pcnoc_links[] = {
352*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_7,
353*755acd36SAdam Skladowski 	QNOC_PNOC_INT_2,
354*755acd36SAdam Skladowski 	QNOC_PNOC_INT_3
355*755acd36SAdam Skladowski };
356*755acd36SAdam Skladowski 
357*755acd36SAdam Skladowski static struct qcom_icc_node mas_snoc_pcnoc = {
358*755acd36SAdam Skladowski 	.name = "mas_snoc_pcnoc",
359*755acd36SAdam Skladowski 	.id = QNOC_SNOC_PNOC_MAS,
360*755acd36SAdam Skladowski 	.buswidth = 8,
361*755acd36SAdam Skladowski 	.mas_rpm_id = 77,
362*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
363*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
364*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
365*755acd36SAdam Skladowski 	.qos.prio_level = 0,
366*755acd36SAdam Skladowski 	.qos.qos_port = 9,
367*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_snoc_pcnoc_links),
368*755acd36SAdam Skladowski 	.links = mas_snoc_pcnoc_links,
369*755acd36SAdam Skladowski };
370*755acd36SAdam Skladowski 
371*755acd36SAdam Skladowski static const u16 mas_qdss_bam_links[] = {
372*755acd36SAdam Skladowski 	QNOC_SNOC_QDSS_INT
373*755acd36SAdam Skladowski };
374*755acd36SAdam Skladowski 
375*755acd36SAdam Skladowski static struct qcom_icc_node mas_qdss_bam = {
376*755acd36SAdam Skladowski 	.name = "mas_qdss_bam",
377*755acd36SAdam Skladowski 	.id = QNOC_MASTER_QDSS_BAM,
378*755acd36SAdam Skladowski 	.buswidth = 4,
379*755acd36SAdam Skladowski 	.mas_rpm_id = 19,
380*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
381*755acd36SAdam Skladowski 	.qos.ap_owned = true,
382*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
383*755acd36SAdam Skladowski 	.qos.areq_prio = 1,
384*755acd36SAdam Skladowski 	.qos.prio_level = 1,
385*755acd36SAdam Skladowski 	.qos.qos_port = 11,
386*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_qdss_bam_links),
387*755acd36SAdam Skladowski 	.links = mas_qdss_bam_links,
388*755acd36SAdam Skladowski };
389*755acd36SAdam Skladowski 
390*755acd36SAdam Skladowski static const u16 mas_bimc_snoc_links[] = {
391*755acd36SAdam Skladowski 	QNOC_SNOC_INT_0,
392*755acd36SAdam Skladowski 	QNOC_SNOC_INT_1,
393*755acd36SAdam Skladowski 	QNOC_SNOC_INT_2
394*755acd36SAdam Skladowski };
395*755acd36SAdam Skladowski 
396*755acd36SAdam Skladowski static struct qcom_icc_node mas_bimc_snoc = {
397*755acd36SAdam Skladowski 	.name = "mas_bimc_snoc",
398*755acd36SAdam Skladowski 	.id = QNOC_BIMC_SNOC_MAS,
399*755acd36SAdam Skladowski 	.buswidth = 8,
400*755acd36SAdam Skladowski 	.mas_rpm_id = 21,
401*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
402*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_bimc_snoc_links),
403*755acd36SAdam Skladowski 	.links = mas_bimc_snoc_links,
404*755acd36SAdam Skladowski };
405*755acd36SAdam Skladowski 
406*755acd36SAdam Skladowski static const u16 mas_jpeg_links[] = {
407*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_SLV
408*755acd36SAdam Skladowski };
409*755acd36SAdam Skladowski 
410*755acd36SAdam Skladowski static struct qcom_icc_node mas_jpeg = {
411*755acd36SAdam Skladowski 	.name = "mas_jpeg",
412*755acd36SAdam Skladowski 	.id = QNOC_MASTER_JPEG,
413*755acd36SAdam Skladowski 	.buswidth = 16,
414*755acd36SAdam Skladowski 	.mas_rpm_id = 7,
415*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
416*755acd36SAdam Skladowski 	.qos.ap_owned = true,
417*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
418*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
419*755acd36SAdam Skladowski 	.qos.prio_level = 0,
420*755acd36SAdam Skladowski 	.qos.qos_port = 6,
421*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_jpeg_links),
422*755acd36SAdam Skladowski 	.links = mas_jpeg_links,
423*755acd36SAdam Skladowski };
424*755acd36SAdam Skladowski 
425*755acd36SAdam Skladowski static const u16 mas_mdp_links[] = {
426*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_SLV
427*755acd36SAdam Skladowski };
428*755acd36SAdam Skladowski 
429*755acd36SAdam Skladowski static struct qcom_icc_node mas_mdp = {
430*755acd36SAdam Skladowski 	.name = "mas_mdp",
431*755acd36SAdam Skladowski 	.id = QNOC_MASTER_MDP_PORT0,
432*755acd36SAdam Skladowski 	.buswidth = 16,
433*755acd36SAdam Skladowski 	.mas_rpm_id = 8,
434*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
435*755acd36SAdam Skladowski 	.qos.ap_owned = true,
436*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
437*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
438*755acd36SAdam Skladowski 	.qos.prio_level = 0,
439*755acd36SAdam Skladowski 	.qos.qos_port = 7,
440*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_mdp_links),
441*755acd36SAdam Skladowski 	.links = mas_mdp_links,
442*755acd36SAdam Skladowski };
443*755acd36SAdam Skladowski 
444*755acd36SAdam Skladowski static const u16 mas_pcnoc_snoc_links[] = {
445*755acd36SAdam Skladowski 	QNOC_SNOC_INT_0,
446*755acd36SAdam Skladowski 	QNOC_SNOC_INT_1,
447*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_1_SLV
448*755acd36SAdam Skladowski };
449*755acd36SAdam Skladowski 
450*755acd36SAdam Skladowski static struct qcom_icc_node mas_pcnoc_snoc = {
451*755acd36SAdam Skladowski 	.name = "mas_pcnoc_snoc",
452*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SNOC_MAS,
453*755acd36SAdam Skladowski 	.buswidth = 8,
454*755acd36SAdam Skladowski 	.mas_rpm_id = 29,
455*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
456*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
457*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
458*755acd36SAdam Skladowski 	.qos.prio_level = 0,
459*755acd36SAdam Skladowski 	.qos.qos_port = 5,
460*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_pcnoc_snoc_links),
461*755acd36SAdam Skladowski 	.links = mas_pcnoc_snoc_links,
462*755acd36SAdam Skladowski };
463*755acd36SAdam Skladowski 
464*755acd36SAdam Skladowski static const u16 mas_venus_links[] = {
465*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_SLV
466*755acd36SAdam Skladowski };
467*755acd36SAdam Skladowski 
468*755acd36SAdam Skladowski static struct qcom_icc_node mas_venus = {
469*755acd36SAdam Skladowski 	.name = "mas_venus",
470*755acd36SAdam Skladowski 	.id = QNOC_MASTER_VIDEO_P0,
471*755acd36SAdam Skladowski 	.buswidth = 16,
472*755acd36SAdam Skladowski 	.mas_rpm_id = 9,
473*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
474*755acd36SAdam Skladowski 	.qos.ap_owned = true,
475*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
476*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
477*755acd36SAdam Skladowski 	.qos.prio_level = 0,
478*755acd36SAdam Skladowski 	.qos.qos_port = 8,
479*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_venus_links),
480*755acd36SAdam Skladowski 	.links = mas_venus_links,
481*755acd36SAdam Skladowski };
482*755acd36SAdam Skladowski 
483*755acd36SAdam Skladowski static const u16 mas_vfe0_links[] = {
484*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_SLV
485*755acd36SAdam Skladowski };
486*755acd36SAdam Skladowski 
487*755acd36SAdam Skladowski static struct qcom_icc_node mas_vfe0 = {
488*755acd36SAdam Skladowski 	.name = "mas_vfe0",
489*755acd36SAdam Skladowski 	.id = QNOC_MASTER_VFE,
490*755acd36SAdam Skladowski 	.buswidth = 16,
491*755acd36SAdam Skladowski 	.mas_rpm_id = 11,
492*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
493*755acd36SAdam Skladowski 	.qos.ap_owned = true,
494*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
495*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
496*755acd36SAdam Skladowski 	.qos.prio_level = 0,
497*755acd36SAdam Skladowski 	.qos.qos_port = 9,
498*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_vfe0_links),
499*755acd36SAdam Skladowski 	.links = mas_vfe0_links,
500*755acd36SAdam Skladowski };
501*755acd36SAdam Skladowski 
502*755acd36SAdam Skladowski static const u16 mas_vfe1_links[] = {
503*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_SLV
504*755acd36SAdam Skladowski };
505*755acd36SAdam Skladowski 
506*755acd36SAdam Skladowski static struct qcom_icc_node mas_vfe1 = {
507*755acd36SAdam Skladowski 	.name = "mas_vfe1",
508*755acd36SAdam Skladowski 	.id = QNOC_MASTER_VFE1,
509*755acd36SAdam Skladowski 	.buswidth = 16,
510*755acd36SAdam Skladowski 	.mas_rpm_id = 133,
511*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
512*755acd36SAdam Skladowski 	.qos.ap_owned = true,
513*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
514*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
515*755acd36SAdam Skladowski 	.qos.prio_level = 0,
516*755acd36SAdam Skladowski 	.qos.qos_port = 13,
517*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_vfe1_links),
518*755acd36SAdam Skladowski 	.links = mas_vfe1_links,
519*755acd36SAdam Skladowski };
520*755acd36SAdam Skladowski 
521*755acd36SAdam Skladowski static const u16 mas_cpp_links[] = {
522*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_SLV
523*755acd36SAdam Skladowski };
524*755acd36SAdam Skladowski 
525*755acd36SAdam Skladowski static struct qcom_icc_node mas_cpp = {
526*755acd36SAdam Skladowski 	.name = "mas_cpp",
527*755acd36SAdam Skladowski 	.id = QNOC_MASTER_CPP,
528*755acd36SAdam Skladowski 	.buswidth = 16,
529*755acd36SAdam Skladowski 	.mas_rpm_id = 115,
530*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
531*755acd36SAdam Skladowski 	.qos.ap_owned = true,
532*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_BYPASS,
533*755acd36SAdam Skladowski 	.qos.areq_prio = 0,
534*755acd36SAdam Skladowski 	.qos.prio_level = 0,
535*755acd36SAdam Skladowski 	.qos.qos_port = 12,
536*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_cpp_links),
537*755acd36SAdam Skladowski 	.links = mas_cpp_links,
538*755acd36SAdam Skladowski };
539*755acd36SAdam Skladowski 
540*755acd36SAdam Skladowski static const u16 mas_qdss_etr_links[] = {
541*755acd36SAdam Skladowski 	QNOC_SNOC_QDSS_INT
542*755acd36SAdam Skladowski };
543*755acd36SAdam Skladowski 
544*755acd36SAdam Skladowski static struct qcom_icc_node mas_qdss_etr = {
545*755acd36SAdam Skladowski 	.name = "mas_qdss_etr",
546*755acd36SAdam Skladowski 	.id = QNOC_MASTER_QDSS_ETR,
547*755acd36SAdam Skladowski 	.buswidth = 8,
548*755acd36SAdam Skladowski 	.mas_rpm_id = 31,
549*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
550*755acd36SAdam Skladowski 	.qos.ap_owned = true,
551*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
552*755acd36SAdam Skladowski 	.qos.areq_prio = 1,
553*755acd36SAdam Skladowski 	.qos.prio_level = 1,
554*755acd36SAdam Skladowski 	.qos.qos_port = 10,
555*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(mas_qdss_etr_links),
556*755acd36SAdam Skladowski 	.links = mas_qdss_etr_links,
557*755acd36SAdam Skladowski };
558*755acd36SAdam Skladowski 
559*755acd36SAdam Skladowski static const u16 pcnoc_m_0_links[] = {
560*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
561*755acd36SAdam Skladowski };
562*755acd36SAdam Skladowski 
563*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_m_0 = {
564*755acd36SAdam Skladowski 	.name = "pcnoc_m_0",
565*755acd36SAdam Skladowski 	.id = QNOC_PNOC_M_0,
566*755acd36SAdam Skladowski 	.buswidth = 4,
567*755acd36SAdam Skladowski 	.mas_rpm_id = 87,
568*755acd36SAdam Skladowski 	.slv_rpm_id = 116,
569*755acd36SAdam Skladowski 	.qos.ap_owned = true,
570*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_FIXED,
571*755acd36SAdam Skladowski 	.qos.areq_prio = 1,
572*755acd36SAdam Skladowski 	.qos.prio_level = 1,
573*755acd36SAdam Skladowski 	.qos.qos_port = 5,
574*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_m_0_links),
575*755acd36SAdam Skladowski 	.links = pcnoc_m_0_links,
576*755acd36SAdam Skladowski };
577*755acd36SAdam Skladowski 
578*755acd36SAdam Skladowski static const u16 pcnoc_m_1_links[] = {
579*755acd36SAdam Skladowski 	QNOC_PNOC_INT_0
580*755acd36SAdam Skladowski };
581*755acd36SAdam Skladowski 
582*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_m_1 = {
583*755acd36SAdam Skladowski 	.name = "pcnoc_m_1",
584*755acd36SAdam Skladowski 	.id = QNOC_PNOC_M_1,
585*755acd36SAdam Skladowski 	.buswidth = 4,
586*755acd36SAdam Skladowski 	.mas_rpm_id = 88,
587*755acd36SAdam Skladowski 	.slv_rpm_id = 117,
588*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_m_1_links),
589*755acd36SAdam Skladowski 	.links = pcnoc_m_1_links,
590*755acd36SAdam Skladowski };
591*755acd36SAdam Skladowski 
592*755acd36SAdam Skladowski static const u16 pcnoc_int_0_links[] = {
593*755acd36SAdam Skladowski 	QNOC_PNOC_SNOC_SLV,
594*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_7,
595*755acd36SAdam Skladowski 	QNOC_PNOC_INT_3,
596*755acd36SAdam Skladowski 	QNOC_PNOC_INT_2
597*755acd36SAdam Skladowski };
598*755acd36SAdam Skladowski 
599*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_int_0 = {
600*755acd36SAdam Skladowski 	.name = "pcnoc_int_0",
601*755acd36SAdam Skladowski 	.id = QNOC_PNOC_INT_0,
602*755acd36SAdam Skladowski 	.buswidth = 8,
603*755acd36SAdam Skladowski 	.mas_rpm_id = 85,
604*755acd36SAdam Skladowski 	.slv_rpm_id = 114,
605*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_int_0_links),
606*755acd36SAdam Skladowski 	.links = pcnoc_int_0_links,
607*755acd36SAdam Skladowski };
608*755acd36SAdam Skladowski 
609*755acd36SAdam Skladowski static const u16 pcnoc_int_1_links[] = {
610*755acd36SAdam Skladowski 	QNOC_PNOC_SNOC_SLV,
611*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_7,
612*755acd36SAdam Skladowski 	QNOC_PNOC_INT_3,
613*755acd36SAdam Skladowski 	QNOC_PNOC_INT_2
614*755acd36SAdam Skladowski };
615*755acd36SAdam Skladowski 
616*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_int_1 = {
617*755acd36SAdam Skladowski 	.name = "pcnoc_int_1",
618*755acd36SAdam Skladowski 	.id = QNOC_PNOC_INT_1,
619*755acd36SAdam Skladowski 	.buswidth = 8,
620*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
621*755acd36SAdam Skladowski 	.slv_rpm_id = -1,
622*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_int_1_links),
623*755acd36SAdam Skladowski 	.links = pcnoc_int_1_links,
624*755acd36SAdam Skladowski };
625*755acd36SAdam Skladowski 
626*755acd36SAdam Skladowski static const u16 pcnoc_int_2_links[] = {
627*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_2,
628*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_3,
629*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_6,
630*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_8
631*755acd36SAdam Skladowski };
632*755acd36SAdam Skladowski 
633*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_int_2 = {
634*755acd36SAdam Skladowski 	.name = "pcnoc_int_2",
635*755acd36SAdam Skladowski 	.id = QNOC_PNOC_INT_2,
636*755acd36SAdam Skladowski 	.buswidth = 8,
637*755acd36SAdam Skladowski 	.mas_rpm_id = 124,
638*755acd36SAdam Skladowski 	.slv_rpm_id = 184,
639*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_int_2_links),
640*755acd36SAdam Skladowski 	.links = pcnoc_int_2_links,
641*755acd36SAdam Skladowski };
642*755acd36SAdam Skladowski 
643*755acd36SAdam Skladowski static const u16 pcnoc_int_3_links[] = {
644*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_1,
645*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_0,
646*755acd36SAdam Skladowski 	QNOC_PNOC_SLV_4,
647*755acd36SAdam Skladowski 	QNOC_SLAVE_GRAPHICS_3D_CFG,
648*755acd36SAdam Skladowski 	QNOC_SLAVE_TCU
649*755acd36SAdam Skladowski };
650*755acd36SAdam Skladowski 
651*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_int_3 = {
652*755acd36SAdam Skladowski 	.name = "pcnoc_int_3",
653*755acd36SAdam Skladowski 	.id = QNOC_PNOC_INT_3,
654*755acd36SAdam Skladowski 	.buswidth = 8,
655*755acd36SAdam Skladowski 	.mas_rpm_id = 125,
656*755acd36SAdam Skladowski 	.slv_rpm_id = 185,
657*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_int_3_links),
658*755acd36SAdam Skladowski 	.links = pcnoc_int_3_links,
659*755acd36SAdam Skladowski };
660*755acd36SAdam Skladowski 
661*755acd36SAdam Skladowski static const u16 pcnoc_s_0_links[] = {
662*755acd36SAdam Skladowski 	QNOC_SLAVE_SPDM_WRAPPER,
663*755acd36SAdam Skladowski 	QNOC_SLAVE_PDM,
664*755acd36SAdam Skladowski 	QNOC_SLAVE_PRNG,
665*755acd36SAdam Skladowski 	QNOC_SLAVE_SDCC_2
666*755acd36SAdam Skladowski };
667*755acd36SAdam Skladowski 
668*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_0 = {
669*755acd36SAdam Skladowski 	.name = "pcnoc_s_0",
670*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_0,
671*755acd36SAdam Skladowski 	.buswidth = 4,
672*755acd36SAdam Skladowski 	.mas_rpm_id = 89,
673*755acd36SAdam Skladowski 	.slv_rpm_id = 118,
674*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_0_links),
675*755acd36SAdam Skladowski 	.links = pcnoc_s_0_links,
676*755acd36SAdam Skladowski };
677*755acd36SAdam Skladowski 
678*755acd36SAdam Skladowski static const u16 pcnoc_s_1_links[] = {
679*755acd36SAdam Skladowski 	QNOC_SLAVE_TCSR
680*755acd36SAdam Skladowski };
681*755acd36SAdam Skladowski 
682*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_1 = {
683*755acd36SAdam Skladowski 	.name = "pcnoc_s_1",
684*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_1,
685*755acd36SAdam Skladowski 	.buswidth = 4,
686*755acd36SAdam Skladowski 	.mas_rpm_id = 90,
687*755acd36SAdam Skladowski 	.slv_rpm_id = 119,
688*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_1_links),
689*755acd36SAdam Skladowski 	.links = pcnoc_s_1_links,
690*755acd36SAdam Skladowski };
691*755acd36SAdam Skladowski 
692*755acd36SAdam Skladowski static const u16 pcnoc_s_2_links[] = {
693*755acd36SAdam Skladowski 	QNOC_SLAVE_SNOC_CFG
694*755acd36SAdam Skladowski };
695*755acd36SAdam Skladowski 
696*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_2 = {
697*755acd36SAdam Skladowski 	.name = "pcnoc_s_2",
698*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_2,
699*755acd36SAdam Skladowski 	.buswidth = 4,
700*755acd36SAdam Skladowski 	.mas_rpm_id = 91,
701*755acd36SAdam Skladowski 	.slv_rpm_id = 120,
702*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_2_links),
703*755acd36SAdam Skladowski 	.links = pcnoc_s_2_links,
704*755acd36SAdam Skladowski };
705*755acd36SAdam Skladowski 
706*755acd36SAdam Skladowski static const u16 pcnoc_s_3_links[] = {
707*755acd36SAdam Skladowski 	QNOC_SLAVE_MESSAGE_RAM
708*755acd36SAdam Skladowski };
709*755acd36SAdam Skladowski 
710*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_3 = {
711*755acd36SAdam Skladowski 	.name = "pcnoc_s_3",
712*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_3,
713*755acd36SAdam Skladowski 	.buswidth = 4,
714*755acd36SAdam Skladowski 	.mas_rpm_id = 92,
715*755acd36SAdam Skladowski 	.slv_rpm_id = 121,
716*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_3_links),
717*755acd36SAdam Skladowski 	.links = pcnoc_s_3_links,
718*755acd36SAdam Skladowski };
719*755acd36SAdam Skladowski 
720*755acd36SAdam Skladowski static const u16 pcnoc_s_4_links[] = {
721*755acd36SAdam Skladowski 	QNOC_SLAVE_CAMERA_CFG,
722*755acd36SAdam Skladowski 	QNOC_SLAVE_DISPLAY_CFG,
723*755acd36SAdam Skladowski 	QNOC_SLAVE_VENUS_CFG
724*755acd36SAdam Skladowski };
725*755acd36SAdam Skladowski 
726*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_4 = {
727*755acd36SAdam Skladowski 	.name = "pcnoc_s_4",
728*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_4,
729*755acd36SAdam Skladowski 	.buswidth = 4,
730*755acd36SAdam Skladowski 	.mas_rpm_id = 93,
731*755acd36SAdam Skladowski 	.slv_rpm_id = 122,
732*755acd36SAdam Skladowski 	.qos.ap_owned = true,
733*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
734*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_4_links),
735*755acd36SAdam Skladowski 	.links = pcnoc_s_4_links,
736*755acd36SAdam Skladowski };
737*755acd36SAdam Skladowski 
738*755acd36SAdam Skladowski static const u16 pcnoc_s_6_links[] = {
739*755acd36SAdam Skladowski 	QNOC_SLAVE_TLMM,
740*755acd36SAdam Skladowski 	QNOC_SLAVE_BLSP_1,
741*755acd36SAdam Skladowski 	QNOC_SLAVE_BLSP_2
742*755acd36SAdam Skladowski };
743*755acd36SAdam Skladowski 
744*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_6 = {
745*755acd36SAdam Skladowski 	.name = "pcnoc_s_6",
746*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_6,
747*755acd36SAdam Skladowski 	.buswidth = 4,
748*755acd36SAdam Skladowski 	.mas_rpm_id = 94,
749*755acd36SAdam Skladowski 	.slv_rpm_id = 123,
750*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_6_links),
751*755acd36SAdam Skladowski 	.links = pcnoc_s_6_links,
752*755acd36SAdam Skladowski };
753*755acd36SAdam Skladowski 
754*755acd36SAdam Skladowski static const u16 pcnoc_s_7_links[] = {
755*755acd36SAdam Skladowski 	QNOC_SLAVE_SDCC_1,
756*755acd36SAdam Skladowski 	QNOC_SLAVE_PMIC_ARB
757*755acd36SAdam Skladowski };
758*755acd36SAdam Skladowski 
759*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_7 = {
760*755acd36SAdam Skladowski 	.name = "pcnoc_s_7",
761*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_7,
762*755acd36SAdam Skladowski 	.buswidth = 4,
763*755acd36SAdam Skladowski 	.mas_rpm_id = 95,
764*755acd36SAdam Skladowski 	.slv_rpm_id = 124,
765*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_7_links),
766*755acd36SAdam Skladowski 	.links = pcnoc_s_7_links,
767*755acd36SAdam Skladowski };
768*755acd36SAdam Skladowski 
769*755acd36SAdam Skladowski static const u16 pcnoc_s_8_links[] = {
770*755acd36SAdam Skladowski 	QNOC_SLAVE_USB_HS,
771*755acd36SAdam Skladowski 	QNOC_SLAVE_CRYPTO_0_CFG
772*755acd36SAdam Skladowski };
773*755acd36SAdam Skladowski 
774*755acd36SAdam Skladowski static struct qcom_icc_node pcnoc_s_8 = {
775*755acd36SAdam Skladowski 	.name = "pcnoc_s_8",
776*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SLV_8,
777*755acd36SAdam Skladowski 	.buswidth = 4,
778*755acd36SAdam Skladowski 	.mas_rpm_id = 96,
779*755acd36SAdam Skladowski 	.slv_rpm_id = 125,
780*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(pcnoc_s_8_links),
781*755acd36SAdam Skladowski 	.links = pcnoc_s_8_links,
782*755acd36SAdam Skladowski };
783*755acd36SAdam Skladowski 
784*755acd36SAdam Skladowski static const u16 qdss_int_links[] = {
785*755acd36SAdam Skladowski 	QNOC_SNOC_INT_1,
786*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_1_SLV
787*755acd36SAdam Skladowski };
788*755acd36SAdam Skladowski 
789*755acd36SAdam Skladowski static struct qcom_icc_node qdss_int = {
790*755acd36SAdam Skladowski 	.name = "qdss_int",
791*755acd36SAdam Skladowski 	.id = QNOC_SNOC_QDSS_INT,
792*755acd36SAdam Skladowski 	.buswidth = 8,
793*755acd36SAdam Skladowski 	.mas_rpm_id = 98,
794*755acd36SAdam Skladowski 	.slv_rpm_id = 128,
795*755acd36SAdam Skladowski 	.qos.ap_owned = true,
796*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
797*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(qdss_int_links),
798*755acd36SAdam Skladowski 	.links = qdss_int_links,
799*755acd36SAdam Skladowski };
800*755acd36SAdam Skladowski 
801*755acd36SAdam Skladowski static const u16 snoc_int_0_links[] = {
802*755acd36SAdam Skladowski 	QNOC_SLAVE_LPASS,
803*755acd36SAdam Skladowski 	QNOC_SLAVE_WCSS,
804*755acd36SAdam Skladowski 	QNOC_SLAVE_APPSS
805*755acd36SAdam Skladowski };
806*755acd36SAdam Skladowski 
807*755acd36SAdam Skladowski static struct qcom_icc_node snoc_int_0 = {
808*755acd36SAdam Skladowski 	.name = "snoc_int_0",
809*755acd36SAdam Skladowski 	.id = QNOC_SNOC_INT_0,
810*755acd36SAdam Skladowski 	.buswidth = 8,
811*755acd36SAdam Skladowski 	.mas_rpm_id = 99,
812*755acd36SAdam Skladowski 	.slv_rpm_id = 130,
813*755acd36SAdam Skladowski 	.qos.ap_owned = true,
814*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
815*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(snoc_int_0_links),
816*755acd36SAdam Skladowski 	.links = snoc_int_0_links,
817*755acd36SAdam Skladowski };
818*755acd36SAdam Skladowski 
819*755acd36SAdam Skladowski static const u16 snoc_int_1_links[] = {
820*755acd36SAdam Skladowski 	QNOC_SLAVE_QDSS_STM,
821*755acd36SAdam Skladowski 	QNOC_SLAVE_OCIMEM,
822*755acd36SAdam Skladowski 	QNOC_SNOC_PNOC_SLV
823*755acd36SAdam Skladowski };
824*755acd36SAdam Skladowski 
825*755acd36SAdam Skladowski static struct qcom_icc_node snoc_int_1 = {
826*755acd36SAdam Skladowski 	.name = "snoc_int_1",
827*755acd36SAdam Skladowski 	.id = QNOC_SNOC_INT_1,
828*755acd36SAdam Skladowski 	.buswidth = 8,
829*755acd36SAdam Skladowski 	.mas_rpm_id = 100,
830*755acd36SAdam Skladowski 	.slv_rpm_id = 131,
831*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(snoc_int_1_links),
832*755acd36SAdam Skladowski 	.links = snoc_int_1_links,
833*755acd36SAdam Skladowski };
834*755acd36SAdam Skladowski 
835*755acd36SAdam Skladowski static const u16 snoc_int_2_links[] = {
836*755acd36SAdam Skladowski 	QNOC_SLAVE_CATS_128,
837*755acd36SAdam Skladowski 	QNOC_SLAVE_OCMEM_64
838*755acd36SAdam Skladowski };
839*755acd36SAdam Skladowski 
840*755acd36SAdam Skladowski static struct qcom_icc_node snoc_int_2 = {
841*755acd36SAdam Skladowski 	.name = "snoc_int_2",
842*755acd36SAdam Skladowski 	.id = QNOC_SNOC_INT_2,
843*755acd36SAdam Skladowski 	.buswidth = 8,
844*755acd36SAdam Skladowski 	.mas_rpm_id = 134,
845*755acd36SAdam Skladowski 	.slv_rpm_id = 197,
846*755acd36SAdam Skladowski 	.qos.ap_owned = true,
847*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
848*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(snoc_int_2_links),
849*755acd36SAdam Skladowski 	.links = snoc_int_2_links,
850*755acd36SAdam Skladowski };
851*755acd36SAdam Skladowski 
852*755acd36SAdam Skladowski static struct qcom_icc_node slv_ebi = {
853*755acd36SAdam Skladowski 	.name = "slv_ebi",
854*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_EBI_CH0,
855*755acd36SAdam Skladowski 	.buswidth = 8,
856*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
857*755acd36SAdam Skladowski 	.slv_rpm_id = 0,
858*755acd36SAdam Skladowski };
859*755acd36SAdam Skladowski 
860*755acd36SAdam Skladowski static const u16 slv_bimc_snoc_links[] = {
861*755acd36SAdam Skladowski 	QNOC_BIMC_SNOC_MAS
862*755acd36SAdam Skladowski };
863*755acd36SAdam Skladowski 
864*755acd36SAdam Skladowski static struct qcom_icc_node slv_bimc_snoc = {
865*755acd36SAdam Skladowski 	.name = "slv_bimc_snoc",
866*755acd36SAdam Skladowski 	.id = QNOC_BIMC_SNOC_SLV,
867*755acd36SAdam Skladowski 	.buswidth = 8,
868*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
869*755acd36SAdam Skladowski 	.slv_rpm_id = 2,
870*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_bimc_snoc_links),
871*755acd36SAdam Skladowski 	.links = slv_bimc_snoc_links,
872*755acd36SAdam Skladowski };
873*755acd36SAdam Skladowski 
874*755acd36SAdam Skladowski static struct qcom_icc_node slv_sdcc_2 = {
875*755acd36SAdam Skladowski 	.name = "slv_sdcc_2",
876*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_SDCC_2,
877*755acd36SAdam Skladowski 	.buswidth = 4,
878*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
879*755acd36SAdam Skladowski 	.slv_rpm_id = 33,
880*755acd36SAdam Skladowski };
881*755acd36SAdam Skladowski 
882*755acd36SAdam Skladowski static struct qcom_icc_node slv_spdm = {
883*755acd36SAdam Skladowski 	.name = "slv_spdm",
884*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_SPDM_WRAPPER,
885*755acd36SAdam Skladowski 	.buswidth = 4,
886*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
887*755acd36SAdam Skladowski 	.slv_rpm_id = 60,
888*755acd36SAdam Skladowski 	.qos.ap_owned = true,
889*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
890*755acd36SAdam Skladowski };
891*755acd36SAdam Skladowski 
892*755acd36SAdam Skladowski static struct qcom_icc_node slv_pdm = {
893*755acd36SAdam Skladowski 	.name = "slv_pdm",
894*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_PDM,
895*755acd36SAdam Skladowski 	.buswidth = 4,
896*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
897*755acd36SAdam Skladowski 	.slv_rpm_id = 41,
898*755acd36SAdam Skladowski };
899*755acd36SAdam Skladowski 
900*755acd36SAdam Skladowski static struct qcom_icc_node slv_prng = {
901*755acd36SAdam Skladowski 	.name = "slv_prng",
902*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_PRNG,
903*755acd36SAdam Skladowski 	.buswidth = 4,
904*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
905*755acd36SAdam Skladowski 	.slv_rpm_id = 44,
906*755acd36SAdam Skladowski };
907*755acd36SAdam Skladowski 
908*755acd36SAdam Skladowski static struct qcom_icc_node slv_tcsr = {
909*755acd36SAdam Skladowski 	.name = "slv_tcsr",
910*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_TCSR,
911*755acd36SAdam Skladowski 	.buswidth = 4,
912*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
913*755acd36SAdam Skladowski 	.slv_rpm_id = 50,
914*755acd36SAdam Skladowski };
915*755acd36SAdam Skladowski 
916*755acd36SAdam Skladowski static struct qcom_icc_node slv_snoc_cfg = {
917*755acd36SAdam Skladowski 	.name = "slv_snoc_cfg",
918*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_SNOC_CFG,
919*755acd36SAdam Skladowski 	.buswidth = 4,
920*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
921*755acd36SAdam Skladowski 	.slv_rpm_id = 70,
922*755acd36SAdam Skladowski };
923*755acd36SAdam Skladowski 
924*755acd36SAdam Skladowski static struct qcom_icc_node slv_message_ram = {
925*755acd36SAdam Skladowski 	.name = "slv_message_ram",
926*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_MESSAGE_RAM,
927*755acd36SAdam Skladowski 	.buswidth = 4,
928*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
929*755acd36SAdam Skladowski 	.slv_rpm_id = 55,
930*755acd36SAdam Skladowski };
931*755acd36SAdam Skladowski 
932*755acd36SAdam Skladowski static struct qcom_icc_node slv_camera_ss_cfg = {
933*755acd36SAdam Skladowski 	.name = "slv_camera_ss_cfg",
934*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_CAMERA_CFG,
935*755acd36SAdam Skladowski 	.buswidth = 4,
936*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
937*755acd36SAdam Skladowski 	.slv_rpm_id = 3,
938*755acd36SAdam Skladowski 	.qos.ap_owned = true,
939*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
940*755acd36SAdam Skladowski };
941*755acd36SAdam Skladowski 
942*755acd36SAdam Skladowski static struct qcom_icc_node slv_disp_ss_cfg = {
943*755acd36SAdam Skladowski 	.name = "slv_disp_ss_cfg",
944*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_DISPLAY_CFG,
945*755acd36SAdam Skladowski 	.buswidth = 4,
946*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
947*755acd36SAdam Skladowski 	.slv_rpm_id = 4,
948*755acd36SAdam Skladowski 	.qos.ap_owned = true,
949*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
950*755acd36SAdam Skladowski };
951*755acd36SAdam Skladowski 
952*755acd36SAdam Skladowski static struct qcom_icc_node slv_venus_cfg = {
953*755acd36SAdam Skladowski 	.name = "slv_venus_cfg",
954*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_VENUS_CFG,
955*755acd36SAdam Skladowski 	.buswidth = 4,
956*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
957*755acd36SAdam Skladowski 	.slv_rpm_id = 10,
958*755acd36SAdam Skladowski 	.qos.ap_owned = true,
959*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
960*755acd36SAdam Skladowski };
961*755acd36SAdam Skladowski 
962*755acd36SAdam Skladowski static struct qcom_icc_node slv_gpu_cfg = {
963*755acd36SAdam Skladowski 	.name = "slv_gpu_cfg",
964*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_GRAPHICS_3D_CFG,
965*755acd36SAdam Skladowski 	.buswidth = 8,
966*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
967*755acd36SAdam Skladowski 	.slv_rpm_id = 11,
968*755acd36SAdam Skladowski 	.qos.ap_owned = true,
969*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
970*755acd36SAdam Skladowski };
971*755acd36SAdam Skladowski 
972*755acd36SAdam Skladowski static struct qcom_icc_node slv_tlmm = {
973*755acd36SAdam Skladowski 	.name = "slv_tlmm",
974*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_TLMM,
975*755acd36SAdam Skladowski 	.buswidth = 4,
976*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
977*755acd36SAdam Skladowski 	.slv_rpm_id = 51,
978*755acd36SAdam Skladowski };
979*755acd36SAdam Skladowski 
980*755acd36SAdam Skladowski static struct qcom_icc_node slv_blsp_1 = {
981*755acd36SAdam Skladowski 	.name = "slv_blsp_1",
982*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_BLSP_1,
983*755acd36SAdam Skladowski 	.buswidth = 4,
984*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
985*755acd36SAdam Skladowski 	.slv_rpm_id = 39,
986*755acd36SAdam Skladowski };
987*755acd36SAdam Skladowski 
988*755acd36SAdam Skladowski static struct qcom_icc_node slv_blsp_2 = {
989*755acd36SAdam Skladowski 	.name = "slv_blsp_2",
990*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_BLSP_2,
991*755acd36SAdam Skladowski 	.buswidth = 4,
992*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
993*755acd36SAdam Skladowski 	.slv_rpm_id = 37,
994*755acd36SAdam Skladowski };
995*755acd36SAdam Skladowski 
996*755acd36SAdam Skladowski static struct qcom_icc_node slv_pmic_arb = {
997*755acd36SAdam Skladowski 	.name = "slv_pmic_arb",
998*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_PMIC_ARB,
999*755acd36SAdam Skladowski 	.buswidth = 4,
1000*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1001*755acd36SAdam Skladowski 	.slv_rpm_id = 59,
1002*755acd36SAdam Skladowski };
1003*755acd36SAdam Skladowski 
1004*755acd36SAdam Skladowski static struct qcom_icc_node slv_sdcc_1 = {
1005*755acd36SAdam Skladowski 	.name = "slv_sdcc_1",
1006*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_SDCC_1,
1007*755acd36SAdam Skladowski 	.buswidth = 4,
1008*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1009*755acd36SAdam Skladowski 	.slv_rpm_id = 31,
1010*755acd36SAdam Skladowski };
1011*755acd36SAdam Skladowski 
1012*755acd36SAdam Skladowski static struct qcom_icc_node slv_crypto_0_cfg = {
1013*755acd36SAdam Skladowski 	.name = "slv_crypto_0_cfg",
1014*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_CRYPTO_0_CFG,
1015*755acd36SAdam Skladowski 	.buswidth = 4,
1016*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1017*755acd36SAdam Skladowski 	.slv_rpm_id = 52,
1018*755acd36SAdam Skladowski };
1019*755acd36SAdam Skladowski 
1020*755acd36SAdam Skladowski static struct qcom_icc_node slv_usb_hs = {
1021*755acd36SAdam Skladowski 	.name = "slv_usb_hs",
1022*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_USB_HS,
1023*755acd36SAdam Skladowski 	.buswidth = 4,
1024*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1025*755acd36SAdam Skladowski 	.slv_rpm_id = 40,
1026*755acd36SAdam Skladowski };
1027*755acd36SAdam Skladowski 
1028*755acd36SAdam Skladowski static struct qcom_icc_node slv_tcu = {
1029*755acd36SAdam Skladowski 	.name = "slv_tcu",
1030*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_TCU,
1031*755acd36SAdam Skladowski 	.buswidth = 8,
1032*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1033*755acd36SAdam Skladowski 	.slv_rpm_id = 133,
1034*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1035*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1036*755acd36SAdam Skladowski };
1037*755acd36SAdam Skladowski 
1038*755acd36SAdam Skladowski static const u16 slv_pcnoc_snoc_links[] = {
1039*755acd36SAdam Skladowski 	QNOC_PNOC_SNOC_MAS
1040*755acd36SAdam Skladowski };
1041*755acd36SAdam Skladowski 
1042*755acd36SAdam Skladowski static struct qcom_icc_node slv_pcnoc_snoc = {
1043*755acd36SAdam Skladowski 	.name = "slv_pcnoc_snoc",
1044*755acd36SAdam Skladowski 	.id = QNOC_PNOC_SNOC_SLV,
1045*755acd36SAdam Skladowski 	.buswidth = 8,
1046*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1047*755acd36SAdam Skladowski 	.slv_rpm_id = 45,
1048*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_pcnoc_snoc_links),
1049*755acd36SAdam Skladowski 	.links = slv_pcnoc_snoc_links,
1050*755acd36SAdam Skladowski };
1051*755acd36SAdam Skladowski 
1052*755acd36SAdam Skladowski static struct qcom_icc_node slv_kpss_ahb = {
1053*755acd36SAdam Skladowski 	.name = "slv_kpss_ahb",
1054*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_APPSS,
1055*755acd36SAdam Skladowski 	.buswidth = 4,
1056*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1057*755acd36SAdam Skladowski 	.slv_rpm_id = 20,
1058*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1059*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1060*755acd36SAdam Skladowski };
1061*755acd36SAdam Skladowski 
1062*755acd36SAdam Skladowski static struct qcom_icc_node slv_wcss = {
1063*755acd36SAdam Skladowski 	.name = "slv_wcss",
1064*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_WCSS,
1065*755acd36SAdam Skladowski 	.buswidth = 4,
1066*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1067*755acd36SAdam Skladowski 	.slv_rpm_id = 23,
1068*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1069*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1070*755acd36SAdam Skladowski };
1071*755acd36SAdam Skladowski 
1072*755acd36SAdam Skladowski static const u16 slv_snoc_bimc_0_links[] = {
1073*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_0_MAS
1074*755acd36SAdam Skladowski };
1075*755acd36SAdam Skladowski 
1076*755acd36SAdam Skladowski static struct qcom_icc_node slv_snoc_bimc_0 = {
1077*755acd36SAdam Skladowski 	.name = "slv_snoc_bimc_0",
1078*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_0_SLV,
1079*755acd36SAdam Skladowski 	.buswidth = 16,
1080*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1081*755acd36SAdam Skladowski 	.slv_rpm_id = 24,
1082*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1083*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1084*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_snoc_bimc_0_links),
1085*755acd36SAdam Skladowski 	.links = slv_snoc_bimc_0_links,
1086*755acd36SAdam Skladowski };
1087*755acd36SAdam Skladowski 
1088*755acd36SAdam Skladowski static const u16 slv_snoc_bimc_1_links[] = {
1089*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_1_MAS
1090*755acd36SAdam Skladowski };
1091*755acd36SAdam Skladowski 
1092*755acd36SAdam Skladowski static struct qcom_icc_node slv_snoc_bimc_1 = {
1093*755acd36SAdam Skladowski 	.name = "slv_snoc_bimc_1",
1094*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_1_SLV,
1095*755acd36SAdam Skladowski 	.buswidth = 8,
1096*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1097*755acd36SAdam Skladowski 	.slv_rpm_id = 104,
1098*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_snoc_bimc_1_links),
1099*755acd36SAdam Skladowski 	.links = slv_snoc_bimc_1_links,
1100*755acd36SAdam Skladowski };
1101*755acd36SAdam Skladowski 
1102*755acd36SAdam Skladowski static const u16 slv_snoc_bimc_2_links[] = {
1103*755acd36SAdam Skladowski 	QNOC_SNOC_BIMC_2_MAS
1104*755acd36SAdam Skladowski };
1105*755acd36SAdam Skladowski 
1106*755acd36SAdam Skladowski static struct qcom_icc_node slv_snoc_bimc_2 = {
1107*755acd36SAdam Skladowski 	.name = "slv_snoc_bimc_2",
1108*755acd36SAdam Skladowski 	.id = QNOC_SNOC_BIMC_2_SLV,
1109*755acd36SAdam Skladowski 	.buswidth = 16,
1110*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1111*755acd36SAdam Skladowski 	.slv_rpm_id = 137,
1112*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1113*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1114*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_snoc_bimc_2_links),
1115*755acd36SAdam Skladowski 	.links = slv_snoc_bimc_2_links,
1116*755acd36SAdam Skladowski };
1117*755acd36SAdam Skladowski 
1118*755acd36SAdam Skladowski static struct qcom_icc_node slv_imem = {
1119*755acd36SAdam Skladowski 	.name = "slv_imem",
1120*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_OCIMEM,
1121*755acd36SAdam Skladowski 	.buswidth = 8,
1122*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1123*755acd36SAdam Skladowski 	.slv_rpm_id = 26,
1124*755acd36SAdam Skladowski };
1125*755acd36SAdam Skladowski 
1126*755acd36SAdam Skladowski static const u16 slv_snoc_pcnoc_links[] = {
1127*755acd36SAdam Skladowski 	QNOC_SNOC_PNOC_MAS
1128*755acd36SAdam Skladowski };
1129*755acd36SAdam Skladowski 
1130*755acd36SAdam Skladowski static struct qcom_icc_node slv_snoc_pcnoc = {
1131*755acd36SAdam Skladowski 	.name = "slv_snoc_pcnoc",
1132*755acd36SAdam Skladowski 	.id = QNOC_SNOC_PNOC_SLV,
1133*755acd36SAdam Skladowski 	.buswidth = 8,
1134*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1135*755acd36SAdam Skladowski 	.slv_rpm_id = 28,
1136*755acd36SAdam Skladowski 	.num_links = ARRAY_SIZE(slv_snoc_pcnoc_links),
1137*755acd36SAdam Skladowski 	.links = slv_snoc_pcnoc_links,
1138*755acd36SAdam Skladowski };
1139*755acd36SAdam Skladowski 
1140*755acd36SAdam Skladowski static struct qcom_icc_node slv_qdss_stm = {
1141*755acd36SAdam Skladowski 	.name = "slv_qdss_stm",
1142*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_QDSS_STM,
1143*755acd36SAdam Skladowski 	.buswidth = 4,
1144*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1145*755acd36SAdam Skladowski 	.slv_rpm_id = 30,
1146*755acd36SAdam Skladowski };
1147*755acd36SAdam Skladowski 
1148*755acd36SAdam Skladowski static struct qcom_icc_node slv_cats_0 = {
1149*755acd36SAdam Skladowski 	.name = "slv_cats_0",
1150*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_CATS_128,
1151*755acd36SAdam Skladowski 	.buswidth = 16,
1152*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1153*755acd36SAdam Skladowski 	.slv_rpm_id = 106,
1154*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1155*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1156*755acd36SAdam Skladowski };
1157*755acd36SAdam Skladowski 
1158*755acd36SAdam Skladowski static struct qcom_icc_node slv_cats_1 = {
1159*755acd36SAdam Skladowski 	.name = "slv_cats_1",
1160*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_OCMEM_64,
1161*755acd36SAdam Skladowski 	.buswidth = 8,
1162*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1163*755acd36SAdam Skladowski 	.slv_rpm_id = 107,
1164*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1165*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1166*755acd36SAdam Skladowski };
1167*755acd36SAdam Skladowski 
1168*755acd36SAdam Skladowski static struct qcom_icc_node slv_lpass = {
1169*755acd36SAdam Skladowski 	.name = "slv_lpass",
1170*755acd36SAdam Skladowski 	.id = QNOC_SLAVE_LPASS,
1171*755acd36SAdam Skladowski 	.buswidth = 8,
1172*755acd36SAdam Skladowski 	.mas_rpm_id = -1,
1173*755acd36SAdam Skladowski 	.slv_rpm_id = 21,
1174*755acd36SAdam Skladowski 	.qos.ap_owned = true,
1175*755acd36SAdam Skladowski 	.qos.qos_mode = NOC_QOS_MODE_INVALID,
1176*755acd36SAdam Skladowski };
1177*755acd36SAdam Skladowski 
1178*755acd36SAdam Skladowski static struct qcom_icc_node *msm8937_bimc_nodes[] = {
1179*755acd36SAdam Skladowski 	[MAS_APPS_PROC] = &mas_apps_proc,
1180*755acd36SAdam Skladowski 	[MAS_OXILI] = &mas_oxili,
1181*755acd36SAdam Skladowski 	[MAS_SNOC_BIMC_0] = &mas_snoc_bimc_0,
1182*755acd36SAdam Skladowski 	[MAS_SNOC_BIMC_2] = &mas_snoc_bimc_2,
1183*755acd36SAdam Skladowski 	[MAS_SNOC_BIMC_1] = &mas_snoc_bimc_1,
1184*755acd36SAdam Skladowski 	[MAS_TCU_0] = &mas_tcu_0,
1185*755acd36SAdam Skladowski 	[SLV_EBI] = &slv_ebi,
1186*755acd36SAdam Skladowski 	[SLV_BIMC_SNOC] = &slv_bimc_snoc,
1187*755acd36SAdam Skladowski };
1188*755acd36SAdam Skladowski 
1189*755acd36SAdam Skladowski static const struct regmap_config msm8937_bimc_regmap_config = {
1190*755acd36SAdam Skladowski 	.reg_bits = 32,
1191*755acd36SAdam Skladowski 	.reg_stride = 4,
1192*755acd36SAdam Skladowski 	.val_bits = 32,
1193*755acd36SAdam Skladowski 	.max_register = 0x5A000,
1194*755acd36SAdam Skladowski 	.fast_io = true,
1195*755acd36SAdam Skladowski };
1196*755acd36SAdam Skladowski 
1197*755acd36SAdam Skladowski static const struct qcom_icc_desc msm8937_bimc = {
1198*755acd36SAdam Skladowski 	.type = QCOM_ICC_BIMC,
1199*755acd36SAdam Skladowski 	.nodes = msm8937_bimc_nodes,
1200*755acd36SAdam Skladowski 	.num_nodes = ARRAY_SIZE(msm8937_bimc_nodes),
1201*755acd36SAdam Skladowski 	.bus_clk_desc = &bimc_clk,
1202*755acd36SAdam Skladowski 	.regmap_cfg = &msm8937_bimc_regmap_config,
1203*755acd36SAdam Skladowski 	.qos_offset = 0x8000,
1204*755acd36SAdam Skladowski 	.ab_coeff = 154,
1205*755acd36SAdam Skladowski };
1206*755acd36SAdam Skladowski 
1207*755acd36SAdam Skladowski static struct qcom_icc_node *msm8937_pcnoc_nodes[] = {
1208*755acd36SAdam Skladowski 	[MAS_SPDM] = &mas_spdm,
1209*755acd36SAdam Skladowski 	[MAS_BLSP_1] = &mas_blsp_1,
1210*755acd36SAdam Skladowski 	[MAS_BLSP_2] = &mas_blsp_2,
1211*755acd36SAdam Skladowski 	[MAS_USB_HS1] = &mas_usb_hs1,
1212*755acd36SAdam Skladowski 	[MAS_XI_USB_HS1] = &mas_xi_usb_hs1,
1213*755acd36SAdam Skladowski 	[MAS_CRYPTO] = &mas_crypto,
1214*755acd36SAdam Skladowski 	[MAS_SDCC_1] = &mas_sdcc_1,
1215*755acd36SAdam Skladowski 	[MAS_SDCC_2] = &mas_sdcc_2,
1216*755acd36SAdam Skladowski 	[MAS_SNOC_PCNOC] = &mas_snoc_pcnoc,
1217*755acd36SAdam Skladowski 	[PCNOC_M_0] = &pcnoc_m_0,
1218*755acd36SAdam Skladowski 	[PCNOC_M_1] = &pcnoc_m_1,
1219*755acd36SAdam Skladowski 	[PCNOC_INT_0] = &pcnoc_int_0,
1220*755acd36SAdam Skladowski 	[PCNOC_INT_1] = &pcnoc_int_1,
1221*755acd36SAdam Skladowski 	[PCNOC_INT_2] = &pcnoc_int_2,
1222*755acd36SAdam Skladowski 	[PCNOC_INT_3] = &pcnoc_int_3,
1223*755acd36SAdam Skladowski 	[PCNOC_S_0] = &pcnoc_s_0,
1224*755acd36SAdam Skladowski 	[PCNOC_S_1] = &pcnoc_s_1,
1225*755acd36SAdam Skladowski 	[PCNOC_S_2] = &pcnoc_s_2,
1226*755acd36SAdam Skladowski 	[PCNOC_S_3] = &pcnoc_s_3,
1227*755acd36SAdam Skladowski 	[PCNOC_S_4] = &pcnoc_s_4,
1228*755acd36SAdam Skladowski 	[PCNOC_S_6] = &pcnoc_s_6,
1229*755acd36SAdam Skladowski 	[PCNOC_S_7] = &pcnoc_s_7,
1230*755acd36SAdam Skladowski 	[PCNOC_S_8] = &pcnoc_s_8,
1231*755acd36SAdam Skladowski 	[SLV_SDCC_2] = &slv_sdcc_2,
1232*755acd36SAdam Skladowski 	[SLV_SPDM] = &slv_spdm,
1233*755acd36SAdam Skladowski 	[SLV_PDM] = &slv_pdm,
1234*755acd36SAdam Skladowski 	[SLV_PRNG] = &slv_prng,
1235*755acd36SAdam Skladowski 	[SLV_TCSR] = &slv_tcsr,
1236*755acd36SAdam Skladowski 	[SLV_SNOC_CFG] = &slv_snoc_cfg,
1237*755acd36SAdam Skladowski 	[SLV_MESSAGE_RAM] = &slv_message_ram,
1238*755acd36SAdam Skladowski 	[SLV_CAMERA_SS_CFG] = &slv_camera_ss_cfg,
1239*755acd36SAdam Skladowski 	[SLV_DISP_SS_CFG] = &slv_disp_ss_cfg,
1240*755acd36SAdam Skladowski 	[SLV_VENUS_CFG] = &slv_venus_cfg,
1241*755acd36SAdam Skladowski 	[SLV_GPU_CFG] = &slv_gpu_cfg,
1242*755acd36SAdam Skladowski 	[SLV_TLMM] = &slv_tlmm,
1243*755acd36SAdam Skladowski 	[SLV_BLSP_1] = &slv_blsp_1,
1244*755acd36SAdam Skladowski 	[SLV_BLSP_2] = &slv_blsp_2,
1245*755acd36SAdam Skladowski 	[SLV_PMIC_ARB] = &slv_pmic_arb,
1246*755acd36SAdam Skladowski 	[SLV_SDCC_1] = &slv_sdcc_1,
1247*755acd36SAdam Skladowski 	[SLV_CRYPTO_0_CFG] = &slv_crypto_0_cfg,
1248*755acd36SAdam Skladowski 	[SLV_USB_HS] = &slv_usb_hs,
1249*755acd36SAdam Skladowski 	[SLV_TCU] = &slv_tcu,
1250*755acd36SAdam Skladowski 	[SLV_PCNOC_SNOC] = &slv_pcnoc_snoc,
1251*755acd36SAdam Skladowski };
1252*755acd36SAdam Skladowski 
1253*755acd36SAdam Skladowski static const struct regmap_config msm8937_pcnoc_regmap_config = {
1254*755acd36SAdam Skladowski 	.reg_bits = 32,
1255*755acd36SAdam Skladowski 	.reg_stride = 4,
1256*755acd36SAdam Skladowski 	.val_bits = 32,
1257*755acd36SAdam Skladowski 	.max_register = 0x13080,
1258*755acd36SAdam Skladowski 	.fast_io = true,
1259*755acd36SAdam Skladowski };
1260*755acd36SAdam Skladowski 
1261*755acd36SAdam Skladowski static const struct qcom_icc_desc msm8937_pcnoc = {
1262*755acd36SAdam Skladowski 	.type = QCOM_ICC_NOC,
1263*755acd36SAdam Skladowski 	.nodes = msm8937_pcnoc_nodes,
1264*755acd36SAdam Skladowski 	.num_nodes = ARRAY_SIZE(msm8937_pcnoc_nodes),
1265*755acd36SAdam Skladowski 	.bus_clk_desc = &bus_0_clk,
1266*755acd36SAdam Skladowski 	.qos_offset = 0x7000,
1267*755acd36SAdam Skladowski 	.keep_alive = true,
1268*755acd36SAdam Skladowski 	.regmap_cfg = &msm8937_pcnoc_regmap_config,
1269*755acd36SAdam Skladowski };
1270*755acd36SAdam Skladowski 
1271*755acd36SAdam Skladowski static struct qcom_icc_node *msm8937_snoc_nodes[] = {
1272*755acd36SAdam Skladowski 	[MAS_QDSS_BAM] = &mas_qdss_bam,
1273*755acd36SAdam Skladowski 	[MAS_BIMC_SNOC] = &mas_bimc_snoc,
1274*755acd36SAdam Skladowski 	[MAS_PCNOC_SNOC] = &mas_pcnoc_snoc,
1275*755acd36SAdam Skladowski 	[MAS_QDSS_ETR] = &mas_qdss_etr,
1276*755acd36SAdam Skladowski 	[QDSS_INT] = &qdss_int,
1277*755acd36SAdam Skladowski 	[SNOC_INT_0] = &snoc_int_0,
1278*755acd36SAdam Skladowski 	[SNOC_INT_1] = &snoc_int_1,
1279*755acd36SAdam Skladowski 	[SNOC_INT_2] = &snoc_int_2,
1280*755acd36SAdam Skladowski 	[SLV_KPSS_AHB] = &slv_kpss_ahb,
1281*755acd36SAdam Skladowski 	[SLV_WCSS] = &slv_wcss,
1282*755acd36SAdam Skladowski 	[SLV_SNOC_BIMC_1] = &slv_snoc_bimc_1,
1283*755acd36SAdam Skladowski 	[SLV_IMEM] = &slv_imem,
1284*755acd36SAdam Skladowski 	[SLV_SNOC_PCNOC] = &slv_snoc_pcnoc,
1285*755acd36SAdam Skladowski 	[SLV_QDSS_STM] = &slv_qdss_stm,
1286*755acd36SAdam Skladowski 	[SLV_CATS_1] = &slv_cats_1,
1287*755acd36SAdam Skladowski 	[SLV_LPASS] = &slv_lpass,
1288*755acd36SAdam Skladowski };
1289*755acd36SAdam Skladowski 
1290*755acd36SAdam Skladowski static const struct regmap_config msm8937_snoc_regmap_config = {
1291*755acd36SAdam Skladowski 	.reg_bits = 32,
1292*755acd36SAdam Skladowski 	.reg_stride = 4,
1293*755acd36SAdam Skladowski 	.val_bits = 32,
1294*755acd36SAdam Skladowski 	.max_register = 0x16080,
1295*755acd36SAdam Skladowski 	.fast_io = true,
1296*755acd36SAdam Skladowski };
1297*755acd36SAdam Skladowski 
1298*755acd36SAdam Skladowski static const struct qcom_icc_desc msm8937_snoc = {
1299*755acd36SAdam Skladowski 	.type = QCOM_ICC_NOC,
1300*755acd36SAdam Skladowski 	.nodes = msm8937_snoc_nodes,
1301*755acd36SAdam Skladowski 	.num_nodes = ARRAY_SIZE(msm8937_snoc_nodes),
1302*755acd36SAdam Skladowski 	.bus_clk_desc = &bus_1_clk,
1303*755acd36SAdam Skladowski 	.regmap_cfg = &msm8937_snoc_regmap_config,
1304*755acd36SAdam Skladowski 	.qos_offset = 0x7000,
1305*755acd36SAdam Skladowski };
1306*755acd36SAdam Skladowski 
1307*755acd36SAdam Skladowski static struct qcom_icc_node *msm8937_snoc_mm_nodes[] = {
1308*755acd36SAdam Skladowski 	[MAS_JPEG] = &mas_jpeg,
1309*755acd36SAdam Skladowski 	[MAS_MDP] = &mas_mdp,
1310*755acd36SAdam Skladowski 	[MAS_VENUS] = &mas_venus,
1311*755acd36SAdam Skladowski 	[MAS_VFE0] = &mas_vfe0,
1312*755acd36SAdam Skladowski 	[MAS_VFE1] = &mas_vfe1,
1313*755acd36SAdam Skladowski 	[MAS_CPP] = &mas_cpp,
1314*755acd36SAdam Skladowski 	[SLV_SNOC_BIMC_0] = &slv_snoc_bimc_0,
1315*755acd36SAdam Skladowski 	[SLV_SNOC_BIMC_2] = &slv_snoc_bimc_2,
1316*755acd36SAdam Skladowski 	[SLV_CATS_0] = &slv_cats_0,
1317*755acd36SAdam Skladowski };
1318*755acd36SAdam Skladowski 
1319*755acd36SAdam Skladowski static const struct qcom_icc_desc msm8937_snoc_mm = {
1320*755acd36SAdam Skladowski 	.type = QCOM_ICC_NOC,
1321*755acd36SAdam Skladowski 	.nodes = msm8937_snoc_mm_nodes,
1322*755acd36SAdam Skladowski 	.num_nodes = ARRAY_SIZE(msm8937_snoc_mm_nodes),
1323*755acd36SAdam Skladowski 	.bus_clk_desc = &bus_2_clk,
1324*755acd36SAdam Skladowski 	.regmap_cfg = &msm8937_snoc_regmap_config,
1325*755acd36SAdam Skladowski 	.qos_offset = 0x7000,
1326*755acd36SAdam Skladowski 	.ab_coeff = 154,
1327*755acd36SAdam Skladowski };
1328*755acd36SAdam Skladowski 
1329*755acd36SAdam Skladowski static const struct of_device_id msm8937_noc_of_match[] = {
1330*755acd36SAdam Skladowski 	{ .compatible = "qcom,msm8937-bimc", .data = &msm8937_bimc },
1331*755acd36SAdam Skladowski 	{ .compatible = "qcom,msm8937-pcnoc", .data = &msm8937_pcnoc },
1332*755acd36SAdam Skladowski 	{ .compatible = "qcom,msm8937-snoc", .data = &msm8937_snoc },
1333*755acd36SAdam Skladowski 	{ .compatible = "qcom,msm8937-snoc-mm", .data = &msm8937_snoc_mm },
1334*755acd36SAdam Skladowski 	{ }
1335*755acd36SAdam Skladowski };
1336*755acd36SAdam Skladowski MODULE_DEVICE_TABLE(of, msm8937_noc_of_match);
1337*755acd36SAdam Skladowski 
1338*755acd36SAdam Skladowski static struct platform_driver msm8937_noc_driver = {
1339*755acd36SAdam Skladowski 	.probe = qnoc_probe,
1340*755acd36SAdam Skladowski 	.remove_new = qnoc_remove,
1341*755acd36SAdam Skladowski 	.driver = {
1342*755acd36SAdam Skladowski 		.name = "qnoc-msm8937",
1343*755acd36SAdam Skladowski 		.of_match_table = msm8937_noc_of_match,
1344*755acd36SAdam Skladowski 		.sync_state = icc_sync_state,
1345*755acd36SAdam Skladowski 	},
1346*755acd36SAdam Skladowski };
1347*755acd36SAdam Skladowski module_platform_driver(msm8937_noc_driver);
1348*755acd36SAdam Skladowski 
1349*755acd36SAdam Skladowski MODULE_DESCRIPTION("Qualcomm MSM8937 NoC driver");
1350*755acd36SAdam Skladowski MODULE_LICENSE("GPL");
1351