aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-06-09 08:20:36 -0400
committerTom Rini <trini@konsulko.com>2021-06-09 08:20:36 -0400
commit46704165f53a7e324b95313e20e928c3a8b93261 (patch)
tree6f853e05202c0ff4e9a3aea61b2f33e3cc487ca4
parent5e425a31d33f679549b85776f55181fc3cd3e3b2 (diff)
parentdcd2bbe0510d7d47d745eeea063496a83cb3b08e (diff)
downloadu-boot-WIP/09Jun2021.zip
u-boot-WIP/09Jun2021.tar.gz
u-boot-WIP/09Jun2021.tar.bz2
Merge https://source.denx.de/u-boot/custodians/u-boot-usbWIP/09Jun2021
- dwc2 and cdns3 fixes
-rw-r--r--drivers/usb/cdns3/cdns3-ti.c2
-rw-r--r--drivers/usb/host/dwc2.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index 7b205c5..4317167 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -101,7 +101,7 @@ static int cdns_ti_probe(struct udevice *dev)
if (!data->usbss)
return -EINVAL;
- ret = clk_get_by_name(dev, "usb2_refclk", &usb2_refclk);
+ ret = clk_get_by_name(dev, "ref", &usb2_refclk);
if (ret) {
dev_err(dev, "Failed to get usb2_refclk\n");
return ret;
diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
index ec643e9..43cc2e0 100644
--- a/drivers/usb/host/dwc2.c
+++ b/drivers/usb/host/dwc2.c
@@ -21,6 +21,7 @@
#include <asm/io.h>
#include <dm/device_compat.h>
#include <linux/delay.h>
+#include <linux/usb/otg.h>
#include <power/regulator.h>
#include <reset.h>
@@ -1204,7 +1205,13 @@ static int dwc2_init_common(struct udevice *dev, struct dwc2_priv *priv)
#endif
dwc_otg_core_init(dev);
- dwc_otg_core_host_init(dev, regs);
+
+ if (usb_get_dr_mode(dev_ofnode(dev)) == USB_DR_MODE_PERIPHERAL) {
+ dev_dbg(dev, "USB device %s dr_mode set to %d. Skipping host_init.\n",
+ dev->name, usb_get_dr_mode(dev_ofnode(dev)));
+ } else {
+ dwc_otg_core_host_init(dev, regs);
+ }
clrsetbits_le32(&regs->hprt0, DWC2_HPRT0_PRTENA |
DWC2_HPRT0_PRTCONNDET | DWC2_HPRT0_PRTENCHNG |