[PATCH v3 0/3] arm64: dts: qcom: Add CSI2 PHY common-phy providers for SA8775P, QCS8300 and SC7280
From: Anusha Arun Nandi
Date: Thu Nov 05 2026 - 22:03:20 EST
This series adds devicetree nodes for the generic Qualcomm MIPI CSI2
PHY driver on the three platforms whose compatibles/soc_cfg were added
by the companion "phy: qcom-mipi-csi2: Add D-PHY support for SA8775P,
QCS8300 and SC7280".
Each CSIPHY is exposed as a standalone generic-PHY provider node at
its existing register address, with its own OF graph (port@0
sensor-facing, port@1 CAMSS-facing), so that camss_detect_legacy_phy()
picks the non-legacy path once a board wires a sensor through one of
them. The camss node's own reg-names/clocks/interrupts for the
CSIPHYs are left unchanged, so boards that don't use a provider still
fall back to the legacy in-driver CSIPHY handling. All provider nodes
are added disabled by default; a board or camera overlay enables the
one(s) it actually uses.
The three patches are otherwise independent and split one-per-SoC
since each touches a different dtsi file:
- Patch 1 adds the four SA8775P CSIPHYs (csiphy0-3) as
qcom,sa8775p-csi2-phy nodes.
- Patch 2 adds the three QCS8300 CSIPHYs (csiphy0-2) as
qcom,qcs8300-csi2-phy nodes.
- Patch 3 adds the five SC7280 CSIPHYs (csiphy0-4) as
qcom,sc7280-csi2-phy nodes.
This series depends on the compatible strings and soc_cfg entries
introduced by the driver series referenced below and should be applied
on top of it.
Depends-on: https://lore.kernel.org/all/20261105235137.2635442-1-anusha.nandi@xxxxxxxxxxxxxxxx/
Depends-on: https://lore.kernel.org/all/20261102213936.1251316-1-anusha.nandi@xxxxxxxxxxxxxxxx/
Changes in v3:
- Patch 1 (lemans): moved csiphy_opp_table out of the soc@0 simple-bus
to the root node (a simple-bus's direct children need reg/ranges,
which an OPP table has neither of), dropped the opp-300000000 entry
(SA8775P's camcc only defines a 400 MHz rate for this clock, so it
was unreachable), and reordered csiphy0..3 after camss so soc@0's
children stay sorted by ascending unit address.
- Patch 2 (monaco): same csiphy_opp_table root-node move, and dropped
both the opp-300000000 entry and the extra "csiphy_rx" clock from
csiphy0..2 (QCS8300 binds through the sa8775p soc_cfg, which only
declares two clocks, "core"/"timer", for this PHY).
- Patch 3 (kodiak): same csiphy_opp_table root-node move; its
opp-300000000 and opp-400000000 entries are both kept, since
SC7280's camcc genuinely supports both rates for this clock.
Link: https://lore.kernel.org/all/20261103221026.3662383-1-anusha.nandi@xxxxxxxxxxxxxxxx/
Changes in v2:
- Patch 1 (lemans): dropped the extra "csiphy_rx" clock from
csiphy0..3 (3 clocks -> 2: "core", "timer"), matching the driver's
sa8775p soc_cfg, which only declares two clocks for this SoC family.
- The "undocumented compatible" and "camss_detect_legacy_phy() does
not exist" comments on all three patches were resolved by the
companion phy-driver/binding series and CAMSS work landing, not by
a change to these dtsi patches themselves.
- Patches 2 (monaco) and 3 (kodiak) are otherwise unchanged from v1.
Link: https://lore.kernel.org/all/20261017001116.2318647-1-anusha.nandi@xxxxxxxxxxxxxxxx/
Anusha Arun Nandi (3):
arm64: dts: qcom: lemans: add CSI2 D-PHY common-phy providers
arm64: dts: qcom: monaco: add CSI2 PHY common-phy providers
arm64: dts: qcom: kodiak: add CSI2 D-PHY common-phy providers
arch/arm64/boot/dts/qcom/kodiak.dtsi | 172 +++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/lemans.dtsi | 136 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 104 ++++++++++++++++
3 files changed, 412 insertions(+)
Best regards,
--
Anusha Arun Nandi <anusha.nandi@xxxxxxxxxxxxxxxx>
--
2.34.1