From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Sat, 05 Mar 2016 00:12:53 +0100 Subject: [U-Boot] usb: dwc2: disable erroneous overcurrent condition In-Reply-To: <1457125525-14091-1-git-send-email-dinguyen@opensource.altera.com> References: <1457125525-14091-1-git-send-email-dinguyen@opensource.altera.com> Message-ID: <56DA1675.9040904@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03/04/2016 10:05 PM, dinguyen at opensource.altera.com wrote: > From: Dinh Nguyen > > For the case where an external VBUS is used, we should enable the external > VBUS comparator in the driver. This would prevent an unnecessary overcurrent > error which would then disable the host port. > > The overcurrent condition was happening on the SoCFPGA Cyclone5 devkit, thus > USB was not working on the devkit. This patch fixes that problem. > > Signed-off-by: Dinh Nguyen > --- > drivers/usb/host/dwc2.c | 2 ++ > drivers/usb/host/dwc2.h | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c > index c6727c3..d9a8d2d 100644 > --- a/drivers/usb/host/dwc2.c > +++ b/drivers/usb/host/dwc2.c > @@ -264,6 +264,8 @@ static void dwc_otg_core_init(struct dwc2_core_regs *regs) > /* Program the ULPI External VBUS bit if needed */ > #ifdef CONFIG_DWC2_PHY_ULPI_EXT_VBUS > usbcfg |= DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV; > + usbcfg |= (DWC2_GUSBCFG_ULPI_INT_VBUS_INDICATOR | > + DWC2_GUSBCFG_INDICATOR_PASSTHROUGH); Well why don't you wrap it into the previous usbcfg |= , one line above? Can you send a V2 real quick or shall I fix it ?/ > #else > usbcfg &= ~DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV; > #endif > diff --git a/drivers/usb/host/dwc2.h b/drivers/usb/host/dwc2.h > index 594757b..4482dc6 100644 > --- a/drivers/usb/host/dwc2.h > +++ b/drivers/usb/host/dwc2.h > @@ -152,6 +152,8 @@ struct dwc2_core_regs { > #define DWC2_GUSBCFG_ULPI_INT_VBUS_INDICATOR_OFFSET 21 > #define DWC2_GUSBCFG_TERM_SEL_DL_PULSE (1 << 22) > #define DWC2_GUSBCFG_TERM_SEL_DL_PULSE_OFFSET 22 > +#define DWC2_GUSBCFG_INDICATOR_PASSTHROUGH (1 << 24) > +#define DWC2_GUSBCFG_INDICATOR_PASSTHROUGH_OFFSET 24 > #define DWC2_GUSBCFG_IC_USB_CAP (1 << 26) > #define DWC2_GUSBCFG_IC_USB_CAP_OFFSET 26 > #define DWC2_GUSBCFG_IC_TRAFFIC_PULL_REMOVE (1 << 27) > -- Best regards, Marek Vasut