[PATCH 0/3] implement workaround for ERR051725

Xu Yang xu.yang_2 at nxp.com
Tue Jun 17 23:06:06 PDT 2025


On Tue, Jun 17, 2025 at 04:19:45PM +0800, Peter Chen (CIX) wrote:
> On 25-06-14 20:56:42, Xu Yang wrote:
> > Currently, the USB2.0 phy on some imx7d compliant Soc has below issue.
> > 
> > ERR051725:
> > USB: With the USB controller configured as device mode, Clearing the RS
> > bit of USBCMD register fails to cause USB device to be detached
> > 
> > Description
> > 1. USB controller working as high speed device mode with USB gadget
> >    function enabled
> > 2. Cable plugged into USB host
> > 3. Use case is software-controlled detach from USB device side
> > 
> > The expected result is device side terminations removed, increase in USB
> > signal amplitude, USB host detect device is detached. But the issue is
> > that the clear RS bit of USBCMD register cannot cause device detach event.
> > 
> > Workaround
> >   - Use the below steps to detach from the host:
> >       write USBCMD.RS = 0b
> >       write CTRL2[7:6] = 01b
> >       write CTRL2[8] = 1b
> >   - As CTRL2[8] is set at detach case, so attach the steps should add clear
> >     CTRL2[8]:
> >       write USBCMD.RS = 1b
> >       write CTRL2[8] = 0b
> > 
> > This will add workaround for it.
> 
> Is it imx7d specific PHY issue, since other i.mx SoCs which use chipidea
> IP don't have such issue?

Only SNPS USB PHY combined with ChipIdea USB controller has such issue,
such as imx7d/8mm/93/95, if it's NXP USB PHY then no such issue, such
as imx7ulp/8ulp.

Therefore, patch #3 add ".pullup = usbmisc_imx7d_pullup" for imx7d and
imx95.

Thanks,
Xu Yang

> 
> Peter
> > 
> > Xu Yang (3):
> >   usb: chipidea: udc: add CI_HDRC_CONTROLLER_PULLUP_EVENT event
> >   usb: chipidea: imx: add imx_usbmisc_pullup() hook
> >   usb: chipidea: imx: implement workaround for ERR051725
> > 
> >  drivers/usb/chipidea/ci_hdrc_imx.c |  5 ++++
> >  drivers/usb/chipidea/ci_hdrc_imx.h |  1 +
> >  drivers/usb/chipidea/udc.c         |  5 ++++
> >  drivers/usb/chipidea/usbmisc_imx.c | 39 ++++++++++++++++++++++++++++++
> >  include/linux/usb/chipidea.h       |  1 +
> >  5 files changed, 51 insertions(+)
> > 
> > -- 
> > 2.34.1
> > 
> 
> -- 
> 
> Best regards,
> Peter



More information about the linux-arm-kernel mailing list