From nobody Fri Apr 3 23:46:55 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5088F1B424F for ; Mon, 23 Mar 2026 01:17:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774228679; cv=none; b=TN6sKxF9lvlTeL8ImHM/IEJjQEnYqhQvSxg2+pesEWXD2tmymraBjztuVANeV6pj3s4QYAJ9hG6Ll0+J6IV3xS9oUxZsK8el/60E5eNdq6q6kHyjIlJFFrtN10FG+db5H8jiJQWz+9xycEs3+w0XPHx6xqyHZXWU+NtGL9LVsRM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774228679; c=relaxed/simple; bh=xlgANSYz1nVuAn+eEd8ORnd+MmVt2YDubhoEruEPI8k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Et6BJC6O040E22Bu0Amze/CdL8y6MC6dmwIylpCGJV8Xo5rXaBnDbnmk2UDXqbANo3qGiYFmx8WmOM8zdFMjS+BVT6RzUbVfG4pFPjpSXk69uD/X0IlYBNOEXQm3RmhwkXIdGaGqS52DxY8VW+hoBmcGX+UsFV1Bf520BKT2f+o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=FbYVYGPx; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ch8ZXMg7; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="FbYVYGPx"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ch8ZXMg7" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62MNms3w1231689 for ; Mon, 23 Mar 2026 01:17:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G9LTxh8oFF0MTnQoxhWBFdZ1ygvExjdzayTcMvG/8ts=; b=FbYVYGPxUpc+l0EO Qtjw6wr/sUjP7j0qnKKoFQkjb6PwaApYNDyen284U2cmQP0uRPa+JUAJf4qszN47 yedAegX5VqqAG13ovsMzmF/7AjKGEd8xgBXr8kSSucbwggqLh5Mncwc8HxX9Cm3v OHsH6m+yKcv2MAAhhd4sFJpMvxddcIvf+BY4lcnlJIVMQbaMCZ6RxisrIV4UfXdp X9y/Y+Zjv5WDllOG/xZH1dFCyaOcob+tcxRq2CSTJsJUjJLpVp1lSr3u35eNfDiX dvxl/UL+jjQZgVzbZxZwH/WxyAG522woz5jjNsqYzcvpxS60nB7QoQVDqaph3JGg d2o2+Q== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1j9rb9vk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 01:17:54 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50937cf66b5so35477091cf.3 for ; Sun, 22 Mar 2026 18:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774228673; x=1774833473; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=G9LTxh8oFF0MTnQoxhWBFdZ1ygvExjdzayTcMvG/8ts=; b=ch8ZXMg7ZmsY3RhkgDcGWQ1R6fMbYQWdoUwa3KcCgfGWc/nuWgMNf44IZk+OwO9DXH EAS1tTRaBbU0rfQ4DfJaj+rtcLWNVtAzdBWFSf5ffuQ6OJXcqYc6qR1yzcNzXeqJJ0CA X78B8ZUfWXUKG7+FRNVZjk6i48kFDpfdbX/m6/DxsQw8XSHpfUjEY7d9mA2jvPJ/DCyJ +nKbDLKDXPQygRJdPzwHEjmvpAym2E07zXDlnRCPZgsYhdFsOHji5zwtq9AC4OV656S0 bx3gMIpSeOBxJILwWLw2FhzhV8neoOy0jR7mIrfKKf6xYPzsSoYO4aluDpujAvnBUrsb Kd9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774228673; x=1774833473; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=G9LTxh8oFF0MTnQoxhWBFdZ1ygvExjdzayTcMvG/8ts=; b=WfQKR0mnu0/K8gVqXCvJMuWE4tZTdDZ4PzIcnjL0vIpKee1gvTx4Bom+QbjBwC1NC/ hOfGLFu8p9heMLP0t/dnTfY0hSL+q0q6UDdxcxwOy4J+PeTPZ2yBtNXXErUvkfu3KJlM cMLHoCfEYayg1k4JGOhv89t2ccNqpiwliNTSZ9PRSAZoC2UbxSC4+GiqOy8+r/ffOcm/ Az6Knj0uWjqseTRdd+zOLiWqF+AsE3NG3cjWypzw7kmd1ugSkVE5gGYMgrds5x6A2I6i LveMZkXrWFeA+hUqQ5ikZORO3bV/d9rNlP5qXOpP4QXJWbWvz8eCPRXI9vTWLLd8YYN2 PbKQ== X-Forwarded-Encrypted: i=1; AJvYcCUjeDp8x2nhcHrnzAmOmC9Dfse78KzIPCJibphext3evxRAJ6hH4IAzKy6GrHEUwdiZOYgleHC691fNUzU=@vger.kernel.org X-Gm-Message-State: AOJu0YyiUpGZjTXSL8xRuoydXAcDeIM7CFPweDXnCgx6zhQF5TPR3jf1 PiBYkiOn+evImnU6bDSpQ0JLpE0iXNiHtgVaFZ7Bm56d9VmTnYB7y6ZBRmCXhohglDF/a7hBl+W gNB4aV9hmFOtDjczx+dQw9YBrvDqQbmxB/gA9JAiUOueby8DupMInDRZK+E2kI0vV3W8= X-Gm-Gg: ATEYQzyeb+U90XZJazTYD1BtdlHUzByVQPgS1FzLrEuWncoqWVR4TOL2yS9bvPgpyYJ mcEkausTMADFr2gldhv4LMFz4ULzAWdvpt8JPLb17FmyEs1aKDuCzclI1GRwhToO5/v7/9JdGBH HfGTfuoqgSy2bxT6NTYaqZzu+Hfjt07OVLILRESTtWOtx27ONOVaG0OhwmLsFJ1AB1LyAfoPmCT EeFoz/QYxvPw5/ZiHHExrRd4j0ym40yaB1ZtAeGY9rW8r1hUPKiLOOsib1yz1kqN05+ErU+vSaq tBOaaEi6ErmmSgquTV9WTHSnEj728ORVGQPS8qZZrZe0RSwrWAxrubylwwNcgvWndkf/vbwza2D +V61brHIrTaXF/2dvfTvMtRDTcl+hk3aTvOT6o8kdbm6W/pT7It1oxTbeLnbUXDeKsBQc4/vnWB YzbLuBIPwrgs7UGliPEH8/mWNUT2x6uyBVWvw= X-Received: by 2002:a05:622a:8c4:b0:509:2527:d789 with SMTP id d75a77b69052e-50b373bdd66mr181422361cf.6.1774228673139; Sun, 22 Mar 2026 18:17:53 -0700 (PDT) X-Received: by 2002:a05:622a:8c4:b0:509:2527:d789 with SMTP id d75a77b69052e-50b373bdd66mr181421841cf.6.1774228672517; Sun, 22 Mar 2026 18:17:52 -0700 (PDT) Received: from umbar.lan (2001-14ba-a073-af00-264b-feff-fe8b-be8a.rev.dnainternet.fi. [2001:14ba:a073:af00:264b:feff:fe8b:be8a]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a2853050e7sm2216150e87.61.2026.03.22.18.17.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2026 18:17:50 -0700 (PDT) From: Dmitry Baryshkov Date: Mon, 23 Mar 2026 03:17:24 +0200 Subject: [PATCH 8/9] interconnect: qcom: msm8974: expand DEFINE_QNODE macros Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260323-msm8974-icc-v1-8-7892b8d5f2ea@oss.qualcomm.com> References: <20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com> In-Reply-To: <20260323-msm8974-icc-v1-0-7892b8d5f2ea@oss.qualcomm.com> To: Georgi Djakov , Konrad Dybcio , Bjorn Andersson , Luca Weiss , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Brian Masney Cc: linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=39567; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=xlgANSYz1nVuAn+eEd8ORnd+MmVt2YDubhoEruEPI8k=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpwJSfmpZhiiic1ahhJPUH6MjVOvgCX8qqMprOK LfKm7fiGn2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCacCUnwAKCRCLPIo+Aiko 1Qj3B/9Cg/TDyLrWwF27sRNrwFllBexpv014AQKruFBM3+5sGSo/tc1aSh9wo/c4J/Hbwqyfpj/ De4tEuxCpjK+hGQcfNIB2MTxnN/06ly5HxquOFUHGZ9qe6ZSexfOzRwKUi+/bZsSXpPvuc3IH0C AjBtOo+8FF+jCWVX20nzR6u0JkfsY0Vf/JkQDNwrMLrfc1utVyXldK7xSpuaocrW6LNCh9YBULM z75sLbtUyjrXiOs00mTha6XL1OtmOM/xtiM9asZAOTk+st+xvGsiN5rkr+pZ10GZ0K4epQBkPPt mchBBb8r493aTmOxwBhQXJRDcQlXrTPtgqLDExU8XmmKchKp X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Proofpoint-ORIG-GUID: ZkRyvor2cjX-O6Yg944VPjKJKDei20xd X-Authority-Analysis: v=2.4 cv=ZPDaWH7b c=1 sm=1 tr=0 ts=69c094c2 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=gU3Gd9FrbIblE3rB6ncA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDAwOCBTYWx0ZWRfX9E6G/qZjsrn3 jkLn3PtqJ8JqjiU82XnffcWAw1EF9FhItA1y+GM1cQt3a8i2joNswDugfapC+ZYV+/it1IdCTxx uv3/ImF8I7hO/vqGzseIbvgFUZAcATPUveNKPoDG3puwWHwqS7v5UeJ2yKLdotAMsnfQpbiffu1 yu6mOQpagOnUjy1es4exq0BCuseG6U4wb7+S9Q+jWChLJFgQizp1FeYrhzG3Y8WlfzkhS5Z6doD NxoUm+X3XCNoipZs06AxeTA4u5XwByV3/DY9rlM9xc6CT6uaJxNiEc6VN8eNC9M8Iz3zQlxTt4f dsGuS/wAuz75l2ZJxxcvmNmTBNT4pjMLpgdwsEGrVpfL5xMRxlL7gRUp4lbZ1BGMKx7/wPjqr9/ 5+CWecTxtsOOmNe3lU0lPgLGjbHFOfdSTX24ihKjwYRTAdIobeL5CwGziQFdXopDQF42s4b83xm ExYqwqZkv2vJCjaGFhw== X-Proofpoint-GUID: ZkRyvor2cjX-O6Yg944VPjKJKDei20xd X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-22_07,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230008 The rest of Qualcomm Interconnect drivers have stopped using DEFINE_QNODE long ago for the sake of readability. Stop using it inside the msm8974 interconnect driver too. Signed-off-by: Dmitry Baryshkov Acked-by: Konrad Dybcio --- drivers/interconnect/qcom/msm8974.c | 1335 +++++++++++++++++++++++++++++++= ---- 1 file changed, 1191 insertions(+), 144 deletions(-) diff --git a/drivers/interconnect/qcom/msm8974.c b/drivers/interconnect/qco= m/msm8974.c index 144f225ec885..c020c61126ca 100644 --- a/drivers/interconnect/qcom/msm8974.c +++ b/drivers/interconnect/qcom/msm8974.c @@ -181,28 +181,75 @@ static int msm8974_get_bw(struct icc_node *node, u32 = *avg, u32 *peak) return 0; }; =20 -#define DEFINE_QNODE(_name, _id, _buswidth, _mas_rpm_id, _slv_rpm_id, \ - ...) \ - static const u16 _name ## _links[] =3D { \ - __VA_ARGS__ \ - }; \ - static struct qcom_icc_node _name =3D { \ - .name =3D #_name, \ - .id =3D _id, \ - .buswidth =3D _buswidth, \ - .mas_rpm_id =3D _mas_rpm_id, \ - .slv_rpm_id =3D _slv_rpm_id, \ - .num_links =3D ARRAY_SIZE(_name ## _links), \ - .links =3D _name ## _links, \ - } - -DEFINE_QNODE(mas_ampss_m0, MSM8974_BIMC_MAS_AMPSS_M0, 8, 0, -1); -DEFINE_QNODE(mas_ampss_m1, MSM8974_BIMC_MAS_AMPSS_M1, 8, 0, -1); -DEFINE_QNODE(mas_mss_proc, MSM8974_BIMC_MAS_MSS_PROC, 8, 1, -1); -DEFINE_QNODE(bimc_to_mnoc, MSM8974_BIMC_TO_MNOC, 8, 2, -1, MSM8974_BIMC_SL= V_EBI_CH0); -DEFINE_QNODE(bimc_to_snoc, MSM8974_BIMC_TO_SNOC, 8, 3, 2, MSM8974_SNOC_TO_= BIMC, MSM8974_BIMC_SLV_EBI_CH0, MSM8974_BIMC_MAS_AMPSS_M0); -DEFINE_QNODE(slv_ebi_ch0, MSM8974_BIMC_SLV_EBI_CH0, 8, -1, 0); -DEFINE_QNODE(slv_ampss_l2, MSM8974_BIMC_SLV_AMPSS_L2, 8, -1, 1); +static struct qcom_icc_node mas_ampss_m0 =3D { + .name =3D "mas_ampss_m0", + .id =3D MSM8974_BIMC_MAS_AMPSS_M0, + .buswidth =3D 8, + .mas_rpm_id =3D 0, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_ampss_m1 =3D { + .name =3D "mas_ampss_m1", + .id =3D MSM8974_BIMC_MAS_AMPSS_M1, + .buswidth =3D 8, + .mas_rpm_id =3D 0, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_mss_proc =3D { + .name =3D "mas_mss_proc", + .id =3D MSM8974_BIMC_MAS_MSS_PROC, + .buswidth =3D 8, + .mas_rpm_id =3D 1, + .slv_rpm_id =3D -1, +}; + +static const u16 bimc_to_mnoc_links[] =3D { + MSM8974_BIMC_SLV_EBI_CH0 +}; + +static struct qcom_icc_node bimc_to_mnoc =3D { + .name =3D "bimc_to_mnoc", + .id =3D MSM8974_BIMC_TO_MNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 2, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(bimc_to_mnoc_links), + .links =3D bimc_to_mnoc_links, +}; + +static const u16 bimc_to_snoc_links[] =3D { + MSM8974_SNOC_TO_BIMC, + MSM8974_BIMC_SLV_EBI_CH0, + MSM8974_BIMC_MAS_AMPSS_M0 +}; + +static struct qcom_icc_node bimc_to_snoc =3D { + .name =3D "bimc_to_snoc", + .id =3D MSM8974_BIMC_TO_SNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 3, + .slv_rpm_id =3D 2, + .num_links =3D ARRAY_SIZE(bimc_to_snoc_links), + .links =3D bimc_to_snoc_links, +}; + +static struct qcom_icc_node slv_ebi_ch0 =3D { + .name =3D "slv_ebi_ch0", + .id =3D MSM8974_BIMC_SLV_EBI_CH0, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 0, +}; + +static struct qcom_icc_node slv_ampss_l2 =3D { + .name =3D "slv_ampss_l2", + .id =3D MSM8974_BIMC_SLV_AMPSS_L2, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 1, +}; =20 static struct qcom_icc_node * const msm8974_bimc_nodes[] =3D { [BIMC_MAS_AMPSS_M0] =3D &mas_ampss_m0, @@ -222,43 +269,301 @@ static const struct qcom_icc_desc msm8974_bimc =3D { .ignore_enxio =3D true, }; =20 -DEFINE_QNODE(mas_rpm_inst, MSM8974_CNOC_MAS_RPM_INST, 8, 45, -1); -DEFINE_QNODE(mas_rpm_data, MSM8974_CNOC_MAS_RPM_DATA, 8, 46, -1); -DEFINE_QNODE(mas_rpm_sys, MSM8974_CNOC_MAS_RPM_SYS, 8, 47, -1); -DEFINE_QNODE(mas_dehr, MSM8974_CNOC_MAS_DEHR, 8, 48, -1); -DEFINE_QNODE(mas_qdss_dap, MSM8974_CNOC_MAS_QDSS_DAP, 8, 49, -1); -DEFINE_QNODE(mas_spdm, MSM8974_CNOC_MAS_SPDM, 8, 50, -1); -DEFINE_QNODE(mas_tic, MSM8974_CNOC_MAS_TIC, 8, 51, -1); -DEFINE_QNODE(slv_clk_ctl, MSM8974_CNOC_SLV_CLK_CTL, 8, -1, 47); -DEFINE_QNODE(slv_cnoc_mss, MSM8974_CNOC_SLV_CNOC_MSS, 8, -1, 48); -DEFINE_QNODE(slv_security, MSM8974_CNOC_SLV_SECURITY, 8, -1, 49); -DEFINE_QNODE(slv_tcsr, MSM8974_CNOC_SLV_TCSR, 8, -1, 50); -DEFINE_QNODE(slv_tlmm, MSM8974_CNOC_SLV_TLMM, 8, -1, 51); -DEFINE_QNODE(slv_crypto_0_cfg, MSM8974_CNOC_SLV_CRYPTO_0_CFG, 8, -1, 52); -DEFINE_QNODE(slv_crypto_1_cfg, MSM8974_CNOC_SLV_CRYPTO_1_CFG, 8, -1, 53); -DEFINE_QNODE(slv_imem_cfg, MSM8974_CNOC_SLV_IMEM_CFG, 8, -1, 54); -DEFINE_QNODE(slv_message_ram, MSM8974_CNOC_SLV_MESSAGE_RAM, 8, -1, 55); -DEFINE_QNODE(slv_bimc_cfg, MSM8974_CNOC_SLV_BIMC_CFG, 8, -1, 56); -DEFINE_QNODE(slv_boot_rom, MSM8974_CNOC_SLV_BOOT_ROM, 8, -1, 57); -DEFINE_QNODE(slv_pmic_arb, MSM8974_CNOC_SLV_PMIC_ARB, 8, -1, 59); -DEFINE_QNODE(slv_spdm_wrapper, MSM8974_CNOC_SLV_SPDM_WRAPPER, 8, -1, 60); -DEFINE_QNODE(slv_dehr_cfg, MSM8974_CNOC_SLV_DEHR_CFG, 8, -1, 61); -DEFINE_QNODE(slv_mpm, MSM8974_CNOC_SLV_MPM, 8, -1, 62); -DEFINE_QNODE(slv_qdss_cfg, MSM8974_CNOC_SLV_QDSS_CFG, 8, -1, 63); -DEFINE_QNODE(slv_rbcpr_cfg, MSM8974_CNOC_SLV_RBCPR_CFG, 8, -1, 64); -DEFINE_QNODE(slv_rbcpr_qdss_apu_cfg, MSM8974_CNOC_SLV_RBCPR_QDSS_APU_CFG, = 8, -1, 65); -DEFINE_QNODE(cnoc_to_snoc, MSM8974_CNOC_TO_SNOC, 8, 52, 75); -DEFINE_QNODE(slv_cnoc_onoc_cfg, MSM8974_CNOC_SLV_CNOC_ONOC_CFG, 8, -1, 68); -DEFINE_QNODE(slv_cnoc_mnoc_mmss_cfg, MSM8974_CNOC_SLV_CNOC_MNOC_MMSS_CFG, = 8, -1, 58); -DEFINE_QNODE(slv_cnoc_mnoc_cfg, MSM8974_CNOC_SLV_CNOC_MNOC_CFG, 8, -1, 66); -DEFINE_QNODE(slv_pnoc_cfg, MSM8974_CNOC_SLV_PNOC_CFG, 8, -1, 69); -DEFINE_QNODE(slv_snoc_mpu_cfg, MSM8974_CNOC_SLV_SNOC_MPU_CFG, 8, -1, 67); -DEFINE_QNODE(slv_snoc_cfg, MSM8974_CNOC_SLV_SNOC_CFG, 8, -1, 70); -DEFINE_QNODE(slv_ebi1_dll_cfg, MSM8974_CNOC_SLV_EBI1_DLL_CFG, 8, -1, 71); -DEFINE_QNODE(slv_phy_apu_cfg, MSM8974_CNOC_SLV_PHY_APU_CFG, 8, -1, 72); -DEFINE_QNODE(slv_ebi1_phy_cfg, MSM8974_CNOC_SLV_EBI1_PHY_CFG, 8, -1, 73); -DEFINE_QNODE(slv_rpm, MSM8974_CNOC_SLV_RPM, 8, -1, 74); -DEFINE_QNODE(slv_service_cnoc, MSM8974_CNOC_SLV_SERVICE_CNOC, 8, -1, 76); +static struct qcom_icc_node mas_rpm_inst =3D { + .name =3D "mas_rpm_inst", + .id =3D MSM8974_CNOC_MAS_RPM_INST, + .buswidth =3D 8, + .mas_rpm_id =3D 45, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_rpm_data =3D { + .name =3D "mas_rpm_data", + .id =3D MSM8974_CNOC_MAS_RPM_DATA, + .buswidth =3D 8, + .mas_rpm_id =3D 46, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_rpm_sys =3D { + .name =3D "mas_rpm_sys", + .id =3D MSM8974_CNOC_MAS_RPM_SYS, + .buswidth =3D 8, + .mas_rpm_id =3D 47, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_dehr =3D { + .name =3D "mas_dehr", + .id =3D MSM8974_CNOC_MAS_DEHR, + .buswidth =3D 8, + .mas_rpm_id =3D 48, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_qdss_dap =3D { + .name =3D "mas_qdss_dap", + .id =3D MSM8974_CNOC_MAS_QDSS_DAP, + .buswidth =3D 8, + .mas_rpm_id =3D 49, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_spdm =3D { + .name =3D "mas_spdm", + .id =3D MSM8974_CNOC_MAS_SPDM, + .buswidth =3D 8, + .mas_rpm_id =3D 50, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_tic =3D { + .name =3D "mas_tic", + .id =3D MSM8974_CNOC_MAS_TIC, + .buswidth =3D 8, + .mas_rpm_id =3D 51, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node slv_clk_ctl =3D { + .name =3D "slv_clk_ctl", + .id =3D MSM8974_CNOC_SLV_CLK_CTL, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 47, +}; + +static struct qcom_icc_node slv_cnoc_mss =3D { + .name =3D "slv_cnoc_mss", + .id =3D MSM8974_CNOC_SLV_CNOC_MSS, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 48, +}; + +static struct qcom_icc_node slv_security =3D { + .name =3D "slv_security", + .id =3D MSM8974_CNOC_SLV_SECURITY, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 49, +}; + +static struct qcom_icc_node slv_tcsr =3D { + .name =3D "slv_tcsr", + .id =3D MSM8974_CNOC_SLV_TCSR, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 50, +}; + +static struct qcom_icc_node slv_tlmm =3D { + .name =3D "slv_tlmm", + .id =3D MSM8974_CNOC_SLV_TLMM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 51, +}; + +static struct qcom_icc_node slv_crypto_0_cfg =3D { + .name =3D "slv_crypto_0_cfg", + .id =3D MSM8974_CNOC_SLV_CRYPTO_0_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 52, +}; + +static struct qcom_icc_node slv_crypto_1_cfg =3D { + .name =3D "slv_crypto_1_cfg", + .id =3D MSM8974_CNOC_SLV_CRYPTO_1_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 53, +}; + +static struct qcom_icc_node slv_imem_cfg =3D { + .name =3D "slv_imem_cfg", + .id =3D MSM8974_CNOC_SLV_IMEM_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 54, +}; + +static struct qcom_icc_node slv_message_ram =3D { + .name =3D "slv_message_ram", + .id =3D MSM8974_CNOC_SLV_MESSAGE_RAM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 55, +}; + +static struct qcom_icc_node slv_bimc_cfg =3D { + .name =3D "slv_bimc_cfg", + .id =3D MSM8974_CNOC_SLV_BIMC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 56, +}; + +static struct qcom_icc_node slv_boot_rom =3D { + .name =3D "slv_boot_rom", + .id =3D MSM8974_CNOC_SLV_BOOT_ROM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 57, +}; + +static struct qcom_icc_node slv_pmic_arb =3D { + .name =3D "slv_pmic_arb", + .id =3D MSM8974_CNOC_SLV_PMIC_ARB, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 59, +}; + +static struct qcom_icc_node slv_spdm_wrapper =3D { + .name =3D "slv_spdm_wrapper", + .id =3D MSM8974_CNOC_SLV_SPDM_WRAPPER, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 60, +}; + +static struct qcom_icc_node slv_dehr_cfg =3D { + .name =3D "slv_dehr_cfg", + .id =3D MSM8974_CNOC_SLV_DEHR_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 61, +}; + +static struct qcom_icc_node slv_mpm =3D { + .name =3D "slv_mpm", + .id =3D MSM8974_CNOC_SLV_MPM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 62, +}; + +static struct qcom_icc_node slv_qdss_cfg =3D { + .name =3D "slv_qdss_cfg", + .id =3D MSM8974_CNOC_SLV_QDSS_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 63, +}; + +static struct qcom_icc_node slv_rbcpr_cfg =3D { + .name =3D "slv_rbcpr_cfg", + .id =3D MSM8974_CNOC_SLV_RBCPR_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 64, +}; + +static struct qcom_icc_node slv_rbcpr_qdss_apu_cfg =3D { + .name =3D "slv_rbcpr_qdss_apu_cfg", + .id =3D MSM8974_CNOC_SLV_RBCPR_QDSS_APU_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 65, +}; + +static struct qcom_icc_node cnoc_to_snoc =3D { + .name =3D "cnoc_to_snoc", + .id =3D MSM8974_CNOC_TO_SNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 52, + .slv_rpm_id =3D 75, +}; + +static struct qcom_icc_node slv_cnoc_onoc_cfg =3D { + .name =3D "slv_cnoc_onoc_cfg", + .id =3D MSM8974_CNOC_SLV_CNOC_ONOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 68, +}; + +static struct qcom_icc_node slv_cnoc_mnoc_mmss_cfg =3D { + .name =3D "slv_cnoc_mnoc_mmss_cfg", + .id =3D MSM8974_CNOC_SLV_CNOC_MNOC_MMSS_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 58, +}; + +static struct qcom_icc_node slv_cnoc_mnoc_cfg =3D { + .name =3D "slv_cnoc_mnoc_cfg", + .id =3D MSM8974_CNOC_SLV_CNOC_MNOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 66, +}; + +static struct qcom_icc_node slv_pnoc_cfg =3D { + .name =3D "slv_pnoc_cfg", + .id =3D MSM8974_CNOC_SLV_PNOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 69, +}; + +static struct qcom_icc_node slv_snoc_mpu_cfg =3D { + .name =3D "slv_snoc_mpu_cfg", + .id =3D MSM8974_CNOC_SLV_SNOC_MPU_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 67, +}; + +static struct qcom_icc_node slv_snoc_cfg =3D { + .name =3D "slv_snoc_cfg", + .id =3D MSM8974_CNOC_SLV_SNOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 70, +}; + +static struct qcom_icc_node slv_ebi1_dll_cfg =3D { + .name =3D "slv_ebi1_dll_cfg", + .id =3D MSM8974_CNOC_SLV_EBI1_DLL_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 71, +}; + +static struct qcom_icc_node slv_phy_apu_cfg =3D { + .name =3D "slv_phy_apu_cfg", + .id =3D MSM8974_CNOC_SLV_PHY_APU_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 72, +}; + +static struct qcom_icc_node slv_ebi1_phy_cfg =3D { + .name =3D "slv_ebi1_phy_cfg", + .id =3D MSM8974_CNOC_SLV_EBI1_PHY_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 73, +}; + +static struct qcom_icc_node slv_rpm =3D { + .name =3D "slv_rpm", + .id =3D MSM8974_CNOC_SLV_RPM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 74, +}; + +static struct qcom_icc_node slv_service_cnoc =3D { + .name =3D "slv_service_cnoc", + .id =3D MSM8974_CNOC_SLV_SERVICE_CNOC, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 76, +}; =20 static struct qcom_icc_node * const msm8974_cnoc_nodes[] =3D { [CNOC_MAS_RPM_INST] =3D &mas_rpm_inst, @@ -308,28 +613,211 @@ static const struct qcom_icc_desc msm8974_cnoc =3D { .ignore_enxio =3D true, }; =20 -DEFINE_QNODE(mas_graphics_3d, MSM8974_MNOC_MAS_GRAPHICS_3D, 16, 6, -1, MSM= 8974_MNOC_TO_BIMC); -DEFINE_QNODE(mas_jpeg, MSM8974_MNOC_MAS_JPEG, 16, 7, -1, MSM8974_MNOC_TO_B= IMC); -DEFINE_QNODE(mas_mdp_port0, MSM8974_MNOC_MAS_MDP_PORT0, 16, 8, -1, MSM8974= _MNOC_TO_BIMC); -DEFINE_QNODE(mas_video_p0, MSM8974_MNOC_MAS_VIDEO_P0, 16, 9, -1); -DEFINE_QNODE(mas_video_p1, MSM8974_MNOC_MAS_VIDEO_P1, 16, 10, -1); -DEFINE_QNODE(mas_vfe, MSM8974_MNOC_MAS_VFE, 16, 11, -1, MSM8974_MNOC_TO_BI= MC); -DEFINE_QNODE(mnoc_to_cnoc, MSM8974_MNOC_TO_CNOC, 16, 4, -1); -DEFINE_QNODE(mnoc_to_bimc, MSM8974_MNOC_TO_BIMC, 16, -1, 16, MSM8974_BIMC_= TO_MNOC); -DEFINE_QNODE(slv_camera_cfg, MSM8974_MNOC_SLV_CAMERA_CFG, 16, -1, 3); -DEFINE_QNODE(slv_display_cfg, MSM8974_MNOC_SLV_DISPLAY_CFG, 16, -1, 4); -DEFINE_QNODE(slv_ocmem_cfg, MSM8974_MNOC_SLV_OCMEM_CFG, 16, -1, 5); -DEFINE_QNODE(slv_cpr_cfg, MSM8974_MNOC_SLV_CPR_CFG, 16, -1, 6); -DEFINE_QNODE(slv_cpr_xpu_cfg, MSM8974_MNOC_SLV_CPR_XPU_CFG, 16, -1, 7); -DEFINE_QNODE(slv_misc_cfg, MSM8974_MNOC_SLV_MISC_CFG, 16, -1, 8); -DEFINE_QNODE(slv_misc_xpu_cfg, MSM8974_MNOC_SLV_MISC_XPU_CFG, 16, -1, 9); -DEFINE_QNODE(slv_venus_cfg, MSM8974_MNOC_SLV_VENUS_CFG, 16, -1, 10); -DEFINE_QNODE(slv_graphics_3d_cfg, MSM8974_MNOC_SLV_GRAPHICS_3D_CFG, 16, -1= , 11); -DEFINE_QNODE(slv_mmss_clk_cfg, MSM8974_MNOC_SLV_MMSS_CLK_CFG, 16, -1, 12); -DEFINE_QNODE(slv_mmss_clk_xpu_cfg, MSM8974_MNOC_SLV_MMSS_CLK_XPU_CFG, 16, = -1, 13); -DEFINE_QNODE(slv_mnoc_mpu_cfg, MSM8974_MNOC_SLV_MNOC_MPU_CFG, 16, -1, 14); -DEFINE_QNODE(slv_onoc_mpu_cfg, MSM8974_MNOC_SLV_ONOC_MPU_CFG, 16, -1, 15); -DEFINE_QNODE(slv_service_mnoc, MSM8974_MNOC_SLV_SERVICE_MNOC, 16, -1, 17); +static const u16 mas_graphics_3d_links[] =3D { + MSM8974_MNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_graphics_3d =3D { + .name =3D "mas_graphics_3d", + .id =3D MSM8974_MNOC_MAS_GRAPHICS_3D, + .buswidth =3D 16, + .mas_rpm_id =3D 6, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_graphics_3d_links), + .links =3D mas_graphics_3d_links, +}; + +static const u16 mas_jpeg_links[] =3D { + MSM8974_MNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_jpeg =3D { + .name =3D "mas_jpeg", + .id =3D MSM8974_MNOC_MAS_JPEG, + .buswidth =3D 16, + .mas_rpm_id =3D 7, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_jpeg_links), + .links =3D mas_jpeg_links, +}; + +static const u16 mas_mdp_port0_links[] =3D { + MSM8974_MNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_mdp_port0 =3D { + .name =3D "mas_mdp_port0", + .id =3D MSM8974_MNOC_MAS_MDP_PORT0, + .buswidth =3D 16, + .mas_rpm_id =3D 8, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_mdp_port0_links), + .links =3D mas_mdp_port0_links, +}; + +static struct qcom_icc_node mas_video_p0 =3D { + .name =3D "mas_video_p0", + .id =3D MSM8974_MNOC_MAS_VIDEO_P0, + .buswidth =3D 16, + .mas_rpm_id =3D 9, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_video_p1 =3D { + .name =3D "mas_video_p1", + .id =3D MSM8974_MNOC_MAS_VIDEO_P1, + .buswidth =3D 16, + .mas_rpm_id =3D 10, + .slv_rpm_id =3D -1, +}; + +static const u16 mas_vfe_links[] =3D { + MSM8974_MNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_vfe =3D { + .name =3D "mas_vfe", + .id =3D MSM8974_MNOC_MAS_VFE, + .buswidth =3D 16, + .mas_rpm_id =3D 11, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_vfe_links), + .links =3D mas_vfe_links, +}; + +static struct qcom_icc_node mnoc_to_cnoc =3D { + .name =3D "mnoc_to_cnoc", + .id =3D MSM8974_MNOC_TO_CNOC, + .buswidth =3D 16, + .mas_rpm_id =3D 4, + .slv_rpm_id =3D -1, +}; + +static const u16 mnoc_to_bimc_links[] =3D { + MSM8974_BIMC_TO_MNOC +}; + +static struct qcom_icc_node mnoc_to_bimc =3D { + .name =3D "mnoc_to_bimc", + .id =3D MSM8974_MNOC_TO_BIMC, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 16, + .num_links =3D ARRAY_SIZE(mnoc_to_bimc_links), + .links =3D mnoc_to_bimc_links, +}; + +static struct qcom_icc_node slv_camera_cfg =3D { + .name =3D "slv_camera_cfg", + .id =3D MSM8974_MNOC_SLV_CAMERA_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 3, +}; + +static struct qcom_icc_node slv_display_cfg =3D { + .name =3D "slv_display_cfg", + .id =3D MSM8974_MNOC_SLV_DISPLAY_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 4, +}; + +static struct qcom_icc_node slv_ocmem_cfg =3D { + .name =3D "slv_ocmem_cfg", + .id =3D MSM8974_MNOC_SLV_OCMEM_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 5, +}; + +static struct qcom_icc_node slv_cpr_cfg =3D { + .name =3D "slv_cpr_cfg", + .id =3D MSM8974_MNOC_SLV_CPR_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 6, +}; + +static struct qcom_icc_node slv_cpr_xpu_cfg =3D { + .name =3D "slv_cpr_xpu_cfg", + .id =3D MSM8974_MNOC_SLV_CPR_XPU_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 7, +}; + +static struct qcom_icc_node slv_misc_cfg =3D { + .name =3D "slv_misc_cfg", + .id =3D MSM8974_MNOC_SLV_MISC_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 8, +}; + +static struct qcom_icc_node slv_misc_xpu_cfg =3D { + .name =3D "slv_misc_xpu_cfg", + .id =3D MSM8974_MNOC_SLV_MISC_XPU_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 9, +}; + +static struct qcom_icc_node slv_venus_cfg =3D { + .name =3D "slv_venus_cfg", + .id =3D MSM8974_MNOC_SLV_VENUS_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 10, +}; + +static struct qcom_icc_node slv_graphics_3d_cfg =3D { + .name =3D "slv_graphics_3d_cfg", + .id =3D MSM8974_MNOC_SLV_GRAPHICS_3D_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 11, +}; + +static struct qcom_icc_node slv_mmss_clk_cfg =3D { + .name =3D "slv_mmss_clk_cfg", + .id =3D MSM8974_MNOC_SLV_MMSS_CLK_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 12, +}; + +static struct qcom_icc_node slv_mmss_clk_xpu_cfg =3D { + .name =3D "slv_mmss_clk_xpu_cfg", + .id =3D MSM8974_MNOC_SLV_MMSS_CLK_XPU_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 13, +}; + +static struct qcom_icc_node slv_mnoc_mpu_cfg =3D { + .name =3D "slv_mnoc_mpu_cfg", + .id =3D MSM8974_MNOC_SLV_MNOC_MPU_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 14, +}; + +static struct qcom_icc_node slv_onoc_mpu_cfg =3D { + .name =3D "slv_onoc_mpu_cfg", + .id =3D MSM8974_MNOC_SLV_ONOC_MPU_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 15, +}; + +static struct qcom_icc_node slv_service_mnoc =3D { + .name =3D "slv_service_mnoc", + .id =3D MSM8974_MNOC_SLV_SERVICE_MNOC, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 17, +}; =20 static struct qcom_icc_node * const msm8974_mnoc_nodes[] =3D { [MNOC_MAS_GRAPHICS_3D] =3D &mas_graphics_3d, @@ -363,20 +851,121 @@ static const struct qcom_icc_desc msm8974_mnoc =3D { .ignore_enxio =3D true, }; =20 -DEFINE_QNODE(ocmem_noc_to_ocmem_vnoc, MSM8974_OCMEM_NOC_TO_OCMEM_VNOC, 16,= 54, 78, MSM8974_OCMEM_SLV_OCMEM); -DEFINE_QNODE(mas_jpeg_ocmem, MSM8974_OCMEM_MAS_JPEG_OCMEM, 16, 13, -1); -DEFINE_QNODE(mas_mdp_ocmem, MSM8974_OCMEM_MAS_MDP_OCMEM, 16, 14, -1); -DEFINE_QNODE(mas_video_p0_ocmem, MSM8974_OCMEM_MAS_VIDEO_P0_OCMEM, 16, 15,= -1); -DEFINE_QNODE(mas_video_p1_ocmem, MSM8974_OCMEM_MAS_VIDEO_P1_OCMEM, 16, 16,= -1); -DEFINE_QNODE(mas_vfe_ocmem, MSM8974_OCMEM_MAS_VFE_OCMEM, 16, 17, -1); -DEFINE_QNODE(mas_cnoc_onoc_cfg, MSM8974_OCMEM_MAS_CNOC_ONOC_CFG, 16, 12, -= 1); -DEFINE_QNODE(slv_service_onoc, MSM8974_OCMEM_SLV_SERVICE_ONOC, 16, -1, 19); -DEFINE_QNODE(slv_ocmem, MSM8974_OCMEM_SLV_OCMEM, 16, -1, 18); +static const u16 ocmem_noc_to_ocmem_vnoc_links[] =3D { + MSM8974_OCMEM_SLV_OCMEM +}; + +static struct qcom_icc_node ocmem_noc_to_ocmem_vnoc =3D { + .name =3D "ocmem_noc_to_ocmem_vnoc", + .id =3D MSM8974_OCMEM_NOC_TO_OCMEM_VNOC, + .buswidth =3D 16, + .mas_rpm_id =3D 54, + .slv_rpm_id =3D 78, + .num_links =3D ARRAY_SIZE(ocmem_noc_to_ocmem_vnoc_links), + .links =3D ocmem_noc_to_ocmem_vnoc_links, +}; + +static struct qcom_icc_node mas_jpeg_ocmem =3D { + .name =3D "mas_jpeg_ocmem", + .id =3D MSM8974_OCMEM_MAS_JPEG_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D 13, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_mdp_ocmem =3D { + .name =3D "mas_mdp_ocmem", + .id =3D MSM8974_OCMEM_MAS_MDP_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D 14, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_video_p0_ocmem =3D { + .name =3D "mas_video_p0_ocmem", + .id =3D MSM8974_OCMEM_MAS_VIDEO_P0_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D 15, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_video_p1_ocmem =3D { + .name =3D "mas_video_p1_ocmem", + .id =3D MSM8974_OCMEM_MAS_VIDEO_P1_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D 16, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_vfe_ocmem =3D { + .name =3D "mas_vfe_ocmem", + .id =3D MSM8974_OCMEM_MAS_VFE_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D 17, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_cnoc_onoc_cfg =3D { + .name =3D "mas_cnoc_onoc_cfg", + .id =3D MSM8974_OCMEM_MAS_CNOC_ONOC_CFG, + .buswidth =3D 16, + .mas_rpm_id =3D 12, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node slv_service_onoc =3D { + .name =3D "slv_service_onoc", + .id =3D MSM8974_OCMEM_SLV_SERVICE_ONOC, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 19, +}; + +static struct qcom_icc_node slv_ocmem =3D { + .name =3D "slv_ocmem", + .id =3D MSM8974_OCMEM_SLV_OCMEM, + .buswidth =3D 16, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 18, +}; =20 /* Virtual NoC is needed for connection to OCMEM */ -DEFINE_QNODE(ocmem_vnoc_to_onoc, MSM8974_OCMEM_VNOC_TO_OCMEM_NOC, 16, 56, = 79, MSM8974_OCMEM_NOC_TO_OCMEM_VNOC); -DEFINE_QNODE(ocmem_vnoc_to_snoc, MSM8974_OCMEM_VNOC_TO_SNOC, 8, 57, 80); -DEFINE_QNODE(mas_v_ocmem_gfx3d, MSM8974_OCMEM_VNOC_MAS_GFX3D, 8, 55, -1, M= SM8974_OCMEM_VNOC_TO_OCMEM_NOC); +static const u16 ocmem_vnoc_to_onoc_links[] =3D { + MSM8974_OCMEM_NOC_TO_OCMEM_VNOC +}; + +static struct qcom_icc_node ocmem_vnoc_to_onoc =3D { + .name =3D "ocmem_vnoc_to_onoc", + .id =3D MSM8974_OCMEM_VNOC_TO_OCMEM_NOC, + .buswidth =3D 16, + .mas_rpm_id =3D 56, + .slv_rpm_id =3D 79, + .num_links =3D ARRAY_SIZE(ocmem_vnoc_to_onoc_links), + .links =3D ocmem_vnoc_to_onoc_links, +}; + +static struct qcom_icc_node ocmem_vnoc_to_snoc =3D { + .name =3D "ocmem_vnoc_to_snoc", + .id =3D MSM8974_OCMEM_VNOC_TO_SNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 57, + .slv_rpm_id =3D 80, +}; + +static const u16 mas_v_ocmem_gfx3d_links[] =3D { + MSM8974_OCMEM_VNOC_TO_OCMEM_NOC +}; + +static struct qcom_icc_node mas_v_ocmem_gfx3d =3D { + .name =3D "mas_v_ocmem_gfx3d", + .id =3D MSM8974_OCMEM_VNOC_MAS_GFX3D, + .buswidth =3D 8, + .mas_rpm_id =3D 55, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_v_ocmem_gfx3d_links), + .links =3D mas_v_ocmem_gfx3d_links, +}; + =20 static struct qcom_icc_node * const msm8974_onoc_nodes[] =3D { [OCMEM_NOC_TO_OCMEM_VNOC] =3D &ocmem_noc_to_ocmem_vnoc, @@ -401,33 +990,288 @@ static const struct qcom_icc_desc msm8974_onoc =3D { .ignore_enxio =3D true, }; =20 -DEFINE_QNODE(mas_pnoc_cfg, MSM8974_PNOC_MAS_PNOC_CFG, 8, 43, -1); -DEFINE_QNODE(mas_sdcc_1, MSM8974_PNOC_MAS_SDCC_1, 8, 33, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_sdcc_3, MSM8974_PNOC_MAS_SDCC_3, 8, 34, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_sdcc_4, MSM8974_PNOC_MAS_SDCC_4, 8, 36, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_sdcc_2, MSM8974_PNOC_MAS_SDCC_2, 8, 35, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_tsif, MSM8974_PNOC_MAS_TSIF, 8, 37, -1, MSM8974_PNOC_TO_S= NOC); -DEFINE_QNODE(mas_bam_dma, MSM8974_PNOC_MAS_BAM_DMA, 8, 38, -1); -DEFINE_QNODE(mas_blsp_2, MSM8974_PNOC_MAS_BLSP_2, 8, 39, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_usb_hsic, MSM8974_PNOC_MAS_USB_HSIC, 8, 40, -1, MSM8974_P= NOC_TO_SNOC); -DEFINE_QNODE(mas_blsp_1, MSM8974_PNOC_MAS_BLSP_1, 8, 41, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(mas_usb_hs, MSM8974_PNOC_MAS_USB_HS, 8, 42, -1, MSM8974_PNOC_= TO_SNOC); -DEFINE_QNODE(pnoc_to_snoc, MSM8974_PNOC_TO_SNOC, 8, 44, 45, MSM8974_SNOC_T= O_PNOC, MSM8974_PNOC_SLV_PRNG); -DEFINE_QNODE(slv_sdcc_1, MSM8974_PNOC_SLV_SDCC_1, 8, -1, 31); -DEFINE_QNODE(slv_sdcc_3, MSM8974_PNOC_SLV_SDCC_3, 8, -1, 32); -DEFINE_QNODE(slv_sdcc_2, MSM8974_PNOC_SLV_SDCC_2, 8, -1, 33); -DEFINE_QNODE(slv_sdcc_4, MSM8974_PNOC_SLV_SDCC_4, 8, -1, 34); -DEFINE_QNODE(slv_tsif, MSM8974_PNOC_SLV_TSIF, 8, -1, 35); -DEFINE_QNODE(slv_bam_dma, MSM8974_PNOC_SLV_BAM_DMA, 8, -1, 36); -DEFINE_QNODE(slv_blsp_2, MSM8974_PNOC_SLV_BLSP_2, 8, -1, 37); -DEFINE_QNODE(slv_usb_hsic, MSM8974_PNOC_SLV_USB_HSIC, 8, -1, 38); -DEFINE_QNODE(slv_blsp_1, MSM8974_PNOC_SLV_BLSP_1, 8, -1, 39); -DEFINE_QNODE(slv_usb_hs, MSM8974_PNOC_SLV_USB_HS, 8, -1, 40); -DEFINE_QNODE(slv_pdm, MSM8974_PNOC_SLV_PDM, 8, -1, 41); -DEFINE_QNODE(slv_periph_apu_cfg, MSM8974_PNOC_SLV_PERIPH_APU_CFG, 8, -1, 4= 2); -DEFINE_QNODE(slv_pnoc_mpu_cfg, MSM8974_PNOC_SLV_PNOC_MPU_CFG, 8, -1, 43); -DEFINE_QNODE(slv_prng, MSM8974_PNOC_SLV_PRNG, 8, -1, 44, MSM8974_PNOC_TO_S= NOC); -DEFINE_QNODE(slv_service_pnoc, MSM8974_PNOC_SLV_SERVICE_PNOC, 8, -1, 46); +static struct qcom_icc_node mas_pnoc_cfg =3D { + .name =3D "mas_pnoc_cfg", + .id =3D MSM8974_PNOC_MAS_PNOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D 43, + .slv_rpm_id =3D -1, +}; + +static const u16 mas_sdcc_1_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_sdcc_1 =3D { + .name =3D "mas_sdcc_1", + .id =3D MSM8974_PNOC_MAS_SDCC_1, + .buswidth =3D 8, + .mas_rpm_id =3D 33, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_sdcc_1_links), + .links =3D mas_sdcc_1_links, +}; + +static const u16 mas_sdcc_3_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_sdcc_3 =3D { + .name =3D "mas_sdcc_3", + .id =3D MSM8974_PNOC_MAS_SDCC_3, + .buswidth =3D 8, + .mas_rpm_id =3D 34, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_sdcc_3_links), + .links =3D mas_sdcc_3_links, +}; + +static const u16 mas_sdcc_4_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_sdcc_4 =3D { + .name =3D "mas_sdcc_4", + .id =3D MSM8974_PNOC_MAS_SDCC_4, + .buswidth =3D 8, + .mas_rpm_id =3D 36, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_sdcc_4_links), + .links =3D mas_sdcc_4_links, +}; + +static const u16 mas_sdcc_2_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_sdcc_2 =3D { + .name =3D "mas_sdcc_2", + .id =3D MSM8974_PNOC_MAS_SDCC_2, + .buswidth =3D 8, + .mas_rpm_id =3D 35, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_sdcc_2_links), + .links =3D mas_sdcc_2_links, +}; + +static const u16 mas_tsif_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_tsif =3D { + .name =3D "mas_tsif", + .id =3D MSM8974_PNOC_MAS_TSIF, + .buswidth =3D 8, + .mas_rpm_id =3D 37, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_tsif_links), + .links =3D mas_tsif_links, +}; + +static struct qcom_icc_node mas_bam_dma =3D { + .name =3D "mas_bam_dma", + .id =3D MSM8974_PNOC_MAS_BAM_DMA, + .buswidth =3D 8, + .mas_rpm_id =3D 38, + .slv_rpm_id =3D -1, +}; + +static const u16 mas_blsp_2_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_blsp_2 =3D { + .name =3D "mas_blsp_2", + .id =3D MSM8974_PNOC_MAS_BLSP_2, + .buswidth =3D 8, + .mas_rpm_id =3D 39, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_blsp_2_links), + .links =3D mas_blsp_2_links, +}; + +static const u16 mas_usb_hsic_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_usb_hsic =3D { + .name =3D "mas_usb_hsic", + .id =3D MSM8974_PNOC_MAS_USB_HSIC, + .buswidth =3D 8, + .mas_rpm_id =3D 40, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_usb_hsic_links), + .links =3D mas_usb_hsic_links, +}; + +static const u16 mas_blsp_1_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_blsp_1 =3D { + .name =3D "mas_blsp_1", + .id =3D MSM8974_PNOC_MAS_BLSP_1, + .buswidth =3D 8, + .mas_rpm_id =3D 41, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_blsp_1_links), + .links =3D mas_blsp_1_links, +}; + +static const u16 mas_usb_hs_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node mas_usb_hs =3D { + .name =3D "mas_usb_hs", + .id =3D MSM8974_PNOC_MAS_USB_HS, + .buswidth =3D 8, + .mas_rpm_id =3D 42, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_usb_hs_links), + .links =3D mas_usb_hs_links, +}; + +static const u16 pnoc_to_snoc_links[] =3D { + MSM8974_SNOC_TO_PNOC, + MSM8974_PNOC_SLV_PRNG +}; + +static struct qcom_icc_node pnoc_to_snoc =3D { + .name =3D "pnoc_to_snoc", + .id =3D MSM8974_PNOC_TO_SNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 44, + .slv_rpm_id =3D 45, + .num_links =3D ARRAY_SIZE(pnoc_to_snoc_links), + .links =3D pnoc_to_snoc_links, +}; + +static struct qcom_icc_node slv_sdcc_1 =3D { + .name =3D "slv_sdcc_1", + .id =3D MSM8974_PNOC_SLV_SDCC_1, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 31, +}; + +static struct qcom_icc_node slv_sdcc_3 =3D { + .name =3D "slv_sdcc_3", + .id =3D MSM8974_PNOC_SLV_SDCC_3, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 32, +}; + +static struct qcom_icc_node slv_sdcc_2 =3D { + .name =3D "slv_sdcc_2", + .id =3D MSM8974_PNOC_SLV_SDCC_2, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 33, +}; + +static struct qcom_icc_node slv_sdcc_4 =3D { + .name =3D "slv_sdcc_4", + .id =3D MSM8974_PNOC_SLV_SDCC_4, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 34, +}; + +static struct qcom_icc_node slv_tsif =3D { + .name =3D "slv_tsif", + .id =3D MSM8974_PNOC_SLV_TSIF, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 35, +}; + +static struct qcom_icc_node slv_bam_dma =3D { + .name =3D "slv_bam_dma", + .id =3D MSM8974_PNOC_SLV_BAM_DMA, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 36, +}; + +static struct qcom_icc_node slv_blsp_2 =3D { + .name =3D "slv_blsp_2", + .id =3D MSM8974_PNOC_SLV_BLSP_2, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 37, +}; + +static struct qcom_icc_node slv_usb_hsic =3D { + .name =3D "slv_usb_hsic", + .id =3D MSM8974_PNOC_SLV_USB_HSIC, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 38, +}; + +static struct qcom_icc_node slv_blsp_1 =3D { + .name =3D "slv_blsp_1", + .id =3D MSM8974_PNOC_SLV_BLSP_1, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 39, +}; + +static struct qcom_icc_node slv_usb_hs =3D { + .name =3D "slv_usb_hs", + .id =3D MSM8974_PNOC_SLV_USB_HS, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 40, +}; + +static struct qcom_icc_node slv_pdm =3D { + .name =3D "slv_pdm", + .id =3D MSM8974_PNOC_SLV_PDM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 41, +}; + +static struct qcom_icc_node slv_periph_apu_cfg =3D { + .name =3D "slv_periph_apu_cfg", + .id =3D MSM8974_PNOC_SLV_PERIPH_APU_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 42, +}; + +static struct qcom_icc_node slv_pnoc_mpu_cfg =3D { + .name =3D "slv_pnoc_mpu_cfg", + .id =3D MSM8974_PNOC_SLV_PNOC_MPU_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 43, +}; + +static const u16 slv_prng_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node slv_prng =3D { + .name =3D "slv_prng", + .id =3D MSM8974_PNOC_SLV_PRNG, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 44, + .num_links =3D ARRAY_SIZE(slv_prng_links), + .links =3D slv_prng_links, +}; + +static struct qcom_icc_node slv_service_pnoc =3D { + .name =3D "slv_service_pnoc", + .id =3D MSM8974_PNOC_SLV_SERVICE_PNOC, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 46, +}; =20 static struct qcom_icc_node * const msm8974_pnoc_nodes[] =3D { [PNOC_MAS_PNOC_CFG] =3D &mas_pnoc_cfg, @@ -468,30 +1312,233 @@ static const struct qcom_icc_desc msm8974_pnoc =3D { .ignore_enxio =3D true, }; =20 -DEFINE_QNODE(mas_lpass_ahb, MSM8974_SNOC_MAS_LPASS_AHB, 8, 18, -1); -DEFINE_QNODE(mas_qdss_bam, MSM8974_SNOC_MAS_QDSS_BAM, 8, 19, -1); -DEFINE_QNODE(mas_snoc_cfg, MSM8974_SNOC_MAS_SNOC_CFG, 8, 20, -1); -DEFINE_QNODE(snoc_to_bimc, MSM8974_SNOC_TO_BIMC, 8, 21, 24, MSM8974_BIMC_T= O_SNOC); -DEFINE_QNODE(snoc_to_cnoc, MSM8974_SNOC_TO_CNOC, 8, 22, 25); -DEFINE_QNODE(snoc_to_pnoc, MSM8974_SNOC_TO_PNOC, 8, 29, 28, MSM8974_PNOC_T= O_SNOC); -DEFINE_QNODE(snoc_to_ocmem_vnoc, MSM8974_SNOC_TO_OCMEM_VNOC, 8, 53, 77, MS= M8974_OCMEM_VNOC_TO_OCMEM_NOC); -DEFINE_QNODE(mas_crypto_core0, MSM8974_SNOC_MAS_CRYPTO_CORE0, 8, 23, -1, M= SM8974_SNOC_TO_BIMC); -DEFINE_QNODE(mas_crypto_core1, MSM8974_SNOC_MAS_CRYPTO_CORE1, 8, 24, -1); -DEFINE_QNODE(mas_lpass_proc, MSM8974_SNOC_MAS_LPASS_PROC, 8, 25, -1, MSM89= 74_SNOC_TO_OCMEM_VNOC); -DEFINE_QNODE(mas_mss, MSM8974_SNOC_MAS_MSS, 8, 26, -1); -DEFINE_QNODE(mas_mss_nav, MSM8974_SNOC_MAS_MSS_NAV, 8, 27, -1); -DEFINE_QNODE(mas_ocmem_dma, MSM8974_SNOC_MAS_OCMEM_DMA, 8, 28, -1); -DEFINE_QNODE(mas_wcss, MSM8974_SNOC_MAS_WCSS, 8, 30, -1); -DEFINE_QNODE(mas_qdss_etr, MSM8974_SNOC_MAS_QDSS_ETR, 8, 31, -1); -DEFINE_QNODE(mas_usb3, MSM8974_SNOC_MAS_USB3, 8, 32, -1, MSM8974_SNOC_TO_B= IMC); -DEFINE_QNODE(slv_ampss, MSM8974_SNOC_SLV_AMPSS, 8, -1, 20); -DEFINE_QNODE(slv_lpass, MSM8974_SNOC_SLV_LPASS, 8, -1, 21); -DEFINE_QNODE(slv_usb3, MSM8974_SNOC_SLV_USB3, 8, -1, 22); -DEFINE_QNODE(slv_wcss, MSM8974_SNOC_SLV_WCSS, 8, -1, 23); -DEFINE_QNODE(slv_ocimem, MSM8974_SNOC_SLV_OCIMEM, 8, -1, 26); -DEFINE_QNODE(slv_snoc_ocmem, MSM8974_SNOC_SLV_SNOC_OCMEM, 8, -1, 27); -DEFINE_QNODE(slv_service_snoc, MSM8974_SNOC_SLV_SERVICE_SNOC, 8, -1, 29); -DEFINE_QNODE(slv_qdss_stm, MSM8974_SNOC_SLV_QDSS_STM, 8, -1, 30); +static struct qcom_icc_node mas_lpass_ahb =3D { + .name =3D "mas_lpass_ahb", + .id =3D MSM8974_SNOC_MAS_LPASS_AHB, + .buswidth =3D 8, + .mas_rpm_id =3D 18, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_qdss_bam =3D { + .name =3D "mas_qdss_bam", + .id =3D MSM8974_SNOC_MAS_QDSS_BAM, + .buswidth =3D 8, + .mas_rpm_id =3D 19, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_snoc_cfg =3D { + .name =3D "mas_snoc_cfg", + .id =3D MSM8974_SNOC_MAS_SNOC_CFG, + .buswidth =3D 8, + .mas_rpm_id =3D 20, + .slv_rpm_id =3D -1, +}; + +static const u16 snoc_to_bimc_links[] =3D { + MSM8974_BIMC_TO_SNOC +}; + +static struct qcom_icc_node snoc_to_bimc =3D { + .name =3D "snoc_to_bimc", + .id =3D MSM8974_SNOC_TO_BIMC, + .buswidth =3D 8, + .mas_rpm_id =3D 21, + .slv_rpm_id =3D 24, + .num_links =3D ARRAY_SIZE(snoc_to_bimc_links), + .links =3D snoc_to_bimc_links, +}; + +static struct qcom_icc_node snoc_to_cnoc =3D { + .name =3D "snoc_to_cnoc", + .id =3D MSM8974_SNOC_TO_CNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 22, + .slv_rpm_id =3D 25, +}; + +static const u16 snoc_to_pnoc_links[] =3D { + MSM8974_PNOC_TO_SNOC +}; + +static struct qcom_icc_node snoc_to_pnoc =3D { + .name =3D "snoc_to_pnoc", + .id =3D MSM8974_SNOC_TO_PNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 29, + .slv_rpm_id =3D 28, + .num_links =3D ARRAY_SIZE(snoc_to_pnoc_links), + .links =3D snoc_to_pnoc_links, +}; + +static const u16 snoc_to_ocmem_vnoc_links[] =3D { + MSM8974_OCMEM_VNOC_TO_OCMEM_NOC +}; + +static struct qcom_icc_node snoc_to_ocmem_vnoc =3D { + .name =3D "snoc_to_ocmem_vnoc", + .id =3D MSM8974_SNOC_TO_OCMEM_VNOC, + .buswidth =3D 8, + .mas_rpm_id =3D 53, + .slv_rpm_id =3D 77, + .num_links =3D ARRAY_SIZE(snoc_to_ocmem_vnoc_links), + .links =3D snoc_to_ocmem_vnoc_links, +}; + +static const u16 mas_crypto_core0_links[] =3D { + MSM8974_SNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_crypto_core0 =3D { + .name =3D "mas_crypto_core0", + .id =3D MSM8974_SNOC_MAS_CRYPTO_CORE0, + .buswidth =3D 8, + .mas_rpm_id =3D 23, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_crypto_core0_links), + .links =3D mas_crypto_core0_links, +}; + +static struct qcom_icc_node mas_crypto_core1 =3D { + .name =3D "mas_crypto_core1", + .id =3D MSM8974_SNOC_MAS_CRYPTO_CORE1, + .buswidth =3D 8, + .mas_rpm_id =3D 24, + .slv_rpm_id =3D -1, +}; + +static const u16 mas_lpass_proc_links[] =3D { + MSM8974_SNOC_TO_OCMEM_VNOC +}; + +static struct qcom_icc_node mas_lpass_proc =3D { + .name =3D "mas_lpass_proc", + .id =3D MSM8974_SNOC_MAS_LPASS_PROC, + .buswidth =3D 8, + .mas_rpm_id =3D 25, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_lpass_proc_links), + .links =3D mas_lpass_proc_links, +}; + +static struct qcom_icc_node mas_mss =3D { + .name =3D "mas_mss", + .id =3D MSM8974_SNOC_MAS_MSS, + .buswidth =3D 8, + .mas_rpm_id =3D 26, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_mss_nav =3D { + .name =3D "mas_mss_nav", + .id =3D MSM8974_SNOC_MAS_MSS_NAV, + .buswidth =3D 8, + .mas_rpm_id =3D 27, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_ocmem_dma =3D { + .name =3D "mas_ocmem_dma", + .id =3D MSM8974_SNOC_MAS_OCMEM_DMA, + .buswidth =3D 8, + .mas_rpm_id =3D 28, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_wcss =3D { + .name =3D "mas_wcss", + .id =3D MSM8974_SNOC_MAS_WCSS, + .buswidth =3D 8, + .mas_rpm_id =3D 30, + .slv_rpm_id =3D -1, +}; + +static struct qcom_icc_node mas_qdss_etr =3D { + .name =3D "mas_qdss_etr", + .id =3D MSM8974_SNOC_MAS_QDSS_ETR, + .buswidth =3D 8, + .mas_rpm_id =3D 31, + .slv_rpm_id =3D -1, +}; + +static const u16 mas_usb3_links[] =3D { + MSM8974_SNOC_TO_BIMC +}; + +static struct qcom_icc_node mas_usb3 =3D { + .name =3D "mas_usb3", + .id =3D MSM8974_SNOC_MAS_USB3, + .buswidth =3D 8, + .mas_rpm_id =3D 32, + .slv_rpm_id =3D -1, + .num_links =3D ARRAY_SIZE(mas_usb3_links), + .links =3D mas_usb3_links, +}; + +static struct qcom_icc_node slv_ampss =3D { + .name =3D "slv_ampss", + .id =3D MSM8974_SNOC_SLV_AMPSS, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 20, +}; + +static struct qcom_icc_node slv_lpass =3D { + .name =3D "slv_lpass", + .id =3D MSM8974_SNOC_SLV_LPASS, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 21, +}; + +static struct qcom_icc_node slv_usb3 =3D { + .name =3D "slv_usb3", + .id =3D MSM8974_SNOC_SLV_USB3, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 22, +}; + +static struct qcom_icc_node slv_wcss =3D { + .name =3D "slv_wcss", + .id =3D MSM8974_SNOC_SLV_WCSS, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 23, +}; + +static struct qcom_icc_node slv_ocimem =3D { + .name =3D "slv_ocimem", + .id =3D MSM8974_SNOC_SLV_OCIMEM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 26, +}; + +static struct qcom_icc_node slv_snoc_ocmem =3D { + .name =3D "slv_snoc_ocmem", + .id =3D MSM8974_SNOC_SLV_SNOC_OCMEM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 27, +}; + +static struct qcom_icc_node slv_service_snoc =3D { + .name =3D "slv_service_snoc", + .id =3D MSM8974_SNOC_SLV_SERVICE_SNOC, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 29, +}; + +static struct qcom_icc_node slv_qdss_stm =3D { + .name =3D "slv_qdss_stm", + .id =3D MSM8974_SNOC_SLV_QDSS_STM, + .buswidth =3D 8, + .mas_rpm_id =3D -1, + .slv_rpm_id =3D 30, +}; =20 static struct qcom_icc_node * const msm8974_snoc_nodes[] =3D { [SNOC_MAS_LPASS_AHB] =3D &mas_lpass_ahb, --=20 2.47.3