[PATCH v4 0/3] Add CIX Sky1 USB3 PHY support

From: Hongliang Yang

Date: Sat Sep 05 2026 - 23:25:56 EST


This series adds support for the multi-port USB3 PHY found on the
CIX Sky1 SoC: the devicetree binding, the PHY driver, and the device
tree node covering the PHY block that serves the USB4 and USB5
controllers.

This is the first of two series; the USBSSP controller (Cadence DRD
glue) series that consumes this PHY follows separately and depends on
this one.

Changes in v4:
- Split the combined USB series into two: this PHY series and a
separate USBSSP controller series that depends on it.

USB3 PHY driver:
- Assert the hardware resets before registering the PHY provider, so a
consumer cannot race with the probe-time assertion.
- Disable the clocks in LIFO order (ref before apb) in phy_exit().
- Reorder the error unroll path of phy_init() to assert the resets
before disabling the clocks, matching the teardown sequence, and fix
the goto targets so clocks that were never enabled are not disabled.
- Check fwnode_get_name() for NULL and only match "usb-port@" child
nodes exactly, instead of any name with a "usb-port" or "USB" prefix.

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 node for Sky1

.../bindings/phy/cix,sky1-usb3-phy.yaml | 107 +++++
arch/arm64/boot/dts/cix/sky1-orion-o6.dts | 12 +
arch/arm64/boot/dts/cix/sky1.dtsi | 31 ++
drivers/phy/Kconfig | 1 +
drivers/phy/Makefile | 1 +
drivers/phy/cix/Kconfig | 20 +
drivers/phy/cix/Makefile | 6 +
drivers/phy/cix/phy-cix-usb3.c | 413 ++++++++++++++++++
drivers/phy/cix/phy-cix-usbdp.h | 289 ++++++++++++
9 files changed, 880 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

--
2.54.0