initialize spi-nor framework during boot, so-that detected
buses can appears at boot log.

Signed-off-by: Suneel Garapati <suneelgli...@gmail.com>
Signed-off-by: Jagan Teki <ja...@amarulasolutions.com>
---
 common/board_r.c                     | 13 +++++++++++++
 drivers/mtd/spi-nor/spi-nor-uclass.c | 17 +++++++++++++++++
 include/linux/mtd/spi-nor.h          |  1 +
 3 files changed, 31 insertions(+)

diff --git a/common/board_r.c b/common/board_r.c
index 09167c1..8030548 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -42,6 +42,7 @@
 #include <scsi.h>
 #include <serial.h>
 #include <spi.h>
+#include <linux/mtd/spi-nor.h>
 #include <stdio_dev.h>
 #include <timer.h>
 #include <trace.h>
@@ -400,6 +401,15 @@ static int initr_spi(void)
 }
 #endif
 
+#ifdef CONFIG_MTD_SPI_NOR
+static int initr_spi_nor(void)
+{
+       puts("SPI-NOR: ");
+       spi_nor_init();
+       return 0;
+}
+#endif
+
 #ifdef CONFIG_CMD_NAND
 /* go init the NAND */
 static int initr_nand(void)
@@ -762,6 +772,9 @@ static init_fnc_t init_sequence_r[] = {
 #ifdef CONFIG_PPC
        initr_spi,
 #endif
+#ifdef CONFIG_MTD_SPI_NOR
+       initr_spi_nor,
+#endif
 #ifdef CONFIG_CMD_NAND
        initr_nand,
 #endif
diff --git a/drivers/mtd/spi-nor/spi-nor-uclass.c 
b/drivers/mtd/spi-nor/spi-nor-uclass.c
index 919682d..8a37be0 100644
--- a/drivers/mtd/spi-nor/spi-nor-uclass.c
+++ b/drivers/mtd/spi-nor/spi-nor-uclass.c
@@ -15,6 +15,23 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+int spi_nor_init(void)
+{
+       struct udevice *bus;
+
+       for (uclass_first_device(UCLASS_SPI_NOR, &bus);
+            bus;
+            uclass_next_device(&bus)) {
+               ;
+       }
+
+#ifndef CONFIG_SPL_BUILD
+       print_spi_nor_devices(',');
+#endif
+
+       return 0;
+}
+
 struct spi_nor *spi_nor_get_spi_nor_dev(struct udevice *dev)
 {
        struct spi_nor_uclass_priv *upriv;
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index 9c3da70..2e8e52d 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -218,5 +218,6 @@ int get_spi_nor_num(void);
 struct spi_nor *spi_nor_get_spi_nor_dev(struct udevice *dev);
 struct mtd_info *spi_nor_get_mtd_info(struct spi_nor *nor);
 void print_spi_nor_devices(char separator);
+int spi_nor_init(void);
 
 #endif /* __MTD_SPI_NOR_H */
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to