Skip to content

Commit 1492498

Browse files
Peter Chenvinodkoul
authored andcommitted
phy: cadence: salvo: decrease delay value to zero for txvalid
For USB2 L1 use cases, some hosts may start transferring less than 20us after End of Resume, it causes the host seeing corrupt packet from the device side. The reason is the delay time between PHY powers up and txvalid is 20us. To fix it, we change the delay value as 0us. Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20230517161646.3418250-3-Frank.Li@nxp.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 88bc4cd commit 1492498

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

drivers/phy/cadence/phy-cadence-salvo.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,20 @@
8989
#define TB_ADDR_XCVR_DIAG_LANE_FCM_EN_MGN_TMR 0x40f2
9090
#define TB_ADDR_TX_RCVDETSC_CTRL 0x4124
9191

92+
/* USB2 PHY register definition */
93+
#define UTMI_REG15 0xaf
94+
9295
/* TB_ADDR_TX_RCVDETSC_CTRL */
9396
#define RXDET_IN_P3_32KHZ BIT(0)
97+
/*
98+
* UTMI_REG15
99+
*
100+
* Gate how many us for the txvalid signal until analog
101+
* HS/FS transmitters have powered up
102+
*/
103+
#define TXVALID_GATE_THRESHOLD_HS_MASK (BIT(4) | BIT(5))
104+
/* 0us, txvalid is ready just after HS/FS transmitters have powered up */
105+
#define TXVALID_GATE_THRESHOLD_HS_0US (BIT(4) | BIT(5))
94106

95107
struct cdns_reg_pairs {
96108
u16 val;
@@ -230,6 +242,11 @@ static int cdns_salvo_phy_init(struct phy *phy)
230242
cdns_salvo_write(salvo_phy, USB3_PHY_OFFSET, TB_ADDR_TX_RCVDETSC_CTRL,
231243
RXDET_IN_P3_32KHZ);
232244

245+
value = cdns_salvo_read(salvo_phy, USB2_PHY_OFFSET, UTMI_REG15);
246+
value &= ~TXVALID_GATE_THRESHOLD_HS_MASK;
247+
cdns_salvo_write(salvo_phy, USB2_PHY_OFFSET, UTMI_REG15,
248+
value | TXVALID_GATE_THRESHOLD_HS_0US);
249+
233250
udelay(10);
234251

235252
clk_disable_unprepare(salvo_phy->clk);

0 commit comments

Comments
 (0)