Re: [PATCH 1/1] phy: tegra: xusb: Fix UTMI AO sleepwalk trigger programming sequence

From: Wayne Chang

Date: Thu Dec 04 2025 - 22:19:17 EST


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@xxxxxxxxxx>
>>
>> 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@xxxxxxxxxxxxxxx
>> Signed-off-by: Haotien Hsu <haotienh@xxxxxxxxxx>
>> Signed-off-by: Wayne Chang <waynec@xxxxxxxxxx>
>> ---
>> 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
>