mx6: ddr: Fix disabling on-die termination
authorFrancesco Dolcini <francesco.dolcini@toradex.com>
Fri, 24 Jun 2022 10:33:35 +0000 (12:33 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 28 Jun 2022 13:24:31 +0000 (15:24 +0200)
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: fe0f7f7842e1 ("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>
arch/arm/mach-imx/mx6/ddr.c

index 73a637c..3c87c57 100644 (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);