sm8450.c (be02db24cf840bc0fdfbecc78ad803619dd143e6) sm8450.c (cff66ace51e3acfcba3ab03f92adc9510830c365)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021, Linaro Limited
5 */
6
7#include <linux/device.h>
8#include <linux/interconnect.h>
9#include <linux/interconnect-provider.h>
10#include <linux/module.h>
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021, Linaro Limited
5 */
6
7#include <linux/device.h>
8#include <linux/interconnect.h>
9#include <linux/interconnect-provider.h>
10#include <linux/module.h>
11#include <linux/of_platform.h>
11#include <linux/mod_devicetable.h>
12#include <linux/platform_device.h>
13#include <linux/property.h>
12#include <dt-bindings/interconnect/qcom,sm8450.h>
13
14#include "bcm-voter.h"
15#include "icc-common.h"
16#include "icc-rpmh.h"
17#include "sm8450.h"
18
19static struct qcom_icc_node qhm_qspi = {

--- 1312 unchanged lines hidden (view full) ---

1332 .channels = 2,
1333 .buswidth = 32,
1334 .num_links = 1,
1335 .links = { SM8450_MASTER_MNOC_SF_MEM_NOC_DISP },
1336};
1337
1338static struct qcom_icc_bcm bcm_acv = {
1339 .name = "ACV",
14#include <dt-bindings/interconnect/qcom,sm8450.h>
15
16#include "bcm-voter.h"
17#include "icc-common.h"
18#include "icc-rpmh.h"
19#include "sm8450.h"
20
21static struct qcom_icc_node qhm_qspi = {

--- 1312 unchanged lines hidden (view full) ---

1334 .channels = 2,
1335 .buswidth = 32,
1336 .num_links = 1,
1337 .links = { SM8450_MASTER_MNOC_SF_MEM_NOC_DISP },
1338};
1339
1340static struct qcom_icc_bcm bcm_acv = {
1341 .name = "ACV",
1340 .enable_mask = 0x8,
1341 .num_nodes = 1,
1342 .nodes = { &ebi },
1343};
1344
1345static struct qcom_icc_bcm bcm_ce0 = {
1346 .name = "CE0",
1347 .num_nodes = 1,
1348 .nodes = { &qxm_crypto },
1349};
1350
1351static struct qcom_icc_bcm bcm_cn0 = {
1352 .name = "CN0",
1342 .num_nodes = 1,
1343 .nodes = { &ebi },
1344};
1345
1346static struct qcom_icc_bcm bcm_ce0 = {
1347 .name = "CE0",
1348 .num_nodes = 1,
1349 .nodes = { &qxm_crypto },
1350};
1351
1352static struct qcom_icc_bcm bcm_cn0 = {
1353 .name = "CN0",
1353 .enable_mask = 0x1,
1354 .keepalive = true,
1355 .num_nodes = 55,
1356 .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
1357 &qhs_ahb2phy0, &qhs_ahb2phy1,
1358 &qhs_aoss, &qhs_camera_cfg,
1359 &qhs_clk_ctl, &qhs_compute_cfg,
1360 &qhs_cpr_cx, &qhs_cpr_mmcx,
1361 &qhs_cpr_mxa, &qhs_cpr_mxc,

--- 18 unchanged lines hidden (view full) ---

1380 &qxs_imem, &qxs_pimem,
1381 &srvc_cnoc, &xs_pcie_0,
1382 &xs_pcie_1, &xs_qdss_stm,
1383 &xs_sys_tcu_cfg },
1384};
1385
1386static struct qcom_icc_bcm bcm_co0 = {
1387 .name = "CO0",
1354 .keepalive = true,
1355 .num_nodes = 55,
1356 .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
1357 &qhs_ahb2phy0, &qhs_ahb2phy1,
1358 &qhs_aoss, &qhs_camera_cfg,
1359 &qhs_clk_ctl, &qhs_compute_cfg,
1360 &qhs_cpr_cx, &qhs_cpr_mmcx,
1361 &qhs_cpr_mxa, &qhs_cpr_mxc,

--- 18 unchanged lines hidden (view full) ---

1380 &qxs_imem, &qxs_pimem,
1381 &srvc_cnoc, &xs_pcie_0,
1382 &xs_pcie_1, &xs_qdss_stm,
1383 &xs_sys_tcu_cfg },
1384};
1385
1386static struct qcom_icc_bcm bcm_co0 = {
1387 .name = "CO0",
1388 .enable_mask = 0x1,
1389 .num_nodes = 2,
1390 .nodes = { &qxm_nsp, &qns_nsp_gemnoc },
1391};
1392
1393static struct qcom_icc_bcm bcm_mc0 = {
1394 .name = "MC0",
1395 .keepalive = true,
1396 .num_nodes = 1,

--- 4 unchanged lines hidden (view full) ---

1401 .name = "MM0",
1402 .keepalive = true,
1403 .num_nodes = 1,
1404 .nodes = { &qns_mem_noc_hf },
1405};
1406
1407static struct qcom_icc_bcm bcm_mm1 = {
1408 .name = "MM1",
1388 .num_nodes = 2,
1389 .nodes = { &qxm_nsp, &qns_nsp_gemnoc },
1390};
1391
1392static struct qcom_icc_bcm bcm_mc0 = {
1393 .name = "MC0",
1394 .keepalive = true,
1395 .num_nodes = 1,

--- 4 unchanged lines hidden (view full) ---

1400 .name = "MM0",
1401 .keepalive = true,
1402 .num_nodes = 1,
1403 .nodes = { &qns_mem_noc_hf },
1404};
1405
1406static struct qcom_icc_bcm bcm_mm1 = {
1407 .name = "MM1",
1409 .enable_mask = 0x1,
1410 .num_nodes = 12,
1411 .nodes = { &qnm_camnoc_hf, &qnm_camnoc_icp,
1412 &qnm_camnoc_sf, &qnm_mdp,
1413 &qnm_mnoc_cfg, &qnm_rot,
1414 &qnm_vapss_hcp, &qnm_video,
1415 &qnm_video_cv_cpu, &qnm_video_cvp,
1416 &qnm_video_v_cpu, &qns_mem_noc_sf },
1417};

