summaryrefslogtreecommitdiff
path: root/board/ti/j721s2/evm.c
diff options
context:
space:
mode:
authorApurva Nandan <a-nandan@ti.com>2023-10-07 04:29:38 +0530
committerUdit Kumar <u-kumar1@ti.com>2023-10-07 13:45:56 +0530
commit0be2deaeaa9ce5be4fe226abb915e529b11c6dea (patch)
tree726729c24bcccad4a348834f5cb0acd03ee17816 /board/ti/j721s2/evm.c
parent9390b636e8e292a85f236b4f1c70feb0ad8299cc (diff)
board: ti: j721s2: Delete nodes for OSPI NAND SPL fixup
cadence-qspi manually parses flash subnodes. Simply disabling the node was not giving expected behaviour across drivers. So, additionally delete the disabled node also as the flash is undiscoverable due to hardware muxing anyways. Signed-off-by: Apurva Nandan <a-nandan@ti.com>
Diffstat (limited to 'board/ti/j721s2/evm.c')
-rw-r--r--board/ti/j721s2/evm.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/board/ti/j721s2/evm.c b/board/ti/j721s2/evm.c
index 66d5b219b5..301e11231d 100644
--- a/board/ti/j721s2/evm.c
+++ b/board/ti/j721s2/evm.c
@@ -79,7 +79,7 @@ static void __maybe_unused detect_enable_spinand(void *blob)
{
struct gpio_desc desc = {0};
char *ospi_mux_sel_gpio = "6";
- int offset;
+ int nand_offset, nor_offset;
if (dm_gpio_lookup_name(ospi_mux_sel_gpio, &desc))
return;
@@ -90,19 +90,16 @@ static void __maybe_unused detect_enable_spinand(void *blob)
if (dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN))
return;
- if (dm_gpio_get_value(&desc)) {
- offset = fdt_node_offset_by_compatible(blob, -1, "spi-nand");
- fdt_status_okay(blob, offset);
-
- offset = fdt_first_subnode(blob,
- fdt_parent_offset(blob, offset));
- while (offset > 0) {
- if (!fdt_node_check_compatible(blob, offset,
- "jedec,spi-nor"))
- fdt_status_disabled(blob, offset);
+ 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");
- offset = fdt_next_subnode(blob, offset);
- }
+ 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);
}
}
#endif