From: Alexander Stein <alexander.stein@ew.tq-group.com>
To: sashiko-reviews@lists.linux.dev
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org,
Frank.Li@kernel.org, imx@lists.linux.dev
Subject: Re: [PATCH 2/2] ARM: dts: mba6ulx: Add USB hub node
Date: Thu, 13 Aug 2026 16:00:26 +0200 [thread overview]
Message-ID: <5266525.iZASKD2KPV@steina-w> (raw)
In-Reply-To: <20260813125222.BDA121F000E9@smtp.kernel.org>
Am Donnerstag, 13. August 2026, 14:52:22 CEST schrieb sashiko-bot@kernel.org:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] I2C GPIO expander used as reset-gpios for onboard_usb_dev causes PM phase mismatch, breaking reset timing during resume.
> --
>
> --- Patch [2]: [PATCH 2/2] ARM: dts: mba6ulx: Add USB hub node ---
> commit 52d9db850f98165215d9ab4ba1bee0bd2993c73e
> Author: Alexander Stein <alexander.stein@ew.tq-group.com>
>
> ARM: dts: mba6ulx: Add USB hub node
>
> This commit replaces a fixed regulator previously used for USB hub reset with
> a proper onboard USB hub device node that utilizes reset-gpios.
>
> > diff --git a/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi b/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi
> > index 244376b38835a..322fbd82531e6 100644
> > --- a/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi
> > +++ b/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi
>
> [ ... ]
>
> > @@ -379,10 +369,18 @@ &usbotg1 {
> > /* 7-port usb hub */
> > /* id, pwr, oc pins not connected */
> > &usbotg2 {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > disable-over-current;
> > - vbus-supply = <®_otg2vbus_5v0>;
> > dr_mode = "host";
> > status = "okay";
> > +
> > + hub_2_0: hub@1 {
> > + compatible = "usb424,2517";
> > + reg = <1>;
> > + reset-gpios = <&expander_out1 0 GPIO_ACTIVE_LOW>;
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> [Severity: High]
> Does using an I2C GPIO expander for the onboard USB hub reset cause a PM phase
> mismatch during system suspend and resume?
>
> The onboard_usb_dev driver uses suspend_late() and resume_early() power
> management operations, while standard I2C GPIO expanders typically use normal
> suspend() and resume() operations.
>
> During system suspend, the expander suspends first (in the suspend phase) and
> puts its regmap into cache_only mode. When the hub driver suspends later in
> suspend_late(), its reset GPIO assertion is merely cached.
>
> During system resume, the hub driver attempts to deassert the reset in
> resume_early() and waits for power_on_delay_us. Because the expander is
> still in cache_only mode, the physical pin remains unchanged.
>
> Later, during the normal resume phase, the expander finally syncs its cache
> to hardware and physically deasserts the reset pin. This entirely bypasses the
> hub driver's power_on_delay_us wait and causes a race with the USB host
> controller, which could result in enumeration failures upon wake.
Mh, my platform doesn't support system suspend/wakeup (yet?).
So there is nothing I could test here.
On the other hand this sounds like a generic problem other if not all
platforms affected as well if the reset is attached to a GPIO expander.
Any suggestion?
Best regards,
Alexander
> > + vdd-supply = <®_mba6ul_3v3>;
> > + };
> > };
>
>
--
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/
prev parent reply other threads:[~2026-08-13 14:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-13 12:12 [PATCH 0/2] TQMa6UL[L]x[L] DT improvements Alexander Stein
2026-08-13 12:12 ` [PATCH 1/2] ARM: dts: mba6ulx: Add Ethernet PHY interrupt support Alexander Stein
2026-08-13 12:51 ` sashiko-bot
2026-08-13 13:28 ` Alexander Stein
2026-08-13 12:12 ` [PATCH 2/2] ARM: dts: mba6ulx: Add USB hub node Alexander Stein
2026-08-13 12:52 ` sashiko-bot
2026-08-13 14:00 ` Alexander Stein [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5266525.iZASKD2KPV@steina-w \
--to=alexander.stein@ew.tq-group.com \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=imx@lists.linux.dev \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.