From nobody Sun Feb 8 10:34:03 2026 Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFBD52DF703 for ; Fri, 9 Jan 2026 04:34:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767933260; cv=none; b=PszUbxz32hcrNq0MbASYy3J7e6WmNMfFAd5yJi2Ht6eMDqmPhSBhpjLY8Hp1iqdSOifLntKLEwZtkAaxwyC0g5Ji292UZ9yvZweeSrNvTl8aHIimCCncMS28Wg0TmBebLlzvK4u/pZRTM7i+VNkp4T8gyWaFe8CqZm6d21FW0yg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767933260; c=relaxed/simple; bh=33yXA5X84j5X2Inou2mkRLIGkYkMufZN/4mCs7fNPZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eYrMNVg1wxJbJjkfZzVLNcYWWu123p8TpswSfkGy2WXkzECeiebj6kCXmScAsRg4Rt6+uxQrEEujO5nXOmrzh9apwnfrbYJ7Dq2Us07l/yNyjiyPj6VG8VSTj3A7IWYXzpfHH1toavuEaaiTnig/9zQjdQeMBeEjgSnePRUA95E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LJ3f927r; arc=none smtp.client-ip=209.85.167.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LJ3f927r" Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-459993ff4fcso1578023b6e.1 for ; Thu, 08 Jan 2026 20:34:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767933257; x=1768538057; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ACJISfP21Ie/BirwtcA8KH1aWZAyhx+gs7w+TQSqs7A=; b=LJ3f927rUHfDTHZXGgips25MsTXisMaRCWjM87ViSA8CKGhwW3fDfPKvecehunT69G rS9f2BAvaBuEqpvJsZErCT4tnIRml21HTo5RxsM5GyYWvUdJN6iILHdRgrT2a7GbdMSR 6EDvJ17kQxvahTVndzH/VQ+ZGXJag7c+jwnKbb2yHvYRWpz6+Ycqw2xcqXlWBzdfWYIi Z4zbIqo2P1qNXPCiOVzmMcd4L7r1Dl6TDyKB7imbtqDmLu6n1KwR5lbYv3hOGw6yakpV TVgAUF1Xvg8jccPdhN9UADF6P/mwhSjeKArfyEHkI2ECxDNvcLFOo7O693D0dK9Axbti N30g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767933257; x=1768538057; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ACJISfP21Ie/BirwtcA8KH1aWZAyhx+gs7w+TQSqs7A=; b=NJoLNhwwnYNQ+tx/PfpJzSa1X5t+KjJebo2dKg5F7yrVHlQ1eSOSSgQnH6fF49xHyL GdJMYZQv2ucMkJgXf8SnVM7rGWOo8Rz4I05os9p4zLCogzB+jJFiFHBJMi+FZL/zyNNx iheeANnJE88E8ucgvq3ghvYmfNPao5bsBeDlhDDBKZEL5lPY37TRpVRD9LNCX0jC1rxz GOFz07vsySteIz0Gh8aBjRsMT3N4P0ywCMxQh5Gu0XTpjLjq+2tNVvwv66twrnqOumqh UbCbjyg0tGLIHtadJ3UlUvEHjp9lMwjMMR4IHI4q1uPIRpwdGHh1iuBSpMtRv8fU0c9u W76A== X-Forwarded-Encrypted: i=1; AJvYcCUkWnLpTjqywLn+7BIWVAomJRjRbjPpUn8p6To3MtJ6HK1gkr+gFl+4uC4uh+Xag8H+lqu8PX6LkwgsM0A=@vger.kernel.org X-Gm-Message-State: AOJu0Yxtln6YTBnZScXIb3EVlK4cxTmooPCkP/3FdUmkbOg7NPfMaGbG RW6BV5IgtpdcfxoHRh9L7p5qcWvJ7Qq9XaD1f6ctRpsoboC19u+dBHD+ X-Gm-Gg: AY/fxX6ZRvStEwqGDbuC6FuCiRQQeGVgxsBXzMBhlefPEx/82gQ2/yWkFmwL1pEBqPs R+2C73iDmGcqNflOnD1G9o5dnR2WIo3Gkqa6liapvknsoBmiELhp1Xh39RdrmGqWb9EfoUJEe4f 0dC+HV2QdqnbPQ+KpL0kNVeN16REMfdtSZw5MPLP+LARA98gAW/4dxnLuSUtB2IayCczna2G9L/ yZ9xej7m1gBGKD24TLZzLVSKlotrkBE93SLKKV4xXFP9chuO/U6ze3CQ2EVEyaKrp6DvtlPpEd3 0yJ1wB4logr3U6upfXJjkQHtpq3kHoGri8vtM54CsbmWWudBaZDvgYAcxjwdHEyzR1iWiNY1qvW n0KzbkDK4bOtMuCUmQJK4WSUN18SORRfeZwHwrhS6tiM3ubtUFsWvrS0nnTQ1DBhcsDSW4uUKE7 /z9mb0HQmUAkcJaB/2/N+Dpij5BDadkWjY9fTBErQPrsnuPV+5HJcOcXmlWHR9Y18qf8ZljqYpC Prsm05179jwm2SdEWiH7t/FSKDT X-Google-Smtp-Source: AGHT+IFakqTn0habHQ1az5nQ3iemziN1LC+QmeJFnnM1u9UYtigokv/161u0WDt+GH4sb3tQjnF0cA== X-Received: by 2002:a05:6808:1311:b0:450:d693:4d2d with SMTP id 5614622812f47-45a6bebb60emr4317159b6e.33.1767933256577; Thu, 08 Jan 2026 20:34:16 -0800 (PST) Received: from nukework.lan (c-98-57-15-22.hsd1.tx.comcast.net. [98.57.15.22]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-3ffa515f4dasm6274421fac.21.2026.01.08.20.34.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jan 2026 20:34:15 -0800 (PST) From: Alexandru Gagniuc To: andersson@kernel.org, krzk+dt@kernel.org, mturquette@baylibre.com, linux-remoteproc@vger.kernel.org, Stephen Boyd Cc: mathieu.poirier@linaro.org, robh@kernel.org, conor+dt@kernel.org, konradybcio@kernel.org, p.zabel@pengutronix.de, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Alexandru Gagniuc Subject: [PATCH v2 6/9] clk: qcom: gcc-ipq9574: add wcss remoteproc clocks Date: Thu, 8 Jan 2026 22:33:41 -0600 Message-ID: <20260109043352.3072933-7-mr.nuke.me@gmail.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20260109043352.3072933-1-mr.nuke.me@gmail.com> References: <20260109043352.3072933-1-mr.nuke.me@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Commit fa1d525404b6 ("clk: qcom: ipq9574: remove q6 bring up clocks") removed these clocks on the idea that Q6 firmware is responsible for clock bringup. That statement seems incorrect, as these clocks need to be enabled before the Q6 is booted. Otherwise, the host CPU core that starts the Q6 hangs. Perhaps the statement meant that the TrustZone firmware will start the clocks. This only happens in PAS mode. Under native OS loading, the host needs to enable these clocks, so add them back. Besides the clocks that were erroneously removed, also add defines for GCC_WCSS_AHB_S_CLK, GCC_WCSS_AXI_M_CLK, and GCC_Q6_AXIM2_CLK. These clocks are required in order to operate the remoteproc. Signed-off-by: Alexandru Gagniuc --- drivers/clk/qcom/gcc-ipq9574.c | 378 +++++++++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c index 6dc86e686de4..aef5ed5cd9f5 100644 --- a/drivers/clk/qcom/gcc-ipq9574.c +++ b/drivers/clk/qcom/gcc-ipq9574.c @@ -2659,6 +2659,24 @@ static struct clk_rcg2 system_noc_bfdcd_clk_src =3D { }, }; =20 +static struct clk_branch gcc_q6ss_boot_clk =3D { + .halt_reg =3D 0x25080, + .halt_check =3D BRANCH_HALT_SKIP, + .clkr =3D { + .enable_reg =3D 0x25080, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6ss_boot_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &system_noc_bfdcd_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_nssnoc_snoc_clk =3D { .halt_reg =3D 0x17028, .clkr =3D { @@ -2729,6 +2747,108 @@ static struct clk_rcg2 wcss_ahb_clk_src =3D { }, }; =20 +static struct clk_branch gcc_q6_ahb_clk =3D { + .halt_reg =3D 0x25014, + .clkr =3D { + .enable_reg =3D 0x25014, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6_ahb_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_q6_ahb_s_clk =3D { + .halt_reg =3D 0x25018, + .clkr =3D { + .enable_reg =3D 0x25018, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6_ahb_s_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_ecahb_clk =3D { + .halt_reg =3D 0x25058, + .clkr =3D { + .enable_reg =3D 0x25058, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_ecahb_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_acmt_clk =3D { + .halt_reg =3D 0x2505c, + .clkr =3D { + .enable_reg =3D 0x2505c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_acmt_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + + +static struct clk_branch gcc_wcss_ahb_s_clk =3D { + .halt_reg =3D 0x25060, + .clkr =3D { + .enable_reg =3D 0x25060, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data) { + .name =3D "gcc_wcss_ahb_s_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_sys_noc_wcss_ahb_clk =3D { + .halt_reg =3D 0x2e030, + .clkr =3D { + .enable_reg =3D 0x2e030, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_sys_noc_wcss_ahb_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_ahb_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static const struct freq_tbl ftbl_wcss_axi_m_clk_src[] =3D { F(24000000, P_XO, 1, 0, 0), F(133333333, P_GPLL0, 6, 0, 0), @@ -2749,6 +2869,39 @@ static struct clk_rcg2 wcss_axi_m_clk_src =3D { }, }; =20 +static struct clk_branch gcc_wcss_axi_m_clk =3D { + .halt_reg =3D 0x25064, + .clkr =3D { + .enable_reg =3D 0x25064, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data) { + .name =3D "gcc_wcss_axi_m_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_axi_m_clk_src.clkr.hw }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_anoc_wcss_axi_m_clk =3D { + .halt_reg =3D 0x2e0a8, + .clkr =3D { + .enable_reg =3D 0x2e0a8, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_anoc_wcss_axi_m_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &wcss_axi_m_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static const struct freq_tbl ftbl_qdss_at_clk_src[] =3D { F(240000000, P_GPLL4, 5, 0, 0), { } @@ -2767,6 +2920,40 @@ static struct clk_rcg2 qdss_at_clk_src =3D { }, }; =20 +static struct clk_branch gcc_q6ss_atbm_clk =3D { + .halt_reg =3D 0x2501c, + .clkr =3D { + .enable_reg =3D 0x2501c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6ss_atbm_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_at_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_dbg_ifc_atb_clk =3D { + .halt_reg =3D 0x2503c, + .clkr =3D { + .enable_reg =3D 0x2503c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_dbg_ifc_atb_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_at_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_nssnoc_atb_clk =3D { .halt_reg =3D 0x17014, .clkr =3D { @@ -3003,6 +3190,40 @@ static struct clk_fixed_factor qdss_tsctr_div2_clk_s= rc =3D { }, }; =20 +static struct clk_branch gcc_q6_tsctr_1to2_clk =3D { + .halt_reg =3D 0x25020, + .clkr =3D { + .enable_reg =3D 0x25020, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6_tsctr_1to2_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_tsctr_div2_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_dbg_ifc_nts_clk =3D { + .halt_reg =3D 0x25040, + .clkr =3D { + .enable_reg =3D 0x25040, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_dbg_ifc_nts_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_tsctr_div2_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_qdss_tsctr_div2_clk =3D { .halt_reg =3D 0x2d044, .clkr =3D { @@ -3177,6 +3398,74 @@ static struct clk_branch gcc_qdss_tsctr_div16_clk = =3D { }, }; =20 +static struct clk_branch gcc_q6ss_pclkdbg_clk =3D { + .halt_reg =3D 0x25024, + .clkr =3D { + .enable_reg =3D 0x25024, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6ss_pclkdbg_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_dap_sync_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_q6ss_trig_clk =3D { + .halt_reg =3D 0x25068, + .clkr =3D { + .enable_reg =3D 0x25068, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6ss_trig_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_dap_sync_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_dbg_ifc_apb_clk =3D { + .halt_reg =3D 0x25038, + .clkr =3D { + .enable_reg =3D 0x25038, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_dbg_ifc_apb_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_dap_sync_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_dbg_ifc_dapbus_clk =3D { + .halt_reg =3D 0x25044, + .clkr =3D { + .enable_reg =3D 0x25044, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_dbg_ifc_dapbus_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &qdss_dap_sync_clk_src.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_qdss_dap_clk =3D { .halt_reg =3D 0x2d058, .clkr =3D { @@ -3298,6 +3587,58 @@ static struct clk_rcg2 q6_axi_clk_src =3D { }, }; =20 +static struct clk_branch gcc_q6_axim_clk =3D { + .halt_reg =3D 0x2500c, + .clkr =3D { + .enable_reg =3D 0x2500c, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_q6_axim_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &q6_axi_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_wcss_q6_tbu_clk =3D { + .halt_reg =3D 0x12050, + .halt_check =3D BRANCH_HALT_DELAY, + .clkr =3D { + .enable_reg =3D 0xb00c, + .enable_mask =3D BIT(6), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_wcss_q6_tbu_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &q6_axi_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_mem_noc_q6_axi_clk =3D { + .halt_reg =3D 0x19010, + .clkr =3D { + .enable_reg =3D 0x19010, + .enable_mask =3D BIT(0), + .hw.init =3D &(const struct clk_init_data) { + .name =3D "gcc_mem_noc_q6_axi_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &q6_axi_clk_src.clkr.hw + }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static const struct freq_tbl ftbl_q6_axim2_clk_src[] =3D { F(342857143, P_GPLL4, 3.5, 0, 0), { } @@ -3323,6 +3664,22 @@ static struct clk_rcg2 q6_axim2_clk_src =3D { }, }; =20 +static struct clk_branch gcc_q6_axim2_clk =3D { + .halt_reg =3D 0x25010, + .clkr =3D { + .enable_reg =3D 0x25010, + .enable_mask =3D BIT(0), + .hw.init =3D &(struct clk_init_data) { + .name =3D "gcc_q6_axim2_clk", + .parent_hws =3D (const struct clk_hw *[]) { + &q6_axim2_clk_src.clkr.hw }, + .num_parents =3D 1, + .flags =3D CLK_SET_RATE_PARENT, + .ops =3D &clk_branch2_ops, + }, + }, +}; + static const struct freq_tbl ftbl_nssnoc_memnoc_bfdcd_clk_src[] =3D { F(533333333, P_GPLL0, 1.5, 0, 0), { } @@ -3847,8 +4204,18 @@ static struct clk_regmap *gcc_ipq9574_clks[] =3D { [GCC_NSSNOC_SNOC_1_CLK] =3D &gcc_nssnoc_snoc_1_clk.clkr, [GCC_QDSS_ETR_USB_CLK] =3D &gcc_qdss_etr_usb_clk.clkr, [WCSS_AHB_CLK_SRC] =3D &wcss_ahb_clk_src.clkr, + [GCC_Q6_AHB_CLK] =3D &gcc_q6_ahb_clk.clkr, + [GCC_Q6_AHB_S_CLK] =3D &gcc_q6_ahb_s_clk.clkr, + [GCC_WCSS_ECAHB_CLK] =3D &gcc_wcss_ecahb_clk.clkr, + [GCC_WCSS_ACMT_CLK] =3D &gcc_wcss_acmt_clk.clkr, + [GCC_WCSS_AHB_S_CLK] =3D &gcc_wcss_ahb_s_clk.clkr, + [GCC_SYS_NOC_WCSS_AHB_CLK] =3D &gcc_sys_noc_wcss_ahb_clk.clkr, [WCSS_AXI_M_CLK_SRC] =3D &wcss_axi_m_clk_src.clkr, + [GCC_WCSS_AXI_M_CLK] =3D &gcc_wcss_axi_m_clk.clkr, + [GCC_ANOC_WCSS_AXI_M_CLK] =3D &gcc_anoc_wcss_axi_m_clk.clkr, [QDSS_AT_CLK_SRC] =3D &qdss_at_clk_src.clkr, + [GCC_Q6SS_ATBM_CLK] =3D &gcc_q6ss_atbm_clk.clkr, + [GCC_WCSS_DBG_IFC_ATB_CLK] =3D &gcc_wcss_dbg_ifc_atb_clk.clkr, [GCC_NSSNOC_ATB_CLK] =3D &gcc_nssnoc_atb_clk.clkr, [GCC_QDSS_AT_CLK] =3D &gcc_qdss_at_clk.clkr, [GCC_SYS_NOC_AT_CLK] =3D &gcc_sys_noc_at_clk.clkr, @@ -3861,19 +4228,29 @@ static struct clk_regmap *gcc_ipq9574_clks[] =3D { [QDSS_TRACECLKIN_CLK_SRC] =3D &qdss_traceclkin_clk_src.clkr, [GCC_QDSS_TRACECLKIN_CLK] =3D &gcc_qdss_traceclkin_clk.clkr, [QDSS_TSCTR_CLK_SRC] =3D &qdss_tsctr_clk_src.clkr, + [GCC_Q6_TSCTR_1TO2_CLK] =3D &gcc_q6_tsctr_1to2_clk.clkr, + [GCC_WCSS_DBG_IFC_NTS_CLK] =3D &gcc_wcss_dbg_ifc_nts_clk.clkr, [GCC_QDSS_TSCTR_DIV2_CLK] =3D &gcc_qdss_tsctr_div2_clk.clkr, [GCC_QDSS_TS_CLK] =3D &gcc_qdss_ts_clk.clkr, [GCC_QDSS_TSCTR_DIV4_CLK] =3D &gcc_qdss_tsctr_div4_clk.clkr, [GCC_NSS_TS_CLK] =3D &gcc_nss_ts_clk.clkr, [GCC_QDSS_TSCTR_DIV8_CLK] =3D &gcc_qdss_tsctr_div8_clk.clkr, [GCC_QDSS_TSCTR_DIV16_CLK] =3D &gcc_qdss_tsctr_div16_clk.clkr, + [GCC_Q6SS_PCLKDBG_CLK] =3D &gcc_q6ss_pclkdbg_clk.clkr, + [GCC_Q6SS_TRIG_CLK] =3D &gcc_q6ss_trig_clk.clkr, + [GCC_WCSS_DBG_IFC_APB_CLK] =3D &gcc_wcss_dbg_ifc_apb_clk.clkr, + [GCC_WCSS_DBG_IFC_DAPBUS_CLK] =3D &gcc_wcss_dbg_ifc_dapbus_clk.clkr, [GCC_QDSS_DAP_CLK] =3D &gcc_qdss_dap_clk.clkr, [GCC_QDSS_APB2JTAG_CLK] =3D &gcc_qdss_apb2jtag_clk.clkr, [GCC_QDSS_TSCTR_DIV3_CLK] =3D &gcc_qdss_tsctr_div3_clk.clkr, [QPIC_IO_MACRO_CLK_SRC] =3D &qpic_io_macro_clk_src.clkr, [GCC_QPIC_IO_MACRO_CLK] =3D &gcc_qpic_io_macro_clk.clkr, [Q6_AXI_CLK_SRC] =3D &q6_axi_clk_src.clkr, + [GCC_Q6_AXIM_CLK] =3D &gcc_q6_axim_clk.clkr, + [GCC_WCSS_Q6_TBU_CLK] =3D &gcc_wcss_q6_tbu_clk.clkr, + [GCC_MEM_NOC_Q6_AXI_CLK] =3D &gcc_mem_noc_q6_axi_clk.clkr, [Q6_AXIM2_CLK_SRC] =3D &q6_axim2_clk_src.clkr, + [GCC_Q6_AXIM2_CLK] =3D &gcc_q6_axim2_clk.clkr, [NSSNOC_MEMNOC_BFDCD_CLK_SRC] =3D &nssnoc_memnoc_bfdcd_clk_src.clkr, [GCC_NSSNOC_MEMNOC_CLK] =3D &gcc_nssnoc_memnoc_clk.clkr, [GCC_NSSNOC_MEM_NOC_1_CLK] =3D &gcc_nssnoc_mem_noc_1_clk.clkr, @@ -3896,6 +4273,7 @@ static struct clk_regmap *gcc_ipq9574_clks[] =3D { [GCC_UNIPHY1_SYS_CLK] =3D &gcc_uniphy1_sys_clk.clkr, [GCC_UNIPHY2_SYS_CLK] =3D &gcc_uniphy2_sys_clk.clkr, [GCC_CMN_12GPLL_SYS_CLK] =3D &gcc_cmn_12gpll_sys_clk.clkr, + [GCC_Q6SS_BOOT_CLK] =3D &gcc_q6ss_boot_clk.clkr, [UNIPHY_SYS_CLK_SRC] =3D &uniphy_sys_clk_src.clkr, [NSS_TS_CLK_SRC] =3D &nss_ts_clk_src.clkr, [GCC_ANOC_PCIE0_1LANE_M_CLK] =3D &gcc_anoc_pcie0_1lane_m_clk.clkr, --=20 2.45.1