[PATCH v6 0/3] phy: Add CIX Sky1 USB3 PHY support

From
Hongliang Yang (杨宏亮) <hidden>
Date
2026-11-05 01:18:00
Also in
linux-devicetree, linux-phy, lkml
This series adds support for the USB3 PHY integrated in the CIX Sky1
SoC.

Patch 1 adds the device tree binding, patch 2 the PHY driver, and
patch 3 the SoC node plus the board enablement.

The PHY provides the SuperSpeed lanes for the Cadence USBSSP
controllers of the SoC. The block drives both USB3 lanes: it is
exposed as a single PHY provider with #phy-cells = <0>, and its
init/exit calls are reference counted so that both controllers can
share it.

Tested on Radxa Orion O6 (Sky1) together with the USBSSP controller
series: the PHY probes and USB 3.x devices enumerate at SuperSpeed.

The controller device tree nodes use the PHY phandle added here; the
USBSSP controller series is posted separately.

The series applies on top of v7.4-rc1.

Changes in v6:
- Drop the per-port child nodes; the PHY provider node itself is
  referenced with #phy-cells = <0> and the driver exports a single
  PHY instance shared by both controllers.
- Select REGMAP in the PHY Kconfig.
- Use dev_err_probe() for the reset, clock and regmap acquisition
  failures in the probe path.
- Corrected the mail sender name: v5 was sent with a non-ASCII
  display name in the From header, v6 uses the plain ASCII name
  that matches the Signed-off-by.

Changes in v5:
- Documented the origin of the PHY initialization sequence.
- Return -ENODEV instead of -EINVAL when the OF match data is missing.
- Use dev_err_probe() when creating the child PHYs.
- Dropped the unused dev_set_drvdata() call.
- Guarded against underflow in sky1_u3phy_exit().

Changes in v4:
- Fixed the #size-cells property order and removed the unused phy.h
  include and the redundant status properties of the PHY port nodes.

Hongliang Yang (3):
  dt-bindings: phy: Add CIX Sky1 USB3 PHY
  phy: cix: Add CIX Sky1 USB3 PHY driver
  arm64: dts: cix: Add USB3 PHY nodes for Sky1

 .../bindings/phy/cix,sky1-usb3-phy.yaml       |  73 ++++
 MAINTAINERS                                   |   2 +
 arch/arm64/boot/dts/cix/sky1-orion-o6.dts     |   4 +
 arch/arm64/boot/dts/cix/sky1.dtsi             |  14 +
 drivers/phy/Kconfig                           |   1 +
 drivers/phy/Makefile                          |   1 +
 drivers/phy/cix/Kconfig                       |  21 +
 drivers/phy/cix/Makefile                      |   6 +
 drivers/phy/cix/phy-cix-usb3.c                | 404 ++++++++++++++++++
 drivers/phy/cix/phy-cix-usbdp.h               | 289 +++++++++++++
 10 files changed, 815 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/phy/cix,sky1-usb3-phy.yaml
 create mode 100644 drivers/phy/cix/Kconfig
 create mode 100644 drivers/phy/cix/Makefile
 create mode 100644 drivers/phy/cix/phy-cix-usb3.c
 create mode 100644 drivers/phy/cix/phy-cix-usbdp.h


base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
-- 
2.54.0
Thread (6 messages) 6 messages, 2 authors, last reply 4d ago
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help