]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
armv8: ls1043aqds: add IFC fixup in case QSPI is enabled
authorQianyu Gong <qianyu.gong@nxp.com>
Thu, 21 Jul 2016 04:39:27 +0000 (12:39 +0800)
committerYork Sun <york.sun@nxp.com>
Tue, 26 Jul 2016 16:03:50 +0000 (09:03 -0700)
QSPI and IFC are pin-multiplexed on LS1043AQDS board. If QSPI is
enabled, IFC would not be initialized correctly. So disable the IFC
node for Linux.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
board/freescale/ls1043aqds/ls1043aqds.c

index b7e9c2172773fff279ee18b9f60bb50247584003..941dfbc447ebe9f1b3ed29c1d8e7bc1710dee264 100644 (file)
@@ -327,6 +327,7 @@ int ft_board_setup(void *blob, bd_t *bd)
 {
        u64 base[CONFIG_NR_DRAM_BANKS];
        u64 size[CONFIG_NR_DRAM_BANKS];
+       u8 reg;
 
        /* fixup DT for the two DDR banks */
        base[0] = gd->bd->bi_dram[0].start;
@@ -341,6 +342,15 @@ int ft_board_setup(void *blob, bd_t *bd)
        fdt_fixup_fman_ethernet(blob);
        fdt_fixup_board_enet(blob);
 #endif
+
+       reg = QIXIS_READ(brdcfg[0]);
+       reg = (reg & QIXIS_LBMAP_MASK) >> QIXIS_LBMAP_SHIFT;
+
+       /* Disable IFC if QSPI is enabled */
+       if (reg == 0xF)
+               do_fixup_by_compat(blob, "fsl,ifc",
+                                  "status", "disabled", 8 + 1, 1);
+
        return 0;
 }
 #endif