[PATCH v18 09/11] arm64: dts: qcom: kaanapali: Add CAMSS and CSIPHY block definitions

sashiko-bot at kernel.org sashiko-bot at kernel.org
Sat Oct 3 02:19:48 PDT 2026


Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] dt-bindings: pm: mismatch between power-domains and required-opps in csiphy nodes
- [Medium] dt-bindings: media: missing internal SoC OF graph links between camss and csiphy
--

commit 14fbcf150a21f3b840f99ac0a615d5f91a887f84
Author: Hangxiang Ma <hangxiang.ma at oss.qualcomm.com>

arm64: dts: qcom: kaanapali: Add CAMSS and CSIPHY block definitions

Describe the CAMSS and CSIPHY blocks on Kaanapali so that camera pipelines
can be enabled by board device trees.

> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index e48a179d07220..7e5106865e7ee 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
[ ... ]
> +		camss: isp at 9253000 {
> +			compatible = "qcom,kaanapali-camss";
[ ... ]
> +			ports {
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				port at 0 {
> +					reg = <0>;
> +				};
> +
> +				port at 1 {
> +					reg = <1>;
> +				};

[Severity: Medium]
Will the camera subsystem data path break without endpoint nodes connecting
these CAMSS ports to the respective CSIPHY outputs?

The CAMSS driver checks for endpoints to discover non-legacy PHY nodes, so
missing them here could cause the CSIPHYs to fail to initialize during
probe. Should endpoints be added here to complete the internal SoC OF graph
links?

[ ... ]
> +		csiphy0: phy at 9523000 {
> +			compatible = "qcom,kaanapali-csi2-phy";
> +			reg = <0x0 0x09523000 0x0 0x2000>;
> +
> +			clocks = <&camcc CAM_CC_CSIPHY0_CLK>,
> +				 <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
> +				 <&camcc CAM_CC_CORE_AHB_CLK>;
> +			clock-names = "core",
> +				      "timer",
> +				      "ahb";
> +
> +			interrupts = <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>;
> +
> +			operating-points-v2 = <&csiphy_mxc_opp_table>;
> +
> +			power-domains = <&camcc CAM_CC_TITAN_TOP_GDSC>,
> +					<&rpmhpd RPMHPD_MMCX>,
> +					<&rpmhpd RPMHPD_MXC>;

[Severity: High]
Since this node declares 3 power domains but relies on an OPP table with only
2 required-opps, does this break index alignment?

The genpd framework maps required-opps positionally to the PM domains
specified in power-domains. This mismatch might cause incorrect performance
states to be applied to the wrong power domain (e.g. voting on a GDSC
instead of MMCX), leading to PM framework errors or hardware hangs.

Also, shouldn't there be a ports definition in this CSIPHY node to link
back to the CAMSS controller?

> +			power-domain-names = "top",
> +					     "mmcx",
> +					     "mx";
> +
> +			status = "disabled";
> +		};
[ ... ]
> +	csiphy_mxc_opp_table: opp-table-mxc {
> +		compatible = "operating-points-v2";
> +
> +		opp-300000000 {
> +			opp-hz = /bits/ 64 <300000000>;
> +			required-opps = <&rpmhpd_opp_low_svs_d1>,
> +					<&rpmhpd_opp_low_svs_d1>;

[Severity: High]
Does this required-opps array need to be padded to align with the 3 power
domains specified in the CSIPHY nodes above?

To correctly skip the GDSC at index 0, should it be padded like:
<0>, <&rpmhpd_opp_low_svs_d1>, <&rpmhpd_opp_low_svs_d1> ?

> +		};
> +
> +		opp-400000000 {
> +			opp-hz = /bits/ 64 <400000000>;
> +			required-opps = <&rpmhpd_opp_low_svs>,
> +					<&rpmhpd_opp_low_svs>;
> +		};

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261003-kaanapali-camss-v18-0-87ba4ebe0db1@oss.qualcomm.com?part=9



More information about the linux-phy mailing list