diff mbox series

[U-Boot,08/16] usb: dwc2: force reset assert before to probe the driver

Message ID 1553870544-15734-9-git-send-email-patrick.delaunay@st.com
State Accepted
Commit c2c74f97afff9351077f2236ab6fa5638de9bd86
Delegated to: Lukasz Majewski
Headers show
Series usb: convert dwc2 gadget to driver model, used in stm32mp1 | expand

Commit Message

Patrick DELAUNAY March 29, 2019, 2:42 p.m. UTC
Reset the hardware to be sure of the device state.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
---

 drivers/usb/gadget/dwc2_udc_otg.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Lukasz Majewski April 8, 2019, 9:55 p.m. UTC | #1
On Fri, 29 Mar 2019 15:42:16 +0100
Patrick Delaunay <patrick.delaunay@st.com> wrote:

> Reset the hardware to be sure of the device state.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> ---
> 
>  drivers/usb/gadget/dwc2_udc_otg.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/gadget/dwc2_udc_otg.c
> b/drivers/usb/gadget/dwc2_udc_otg.c index af16fc1..8169fdb 100644
> --- a/drivers/usb/gadget/dwc2_udc_otg.c
> +++ b/drivers/usb/gadget/dwc2_udc_otg.c
> @@ -1049,7 +1049,12 @@ static int dwc2_udc_otg_reset_init(struct
> udevice *dev, if (ret)
>  		return ret;
>  
> -	ret = reset_deassert_bulk(resets);
> +	ret = reset_assert_bulk(resets);
> +
> +	if (!ret) {
> +		udelay(2);
> +		ret = reset_deassert_bulk(resets);
> +	}
>  	if (ret) {
>  		reset_release_bulk(resets);
>  		return ret;

Reviewed-by: Lukasz Majewski <lukma@denx.de>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
diff mbox series

Patch

diff --git a/drivers/usb/gadget/dwc2_udc_otg.c b/drivers/usb/gadget/dwc2_udc_otg.c
index af16fc1..8169fdb 100644
--- a/drivers/usb/gadget/dwc2_udc_otg.c
+++ b/drivers/usb/gadget/dwc2_udc_otg.c
@@ -1049,7 +1049,12 @@  static int dwc2_udc_otg_reset_init(struct udevice *dev,
 	if (ret)
 		return ret;
 
-	ret = reset_deassert_bulk(resets);
+	ret = reset_assert_bulk(resets);
+
+	if (!ret) {
+		udelay(2);
+		ret = reset_deassert_bulk(resets);
+	}
 	if (ret) {
 		reset_release_bulk(resets);
 		return ret;