diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-11-15 14:21:20 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-11-15 14:21:20 +0100 |
commit | 0fdbd47ac4ff832f1c950db0b6ccb2eda3824158 (patch) | |
tree | b6f121ca8017c89be96af2ff96d07f1f20e8f52c /drivers/usb | |
parent | 42cdd1452a51ca970a6cda76e3bdbe4f04d6e13f (diff) | |
parent | a1511452b8eb44cdce2e7e879b82d147e213654e (diff) | |
download | barebox-0fdbd47ac4ff832f1c950db0b6ccb2eda3824158.tar.gz barebox-0fdbd47ac4ff832f1c950db0b6ccb2eda3824158.tar.xz |
Merge branch 'for-next/rockchip'
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/dwc3/core.c | 11 | ||||
-rw-r--r-- | drivers/usb/dwc3/core.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 2a4d1c066d..fb3cae4de9 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -14,6 +14,7 @@ #include <dma.h> #include <driver.h> #include <init.h> +#include <linux/reset.h> #include "gadget.h" #include "core.h" @@ -1123,6 +1124,16 @@ static int dwc3_probe(struct device_d *dev) if (ret) return ret; + dwc->reset = reset_control_get(dev, NULL); + if (IS_ERR(dwc->reset)) { + dev_err(dev, "Failed to get reset control: %pe\n", dwc->reset); + return PTR_ERR(dwc->reset); + } + + reset_control_assert(dwc->reset); + mdelay(1); + reset_control_deassert(dwc->reset); + dwc3_coresoft_reset(dwc); dwc3_cache_hwparams(dwc); diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index f2f7a311d1..94cc594920 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -1003,6 +1003,8 @@ struct dwc3 { struct clk_bulk_data *clks; int num_clks; + struct reset_control *reset; + struct phy *usb2_generic_phy; struct phy *usb3_generic_phy; |