Commit b5c0bd07 authored by Li Bin's avatar Li Bin Committed by Greg Kroah-Hartman
Browse files

ARM: at91: pm: fix at91_suspend_finish for ZQ calibration



[ Upstream commit bc4722c3 ]

For sama7g5 and sama7d65 backup mode, we encountered a "ZQ calibrate error"
during recalibrating the impedance in BootStrap.
We found that the impedance value saved in at91_suspend_finish() before
the DDR entered self-refresh mode did not match the resistor values. The
ZDATA field in the DDR3PHY_ZQ0CR0 register uses a modified gray code to
select the different impedance setting.
But these gray code are incorrect, a workaournd from design team fixed the
bug in the calibration logic. The ZDATA contains four independent impedance
elements, but the algorithm combined the four elements into one. The elements
were fixed using properly shifted offsets.

Signed-off-by: default avatarLi Bin <bin.li@microchip.com>
[nicolas.ferre@microchip.com: fix indentation and combine 2 patches]
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
Tested-by: default avatarRyan Wanner <Ryan.Wanner@microchip.com>
Tested-by: default avatarDurai Manickam KR <durai.manickamkr@microchip.com>
Tested-by: default avatarAndrei Simion <andrei.simion@microchip.com>
Signed-off-by: default avatarRyan Wanner <Ryan.Wanner@microchip.com>
Link: https://lore.kernel.org/r/28b33f9bcd0ca60ceba032969fe054d38f2b9577.1740671156.git.Ryan.Wanner@microchip.com


Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@tuxon.dev>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent e62a64a0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment