phy: tegra: xusb: Skip single function lane programming
authorJC Kuo <jckuo@nvidia.com>
Thu, 21 Feb 2019 15:46:31 +0000 (16:46 +0100)
committerKishon Vijay Abraham I <kishon@ti.com>
Wed, 17 Apr 2019 08:42:43 +0000 (14:12 +0530)
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>
drivers/phy/tegra/xusb.c

index 5b3b8863363ed79a87db6f49e98cb4e1ab337619..e3bc60cfe6a194fc3070db9e94c243f5850c0c53 100644 (file)
@@ -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);