[PATCH v6 00/14] Add USB2.0 support for RZ/G3E

Tommaso Merciai posted 14 patches 1 month, 2 weeks ago
There is a newer version of this series
.../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 +
drivers/mux/Kconfig                           |  11 +
drivers/mux/Makefile                          |   2 +
drivers/mux/rzv2h-usb-vbenctl.c               |  97 +++++++
drivers/phy/renesas/Kconfig                   |   1 +
drivers/phy/renesas/phy-rcar-gen3-usb2.c      | 261 ++++++++++++++----
drivers/reset/Kconfig                         |   1 +
drivers/reset/reset-rzv2h-usb2phy.c           | 108 +++++---
include/linux/reset/reset_rzv2h_usb2phy.h     |  11 +
12 files changed, 420 insertions(+), 103 deletions(-)
create mode 100644 drivers/mux/rzv2h-usb-vbenctl.c
create mode 100644 include/linux/reset/reset_rzv2h_usb2phy.h
[PATCH v6 00/14] Add USB2.0 support for RZ/G3E
Posted by Tommaso Merciai 1 month, 2 weeks ago
Dear All,

This patch series adds USB2.0 support for the Renesas
RZ/G3E (a.k.a R9A09G047) R9A09G047 SoC.

RZ/G3E has USB2.0 IP that is identical to the one's found into
the RZ/V2H SoC (R9A09G057).

Merge strategy, if any:

- patches 1-2/14 can go through the MUX tree
- patches 3-6/14 can go through the Reset tree
- patches 7-13/14 can go through the PHY tree
- patches 14-14/14 can go through the USB tree

Note:
 - Reset driver (reset-rzv2h-usb2phy.c)
   has build dependency on Mux header file
   (reset_rzv2h_usb2phy.h).

Thanks & Regards,
Tommaso

v5->v6:
 - Rebased on top of next-20251219
 - Re-arranged series order per subsystem patches.
 - Patch: 3/14: Collected tag.
 - Patch: 4/14: Fixed commit message.
 - Split from dts patches will send separate series.
 - Added merge strategy in cover letter.

v4->v5:
 - Rebased on top of next-20251127
 - Patch 01/22: Added Reviewed-by tag from Conor Dooley.
 - Patch 06/22: Changed file name to rzv2h-usb-vbenctl.c and Fixed
   Makefile, Kconfig, function names accordingly.
   Changed driver .name to "vbenctl" and fix auxiliary_device_id name.
   Updated commit msg.
 - Patch 07/22: Update mux_name to "vbenctl" to match the driver name.
   Updated commit message.
 - Patch 11/22: Fixed if statement for mux_state error check.

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 (14):
  dt-bindings: mux: Remove nodename pattern constraints
  mux: Add driver for Renesas RZ/V2H USB VBENCTL VBUS_SEL mux
  dt-bindings: reset: renesas,rzv2h-usb2phy: Add '#mux-state-cells'
    property
  dt-bindings: reset: renesas,rzv2h-usb2phy: Document RZ/G3E USB2PHY
    reset
  reset: rzv2h-usb2phy: Keep PHY clock enabled for entire device
    lifetime
  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
  dt-bindings: phy: renesas,usb2-phy: Document RZ/G3E SoC
  phy: renesas: rcar-gen3-usb2: Factor out VBUS control logic
  phy: renesas: rcar-gen3-usb2: Use devm_pm_runtime_enable()
  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

 .../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 +
 drivers/mux/Kconfig                           |  11 +
 drivers/mux/Makefile                          |   2 +
 drivers/mux/rzv2h-usb-vbenctl.c               |  97 +++++++
 drivers/phy/renesas/Kconfig                   |   1 +
 drivers/phy/renesas/phy-rcar-gen3-usb2.c      | 261 ++++++++++++++----
 drivers/reset/Kconfig                         |   1 +
 drivers/reset/reset-rzv2h-usb2phy.c           | 108 +++++---
 include/linux/reset/reset_rzv2h_usb2phy.h     |  11 +
 12 files changed, 420 insertions(+), 103 deletions(-)
 create mode 100644 drivers/mux/rzv2h-usb-vbenctl.c
 create mode 100644 include/linux/reset/reset_rzv2h_usb2phy.h

-- 
2.43.0
Re: [PATCH v6 00/14] Add USB2.0 support for RZ/G3E
Posted by Tommaso Merciai 4 weeks, 1 day ago
Dear All,

A gentle ping on this patch series.

Thanks & Regards,
Tommaso

