Skip to content

Commit 5a759b1

Browse files
lvkaszusvinodkoul
authored andcommitted
phy: exynos5-usbdrd: fix USB 2.0 HS PHY tuning values for Exynos7870
The existing PHYPARAM0 tuning values for Exynos7870 are incorrect, causing the USB 2.0 PHY to fail high-speed negotiation and fall back to full-speed (12Mbps) operation. Fix TXVREFTUNE (transmitter voltage reference) from 14 to 3, TXRESTUNE (transmitter impedance) from 3 to 2, and SQRXTUNE (squelch threshold) from 6 to 5. Also explicitly set TXPREEMPPULSETUNE to 0, which was previously missing from the tuning table despite being included in the register mask. All values are derived from the vendor kernel for the Samsung Galaxy A6 (SM-A600FN), as no public hardware documentation is available for the Exynos7870 USB DRD PHY. With these corrections, the PHY successfully negotiates high-speed (480Mbps) operation. Fixes: 588d5d2 ("phy: exynos5-usbdrd: add exynos7870 USBDRD support") Cc: stable@vger.kernel.org Tested-by: Kaustabh Chakraborty <kauschluss@disroot.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Łukasz Lebiedziński <kernel@lvkasz.us> Link: https://patch.msgid.link/20260406135627.234835-1-kernel@lvkasz.us Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent da11022 commit 5a759b1

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

drivers/phy/samsung/phy-exynos5-usbdrd.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1958,13 +1958,14 @@ const struct exynos5_usbdrd_phy_tuning exynos7870_tunes_utmi_postinit[] = {
19581958
PHYPARAM0_TXPREEMPAMPTUNE | PHYPARAM0_TXHSXVTUNE |
19591959
PHYPARAM0_TXFSLSTUNE | PHYPARAM0_SQRXTUNE |
19601960
PHYPARAM0_OTGTUNE | PHYPARAM0_COMPDISTUNE),
1961-
(FIELD_PREP_CONST(PHYPARAM0_TXVREFTUNE, 14) |
1961+
(FIELD_PREP_CONST(PHYPARAM0_TXVREFTUNE, 3) |
19621962
FIELD_PREP_CONST(PHYPARAM0_TXRISETUNE, 1) |
1963-
FIELD_PREP_CONST(PHYPARAM0_TXRESTUNE, 3) |
1963+
FIELD_PREP_CONST(PHYPARAM0_TXRESTUNE, 2) |
1964+
FIELD_PREP_CONST(PHYPARAM0_TXPREEMPPULSETUNE, 0) |
19641965
FIELD_PREP_CONST(PHYPARAM0_TXPREEMPAMPTUNE, 0) |
19651966
FIELD_PREP_CONST(PHYPARAM0_TXHSXVTUNE, 0) |
19661967
FIELD_PREP_CONST(PHYPARAM0_TXFSLSTUNE, 3) |
1967-
FIELD_PREP_CONST(PHYPARAM0_SQRXTUNE, 6) |
1968+
FIELD_PREP_CONST(PHYPARAM0_SQRXTUNE, 5) |
19681969
FIELD_PREP_CONST(PHYPARAM0_OTGTUNE, 2) |
19691970
FIELD_PREP_CONST(PHYPARAM0_COMPDISTUNE, 3))),
19701971
PHY_TUNING_ENTRY_LAST

0 commit comments

Comments
 (0)