--- 26 unchanged lines hidden (view full) ---

1444 .name = "SH0",
1445 .keepalive = true,
1446 .num_nodes = 1,
1447 .nodes = { &qns_llcc },
1448};
1449
1450static struct qcom_icc_bcm bcm_sh1 = {
1451 .name = "SH1",
1408 .num_nodes = 12,
1409 .nodes = { &qnm_camnoc_hf, &qnm_camnoc_icp,
1410 &qnm_camnoc_sf, &qnm_mdp,
1411 &qnm_mnoc_cfg, &qnm_rot,
1412 &qnm_vapss_hcp, &qnm_video,
1413 &qnm_video_cv_cpu, &qnm_video_cvp,
1414 &qnm_video_v_cpu, &qns_mem_noc_sf },
1415};

--- 26 unchanged lines hidden (view full) ---

1442 .name = "SH0",
1443 .keepalive = true,
1444 .num_nodes = 1,
1445 .nodes = { &qns_llcc },
1446};
1447
1448static struct qcom_icc_bcm bcm_sh1 = {
1449 .name = "SH1",
1452 .enable_mask = 0x1,
1453 .num_nodes = 7,
1454 .nodes = { &alm_gpu_tcu, &alm_sys_tcu,
1455 &qnm_nsp_gemnoc, &qnm_pcie,
1456 &qnm_snoc_gc, &qns_gem_noc_cnoc,
1457 &qns_pcie },
1458};
1459
1460static struct qcom_icc_bcm bcm_sn0 = {
1461 .name = "SN0",
1462 .keepalive = true,
1463 .num_nodes = 1,
1464 .nodes = { &qns_gemnoc_sf },
1465};
1466
1467static struct qcom_icc_bcm bcm_sn1 = {
1468 .name = "SN1",
1450 .num_nodes = 7,
1451 .nodes = { &alm_gpu_tcu, &alm_sys_tcu,
1452 &qnm_nsp_gemnoc, &qnm_pcie,
1453 &qnm_snoc_gc, &qns_gem_noc_cnoc,
1454 &qns_pcie },
1455};
1456
1457static struct qcom_icc_bcm bcm_sn0 = {
1458 .name = "SN0",
1459 .keepalive = true,
1460 .num_nodes = 1,
1461 .nodes = { &qns_gemnoc_sf },
1462};
1463
1464static struct qcom_icc_bcm bcm_sn1 = {
1465 .name = "SN1",
1469 .enable_mask = 0x1,
1470 .num_nodes = 4,
1471 .nodes = { &qhm_gic, &qxm_pimem,
1472 &xm_gic, &qns_gemnoc_gc },
1473};
1474
1475static struct qcom_icc_bcm bcm_sn2 = {
1476 .name = "SN2",
1477 .num_nodes = 1,

--- 15 unchanged lines hidden (view full) ---

1493static struct qcom_icc_bcm bcm_sn7 = {
1494 .name = "SN7",
1495 .num_nodes = 1,
1496 .nodes = { &qns_pcie_mem_noc },
1497};
1498
1499static struct qcom_icc_bcm bcm_acv_disp = {
1500 .name = "ACV",
1466 .num_nodes = 4,
1467 .nodes = { &qhm_gic, &qxm_pimem,
1468 &xm_gic, &qns_gemnoc_gc },
1469};
1470
1471static struct qcom_icc_bcm bcm_sn2 = {
1472 .name = "SN2",
1473 .num_nodes = 1,

--- 15 unchanged lines hidden (view full) ---

1489static struct qcom_icc_bcm bcm_sn7 = {
1490 .name = "SN7",
1491 .num_nodes = 1,
1492 .nodes = { &qns_pcie_mem_noc },
1493};
1494
1495static struct qcom_icc_bcm bcm_acv_disp = {
1496 .name = "ACV",
1501 .enable_mask = 0x1,
1502 .num_nodes = 1,
1503 .nodes = { &ebi_disp },
1504};
1505
1506static struct qcom_icc_bcm bcm_mc0_disp = {
1507 .name = "MC0",
1508 .num_nodes = 1,
1509 .nodes = { &ebi_disp },
1510};
1511
1512static struct qcom_icc_bcm bcm_mm0_disp = {
1513 .name = "MM0",
1514 .num_nodes = 1,
1515 .nodes = { &qns_mem_noc_hf_disp },
1516};
1517
1518static struct qcom_icc_bcm bcm_mm1_disp = {
1519 .name = "MM1",
1497 .num_nodes = 1,
1498 .nodes = { &ebi_disp },
1499};
1500
1501static struct qcom_icc_bcm bcm_mc0_disp = {
1502 .name = "MC0",
1503 .num_nodes = 1,
1504 .nodes = { &ebi_disp },
1505};
1506
1507static struct qcom_icc_bcm bcm_mm0_disp = {
1508 .name = "MM0",
1509 .num_nodes = 1,
1510 .nodes = { &qns_mem_noc_hf_disp },
1511};
1512
1513static struct qcom_icc_bcm bcm_mm1_disp = {
1514 .name = "MM1",
1520 .enable_mask = 0x1,
1521 .num_nodes = 3,
1522 .nodes = { &qnm_mdp_disp, &qnm_rot_disp,
1523 &qns_mem_noc_sf_disp },
1524};
1525
1526static struct qcom_icc_bcm bcm_sh0_disp = {
1527 .name = "SH0",
1528 .num_nodes = 1,
1529 .nodes = { &qns_llcc_disp },
1530};
1531
1532static struct qcom_icc_bcm bcm_sh1_disp = {
1533 .name = "SH1",
1515 .num_nodes = 3,
1516 .nodes = { &qnm_mdp_disp, &qnm_rot_disp,
1517 &qns_mem_noc_sf_disp },
1518};
1519
1520static struct qcom_icc_bcm bcm_sh0_disp = {
1521 .name = "SH0",
1522 .num_nodes = 1,
1523 .nodes = { &qns_llcc_disp },
1524};
1525
1526static struct qcom_icc_bcm bcm_sh1_disp = {
1527 .name = "SH1",
1534 .enable_mask = 0x1,
1535 .num_nodes = 1,
1536 .nodes = { &qnm_pcie_disp },
1537};
1538
1539static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1540};
1541
1542static struct qcom_icc_node * const aggre1_noc_nodes[] = {

--- 363 unchanged lines hidden ---
1528 .num_nodes = 1,
1529 .nodes = { &qnm_pcie_disp },
1530};
1531
1532static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
1533};
1534
1535static struct qcom_icc_node * const aggre1_noc_nodes[] = {

--- 363 unchanged lines hidden ---