board: ti: j784s4: Enable OSPI NAND SPL fixup
On J784S4, SW3.1 (WKUP_GPIO0_6) is used for selecting between OSPI NOR and OSPI NAND flash. Read the GPIO state, to perform flash enable operation on the fdt, for the valid flash and delete the unconnected flash node. Signed-off-by: Apurva Nandan <a-nandan@ti.com>
This commit is contained in:
parent
f7b1127f39
commit
48be4a4c7f
|
|
@ -72,6 +72,44 @@ int dram_init_banksize(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Enables the spi-nand dts node, if onboard mux is set to spinand */
|
||||
static void __maybe_unused detect_enable_spinand(void *blob)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_DM_GPIO) && IS_ENABLED(CONFIG_OF_LIBFDT)) {
|
||||
struct gpio_desc desc = {0};
|
||||
char *ospi_mux_sel_gpio = "6";
|
||||
int nand_offset, nor_offset;
|
||||
|
||||
if (dm_gpio_lookup_name(ospi_mux_sel_gpio, &desc))
|
||||
return;
|
||||
|
||||
if (dm_gpio_request(&desc, ospi_mux_sel_gpio))
|
||||
return;
|
||||
|
||||
if (dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN))
|
||||
return;
|
||||
|
||||
nand_offset = fdt_node_offset_by_compatible(blob, -1, "spi-nand");
|
||||
nor_offset = fdt_node_offset_by_compatible(blob,
|
||||
fdt_parent_offset(blob, nand_offset),
|
||||
"jedec,spi-nor");
|
||||
|
||||
if (dm_gpio_get_value(&desc)) {
|
||||
fdt_status_okay(blob, nand_offset);
|
||||
fdt_del_node(blob, nor_offset);
|
||||
} else {
|
||||
fdt_del_node(blob, nand_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD)
|
||||
void spl_perform_fixups(struct spl_image_info *spl_image)
|
||||
{
|
||||
detect_enable_spinand(spl_image->fdt_addr);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
|
||||
int ft_board_setup(void *blob, struct bd_info *bd)
|
||||
{
|
||||
|
|
@ -84,6 +122,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
|
|||
if (ret)
|
||||
printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
|
||||
|
||||
detect_enable_spinand(blob);
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue