summaryrefslogtreecommitdiff
path: root/drivers/phy/tegra
diff options
context:
space:
mode:
authorWayne Chang <waynec@nvidia.com>2023-01-11 11:04:48 +0000
committerVinod Koul <vkoul@kernel.org>2023-01-12 22:57:06 +0530
commite5f9124404d0c11fd19d1431901bcf76c535e241 (patch)
treea525b266b8a3d9841a1e2158dc3869d179f54c42 /drivers/phy/tegra
parenteb5793fbea50e7c89fce0bb56ce9948fa67f125b (diff)
downloadlwn-e5f9124404d0c11fd19d1431901bcf76c535e241.tar.gz
lwn-e5f9124404d0c11fd19d1431901bcf76c535e241.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: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/phy/tegra')
-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);
}