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