Commit 28d190ac authored by Dmitry Osipenko's avatar Dmitry Osipenko Committed by Greg Kroah-Hartman

usb: phy: tegra: Clean up ulpi_phy_power_off

Firstly, the PHY's clock needs to unprepared to keep prepare count
balanced. Secondly, downstream code suggests that reset is synchronous
and thus it should be asserted before disabling clock.
Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20200106013416.9604-4-digetx@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 62a7f628
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment