The only case where we can bail out safely without a phy is port_mode is OMAP_USBHS_PORT_MODE_UNUSED. It used to be that OMAP_EHCI_PORT_MODE_PHY was optional, but that's not a good assumption. We should already have "ehci-phy" in all the dts files using OMAP_EHCI_PORT_MODE_PHY. Note that this fix should not be needed for kernels earlier than v4.19 as that's when we started moving devices to probe with ti-sysc. We now probe l4 interconnects separately, which can cause deferred probe with the phy being on a separate l4 interconnect from EHCI. And old kernels would need to be checked for "ehci-phy" property for this fix to avoid regressions. Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> Cc: Johan Hovold <johan@xxxxxxxxxx> Cc: Ladislav Michl <ladis@xxxxxxxxxxxxxx> Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxx> Cc: Roger Quadros <rogerq@xxxxxx> Reported-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> --- drivers/usb/host/ehci-omap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c --- a/drivers/usb/host/ehci-omap.c +++ b/drivers/usb/host/ehci-omap.c @@ -159,8 +159,8 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) /* get the PHY device */ phy = devm_usb_get_phy_by_phandle(dev, "phys", i); if (IS_ERR(phy)) { - /* Don't bail out if PHY is not absolutely necessary */ - if (pdata->port_mode[i] != OMAP_EHCI_PORT_MODE_PHY) + /* Don't bail out if PHY is unused */ + if (pdata->port_mode[i] == OMAP_USBHS_PORT_MODE_UNUSED) continue; ret = PTR_ERR(phy); -- 2.19.2