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