From: Hongliang Yang <hongliang.yang@cixtech.com>
To: peter.chen@kernel.org, vkoul@kernel.org,
neil.armstrong@linaro.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, linux-arm-kernel@lists.infradead.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: p.zabel@pengutronix.de, gregkh@linuxfoundation.org, krzk@kernel.org
Subject: [PATCH v4 0/3] Add CIX Sky1 USB3 PHY support
Date: Sun, 6 Sep 2026 11:24:28 +0800 [thread overview]
Message-ID: <20260906032431.470744-1-hongliang.yang@cixtech.com> (raw)
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
next reply other threads:[~2026-09-06 3:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-06 3:24 Hongliang Yang [this message]
2026-09-06 3:24 ` [PATCH v4 1/3] dt-bindings: phy: Add CIX Sky1 USB3 PHY Hongliang Yang
2026-09-07 17:31 ` Conor Dooley
2026-09-06 3:24 ` [PATCH v4 2/3] phy: cix: Add CIX Sky1 USB3 PHY driver Hongliang Yang
2026-09-06 3:24 ` [PATCH v4 3/3] arm64: dts: cix: Add USB3 PHY node for Sky1 Hongliang Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260906032431.470744-1-hongliang.yang@cixtech.com \
--to=hongliang.yang@cixtech.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=neil.armstrong@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=peter.chen@kernel.org \
--cc=robh@kernel.org \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox