From: Biju Das <biju.das.jz@bp.renesas.com>
Add RZ/G3E USB3.2 Gen1 Host Controller and PHY support. The USB3HOST
is compliant with the Universal Serial Bus 3.2 Specification Revision 1.0.
- Supports 1 downstream USB receptacles
- Number of SSP Gen2 or SS ports: 1
- Number of HS or FS or LS ports: 1
- Supports Super Speed Plus Gen2x1 (10 Gbps), Super Speed (5 Gbps),
High Speed (480 Mbps), Full Speed (12Mbps), and Low Speed (1.5 Mbps).
- Supports all transfer-types: Control, Bulk, Interrupt, Isochronous, and
these split-transactions.
- Supports Power Control and Over Current Detection.
v1->v2:
* Collected tags.
* Replaced usb30->usb3_0 for clocks and resets.
* Replaced magic numbers with macros iphy driver.
* Added ref to usb-xhci.yaml in USB3 binding patch.
Logs:
root@smarc-rzg3e:/cip-test-scripts/py# cat /proc/interrupts | grep SLEEP
133: 0 0 0 0 rzv2h-icu 0 Edge SLEEP
root@smarc-rzg3e:/cip-test-scripts/py# [ 128.532806] PM: suspend entry (deep)
[ 128.536700] Filesystems sync: 0.000 seconds
[ 128.542466] Freezing user space processes
[ 128.548296] Freezing user space processes completed (elapsed 0.001 seconds)
[ 128.555283] OOM killer disabled.
[ 128.558531] Freezing remaining freezable tasks
[ 128.564240] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 128.571649] printk: Suspending console(s) (use no_console_suspend to debug)
NOTICE: BL2: v2.10.5(release):2.10.5/rz_soc_dev-169-g1410189b0
NOTICE: BL2: Built : 12:53:12, Jul 15 2025
NOTICE: BL2: SYS_LSI_MODE: 0x13e06
NOTICE: BL2: SYS_LSI_DEVID: 0x8679447
NOTICE: BL2: SYS_LSI_PRR: 0x0
NOTICE: BL2: Booting BL31
[ 128.604363] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 128.670116] renesas-gbeth 15c30000.ethernet end0: Link is Down
[ 128.683550] Disabling non-boot CPUs ...
[ 128.688394] psci: CPU3 killed (polled 4 ms)
[ 128.695415] psci: CPU2 killed (polled 0 ms)
[ 128.702070] psci: CPU1 killed (polled 0 ms)
[ 128.704897] Enabling non-boot CPUs ...
[ 128.705107] Detected VIPT I-cache on CPU1
[ 128.705157] GICv3: CPU1: found redistributor 100 region 0:0x0000000014960000
[ 128.705195] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[ 128.706006] CPU1 is up
[ 128.706106] Detected VIPT I-cache on CPU2
[ 128.706128] GICv3: CPU2: found redistributor 200 region 0:0x0000000014980000
[ 128.706149] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[ 128.706732] CPU2 is up
[ 128.706831] Detected VIPT I-cache on CPU3
[ 128.706854] GICv3: CPU3: found redistributor 300 region 0:0x00000000149a0000
[ 128.706876] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[ 128.707557] CPU3 is up
[ 128.724000] dwmac4: Master AXI performs fixed burst length
[ 128.724900] renesas-gbeth 15c30000.ethernet end0: No Safety Features support found
[ 128.724920] renesas-gbeth 15c30000.ethernet end0: IEEE 1588-2008 Advanced Timestamp supported
[ 128.728436] renesas-gbeth 15c30000.ethernet end0: configuring for phy/rgmii-id link mode
[ 128.745766] dwmac4: Master AXI performs fixed burst length
[ 128.746653] renesas-gbeth 15c40000.ethernet end1: No Safety Features support found
[ 128.746668] renesas-gbeth 15c40000.ethernet end1: IEEE 1588-2008 Advanced Timestamp supported
[ 128.750222] renesas-gbeth 15c40000.ethernet end1: configuring for phy/rgmii-id link mode
[ 128.797030] usb usb1: root hub lost power or was reset
[ 128.797038] usb usb2: root hub lost power or was reset
[ 130.956146] usb 2-1: reset SuperSpeed Plus Gen 2x1 USB device number 2 using xhci-renesas-hcd
[ 131.143425] OOM killer enabled.
[ 131.146563] Restarting tasks: Starting
[ 131.151382] Restarting tasks: Done
[ 131.154877] random: crng reseeded on system resumption
[ 131.160209] PM: suspend exit
[ 131.494956] renesas-gbeth 15c30000.ethernet end0: Link is Up - 1Gbps/Full - flow control rx/tx
root@smarc-rzg3e:/cip-test-scripts/py# ./run_pytests.sh tests/test_xhci.py -k test_xhci_005
==================================================================== test session starts ====================================================================
INFO root:spl2_test_helpers.py:2059 DD performance with bs=32M count=32 is
Write= 383 MB/s
Read= 555 MB/s
INFO root:spl2_test_helpers.py:2099 fio performance with bs=32m for Sequential and bs=4m for random access are
INFO root:spl2_test_helpers.py:2104 b' READ: bw=562MiB/s (590MB/s), 562MiB/s-562MiB/s (590MB/s-590MB/s), io=5024MiB (5268MB), run=8936-8936msec'
INFO root:spl2_test_helpers.py:2104 b' WRITE: bw=555MiB/s (582MB/s), 555MiB/s-555MiB/s (582MB/s-582MB/s), io=5024MiB (5268MB), run=9058-9058msec'
INFO root:spl2_test_helpers.py:2104 b' READ: bw=373MiB/s (391MB/s), 373MiB/s-373MiB/s (391MB/s-391MB/s), io=5000MiB (5243MB), run=13394-13394msec'
INFO root:spl2_test_helpers.py:2104 b' WRITE: bw=387MiB/s (406MB/s), 387MiB/s-387MiB/s (406MB/s-406MB/s), io=5000MiB (5243MB), run=12920-12920msec'
Biju Das (11):
dt-bindings: clock: renesas,r9a09g047-cpg: Add USB3.0 core clocks
clk: renesas: r9a09g047: Add USB3.0 clocks/resets
dt-bindings: phy: renesas: Document Renesas RZ/G3E USB3.0 PHY
phy: renesas: Add Renesas RZ/G3E USB3.0 PHY driver
usb: host: xhci-rcar: Move R-Car reg definitions
dt-bindings: usb: Document Renesas RZ/G3E USB3HOST
usb: host: xhci-plat: Add .post_resume_quirk for struct xhci_plat_priv
usb: host: xhci-rcar: Add Renesas RZ/G3E USB3 Host driver support
arm64: dts: renesas: r9a09g047: Add USB3 PHY/Host nodes
arm64: dts: renesas: r9a09g047e57-smarc: Enable USB3HOST
arm64: defconfig: Enable RZ/G3E USB3 PHY driver
.../bindings/phy/renesas,rzg3e-usb3-phy.yaml | 63 ++++
.../bindings/usb/renesas,rzg3e-xhci.yaml | 87 ++++++
arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 30 ++
.../boot/dts/renesas/r9a09g047e57-smarc.dts | 10 +
.../boot/dts/renesas/renesas-smarc2.dtsi | 8 +
arch/arm64/configs/defconfig | 1 +
drivers/clk/renesas/r9a09g047-cpg.c | 9 +-
drivers/phy/renesas/Kconfig | 7 +
drivers/phy/renesas/Makefile | 1 +
drivers/phy/renesas/phy-rzg3e-usb3.c | 271 ++++++++++++++++++
drivers/usb/host/Kconfig | 2 +-
drivers/usb/host/xhci-plat.c | 14 +
drivers/usb/host/xhci-plat.h | 1 +
drivers/usb/host/xhci-rcar-regs.h | 49 ++++
drivers/usb/host/xhci-rcar.c | 100 ++++---
drivers/usb/host/xhci-rzg3e-regs.h | 12 +
.../dt-bindings/clock/renesas,r9a09g047-cpg.h | 2 +
17 files changed, 621 insertions(+), 46 deletions(-)
create mode 100644 Documentation/devicetree/bindings/phy/renesas,rzg3e-usb3-phy.yaml
create mode 100644 Documentation/devicetree/bindings/usb/renesas,rzg3e-xhci.yaml
create mode 100644 drivers/phy/renesas/phy-rzg3e-usb3.c
create mode 100644 drivers/usb/host/xhci-rcar-regs.h
create mode 100644 drivers/usb/host/xhci-rzg3e-regs.h
--
2.43.0