In order for `mtd list` U-Boot command to list SPI NOR devices without
the need to run `sf probe` before, we have to probe SPI NOR devices in
mtd_probe_devices().

Signed-off-by: Marek Behún <marek.be...@nic.cz>
Cc: Jagan Teki <ja...@amarulasolutions.com>
Cc: Priyanka Jain <priyanka.j...@nxp.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Heiko Schocher <h...@denx.de>
Cc: Jagan Teki <ja...@amarulasolutions.com>
---
 drivers/mtd/mtd_uboot.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c
index 865e9ae4cb..4f5b2fd91d 100644
--- a/drivers/mtd/mtd_uboot.c
+++ b/drivers/mtd/mtd_uboot.c
@@ -114,6 +114,18 @@ static void mtd_probe_uclass_mtd_devs(void)
 static void mtd_probe_uclass_mtd_devs(void) { }
 #endif
 
+#if IS_ENABLED(CONFIG_DM_SPI_FLASH) && IS_ENABLED(CONFIG_SPI_FLASH_MTD)
+static void mtd_probe_uclass_spi_nor_devs(void)
+{
+       struct udevice *dev;
+
+       uclass_foreach_dev_probe(UCLASS_SPI_FLASH, dev)
+               ;
+}
+#else
+static void mtd_probe_uclass_spi_nor_devs(void) { }
+#endif
+
 #if defined(CONFIG_MTD_PARTITIONS)
 
 #define MTDPARTS_MAXLEN         512
@@ -309,6 +321,7 @@ int mtd_probe_devices(void)
        struct mtd_info *mtd;
 
        mtd_probe_uclass_mtd_devs();
+       mtd_probe_uclass_spi_nor_devs();
 
        /*
         * Check if mtdparts/mtdids changed, if the MTD dev list was updated
@@ -369,6 +382,7 @@ int mtd_probe_devices(void)
 int mtd_probe_devices(void)
 {
        mtd_probe_uclass_mtd_devs();
+       mtd_probe_uclass_spi_nor_devs();
 
        return 0;
 }
-- 
2.26.2

Reply via email to