[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