]> git.itanic.dy.fi Git - linux-stable/commit
ARM: at91: pm: fix self-refresh for sama7g5
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Fri, 26 Aug 2022 08:39:20 +0000 (11:39 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2022 09:30:04 +0000 (11:30 +0200)
commite11d08c825f254ca1bbc529419bafefb1a59c9a6
treee3932a924df1f140a76a3a7ff64c612dca0a9c43
parent32dd0b22a5ba1dd296ccf2caf46ad44c3a8d5d98
ARM: at91: pm: fix self-refresh for sama7g5

[ Upstream commit a02875c4cbd6f3d2f33d70cc158a19ef02d4b84f ]

It has been discovered that on some parts, from time to time, self-refresh
procedure doesn't work as expected. Debugging and investigating it proved
that disabling AC DLL introduce glitches in RAM controllers which
leads to unexpected behavior. This is confirmed as a hardware bug. DLL
bypass disables 3 DLLs: 2 DX DLLs and AC DLL. Thus, keep only DX DLLs
disabled. This introduce 6mA extra current consumption on VDDCORE when
switching to any ULP mode or standby mode but the self-refresh procedure
still works.

Fixes: f0bbf17958e8 ("ARM: at91: pm: add self-refresh support for sama7g5")
Suggested-by: Frederic Schumacher <frederic.schumacher@microchip.com>
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Tested-by: Cristian Birsan <cristian.birsan@microchip.com>
Link: https://lore.kernel.org/r/20220826083927.3107272-3-claudiu.beznea@microchip.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/mach-at91/pm_suspend.S
include/soc/at91/sama7-ddr.h