[PATCH v2 00/11] Add RZ/G3E USB3.2 Gen1 Host Controller support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux