[U-Boot] [RESEND PATCH 3/5] usb: host: dwc2: force reset assert
Patrick DELAUNAY
patrick.delaunay at st.com
Wed Nov 6 18:27:33 UTC 2019
Hi,
> From: Marek Vasut <marex at denx.de>
> Sent: mardi 15 octobre 2019 01:30
>
> On 10/14/19 10:00 AM, Patrick Delaunay wrote:
> > Assert reset before deassert in dwc2_reset; It should be more safe for
> > DWC2.
>
> Can you be more descriptive about this issue ? I have no idea what this patch does
> or fixes from the description.
Yes
I will explain it in V2 commit message.
The issue only occurs if the DWC2 OTG device switch between gadget mode
and host mode.
For example:
some registers initialiaze by the command "ums" (device mode is forced for example),
cause problem for the next command "usb start" and vice versa.
Even the existing software reset in dwc_otg_core_reset is not enough;
the added hardware reset solve all the issues.
> > Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
> > ---
> >
> > drivers/usb/host/dwc2.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c index
> > 51023b0c2c..3086411fc4 100644
> > --- a/drivers/usb/host/dwc2.c
> > +++ b/drivers/usb/host/dwc2.c
> > @@ -1149,6 +1149,8 @@ static int dwc2_reset(struct udevice *dev)
> > return ret;
> > }
> >
> > + reset_assert_bulk(&priv->resets);
> > + udelay(2);
>
> Why is there a 2 uS delay ?
I think: no real reason to have 2 us....
It was jus a reasonable time to be sure that the device reset is correctly
performed, the reset signal is propagated....
but perhaps that no delay is working...
I can test without delay if you prefer...
PS: I use the same value than DWC2 gadget driver:
Added by my commit c2c74f97afff
static int dwc2_udc_otg_reset_init(struct udevice *dev,
struct reset_ctl_bulk *resets)
{
.....
ret = reset_assert_bulk(resets);
if (!ret) {
udelay(2);
ret = reset_deassert_bulk(resets);
}
....
}
> > ret = reset_deassert_bulk(&priv->resets);
> > if (ret) {
> > reset_release_bulk(&priv->resets);
> >
>
> [...]
Regards
Patrick
More information about the U-Boot
mailing list