diff options
author | Marek Vasut <marex@denx.de> | 2016-04-27 14:55:57 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2016-05-03 19:21:17 +0200 |
commit | 618da5630b5629d1c506be17f642502b483dab1a (patch) | |
tree | dd459f96d05948cec82c5f942ca834d17ada5029 | |
parent | 559019894b8db38a2cf3f74bed78be505d4f9a27 (diff) | |
download | u-boot-imx-618da5630b5629d1c506be17f642502b483dab1a.zip u-boot-imx-618da5630b5629d1c506be17f642502b483dab1a.tar.gz u-boot-imx-618da5630b5629d1c506be17f642502b483dab1a.tar.bz2 |
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.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c index 637b6c0..5673220 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(®s->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); |