All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Shawn Guo" <shengchao.guo@oss.qualcomm.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v14 3/6] arm64: dts: qcom: Add device tree for Nord Embedded variant
Date: Thu, 03 Sep 2026 14:19:38 +0000	[thread overview]
Message-ID: <20260903141938.CD2E91F00AC4@smtp.kernel.org> (raw)
In-Reply-To: <20260903140617.441111-4-shengchao.guo@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Mismatch between `power-domains` and `required-opps` in `ufs_mem_hc`.
- [High] The UFS PHY clocks are not wired to the `negcc` clock controller, breaking the UFS clock hierarchy.
--

commit 7034c99626d2986e3ca10a97a1a9799d821d7a58
Author: Shawn Guo <shengchao.guo@oss.qualcomm.com>

arm64: dts: qcom: Add device tree for Nord Embedded variant
    
Unlike the GearVM variant, Nord Embedded variant has platform resources
(clocks, regulators, powerdomains, pins, etc.) directly controlled by
the operating system. Add a separate dtsi file extending the existing
top-level nord.dtsi with nodes representing these peripherals as well as
describing how they are wired up with the already defined components.

> diff --git a/arch/arm64/boot/dts/qcom/nord-embedded.dtsi b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi
> new file mode 100644
> index 0000000000000..1a2f61a2c9522
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/nord-embedded.dtsi
> @@ -0,0 +1,1820 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */

[ ... ]

> +	negcc: clock-controller@8900000 {
> +		compatible = "qcom,nord-negcc";
> +		reg = <0x0 0x08900000 0x0 0xf4200>;
> +		clocks = <&bi_tcxo_div2>,
> +			 <&sleep_clk>,
> +			 <0>,
> +			 <0>,
> +			 <0>,
> +			 <0>,
> +			 <0>;

[Severity: High]
Does this missing parent clock configuration break the UFS clock hierarchy?

The UFS probe routine acquires its symbol clocks (like NE_GCC_UFS_PHY_TX_SYMBOL_0_CLK)
from negcc. With these dummy <0> entries, the symbol clocks lack a source from the 
UFS PHY (ufs_mem_phy), which will cause clk_get_rate() to return 0 and UFS 
initialization to fail.

Could these be updated to reference the UFS PHY clocks instead?

[ ... ]

> +&ufs_mem_hc {
> +	clocks = <&negcc NE_GCC_UFS_PHY_AXI_CLK>,
> +		 <&negcc NE_GCC_AGGRE_NOC_UFS_PHY_AXI_CLK>,
> +		 <&negcc NE_GCC_UFS_PHY_AHB_CLK>,
> +		 <&negcc NE_GCC_UFS_PHY_UNIPRO_CORE_CLK>,
> +		 <&tcsrcc TCSR_UFS_CLKREF_EN>,
> +		 <&negcc NE_GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
> +		 <&negcc NE_GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
> +		 <&negcc NE_GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
> +	clock-names = "core_clk",
> +		      "bus_aggr_clk",
> +		      "iface_clk",
> +		      "core_clk_unipro",
> +		      "ref_clk",
> +		      "tx_lane0_sync_clk",
> +		      "rx_lane0_sync_clk",
> +		      "rx_lane1_sync_clk";
> +
> +	resets = <&negcc NE_GCC_UFS_PHY_BCR>;
> +	reset-names = "rst";
> +
> +	interconnects = <&aggre1_noc_tile MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
> +			 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> +			<&hscnoc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
> +			 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
> +	interconnect-names = "ufs-ddr",
> +			     "cpu-ufs";
> +
> +	phys = <&ufs_mem_phy>;
> +	phy-names = "ufsphy";
> +
> +	power-domains = <&negcc NE_GCC_UFS_PHY_GDSC>;
> +	operating-points-v2 = <&ufs_opp_table>;
> +	required-opps = <&rpmhpd_opp_nom>;

[Severity: High]
Does this mix of a GDSC power domain and an RPMh performance state cause
frequency scaling failures during UFS probe?

The negcc clock controller that provides NE_GCC_UFS_PHY_GDSC does not appear to
declare a parent power domain (like rpmhpd). Because of this, when dev_pm_opp_set_opp()
is called, the OPP framework won't be able to translate or forward the rpmhpd_opp_nom
performance state, which will result in an error.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260903140617.441111-1-shengchao.guo@oss.qualcomm.com?part=3

  reply	other threads:[~2026-09-03 14:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-03 14:06 [PATCH v14 0/6] Add initial device trees for Nord platform Shawn Guo
2026-09-03 14:06 ` [PATCH v14 1/6] arm64: dts: qcom: Add device tree for Nord SoC series Shawn Guo
2026-09-03 14:06 ` [PATCH v14 2/6] arm64: dts: qcom: Add device tree for Nord GearVM variant Shawn Guo
2026-09-03 14:06 ` [PATCH v14 3/6] arm64: dts: qcom: Add device tree for Nord Embedded variant Shawn Guo
2026-09-03 14:19   ` sashiko-bot [this message]
2026-09-03 14:06 ` [PATCH v14 4/6] dt-bindings: arm: qcom: Document Nord reference boards Shawn Guo
2026-09-03 14:06 ` [PATCH v14 5/6] arm64: dts: qcom: Add device tree for Nord Ride board Shawn Guo
2026-09-03 14:06 ` [PATCH v14 6/6] arm64: dts: qcom: Add device tree for Nord RRD board Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260903141938.CD2E91F00AC4@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=shengchao.guo@oss.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.