linux/drivers/phy/tegra
Wayne Chang ed9297ad5e phy: tegra: xusb: Fix per-pad high-speed termination calibration
[ Upstream commit da110228b5 ]

The existing code reads a single hs_term_range_adj value from bit field
[10:7] of FUSE_SKU_CALIB_0 and applies it to all USB2 pads uniformly.
However, on SoCs that support per-pad termination, each pad has its own
hs_term_range_adj field: pad 0 in FUSE_SKU_CALIB_0[10:7], and pads 1-3
in FUSE_USB_CALIB_EXT_0 at bit offsets [8:5], [12:9], and [16:13]
respectively.

Fix the calibration by reading per-pad values from the appropriate fuse
registers. For SoCs that do not support per-pad termination, replicate
pad 0's value to all pads to maintain existing behavior.

Add a has_per_pad_term flag to the SoC data to indicate whether per-pad
termination values are available in FUSE_USB_CALIB_EXT_0.

Fixes: 1ef535c6ba ("phy: tegra: xusb: Add Tegra194 support")
Cc: stable@vger.kernel.org
Signed-off-by: Wayne Chang <waynec@nvidia.com>
Signed-off-by: Wei-Cheng Chen <weichengc@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Link: https://patch.msgid.link/20260504033305.2283145-1-weichengc@nvidia.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-06-19 13:33:47 +02:00
..
Kconfig phy: tegra: Select USB_COMMON for usb_get_maximum_speed() 2020-04-16 15:05:53 +02:00
Makefile phy: tegra: xusb: Add Tegra194 support 2020-03-19 13:59:46 +01:00
phy-tegra194-p2u.c phy: tegra: convert to devm_platform_ioremap_resource(_byname) 2020-11-16 12:47:48 +05:30
xusb-tegra124.c phy: tegra: Don't use device-managed API to allocate ports 2020-03-19 14:00:05 +01:00
xusb-tegra186.c phy: tegra: xusb: Fix per-pad high-speed termination calibration 2026-06-19 13:33:47 +02:00
xusb-tegra210.c phy: tegra: xusb: fix device and OF node leak at probe 2025-10-02 13:39:04 +02:00
xusb.c phy: Fix error handling in tegra_xusb_port_init 2025-05-22 14:08:25 +02:00
xusb.h phy: tegra: xusb: Fix per-pad high-speed termination calibration 2026-06-19 13:33:47 +02:00