ARM: 8891/1: EDAC: armada_xp: Add support for more SoCs
authorChris Packham <chris.packham@alliedtelesis.co.nz>
Fri, 12 Jul 2019 04:46:58 +0000 (05:46 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 29 Aug 2019 06:58:01 +0000 (07:58 +0100)
The Armada 38x and other integrated SoCs use a reduced pin count so the
width of the SDRAM interface is smaller than the Armada XP SoCs. This
means that the definition of "full" and "half" width is reduced from
64/32 to 32/16.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
drivers/edac/armada_xp_edac.c

index 3759a4fbbdee51c21e27bd50e4488c519af8c773..7f227bdcbc845d9ecc365d9acf5675167dc3dc1c 100644 (file)
@@ -332,6 +332,11 @@ static int axp_mc_probe(struct platform_device *pdev)
 
        axp_mc_read_config(mci);
 
+       /* These SoCs have a reduced width bus */
+       if (of_machine_is_compatible("marvell,armada380") ||
+           of_machine_is_compatible("marvell,armadaxp-98dx3236"))
+               drvdata->width /= 2;
+
        /* configure SBE threshold */
        /* it seems that SBEs are not captured otherwise */
        writel(1 << SDRAM_ERR_CTRL_THR_OFFSET, drvdata->base + SDRAM_ERR_CTRL_REG);