mx6: ddr: Fix disabling on-die termination

In case rtt_nom is set to 0 keep ODT disabled (MMDC MPODTCTRL = 0).
No changes required for DDR MR1 Rtt_Nom impedance register, 0 value is
already handled correctly.

No board is currently affected by this change (rtt_nom != 0 on all i.MX6
ddr3 boards), this will be used by a follow-up change.

Fixes: fe0f7f7842 ("mx6: add mmdc configuration for MX6Q/MX6DL")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
This commit is contained in:
Francesco Dolcini 2022-06-24 12:33:35 +02:00 committed by Stefano Babic
parent d4cd19ded8
commit 6b5ecb8293

View File

@ -1469,8 +1469,17 @@ void mx6_ddr3_cfg(const struct mx6_ddr_sysinfo *sysinfo,
MMDC1(mprddqby3dl, 0x33333333);
}
/* MMDC Termination: rtt_nom:2 RZQ/2(120ohm), rtt_nom:1 RZQ/4(60ohm) */
val = (sysinfo->rtt_nom == 2) ? 0x00011117 : 0x00022227;
/*
* MMDC Termination: rtt_nom:2 RZQ/2(120ohm),
* rtt_nom:1 RZQ/4(60ohm),
* rtt_nom:0 Disabled
*/
if (sysinfo->rtt_nom == 0)
val = 0x00000000;
else if (sysinfo->rtt_nom == 2)
val = 0x00011117;
else
val = 0x00022227;
mmdc0->mpodtctrl = val;
if (sysinfo->dsize > 1)
MMDC1(mpodtctrl, val);