aboutsummaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorLadislav Michl2017-02-19 00:24:49 +0100
committerTom Rini2017-03-14 20:40:22 -0400
commite4290aa10af0a69c81bbb3be1a8aef7465aed2ad (patch)
tree13256cbd6f2f38731a232f7fd2ddd24ca75a2479 /board
parentd12814e7c50b5fc4f22cf0e94f0c418c631357ae (diff)
igep00x0: fixup FDT according to detected flash type
Leave only detected flash type enabled in FTD as otherwise GPMC CS is claimed (and never freed) by Linux, causing 'concurent' flash type not to be probed. Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Diffstat (limited to 'board')
-rw-r--r--board/isee/igep00x0/igep00x0.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/board/isee/igep00x0/igep00x0.c b/board/isee/igep00x0/igep00x0.c
index 65cc7dfdece..e032f313a69 100644
--- a/board/isee/igep00x0/igep00x0.c
+++ b/board/isee/igep00x0/igep00x0.c
@@ -214,6 +214,20 @@ void board_mmc_power_init(void)
#endif
#ifdef CONFIG_OF_BOARD_SETUP
+static int ft_enable_by_compatible(void *blob, char *compat, int enable)
+{
+ int off = fdt_node_offset_by_compatible(blob, -1, compat);
+ if (off < 0)
+ return off;
+
+ if (enable)
+ fdt_status_okay(blob, off);
+ else
+ fdt_status_disabled(blob, off);
+
+ return 0;
+}
+
int ft_board_setup(void *blob, bd_t *bd)
{
#ifdef CONFIG_FDT_FIXUP_PARTITIONS
@@ -224,6 +238,11 @@ int ft_board_setup(void *blob, bd_t *bd)
fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
#endif
+ ft_enable_by_compatible(blob, "ti,omap2-nand",
+ gpmc_cs0_flash == MTD_DEV_TYPE_NAND);
+ ft_enable_by_compatible(blob, "ti,omap2-onenand",
+ gpmc_cs0_flash == MTD_DEV_TYPE_ONENAND);
+
return 0;
}
#endif