Hi Andre On 6/8/22 01:42, Andre Przywara wrote: > The generic EHCI binding does not *require* resets and clocks > properties, and indeed for instance the Allwinner A20 SoCs does not > need or define any resets in its DT. > > Don't easily give up if clk_get_bulk() or reset_get_bulk() return an > error, but check if that is due to the DT simply having no entries for > either of them. > > This fixes USB operation on all boards with an Allwinner A10 or A20 SoC, > which were reporting an error after commit ba96176ab70e2999: > ======================= > Bus usb@1c14000: ehci_generic usb@1c14000: Failed to get resets (err=-2) > probe failed, error -2 > ======================= > > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> > --- > drivers/usb/host/ehci-generic.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/ehci-generic.c b/drivers/usb/host/ehci-generic.c > index 4734af03962..15267e9a05a 100644 > --- a/drivers/usb/host/ehci-generic.c > +++ b/drivers/usb/host/ehci-generic.c > @@ -69,7 +69,7 @@ static int ehci_usb_probe(struct udevice *dev) > > err = 0; > ret = clk_get_bulk(dev, &priv->clocks); > - if (ret) { > + if (ret && ret != -ENOENT) { > dev_err(dev, "Failed to get clocks (ret=%d)\n", ret); > return ret; > } > @@ -81,7 +81,7 @@ static int ehci_usb_probe(struct udevice *dev) > } > > err = reset_get_bulk(dev, &priv->resets); > - if (err) { > + if (ret && ret != -ENOENT) { > dev_err(dev, "Failed to get resets (err=%d)\n", err); > goto clk_err; > }
Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com> Thanks Patrice