[PATCH v6 06/10] dt-bindings: phy: renesas,usb2-phy: Document RZ/G3L PHY bindings

sashiko-bot at kernel.org sashiko-bot at kernel.org
Thu Aug 6 03:45:49 PDT 2026


Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The RZ/G3L USB PHY reset driver unconditionally depends on an undocumented power sequencer ("usb-pwrrdy"), which will cause permanent probe failures because no such provider exists.
- [High] The `renesas,usb2-phy-r9a08g046` compatible string is documented but not implemented in the core PHY driver.
--

--- Patch [6]: [PATCH v6 06/10] dt-bindings: phy: renesas,usb2-phy: Document RZ/G3L PHY bindings ---
commit a462eb0d761f5dd25e491d745273497a33e90308
Author: Biju Das <biju.das.jz at bp.renesas.com>

dt-bindings: phy: renesas,usb2-phy: Document RZ/G3L PHY bindings

Add device tree binding support for the RZ/G3L (r9a08g046) USB2 PHY.
The RZ/G3L USB PHY is almost identical to the RZ/G3S USB PHY, the
difference being 2 OTG blocks on RZ/G3L compared to 1 on RZ/G3S.

> diff --git a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml
> index 9740e5b335f93..d6b9d08ceec6d 100644
> --- a/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml
> +++ b/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml
> @@ -16,6 +16,7 @@ properties:
>            - enum:
>                - renesas,usb2-phy-r8a77470  # RZ/G1C
>                - renesas,usb2-phy-r9a08g045 # RZ/G3S
> +              - renesas,usb2-phy-r9a08g046 # RZ/G3L

[Severity: High]
Is the core USB2 PHY driver implementation missing from this series?

The new compatible string is documented without a fallback, but there appears
to be no match entry for it in the core USB2 PHY driver:

drivers/phy/renesas/phy-rcar-gen3-usb2.c:rcar_gen3_phy_usb2_match_table() {
	{
		.compatible = "renesas,usb2-phy-r9a08g045",
		.data = &rzg3s_usb2_phy_priv,
	},
	/* MISSING: renesas,usb2-phy-r9a08g046 */
	{
		.compatible = "renesas,rzg2l-usb2-phy",
		.data = &rzg2l_usb2_phy_priv,
	},
}

Without this entry, the core driver will not bind to the RZ/G3L device.

[Severity: High]
Does this platform also cause permanent probe failures in the reset driver?

Because the DT binding prohibits the renesas,sysc-pwrrdy property for this
SoC, the code falls back to requesting an undocumented power sequencer:

drivers/reset/reset-rzg2l-usbphy-ctrl.c:rzg2l_usbphy_ctrl_pwrrdy_powerseq_init() {
	...
	priv->pwrseq = devm_pwrseq_get(dev, "usb-pwrrdy");
	if (IS_ERR(priv->pwrseq)) {
		/*
		 * This platform requires a sequencer. If we can't get it, we
		 * must return the error (including -EPROBE_DEFER to wait for
		 * the provider to appear)
		 */
		return dev_err_probe(dev, PTR_ERR(priv->pwrseq),
				     "Failed to get required power sequencer\n");
	}
	...
}

Since there is no power sequencer provider in the kernel tree that registers
a usb-pwrrdy target, the core pwrseq_get() will return -EPROBE_DEFER. This
results in an infinite probe deferral loop for the reset driver, preventing
the USB PHY from being initialized.

>                - renesas,usb2-phy-r9a09g057 # RZ/V2H(P)
>  
>        - items:

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260806102236.149159-1-biju.das.jz@bp.renesas.com?part=6



More information about the linux-phy mailing list