]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
sunxi: H616: dram: fix LPDDR3 TPR6 parsing
authorJernej Skrabec <jernej.skrabec@gmail.com>
Sun, 5 Apr 2026 19:59:26 +0000 (21:59 +0200)
committerAndre Przywara <andre.przywara@arm.com>
Thu, 30 Apr 2026 21:31:03 +0000 (23:31 +0200)
Allwinner's DRAM initialisation code defines a parameter named TPR6,
presumably containing some "Vref" parameter, but containing values for
*all* DRAM types. The runtime code selects one byte based on the DRAM
type used.
This selection code was wrong for LPDDR3, the value is encoded in
bits [23:16], not [15:8]. Fix that in the code, which also aligns it
with the very similar code for the A133 and A523.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reported-by: Philippe Simons <simons.philippe@gmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
arch/arm/mach-sunxi/dram_sun50i_h616.c

index 3345c9b8e82bf3bec61531d737cae7acf46d0e09..42a0550e015f8768cd425dc4793e6601e460bf1b 100644 (file)
@@ -975,7 +975,7 @@ static bool mctl_phy_init(const struct dram_para *para,
                val = para->tpr6 & 0xff;
                break;
        case SUNXI_DRAM_TYPE_LPDDR3:
-               val = para->tpr6 >> 8 & 0xff;
+               val = para->tpr6 >> 16 & 0xff;
                break;
        case SUNXI_DRAM_TYPE_LPDDR4:
                val = para->tpr6 >> 24 & 0xff;