--- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -481,6 +481,12 @@ static int dwc2_driver_probe(struct plat if (retval) return retval; + /* Enable USB port before any regs access */ + if (readl(hsotg->regs + PCGCTL) & 0x0f) { + writel(0x00, hsotg->regs + PCGCTL); + /* TODO: mdelay(25) here? vendor driver don't use it */ + } + hsotg->needs_byte_swap = dwc2_check_core_endianness(hsotg); retval = dwc2_get_dr_mode(hsotg);