From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> 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