[PATCH 0/7] phy: qcom-mipi-csi2: Add D-PHY support for sa8775p, qcs8300 and sc7280
From: Anusha Arun Nandi
Date: Fri Oct 16 2026 - 19:55:16 EST
This series extends the generic Qualcomm MIPI CSI2 PHY driver
(drivers/phy/qualcomm/phy-qcom-mipi-csi2-*) with three additional
CSIPHY variants: SA8775P, QCS8300 and SC7280. The driver currently
only supports x1e80100; these SoCs let CAMSS consume the CSIPHY through
the common PHY framework instead of the CSIPHY logic embedded in the
legacy in-tree CAMSS driver.
All three targets share one hardware trait that x1e80100 does not:
each has a single CSIPHY power-domain ("top", the Titan Top GDSC)
instead of three. Patch 1 fixes a latent bug this exposes: for a
single-power-domain device, the generic platform-bus code
auto-attaches the domain before probe() runs, so the driver's own
unconditional devm_pm_domain_attach_list() call fails with -EEXIST.
x1e80100 never hit this because auto-attach only applies when there
is exactly one power-domain phandle. This fix is a prerequisite for
every patch that follows and is kept first per bisectability.
The remaining patches add each SoC as its own variant, per the usual
split of core/generic changes from SoC-specific data:
- Patches 2-3 add the devicetree binding for SA8775P, then extend it
to QCS8300, which reuses the exact same CSIPHY (same D-PHY register
layout, common-control offset and clock set) as a second compatible
string in one schema rather than a duplicate file.
- Patch 4 adds the SA8775P driver-side soc_cfg (register init sequence
ported from the legacy camss-csiphy-3ph-1-0.c table, clocks and
power-domain), and generalises the previously-hardcoded "timer"/
"core" clock-name string literals in the probe path into per-SoC
soc_cfg fields so other SoCs can declare their own.
- Patch 5 binds QCS8300 to the same soc_cfg added in patch 4 -- no new
register data or power-domain wiring is needed.
- Patches 6-7 repeat the binding + driver split for SC7280, which has
its own register set and only two clocks.
Tested on sa8775p, qcs8300 and sc7280.
Depends-on: https://lore.kernel.org/all/20260917-x1e-csi2-phy-v18-0-6515b5255fa9@xxxxxxxxxx/
Depends-on: https://lore.kernel.org/all/20260918-b4-linux-next-25-03-13-dtsi-x1e80100-camss-v20-0-dc244e124e71@xxxxxxxxxx/
Anusha Arun Nandi (7):
phy: qcom-mipi-csi2: fix -EEXIST probe failure on single power-domain
SoCs
dt-bindings: phy: qcom: Add qcom,sa8775p-csi2-phy schema
dt-bindings: phy: qcom: Add qcs8300 to the CSI2 PHY schema
phy: qcom-mipi-csi2: Add sa8775p D-PHY support
phy: qcom-mipi-csi2: Add qcs8300 CSI2 PHY support
dt-bindings: phy: qcom: Add qcom,sc7280-csi2-phy schema
phy: qcom-mipi-csi2: Add sc7280 D-PHY provider
.../bindings/phy/qcom,sa8775p-csi2-phy.yaml | 175 ++++++++++++
.../bindings/phy/qcom,sc7280-csi2-phy.yaml | 169 ++++++++++++
.../qualcomm/phy-qcom-mipi-csi2-3ph-dphy.c | 251 ++++++++++++++++++
.../phy/qualcomm/phy-qcom-mipi-csi2-core.c | 31 ++-
drivers/phy/qualcomm/phy-qcom-mipi-csi2.h | 5 +
5 files changed, 622 insertions(+), 9 deletions(-)
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sa8775p-csi2-phy.yaml
create mode 100644 Documentation/devicetree/bindings/phy/qcom,sc7280-csi2-phy.yaml
--
base-commit: b38d06ad1e13c32970d58039c154f009b81a3368
change-id: 20250710-x1e-csi2-phy-f6434b651d3a
base-commit: 617b69946d330ed334861a3cc2660966e8c14b2c
change-id: 20250313-b4-linux-next-25-03-13-dtsi-x1e80100-camss-1506f74bbd3a
Best regards,
--
Anusha Arun Nandi <anusha.nandi@xxxxxxxxxxxxxxxx>
--
2.34.1