summaryrefslogtreecommitdiff
path: root/drivers/phy/tegra/xusb-tegra186.c
diff options
context:
space:
mode:
authorWayne Chang <waynec@nvidia.com>2023-01-11 11:04:48 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-01-17 17:27:41 +0100
commit71d9e899584e11bbd7eaf9934a619c69a15060d8 (patch)
tree2c89d30bd14db2daec41eff013340b0d7fd214d9 /drivers/phy/tegra/xusb-tegra186.c
parent1b17df99730ab63b49848e61ef19d8ee583684c5 (diff)
downloadlwn-71d9e899584e11bbd7eaf9934a619c69a15060d8.tar.gz
lwn-71d9e899584e11bbd7eaf9934a619c69a15060d8.zip
phy: tegra: xusb: Disable trk clk when not in use
Pad tracking is a one-time calibration for Tegra186 and Tegra194. Clk should be disabled after calibration. Disable clk after calibration. While at it add 100us delay for HW recording the calibration value. Signed-off-by: Wayne Chang <waynec@nvidia.com> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/20230111110450.24617-5-jonathanh@nvidia.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/phy/tegra/xusb-tegra186.c')
-rw-r--r--drivers/phy/tegra/xusb-tegra186.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c
index 6a8bd87cfdbd..c00d14f27ab4 100644
--- a/drivers/phy/tegra/xusb-tegra186.c
+++ b/drivers/phy/tegra/xusb-tegra186.c
@@ -609,6 +609,10 @@ static void tegra186_utmi_bias_pad_power_on(struct tegra_xusb_padctl *padctl)
value &= ~USB2_PD_TRK;
padctl_writel(padctl, value, XUSB_PADCTL_USB2_BIAS_PAD_CTL1);
+ udelay(100);
+
+ clk_disable_unprepare(priv->usb2_trk_clk);
+
mutex_unlock(&padctl->lock);
}
@@ -633,8 +637,6 @@ static void tegra186_utmi_bias_pad_power_off(struct tegra_xusb_padctl *padctl)
value |= USB2_PD_TRK;
padctl_writel(padctl, value, XUSB_PADCTL_USB2_BIAS_PAD_CTL1);
- clk_disable_unprepare(priv->usb2_trk_clk);
-
mutex_unlock(&padctl->lock);
}