summaryrefslogtreecommitdiffstats
path: root/drivers/phy/tegra
diff options
context:
space:
mode:
authorJC Kuo <jckuo@nvidia.com>2019-02-21 16:46:31 +0100
committerKishon Vijay Abraham I <kishon@ti.com>2019-04-17 10:42:43 +0200
commit3cffa0818dc82a90d1a3df5ea7111999cb7b8646 (patch)
tree79c88b715b697e1bc198fd48d26bd69800bb8695 /drivers/phy/tegra
parentdt-bindings: phy: tegra: Add Tegra186 support (diff)
downloadlinux-3cffa0818dc82a90d1a3df5ea7111999cb7b8646.tar.xz
linux-3cffa0818dc82a90d1a3df5ea7111999cb7b8646.zip
phy: tegra: xusb: Skip single function lane programming
Tegra186 USB2 pads and USB3 pads do not have hardware mux for changing the pad function. For such "lanes", we can skip the lane mux register programming. Signed-off-by: JC Kuo <jckuo@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'drivers/phy/tegra')
-rw-r--r--drivers/phy/tegra/xusb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c
index 5b3b8863363e..e3bc60cfe6a1 100644
--- a/drivers/phy/tegra/xusb.c
+++ b/drivers/phy/tegra/xusb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2014-2016, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
@@ -313,6 +313,10 @@ static void tegra_xusb_lane_program(struct tegra_xusb_lane *lane)
const struct tegra_xusb_lane_soc *soc = lane->soc;
u32 value;
+ /* skip single function lanes */
+ if (soc->num_funcs < 2)
+ return;
+
/* choose function */
value = padctl_readl(padctl, soc->offset);
value &= ~(soc->mask << soc->shift);