[PATCH v4 00/22] Add USB2.0 support for RZ/G3E

Tommaso Merciai
2025-11-21T15:12:51Z

Dear All,

This patch series adds USB2.0 support for the Renesas R9A09G047 SoC and
enables it on the RZ/G3E SMARK II board. RZ/G3E has USB2.0 IP that is
identical to the one's found into the RZ/V2H SoC (R9A09G057).

Thanks & Regards,
Tommaso

v3->v4:
- Rebased on top of next-20251121
- Added patch 01/22 to remove nodename pattern from mux-controller schema.
- Switch back to v2 implementation for mux controller in patches
5/22, 15/22, 16/22, 21/22.
- Improved commit bodies for patches 5/22, 15/22, 16/22, 21/22.
- Removed mux_chip->dev.of_node not needed in patch 06/22.
- Collected CDooley tag in patch 09/22.
- Added missing select MULTIPLEXER into Kconfig in patch 11/22.

v2->v3:
- Rebased on top of next-20251110 + [1] + [2]
- Add missing Cc: stable@vger.kernel.org in patch 03/21
- Patch 03/21: Added missing Cc: stable@vger.kernel.org.
Improved commit body describing the removal of rzv2h_usbphy_assert_helper()
from rzv2h_usb2phy_reset_probe().
- Patch 04/21: Manipulate mux-controller as an internal node.
Improved commit body.
- Patch 05/21: The main driver is using now __devm_auxiliary_device_create()
then update the aux driver accordingly.
- Patch 06/21: Use __devm_auxiliary_device_create() to create the aux device.
- Patch 08/21: Improved commit body and mux-states description.
- Patch 14/21: Manipulate the mux controller as an internal node,
and update commit body accordingly.
- Patch 15/21: Manipulate the mux controller as an internal node,
and update commit body accordingly.
- Patch 20/21: Manipulate the mux controller as an internal node.

v1->v2:
- Rebased on top of next-20251103 + [1] + [2]
- Reworked series to use mux-state for controlling VBUS_SEL
as suggested by PZabel added also mux bindings documentation
on phy and rst side.
- Collected Conor Dooley tags
- Dropped unnecessary rzv2h_usbphy_assert_helper() function from
rzv2h_usb2phy_reset_probe()

Tommaso Merciai (22):
dt-bindings: mux: Remove nodename pattern constraints
phy: renesas: rcar-gen3-usb2: Use devm_pm_runtime_enable()
phy: renesas: rcar-gen3-usb2: Factor out VBUS control logic
reset: rzv2h-usb2phy: Keep PHY clock enabled for entire device
lifetime
dt-bindings: reset: renesas,rzv2h-usb2phy: Add '#mux-state-cells'
property
mux: Add driver for Renesas RZ/V2H USB VBUS_SEL mux
reset: rzv2h-usb2phy: Add support for VBUS mux controller registration
dt-bindings: phy: renesas,usb2-phy: Document USB VBUS regulator
dt-bindings: phy: renesas,usb2-phy: Document mux-states property
phy: renesas: rcar-gen3-usb2: Add regulator for OTG VBUS control
phy: renesas: rcar-gen3-usb2: Use mux-state for phyrst management
dt-bindings: usb: renesas,usbhs: Add RZ/G3E SoC support
dt-bindings: phy: renesas,usb2-phy: Document RZ/G3E SoC
dt-bindings: reset: Document RZ/G3E USB2PHY reset
arm64: dts: renesas: r9a09g057: Add USB2.0 VBUS_SEL mux-controller
support
arm64: dts: renesas: r9a09g056: Add USB2.0 VBUS_SEL mux-controller
support
arm64: dts: renesas: r9a09g056: Add USB2.0 PHY VBUS internal regulator
node
arm64: dts: renesas: r9a09g056n48-rzv2n-evk: Enable USB2 PHY0 VBUS
support
arm64: dts: renesas: r9a09g057: Add USB2.0 PHY VBUS internal regulator
node
arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable USB2 PHY0 VBUS
support
arm64: dts: renesas: r9a09g047: Add USB2.0 support
arm64: dts: renesas: r9a09g047e57-smarc: Enable USB2.0 support

.../bindings/mux/mux-controller.yaml | 6 -
.../bindings/phy/renesas,usb2-phy.yaml | 15 +-
.../reset/renesas,rzv2h-usb2phy-reset.yaml | 9 +-
.../bindings/usb/renesas,usbhs.yaml | 1 +
arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 125 +++++++++
.../boot/dts/renesas/r9a09g047e57-smarc.dts | 49 ++++
arch/arm64/boot/dts/renesas/r9a09g056.dtsi | 7 +
.../dts/renesas/r9a09g056n48-rzv2n-evk.dts | 5 +
arch/arm64/boot/dts/renesas/r9a09g057.dtsi | 9 +
.../dts/renesas/r9a09g057h44-rzv2h-evk.dts | 5 +
.../boot/dts/renesas/renesas-smarc2.dtsi | 23 ++
drivers/mux/Kconfig | 10 +
drivers/mux/Makefile | 2 +
drivers/mux/rzv2h-usb-vbus.c | 97 +++++++
drivers/phy/renesas/Kconfig | 1 +
drivers/phy/renesas/phy-rcar-gen3-usb2.c | 263 ++++++++++++++----
drivers/reset/Kconfig | 1 +
drivers/reset/reset-rzv2h-usb2phy.c | 108 ++++---
include/linux/reset/reset_rzv2h_usb2phy.h | 11 +
19 files changed, 644 insertions(+), 103 deletions(-)
create mode 100644 drivers/mux/rzv2h-usb-vbus.c
create mode 100644 include/linux/reset/reset_rzv2h_usb2phy.h

--
2.43.0