[PATCH v3 0/6] Add USB3.1 support for Agilex5
From: Adrian Ng Ho Yin
Date: Wed Aug 12 2026 - 03:41:17 EST
Agilex5 integrates a Synopsys DesignWare USB3 controller via a
SoC-specific wrapper that requires dedicated clock, reset, PHY, and
optional SMMU integration. The USB DMA path on the interconnect is
limited to a 40-bit address width.
This series adds the missing USB3.1 reference clock ID and registers
it in the Agilex5 clock driver so the DWC3 "ref" and "suspend" inputs
can be requested by name.
It also adds a device tree binding for the Agilex5 DWC3 controller and
introduces the corresponding USB3.1 node in the Agilex5 SoC and SoCDK
device trees. The controller is placed under a simple-bus with a 40-bit
dma-ranges window so the DMA/IOMMU stack respects the interconnect address
width when SMMU is enabled. As the SoCDK only exposes the USB3.1 interface,
the unused USB0 node is removed.
Finally, the Agilex5 compatible string is added to the dwc3 generic
platform driver so the controller can probe through that glue driver.
---
changelog:
v2->v3:
* Add the missing USB3.1 reference clock ID and register usb31_ref_clk
as a fixed-factor clock in the Agilex5 clock driver.
* Drop dma_addressable_bits core/glue changes; describe the 40-bit DMA
limit in DT with dma-ranges instead.
* Wrap the USB3.1 node in a simple-bus with a 40-bit dma-ranges window.
* Keep Agilex5 support in dwc3-generic-plat as a compatible match only
(no platform-specific DMA mask override).
v2 patch link:
https://lore.kernel.org/all/cover.1765249127.git.adrianhoyin.ng@xxxxxxxxxx/
v1->v2:
* Update new binding name to match compatible.
* Update binding to use single node instead of parent child node structure.
* Update binding according to comments from maintainer.
* Split USB3 and USB2 changes in dts into separate commits.
* Update to use flattened model and use dwc3-generic-plat driver instead of
dwc3-of-simple driver.
* Add dma_addressable_bits as a dwc3 property which is set by the glue driver
which is used to configure the dma mask in the core driver.
v1 patch link:
https://lore.kernel.org/all/cover.1762839776.git.adrianhoyin.ng@xxxxxxxxxx/
---
Adrian Ng Ho Yin (6):
dt-bindings: clock: agilex5: Add USB3.1 reference clock ID
clk: socfpga: agilex5: add usb3.1 reference clock
dt-bindings: usb: add Altera Agilex5 DWC3 controller
arm64: dts: intel: agilex5: add USB3.1 controller node
arm64: dts: intel: agilex5: remove usb0 in Agilex5 SoCDK
usb: dwc3: add Altera Agilex5 support to generic platform driver
.../bindings/usb/altr,agilex5-dwc3.yaml | 102 ++++++++++++++++++
.../arm64/boot/dts/intel/socfpga_agilex5.dtsi | 27 +++++
.../boot/dts/intel/socfpga_agilex5_socdk.dts | 4 +-
drivers/clk/socfpga/clk-agilex5.c | 15 +++
drivers/usb/dwc3/dwc3-generic-plat.c | 1 +
.../dt-bindings/clock/intel,agilex5-clkmgr.h | 3 +-
6 files changed, 149 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/altr,agilex5-dwc3.yaml
--
2.49.GIT