[PATCH 0/3] phy: qcom: Describe the AHB2PHY bridge clock on Nord
From: Shawn Guo
Date: Wed Oct 07 2026 - 21:51:17 EST
On Nord, the register space of all the USB PHYs (the two USB3-DP QMP
PHYs and the three eUSB2 PHYs) sits behind the AHB2PHY_0 bridge, which
is gated by NE_GCC_AHB2PHY_CLK. None of the PHYs currently describe or
enable that clock, so clk_disable_unused() gates it before the PHYs are
initialized. The PHY init sequences then never reach the hardware and
the controllers fail to come up:
dwc3-qcom a600000.usb: DWC3 controller soft reset failed.
dwc3-qcom a600000.usb: error -ETIMEDOUT: failed to initialize core
xhci-hcd xhci-hcd.2.auto: can't setup: -110
As a result, USB on Nord only works when booting with clk_ignore_unused.
An earlier attempt marked the clock always-on in the NE GCC driver [1].
This series instead makes the PHYs consumers of the bridge clock, so it
is only kept enabled while a PHY is in use:
- Patch 1 adds a fifth "cfg_ahb" clock to the Nord QMP USB3-DP PHY
binding. The qmp-combo driver already gets all clocks in bulk, so no
driver change is needed.
- Patches 2 and 3 add a "bus" clock to the Nord eUSB2 PHY binding, and
Nord-specific match data in the snps-eusb2 driver that enables it
alongside the "ref" clock.
[1] https://lore.kernel.org/r/20261007073146.3162478-1-shengchao.guo@xxxxxxxxxxxxxxxx
Shawn Guo (3):
dt-bindings: phy: qcom,sc8280xp-qmp-usb43dp-phy: Add Nord cfg_ahb
clock
dt-bindings: phy: qcom,snps-eusb2-phy: Add Nord bus clock
phy: phy-snps-eusb2: Enable AHB2PHY bus clock on Nord
.../phy/qcom,sc8280xp-qmp-usb43dp-phy.yaml | 2 ++
.../bindings/phy/qcom,snps-eusb2-phy.yaml | 22 +++++++++++++++++++
drivers/phy/phy-snps-eusb2.c | 13 +++++++++++
3 files changed, 37 insertions(+)
--
2.43.0