From 7cd67018dd7f754c66cf08a76397bbee254b32aa Mon Sep 17 00:00:00 2001
From: =?utf8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Mon, 1 Aug 2022 23:58:42 +0200
Subject: [PATCH] arm: mvebu: turris_omnia: Remove hardcoded spi-nor device
 tree path
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Linux kernel DTS files renamed spi-nor@0 node to flash@0 which effectively
broke U-Boot to boot new Linux kernel versions correctly.

So remove hardcoded spi-nor device tree path from Turris Omnia board code
and replace it by searching for mtd node by compatible string.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
---
 board/CZ.NIC/turris_omnia/turris_omnia.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
index 98bad11537..5ddd873d02 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -32,8 +32,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define OMNIA_SPI_NOR_PATH		"/soc/spi@10600/spi-nor@0"
-
 #define OMNIA_I2C_BUS_NAME		"i2c@11000->i2cmux@70->i2c@0"
 
 #define OMNIA_I2C_MCU_CHIP_ADDR		0x2a
@@ -1030,14 +1028,22 @@ static bool fixup_mtd_partitions(void *blob, int offset, struct mtd_info *mtd)
 
 static void fixup_spi_nor_partitions(void *blob)
 {
-	struct mtd_info *mtd;
+	struct mtd_info *mtd = NULL;
+	char mtd_path[64];
 	int node;
 
-	mtd = get_mtd_device_nm(OMNIA_SPI_NOR_PATH);
+	node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "jedec,spi-nor");
+	if (node < 0)
+		goto fail;
+
+	if (fdt_get_path(gd->fdt_blob, node, mtd_path, sizeof(mtd_path)) < 0)
+		goto fail;
+
+	mtd = get_mtd_device_nm(mtd_path);
 	if (IS_ERR_OR_NULL(mtd))
 		goto fail;
 
-	node = fdt_path_offset(blob, OMNIA_SPI_NOR_PATH);
+	node = fdt_node_offset_by_compatible(blob, -1, "jedec,spi-nor");
 	if (node < 0)
 		goto fail;
 
-- 
2.39.5