summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2016-04-27 14:55:57 +0200
committerMarek Vasut <marex@denx.de>2016-05-03 19:21:17 +0200
commit618da5630b5629d1c506be17f642502b483dab1a (patch)
treedd459f96d05948cec82c5f942ca834d17ada5029
parent559019894b8db38a2cf3f74bed78be505d4f9a27 (diff)
downloadtalos-obmc-uboot-618da5630b5629d1c506be17f642502b483dab1a.tar.gz
talos-obmc-uboot-618da5630b5629d1c506be17f642502b483dab1a.zip
usb: dwc2: Pull Ext VBUS macro from dwc_otg_core_init()
Introduce a boolean flag in the dwc2 controller private data and set it according to the macro (for now) instead of having this macro directly in the dwc_otg_core_init(). This will let us configure the flag from DT or such later on, if needed. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Dinh Nguyen <dinguyen@kernel.org>
-rw-r--r--drivers/usb/host/dwc2.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
index 637b6c0297..567322013f 100644
--- a/drivers/usb/host/dwc2.c
+++ b/drivers/usb/host/dwc2.c
@@ -39,6 +39,7 @@ struct dwc2_priv {
u8 out_data_toggle[MAX_DEVICE][MAX_ENDPOINT];
struct dwc2_core_regs *regs;
int root_hub_devnum;
+ bool ext_vbus;
};
#ifndef CONFIG_DM_USB
@@ -263,13 +264,13 @@ static void dwc_otg_core_init(struct dwc2_priv *priv)
usbcfg = readl(&regs->gusbcfg);
/* Program the ULPI External VBUS bit if needed */
-#ifdef CONFIG_DWC2_PHY_ULPI_EXT_VBUS
- usbcfg |= (DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV |
- DWC2_GUSBCFG_ULPI_INT_VBUS_INDICATOR |
- DWC2_GUSBCFG_INDICATOR_PASSTHROUGH);
-#else
- usbcfg &= ~DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV;
-#endif
+ if (priv->ext_vbus) {
+ usbcfg |= (DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV |
+ DWC2_GUSBCFG_ULPI_INT_VBUS_INDICATOR |
+ DWC2_GUSBCFG_INDICATOR_PASSTHROUGH);
+ } else {
+ usbcfg &= ~DWC2_GUSBCFG_ULPI_EXT_VBUS_DRV;
+ }
/* Set external TS Dline pulsing */
#ifdef CONFIG_DWC2_TS_DLINE
@@ -1057,6 +1058,12 @@ static int dwc2_init_common(struct dwc2_priv *priv)
return -ENODEV;
}
+#ifdef CONFIG_DWC2_PHY_ULPI_EXT_VBUS
+ priv->ext_vbus = 1;
+#else
+ priv->ext_vbus = 0;
+#endif
+
dwc_otg_core_init(priv);
dwc_otg_core_host_init(regs);
OpenPOWER on IntegriCloud