[PATCH 1/1] phy: tegra: xusb: Fix UTMI AO sleepwalk trigger programming sequence
Wayne Chang
waynec at nvidia.com
Thu Dec 4 19:19:14 PST 2025
Hi JC,
On 12/4/25 15:12, Jui Chang Kuo wrote:
> Hi Wayne
>
> On 12/3/25 10:47, Wayne Chang wrote:
>> From: Haotien Hsu <haotienh at nvidia.com>
>>
>> The UTMIP sleepwalk programming sequence requires asserting both
>> LINEVAL_WALK_EN and WAKE_WALK_EN when enabling the sleepwalk logic.
>> However, the current code mistakenly cleared WAKE_WALK_EN, which
>> prevents the sleepwalk trigger from operating correctly.
>>
>> Fix this by asserting WAKE_WALK_EN together with LINEVAL_WALK_EN.
>>
>> Fixes: 1f9cab6cc20c ("phy: tegra: xusb: Add wake/sleepwalk for Tegra186")
>> Cc: stable at vger.kernel.org
>> Signed-off-by: Haotien Hsu <haotienh at nvidia.com>
>> Signed-off-by: Wayne Chang <waynec at nvidia.com>
>> ---
>> drivers/phy/tegra/xusb-tegra186.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c
>> index e818f6c3980e..b2a76710c0c4 100644
>> --- a/drivers/phy/tegra/xusb-tegra186.c
>> +++ b/drivers/phy/tegra/xusb-tegra186.c
>> @@ -401,8 +401,7 @@ static int tegra186_utmi_enable_phy_sleepwalk(struct tegra_xusb_lane *lane,
>>
>> /* enable the trigger of the sleepwalk logic */
>> value = ao_readl(priv, XUSB_AO_UTMIP_SLEEPWALK_CFG(index));
>> - value |= LINEVAL_WALK_EN;
>> - value &= ~WAKE_WALK_EN;
>> + value |= LINEVAL_WALK_EN | WAKE_WALK_EN;
>> ao_writel(priv, value, XUSB_AO_UTMIP_SLEEPWALK_CFG(index));
>>
>> /* reset the walk pointer and clear the alarm of the sleepwalk logic,
> WAKE_WALK_EN has to be set with '0' according to the ASIC designers. Tegra234
> and Tegra239 TRMs have been updated. We will get Tegra264 document updated as well.
Thanks for the review. Dropping the change.
>
> Thanks,
> JC
>
More information about the linux-phy
mailing list