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