On Mon, Dec 22, 2025 at 02:43:34PM +0100, Tommaso Merciai wrote:
> Dear All,
> 
> This patch series adds USB2.0 support for the Renesas
> RZ/G3E (a.k.a R9A09G047) R9A09G047 SoC.
> 
> RZ/G3E has USB2.0 IP that is identical to the one's found into
> the RZ/V2H SoC (R9A09G057).
> 
> Merge strategy, if any:
> 
> - patches 1-2/14 can go through the MUX tree
> - patches 3-6/14 can go through the Reset tree
> - patches 7-13/14 can go through the PHY tree
> - patches 14-14/14 can go through the USB tree
> 
> Note:
>  - Reset driver (reset-rzv2h-usb2phy.c)
>    has build dependency on Mux header file
>    (reset_rzv2h_usb2phy.h).
> 
> Thanks & Regards,
> Tommaso
> 
> v5->v6:
>  - Rebased on top of next-20251219
>  - Re-arranged series order per subsystem patches.
>  - Patch: 3/14: Collected tag.
>  - Patch: 4/14: Fixed commit message.
>  - Split from dts patches will send separate series.
>  - Added merge strategy in cover letter.
> 
> v4->v5:
>  - Rebased on top of next-20251127
>  - Patch 01/22: Added Reviewed-by tag from Conor Dooley.
>  - Patch 06/22: Changed file name to rzv2h-usb-vbenctl.c and Fixed
>    Makefile, Kconfig, function names accordingly.
>    Changed driver .name to "vbenctl" and fix auxiliary_device_id name.
>    Updated commit msg.
>  - Patch 07/22: Update mux_name to "vbenctl" to match the driver name.
>    Updated commit message.
>  - Patch 11/22: Fixed if statement for mux_state error check.
> 
> 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 (14):
>   dt-bindings: mux: Remove nodename pattern constraints
>   mux: Add driver for Renesas RZ/V2H USB VBENCTL VBUS_SEL mux
>   dt-bindings: reset: renesas,rzv2h-usb2phy: Add '#mux-state-cells'
>     property
>   dt-bindings: reset: renesas,rzv2h-usb2phy: Document RZ/G3E USB2PHY
>     reset
>   reset: rzv2h-usb2phy: Keep PHY clock enabled for entire device
>     lifetime
>   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
>   dt-bindings: phy: renesas,usb2-phy: Document RZ/G3E SoC
>   phy: renesas: rcar-gen3-usb2: Factor out VBUS control logic
>   phy: renesas: rcar-gen3-usb2: Use devm_pm_runtime_enable()
>   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
> 
>  .../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 +
>  drivers/mux/Kconfig                           |  11 +
>  drivers/mux/Makefile                          |   2 +
>  drivers/mux/rzv2h-usb-vbenctl.c               |  97 +++++++
>  drivers/phy/renesas/Kconfig                   |   1 +
>  drivers/phy/renesas/phy-rcar-gen3-usb2.c      | 261 ++++++++++++++----
>  drivers/reset/Kconfig                         |   1 +
>  drivers/reset/reset-rzv2h-usb2phy.c           | 108 +++++---
>  include/linux/reset/reset_rzv2h_usb2phy.h     |  11 +
>  12 files changed, 420 insertions(+), 103 deletions(-)
>  create mode 100644 drivers/mux/rzv2h-usb-vbenctl.c
>  create mode 100644 include/linux/reset/reset_rzv2h_usb2phy.h
> 
> -- 
> 2.43.0
>
Re: (subset) [PATCH v6 00/14] Add USB2.0 support for RZ/G3E
Posted by Vinod Koul 2 weeks, 3 days ago
On Mon, 22 Dec 2025 14:43:34 +0100, Tommaso Merciai wrote:
> This patch series adds USB2.0 support for the Renesas
> RZ/G3E (a.k.a R9A09G047) R9A09G047 SoC.
> 
> RZ/G3E has USB2.0 IP that is identical to the one's found into
> the RZ/V2H SoC (R9A09G057).
> 
> Merge strategy, if any:
> 
> [...]

Applied, thanks!

[07/14] dt-bindings: phy: renesas,usb2-phy: Document USB VBUS regulator
        commit: 274038b82f413a754ffc6fbdb771a3ac62d1bb4b
[08/14] dt-bindings: phy: renesas,usb2-phy: Document mux-states property
        commit: cd597ce6460dc01f30f0f4158bbf20624c33c594
[09/14] dt-bindings: phy: renesas,usb2-phy: Document RZ/G3E SoC
        commit: 642c462854bf1f20e4d61a06e880c1b73bf6e542
[10/14] phy: renesas: rcar-gen3-usb2: Factor out VBUS control logic
        commit: d6db3b3af74a26b65d1ec1e86f9738c784e7ae29
[11/14] phy: renesas: rcar-gen3-usb2: Use devm_pm_runtime_enable()
        commit: 230c817a1601af3ac2c9fdf3fbde9a3fee6bd26c
[12/14] phy: renesas: rcar-gen3-usb2: Add regulator for OTG VBUS control
        commit: b6d7dd157763e0c8937f60241fb4af9eb546a7fb
[13/14] phy: renesas: rcar-gen3-usb2: Use mux-state for phyrst management
        commit: 8bb92fd7a04077925c8330f46a6ab44c80ca59f4

Best regards,
-- 
~Vinod