From: sashiko-bot@kernel.org
To: "Anusha Arun Nandi" <anusha.nandi@oss.qualcomm.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v3 3/3] arm64: dts: qcom: kodiak: add CSI2 D-PHY common-phy providers
Date: Fri, 06 Nov 2026 03:12:25 +0000 [thread overview]
Message-ID: <sashiko-outbox-200629@kernel.org> (raw)
In-Reply-To: <20261106030212.2811027-4-anusha.nandi@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] arm64: dts: qcom: kodiak: undocumented qcom,sc7280-csi2-phy compatible
- [Medium] arm64: dts: qcom: kodiak: single power-domain on csiphy0..4 breaks probe
- [Low] arm64: dts: qcom: kodiak: csiphy0..4 placed out of unit-address order
--
commit 052b5f2483e5e0bfe39a886df72e88b30b2413ff
Author: Anusha Arun Nandi <anusha.nandi@oss.qualcomm.com>
arm64: dts: qcom: kodiak: add CSI2 D-PHY common-phy providers
This commit adds five standalone CSI2 D-PHY generic-PHY provider nodes
(csiphy0 through csiphy4) and their operating points table to kodiak.dtsi
for SC7280.
> diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> index 8c7523602d271..e0e1fef7882ec 100644
> --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
[ ... ]
> @@ -5164,6 +5176,166 @@ cci1_i2c1: i2c-bus@1 {
> };
> };
>
> + csiphy0: phy@ace0000 {
> + compatible = "qcom,sc7280-csi2-phy";
[Severity: Medium]
As reported by Sashiko on v2 [1], is the qcom,sc7280-csi2-phy compatible
string used on csiphy0 through csiphy4 documented in the Devicetree
bindings or supported by a driver in the tree?
In Documentation/devicetree/bindings/phy/qcom,x1e80100-csi2-phy.yaml,
only qcom,x1e80100-csi2-phy and qcom,glymur-csi2-phy are listed:
compatible:
oneOf:
- const: qcom,x1e80100-csi2-phy
- items:
- const: qcom,glymur-csi2-phy
- const: qcom,x1e80100-csi2-phy
Likewise, phy_qcom_mipi_csi2_of_match_table in
drivers/phy/qualcomm/phy-qcom-mipi-csi2-core.c only matches
qcom,x1e80100-csi2-phy:
static const struct of_device_id phy_qcom_mipi_csi2_of_match_table[] = {
{ .compatible = "qcom,x1e80100-csi2-phy", .data = &mipi_csi2_dphy_4nm_x1e },
{ }
};
When a board or overlay enables one of csiphy0 through csiphy4 and connects
a sensor through it, camss_detect_legacy_phy() selects the non-legacy PHY
path and camss_init_subdevices() -> msm_csiphy_subdev_init() calls
devm_phy_get_by_of_node():
csiphy->phy = devm_phy_get_by_of_node(dev, remote);
of_node_put(remote);
if (IS_ERR(csiphy->phy)) {
ret = PTR_ERR(csiphy->phy);
goto done;
}
Without a matching PHY driver registered for qcom,sc7280-csi2-phy, will
dtbs_check fail validation and msm_csiphy_subdev_init() return
-EPROBE_DEFER indefinitely?
> + reg = <0x0 0x0ace0000 0x0 0x2000>;
> +
> + clocks = <&camcc CAM_CC_CSIPHY0_CLK>,
> + <&camcc CAM_CC_CSI0PHYTIMER_CLK>;
> + clock-names = "core",
> + "timer";
> +
> + interrupts = <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>;
> +
> + operating-points-v2 = <&csiphy_opp_table>;
> +
> + power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>;
> + power-domain-names = "top";
[Severity: Medium]
As reported by Sashiko on v2 [2], will specifying a single entry in
power-domains on csiphy0 through csiphy4 cause probing with the Qualcomm
MIPI CSI2 PHY driver to fail with -EEXIST?
When a platform device has a single power-domains entry,
platform_probe() -> dev_pm_domain_attach() -> genpd_dev_pm_attach()
attaches that domain directly to dev->pm_domain before invoking the
driver's probe callback:
if (of_count_phandle_with_args(dev->of_node, "power-domains",
"#power-domain-cells") != 1)
return 0;
return __genpd_dev_pm_attach(dev, dev, 0, 1, true);
Subsequently, phy_qcom_mipi_csi2_probe() calls
phy_qcom_mipi_csi2_attach_pm_domains() -> devm_pm_domain_attach_list() ->
dev_pm_domain_attach_list(), which rejects devices that already have
dev->pm_domain populated:
if (dev->pm_domain)
return -EEXIST;
In addition, shouldn't csiphy0 through csiphy4 and csiphy_opp_table also
specify the RPMHPD voltage rail power domains and required-opps needed for
scaling between the 300 MHz and 400 MHz OPPs in
phy_qcom_mipi_csi2_set_clock_rates()?
[ ... ]
> + csiphy4: phy@ace8000 {
> + compatible = "qcom,sc7280-csi2-phy";
> + reg = <0x0 0x0ace8000 0x0 0x2000>;
[ ... ]
> + };
> +
> camss: isp@acb3000 {
> compatible = "qcom,sc7280-camss";
[Severity: Low]
As reported by Sashiko on v2 [3], this isn't a bug, but csiphy0 through
csiphy4 (phy@ace0000 through phy@ace8000) are placed before
camss: isp@acb3000 even though 0xace0000 is higher than 0xacb3000. Should
phy@ace0000 through phy@ace8000 be placed after isp@acb3000 (and before
camcc: clock-controller@ad00000) to keep the child nodes of soc@0 sorted
by unit address?
Also, the commit message states that csiphy_opp_table "moves to the root
node" and that its entries "are both kept unchanged", which describes
changes between patch revisions rather than against the baseline tree.
[1] https://lore.kernel.org/r/20261103221026.3662383-4-anusha.nandi@oss.qualcomm.com
[2] https://lore.kernel.org/r/20261103221026.3662383-4-anusha.nandi@oss.qualcomm.com
[3] https://lore.kernel.org/r/20261103221026.3662383-4-anusha.nandi@oss.qualcomm.com
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261106030212.2811027-1-anusha.nandi@oss.qualcomm.com?part=3
next prev parent reply other threads:[~2026-11-06 3:12 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 3:02 [PATCH v3 0/3] arm64: dts: qcom: Add CSI2 PHY common-phy providers for SA8775P, QCS8300 and SC7280 Anusha Arun Nandi
2026-11-06 3:02 ` [PATCH v3 1/3] arm64: dts: qcom: lemans: add CSI2 D-PHY common-phy providers Anusha Arun Nandi
2026-11-06 3:13 ` sashiko-bot
2026-11-06 3:02 ` [PATCH v3 2/3] arm64: dts: qcom: monaco: add CSI2 PHY " Anusha Arun Nandi
2026-11-06 3:13 ` sashiko-bot
2026-11-06 3:02 ` [PATCH v3 3/3] arm64: dts: qcom: kodiak: add CSI2 D-PHY " Anusha Arun Nandi
2026-11-06 3:12 ` sashiko-bot [this message]
2026-11-06 18:51 ` [PATCH v3 0/3] arm64: dts: qcom: Add CSI2 PHY common-phy providers for SA8775P, QCS8300 and SC7280 Bjorn Andersson
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=sashiko-outbox-200629@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=anusha.nandi@oss.qualcomm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.