phy: tegra: xusb: Disable trk clk when not in use
authorWayne Chang <waynec@nvidia.com>
Wed, 11 Jan 2023 11:04:48 +0000 (11:04 +0000)
committerVinod Koul <vkoul@kernel.org>
Thu, 12 Jan 2023 17:27:06 +0000 (22:57 +0530)
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>
drivers/phy/tegra/xusb-tegra186.c

index 6a8bd87..c00d14f 100644 (file)
@@ -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);
 }