From nobody Fri Apr 3 19:28:33 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 1FA97234984 for ; Tue, 24 Mar 2026 00:11:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774311094; cv=none; b=gorl5lxCrJzx1V+8qupc3vzqoQkYXrVn8g5zlBU0BXNMteMTxbOuRAxS/LcnfJAAzV+ukN+1aUShOEFQNagaUm9HklqvTrOv3VkkNP7ZIq/QIHQ3w9ajHwxwmKxFaTwuLkyR2qyi5+LK6MqvQ/BoXVSMDswzcglC4fREPKNaf0Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774311094; c=relaxed/simple; bh=thTbKT7zb2LhTfmvVHxYz+k6KtCKwik28ydRspB/nvU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CjjwpjKBvhl452gbvJlv7EpPgyDvz5R5ni20vnVU5W99HjQh2x9qlATrwgHB6qsjfjO51AJcPyzY49luLkcB9rojxyTnNgehnMlvJ8agSxxSVpOoGmzAzLr7Jp4e5JO9psxqUfBVKCwwvjddjnyE01VSX1q7OF3zGBy6oUsIj3A= 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=W+lHq+PP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QHzDio5G; arc=none smtp.client-ip=205.220.180.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="W+lHq+PP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QHzDio5G" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqdmU3170748 for ; Tue, 24 Mar 2026 00:11:26 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= hhddJ5kzAwXmgYNZiN6SZ9YORt+zj9k6BZUbI0WSf7c=; b=W+lHq+PPTc8C3Cy5 UJigw8jXEaVrAmLvcErw6PTsCSzhf49VA1ccyId0Ytnc9qpPLgveTzkSfAfQV29s M+rtU0fdjt739jaZDC9YEaE0qe1DW6NiR4fSk6uP8tHAykujUQ977pKEYU7/O7xE 1OHD18z8qBaDBNsiLf4YnmLaRwmPwcyXaFscz/g6FF3A4jHlK59HNw+ArpFWMK2Y OkVGeCv6iLdglZD/9Rsa21Fw535/Uoixl+Dg4soBYn3/xrxOv2ZMb6bir+wbosxl VNUaA8nyJefkkIKSHTQPwKffdJ5R6s23mMSBnud+AFoBZJqq7L4smgJVHIzXWfA5 1QCgoA== 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 4d35r226t0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 24 Mar 2026 00:11:25 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-5093b92f327so351986351cf.1 for ; Mon, 23 Mar 2026 17:11:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774311085; x=1774915885; 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=hhddJ5kzAwXmgYNZiN6SZ9YORt+zj9k6BZUbI0WSf7c=; b=QHzDio5GAlmeQIWSUTu0ssr2vQTEut7y534tFyoceyXWLEqxAQ+Cd4FpQIM4Y5vb3M 4y8r7ADGvSNjK+hRtYe2LpREYb3i67jXB1K0gmMNuA/RGFtrkixGIBLmBbGnfmh3FziQ 6L/wQXtow7tnBwYQ7PcfcZsCoSBao92xgTSUHArS3RrqWOuYoRcCvaDrrWiuwKvHzwv/ udgE9gkvS+rckf0VcFm3JsbijNiTJFK635hwMEPlZVGQp+gOwlCtmjjKQjGVODSKF4eC IuHnIIEm3kZDgv3HoCniFT+bt8YHWwrM/PtPrjxh0+9boDrLC01TGlD5chQ0k9l77D4Y JvPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774311085; x=1774915885; 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=hhddJ5kzAwXmgYNZiN6SZ9YORt+zj9k6BZUbI0WSf7c=; b=aWiBcN3miLwZtOFjaBMbXEJ/MTe9oD5qQ29mI3byqArGirqUfR3V0c9a5ACxQ3Mpt7 rNsJ9ocV5cRc33TzWvwHb0OuofAaNJtfYxu0iHkcB54kbGIhx8xmNbfk2qFLqnqYvcBo lxX6Zdaw/97oaM0pf/UGHm6SJ2BZSNX1BtsHGvlHNoEgFPWENegrR4eWI5FvMDshWHrL vU/14BxTq0Y105bW4UoMejzZp4rLup0yo3E2SZwwC1HxF9/2KBYKQ+Y/iHxxD/+W6Ebu ETE31/34v+2e6fd9aYpnKwXV1II6tduBzNN5d6j6pll9j8YWfemYtPvL4N59rJAGYkJ4 7OBA== X-Forwarded-Encrypted: i=1; AJvYcCVQ9RswIknSlqzR9n/qiRQhtWmj1Z5EOkrPlki9nUnXLTVQHf5OdkmOLm/7NXq/8tvlfgwK7zjOa8+xo1U=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8QuDaSgNdun9bW3GfqHbmu0oMXmSdd87/eIX5/TacAzSgk7uE BYMTmI6+0p+skVtd/08BBd0FS2AQukwkbsgrwFu2kZRiQ00OOfv/LwpvvzQaOgxwVd1LmYAZmcr MNlWQ6/0QSjic6DcPN8QTIV1czDbP8n4BjjJ1BoZ5lkZ5uxVyJrRK/YwGju7iulxswJ8= X-Gm-Gg: ATEYQzzkO3HYjMxZlDZ92QKKtDtds3ayEcxErVIIizTaoZfP/PpcooOuSzK7vu7Mcwh zJY+9kiJxanBIG+ge7Sd8vBpdcpy5H14tBJiZUIB1aveJtKqZGYzojw8s8LPoFfo8gi4O/4cpH8 VvqGyjYJ5Qvm+N2QS0i5tTb8ETBaTx7x2r2XEFPGRw6iEbiM5QDZGHsGj9SOS/v1h4nqxFg5BUe Hu2kU+IQnGdZbqrQHiNhv3kShfwEK39Y/7Oxuc+iiWmdcGnm0niRmchp/CA09Bn/VnPvcemJbpi w45xuuiRZ3YJjyqKZ/fAM3VbGcMVb4azzuO58c/1d+6VChXjn35Dso6jJw5KK04ua43qGZMLZBf 7jOb266ozeC5sx5RJMCzYqIGiaVQDpI8wiC8MKzRVGdIcOcbhSbiSqLU6Y7jY2R7WAavD1O5IQ4 RBOYmG/nZdc3VsOq9lcXLSg0YfBg60/8VSlUA= X-Received: by 2002:a05:622a:4a07:b0:509:2053:ab60 with SMTP id d75a77b69052e-50b3753db18mr213490511cf.47.1774311084538; Mon, 23 Mar 2026 17:11:24 -0700 (PDT) X-Received: by 2002:a05:622a:4a07:b0:509:2053:ab60 with SMTP id d75a77b69052e-50b3753db18mr213490171cf.47.1774311083916; Mon, 23 Mar 2026 17:11:23 -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 38308e7fff4ca-38bf99820f6sm30339021fa.19.2026.03.23.17.11.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 17:11:21 -0700 (PDT) From: Dmitry Baryshkov Date: Tue, 24 Mar 2026 02:10:44 +0200 Subject: [PATCH v2 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: <20260324-msm8974-icc-v2-8-527280043ad8@oss.qualcomm.com> References: <20260324-msm8974-icc-v2-0-527280043ad8@oss.qualcomm.com> In-Reply-To: <20260324-msm8974-icc-v2-0-527280043ad8@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, Konrad Dybcio X-Mailer: b4 0.15.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=39625; i=dmitry.baryshkov@oss.qualcomm.com; h=from:subject:message-id; bh=thTbKT7zb2LhTfmvVHxYz+k6KtCKwik28ydRspB/nvU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBpwdaIYM5vAsl7jmE5EbmoMnOGCTZYnEEIDdYZQ wMijuzvEJWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCacHWiAAKCRCLPIo+Aiko 1VviCACSnS4v4ftw36RVz+61g4LA9ULPrZSeNh3SSwuziB5iiexMAzk/XF8GmFugtZXs5N8QHi3 Gb+Q+p2huu4wF4qRlG5y7W3XTKS1WoYKLTNrX5mqj/i0v9Vtb5QXN3DDCYyx2Byk9Z+4X0H1/lJ lv4atvxZ2kFVufln2YYTILl4iXeLkgPoybeQod931oF+vwL3yu92/Bko3nW/S5r8OaxBae4zlM8 PjNk0Pun15rMfojBWUyuYtWowZnx+HOUrn6CR0LInu8IOG5RlevsQm4G1Z92KeFLS1WqXttxqBH SGDkhEaoLBQurDXKRjc1l7JnOgemybVyg3u7+tr1K5CFCFHn X-Developer-Key: i=dmitry.baryshkov@oss.qualcomm.com; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-Authority-Analysis: v=2.4 cv=VvUuwu2n c=1 sm=1 tr=0 ts=69c1d6ad 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=gU3Gd9FrbIblE3rB6ncA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: EQHw-pzRa04MgqI46wuQ5wmrV-iL-uao X-Proofpoint-ORIG-GUID: EQHw-pzRa04MgqI46wuQ5wmrV-iL-uao X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI0MDAwMCBTYWx0ZWRfXyONzfmtIwxcb HmNXHSCRtesESKtAHSkUyz+88HhDffKI7DqmC8uYhH3TPg6/8VcA6tDVT6woX1uRT1YI1oGdaVa LcBhhe8Gf1vT01k08udmn0PkZYdoE5jWfKmV63/kbrEwll918MFzhBWSy1WtskTaVc/dNrUQUsc RQGeDCG1cuKFrvJrQgdGRQcc7U18Aay/2PWogQdc9l0/3DF83WW3Imq8So4uyKZy5cbjaJST7Lu IokEYtn/VHnrwxY0vKQRPYCT4NBK5DrHVZ8ENnD/LAA3UIDDQcJ8FWUcgt0EkM0GURPYgC1G+KT o/pszR1FmrRrRCsl0Z85/5/DfT5ylwcSKB9GY+6FPocB15hG6z2/5RZiNhEvZTe1tGLkd+9OfB5 G9k+pi4mnkAVRQZSjWoqVxFT2jJQSeJ33DKgHQCuaQpeJjzCkgAL0HLA9sx2Vjrlw9Oy+1x/v5d lbJNlBpZ84nqUr+3aXw== 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-23_07,2026-03-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 spamscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603240000 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. Acked-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- 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