
On Mon, 2016-02-22 at 18:05 +0800, Gong Qianyu wrote:
QSPI and IFC are pin-multiplexed on LS1043A. So if QSPI is enabled, IFC should be disabled. But just disable IFC driver in LS1043A Linux is not enough because mdio-mux will access IFC address space -- actually it accesses FPGA which is connected to IFC CS3. So disable the whole IFC node in Linux device tree.
Signed-off-by: Gong Qianyu Qianyu.Gong@nxp.com
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c index 4e4861d..5bb3048 100644 --- a/arch/arm/cpu/armv8/fsl-layerscape/fdt.c +++ b/arch/arm/cpu/armv8/fsl-layerscape/fdt.c @@ -204,4 +204,11 @@ void ft_cpu_setup(void *blob, bd_t *bd) #ifdef CONFIG_FSL_LSCH3 fdt_fixup_smmu(blob); #endif
+#ifdef CONFIG_LS1043A +#ifdef CONFIG_FSL_QSPI
- do_fixup_by_compat(blob, "fsl,ifc",
"status", "disabled", 8 + 1, 1);
+#endif +#endif }
This muxing is done at runtime, right? It isn't a case of the board hardwiring one or the other? In that case, it should be handled at runtime here as well. At a minimum, allow the user to use hwconfig to choose which they want to be accessible. Ideally there would be something in the device tree to list the reason(s) for a device being disabled, so the OS knows it can regard the device as being enabled if it knows about and enables them all.
-Scott