summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/phy/phy-tegra-usb.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
index ea7ef1dc0b42..99acfde4ab8d 100644
--- a/drivers/usb/phy/phy-tegra-usb.c
+++ b/drivers/usb/phy/phy-tegra-usb.c
@@ -757,8 +757,19 @@ static int ulpi_phy_power_on(struct tegra_usb_phy *phy)
static int ulpi_phy_power_off(struct tegra_usb_phy *phy)
{
- clk_disable(phy->clk);
- return gpio_direction_output(phy->reset_gpio, 0);
+ int err;
+
+ err = gpio_direction_output(phy->reset_gpio, 0);
+ if (err) {
+ dev_err(phy->u_phy.dev, "reset GPIO not asserted: %d\n", err);
+ return err;
+ }
+
+ usleep_range(5000, 6000);
+
+ clk_disable_unprepare(phy->clk);
+
+ return 0;
}
static void tegra_usb_phy_close(struct tegra_usb_phy *phy)