Skip to content
Snippets Groups Projects
Commit d2bc9875 authored by Vignesh Raghavendra's avatar Vignesh Raghavendra Committed by Lokesh Vutla
Browse files

board: ti: j721e: Add support for HyperFlash detection


On J7200 SoC OSPI0 and HypeFlash are muxed at HW level and only one of
them can be used at any time. J7200 EVM has both HyperFlash and OSPI
flash on board. There is a user switch (SW3.1) that can be toggled to
select OSPI flash vs HyperFlash.
Read the state of this switch via wkup_gpio0_6 line and fixup the DT
nodes to select OSPI0 vs HyperFlash

Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
parent 86c9bd4e
No related branches found
No related tags found
No related merge requests found
...@@ -89,6 +89,34 @@ int board_fit_config_name_match(const char *name) ...@@ -89,6 +89,34 @@ int board_fit_config_name_match(const char *name)
} }
#endif #endif
#if CONFIG_IS_ENABLED(DM_GPIO) && CONFIG_IS_ENABLED(OF_LIBFDT)
/* Returns 1, if onboard mux is set to hyperflash */
static void __maybe_unused detect_enable_hyperflash(void *blob)
{
struct gpio_desc desc = {0};
if (dm_gpio_lookup_name("6", &desc))
return;
if (dm_gpio_request(&desc, "6"))
return;
if (dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN))
return;
if (dm_gpio_get_value(&desc)) {
int offset;
do_fixup_by_compat(blob, "ti,am654-hbmc", "status",
"okay", sizeof("okay"), 0);
offset = fdt_node_offset_by_compatible(blob, -1,
"ti,j721e-ospi");
fdt_setprop(blob, offset, "status", "disabled",
sizeof("disabled"));
}
}
#endif
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, struct bd_info *bd) int ft_board_setup(void *blob, struct bd_info *bd)
{ {
...@@ -101,6 +129,8 @@ int ft_board_setup(void *blob, struct bd_info *bd) ...@@ -101,6 +129,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
if (ret) if (ret)
printf("%s: fixing up msmc ram failed %d\n", __func__, ret); printf("%s: fixing up msmc ram failed %d\n", __func__, ret);
detect_enable_hyperflash(blob);
return ret; return ret;
} }
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment