aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2022-06-08 00:42:22 +0100
committerTom Rini <trini@konsulko.com>2022-06-16 15:22:55 -0400
commit81755b8c20fe8ab7e10bd3a15fd48d37426ee45d (patch)
tree5a19260cacd8a3ac784084843233433410aa9d03
parent2ac0baab4aff1a0b45067d0b62f00c15f4e86856 (diff)
downloadu-boot-81755b8c20fe8ab7e10bd3a15fd48d37426ee45d.zip
u-boot-81755b8c20fe8ab7e10bd3a15fd48d37426ee45d.tar.gz
u-boot-81755b8c20fe8ab7e10bd3a15fd48d37426ee45d.tar.bz2
usb: host: ehci-generic: Make resets and clocks optional
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.przywara@arm.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
-rw-r--r--drivers/usb/host/ehci-generic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-generic.c b/drivers/usb/host/ehci-generic.c
index 4734af0..15267e9 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;
}