@@ -164,6 +164,54 @@ DEFINE_QNODE(xs_pcie_modem, SM8250_SLAVE_PCIE_2, 1, 8);
164
164
DEFINE_QNODE (xs_qdss_stm , SM8250_SLAVE_QDSS_STM , 1 , 4 );
165
165
DEFINE_QNODE (xs_sys_tcu_cfg , SM8250_SLAVE_TCU , 1 , 8 );
166
166
167
+ static struct qcom_icc_node qup0_core_master = {
168
+ .name = "qup0_core_master" ,
169
+ .id = SM8250_MASTER_QUP_CORE_0 ,
170
+ .channels = 1 ,
171
+ .buswidth = 4 ,
172
+ .num_links = 1 ,
173
+ .links = { SM8250_SLAVE_QUP_CORE_0 },
174
+ };
175
+
176
+ static struct qcom_icc_node qup1_core_master = {
177
+ .name = "qup1_core_master" ,
178
+ .id = SM8250_MASTER_QUP_CORE_1 ,
179
+ .channels = 1 ,
180
+ .buswidth = 4 ,
181
+ .num_links = 1 ,
182
+ .links = { SM8250_SLAVE_QUP_CORE_1 },
183
+ };
184
+
185
+ static struct qcom_icc_node qup2_core_master = {
186
+ .name = "qup2_core_master" ,
187
+ .id = SM8250_MASTER_QUP_CORE_2 ,
188
+ .channels = 1 ,
189
+ .buswidth = 4 ,
190
+ .num_links = 1 ,
191
+ .links = { SM8250_SLAVE_QUP_CORE_2 },
192
+ };
193
+
194
+ static struct qcom_icc_node qup0_core_slave = {
195
+ .name = "qup0_core_slave" ,
196
+ .id = SM8250_SLAVE_QUP_CORE_0 ,
197
+ .channels = 1 ,
198
+ .buswidth = 4 ,
199
+ };
200
+
201
+ static struct qcom_icc_node qup1_core_slave = {
202
+ .name = "qup1_core_slave" ,
203
+ .id = SM8250_SLAVE_QUP_CORE_1 ,
204
+ .channels = 1 ,
205
+ .buswidth = 4 ,
206
+ };
207
+
208
+ static struct qcom_icc_node qup2_core_slave = {
209
+ .name = "qup2_core_slave" ,
210
+ .id = SM8250_SLAVE_QUP_CORE_2 ,
211
+ .channels = 1 ,
212
+ .buswidth = 4 ,
213
+ };
214
+
167
215
DEFINE_QBCM (bcm_acv , "ACV" , false, & ebi );
168
216
DEFINE_QBCM (bcm_mc0 , "MC0" , true, & ebi );
169
217
DEFINE_QBCM (bcm_sh0 , "SH0" , true, & qns_llcc );
@@ -172,7 +220,7 @@ DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto);
172
220
DEFINE_QBCM (bcm_mm1 , "MM1" , false, & qnm_camnoc_hf , & qxm_mdp0 , & qxm_mdp1 );
173
221
DEFINE_QBCM (bcm_sh2 , "SH2" , false, & alm_gpu_tcu , & alm_sys_tcu );
174
222
DEFINE_QBCM (bcm_mm2 , "MM2" , false, & qns_mem_noc_sf );
175
- DEFINE_QBCM (bcm_qup0 , "QUP0" , false, & qhm_qup1 , & qhm_qup2 , & qhm_qup0 );
223
+ DEFINE_QBCM (bcm_qup0 , "QUP0" , false, & qup0_core_master , & qup1_core_master , & qup2_core_master );
176
224
DEFINE_QBCM (bcm_sh3 , "SH3" , false, & qnm_cmpnoc );
177
225
DEFINE_QBCM (bcm_mm3 , "MM3" , false, & qnm_camnoc_icp , & qnm_camnoc_sf , & qnm_video0 , & qnm_video1 , & qnm_video_cvp );
178
226
DEFINE_QBCM (bcm_sh4 , "SH4" , false, & chm_apps );
@@ -193,7 +241,6 @@ DEFINE_QBCM(bcm_sn11, "SN11", false, &qnm_gemnoc);
193
241
DEFINE_QBCM (bcm_sn12 , "SN12" , false, & qns_pcie_modem_mem_noc , & qns_pcie_mem_noc );
194
242
195
243
static struct qcom_icc_bcm * const aggre1_noc_bcms [] = {
196
- & bcm_qup0 ,
197
244
& bcm_sn12 ,
198
245
};
199
246
@@ -222,10 +269,29 @@ static const struct qcom_icc_desc sm8250_aggre1_noc = {
222
269
223
270
static struct qcom_icc_bcm * const aggre2_noc_bcms [] = {
224
271
& bcm_ce0 ,
225
- & bcm_qup0 ,
226
272
& bcm_sn12 ,
227
273
};
228
274
275
+ static struct qcom_icc_bcm * const qup_virt_bcms [] = {
276
+ & bcm_qup0 ,
277
+ };
278
+
279
+ static struct qcom_icc_node * qup_virt_nodes [] = {
280
+ [MASTER_QUP_CORE_0 ] = & qup0_core_master ,
281
+ [MASTER_QUP_CORE_1 ] = & qup1_core_master ,
282
+ [MASTER_QUP_CORE_2 ] = & qup2_core_master ,
283
+ [SLAVE_QUP_CORE_0 ] = & qup0_core_slave ,
284
+ [SLAVE_QUP_CORE_1 ] = & qup1_core_slave ,
285
+ [SLAVE_QUP_CORE_2 ] = & qup2_core_slave ,
286
+ };
287
+
288
+ static const struct qcom_icc_desc sm8250_qup_virt = {
289
+ .nodes = qup_virt_nodes ,
290
+ .num_nodes = ARRAY_SIZE (qup_virt_nodes ),
291
+ .bcms = qup_virt_bcms ,
292
+ .num_bcms = ARRAY_SIZE (qup_virt_bcms ),
293
+ };
294
+
229
295
static struct qcom_icc_node * const aggre2_noc_nodes [] = {
230
296
[MASTER_A2NOC_CFG ] = & qhm_a2noc_cfg ,
231
297
[MASTER_QDSS_BAM ] = & qhm_qdss_bam ,
@@ -518,6 +584,8 @@ static const struct of_device_id qnoc_of_match[] = {
518
584
.data = & sm8250_mmss_noc },
519
585
{ .compatible = "qcom,sm8250-npu-noc" ,
520
586
.data = & sm8250_npu_noc },
587
+ { .compatible = "qcom,sm8250-qup-virt" ,
588
+ .data = & sm8250_qup_virt },
521
589
{ .compatible = "qcom,sm8250-system-noc" ,
522
590
.data = & sm8250_system_noc },
523
591
{ }
0 commit comments