[PATCH 11/11] Finish conversion CONFIG_SYS_NAND_SELF_INIT to Kconfig

Tom Rini trini at konsulko.com
Mon Dec 13 04:12:36 CET 2021


In order to finish this conversion we need to add a symbols for
SPL_SYS_NAND_SELF_INIT and TPL_SYS_NAND_SELF_INIT as there are cases
there where we need to, or need to not, use that framework as things
stand.

Signed-off-by: Tom Rini <trini at konsulko.com>
---
 drivers/mtd/nand/raw/Kconfig             | 27 ++++++++++++++++++++++++
 drivers/mtd/nand/raw/davinci_nand.c      |  2 +-
 drivers/mtd/nand/raw/nand.c              |  4 ++--
 include/configs/broadcom_bcm963158.h     |  1 -
 include/configs/broadcom_bcm968360bg.h   |  1 -
 include/configs/broadcom_bcm968380gerg.h |  1 -
 include/configs/broadcom_bcm968580xref.h |  1 -
 include/configs/comtrend_vr3032u.h       |  1 -
 include/configs/da850evm.h               |  4 ----
 include/configs/tegra20-common.h         |  2 --
 include/configs/work_92105.h             |  1 -
 include/nand.h                           | 18 +---------------
 12 files changed, 31 insertions(+), 32 deletions(-)

diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig
index da618acd873b..0e826c192986 100644
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -9,6 +9,20 @@ config SYS_NAND_SELF_INIT
 	  This option, if enabled, provides more flexible and linux-like
 	  NAND initialization process.
 
+config SPL_SYS_NAND_SELF_INIT
+	bool
+	depends on !SPL_NAND_SIMPLE
+	help
+	  This option, if enabled, provides more flexible and linux-like
+	  NAND initialization process, in SPL.
+
+config TPL_SYS_NAND_SELF_INIT
+	bool
+	depends on TPL_NAND_SUPPORT
+	help
+	  This option, if enabled, provides more flexible and linux-like
+	  NAND initialization process, in SPL.
+
 config SYS_NAND_DRIVER_ECC_LAYOUT
 	bool "Omit standard ECC layouts to save space"
 	help
@@ -22,6 +36,7 @@ config SYS_NAND_USE_FLASH_BBT
 
 config NAND_ATMEL
 	bool "Support Atmel NAND controller"
+	select SYS_NAND_SELF_INIT
 	imply SYS_NAND_USE_FLASH_BBT
 	help
 	  Enable this driver for NAND flash platforms using an Atmel NAND
@@ -65,6 +80,7 @@ endif
 config NAND_BRCMNAND
 	bool "Support Broadcom NAND controller"
 	depends on OF_CONTROL && DM && DM_MTD
+	select SYS_NAND_SELF_INIT
 	help
 	  Enable the driver for NAND flash on platforms using a Broadcom NAND
 	  controller.
@@ -101,6 +117,7 @@ config NAND_BRCMNAND_63158
 
 config NAND_DAVINCI
 	bool "Support TI Davinci NAND controller"
+	select SYS_NAND_SELF_INIT if TARGET_DA850EVM
 	help
 	  Enable this driver for NAND flash controllers available in TI Davinci
 	  and Keystone2 platforms
@@ -128,18 +145,25 @@ config NAND_DENALI_DT
 
 config NAND_FSL_ELBC
 	bool "Support Freescale Enhanced Local Bus Controller FCM NAND driver"
+	select TPL_SYS_NAND_SELF_INIT if TPL_NAND_SUPPORT
+	select SPL_SYS_NAND_SELF_INIT
+	select SYS_NAND_SELF_INIT
 	depends on FSL_ELBC
 	help
 	  Enable the Freescale Enhanced Local Bus Controller FCM NAND driver.
 
 config NAND_FSL_IFC
 	bool "Support Freescale Integrated Flash Controller NAND driver"
+	select TPL_SYS_NAND_SELF_INIT if TPL_NAND_SUPPORT
+	select SPL_SYS_NAND_SELF_INIT
+	select SYS_NAND_SELF_INIT
 	select FSL_IFC
 	help
 	  Enable the Freescale Integrated Flash Controller NAND driver.
 
 config NAND_LPC32XX_MLC
 	bool "Support LPC32XX_MLC controller"
+	select SYS_NAND_SELF_INIT
 	help
 	  Enable the LPC32XX MLC NAND controller.
 
@@ -331,6 +355,7 @@ config NAND_SUNXI
 	select SYS_NAND_SELF_INIT
 	select SYS_NAND_U_BOOT_LOCATIONS
 	select SPL_NAND_SUPPORT
+	select SPL_SYS_NAND_SELF_INIT
 	imply CMD_NAND
 	---help---
 	Enable support for NAND. This option enables the standard and
@@ -375,6 +400,7 @@ config NAND_MXC
 config NAND_MXS
 	bool "MXS NAND support"
 	depends on MX23 || MX28 || MX6 || MX7 || IMX8 || IMX8M
+	select SPL_SYS_NAND_SELF_INIT
 	select SYS_NAND_SELF_INIT
 	imply CMD_NAND
 	select APBH_DMA
@@ -407,6 +433,7 @@ config NAND_MXIC
 
 config NAND_ZYNQ
 	bool "Support for Zynq Nand controller"
+	select SPL_SYS_NAND_SELF_INIT
 	select SYS_NAND_SELF_INIT
 	select DM_MTD
 	imply CMD_NAND
diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
index ef7ee395c0ca..9158d94de25a 100644
--- a/drivers/mtd/nand/raw/davinci_nand.c
+++ b/drivers/mtd/nand/raw/davinci_nand.c
@@ -788,7 +788,7 @@ static void davinci_nand_init(struct nand_chip *nand)
 	nand->dev_ready = nand_davinci_dev_ready;
 }
 
-#ifdef CONFIG_SYS_NAND_SELF_INIT
+#if CONFIG_IS_ENABLED(SYS_NAND_SELF_INIT)
 static int davinci_nand_probe(struct udevice *dev)
 {
 	struct nand_chip *nand = dev_get_priv(dev);
diff --git a/drivers/mtd/nand/raw/nand.c b/drivers/mtd/nand/raw/nand.c
index 59ad1392b0e6..4b5560dd24cd 100644
--- a/drivers/mtd/nand/raw/nand.c
+++ b/drivers/mtd/nand/raw/nand.c
@@ -76,7 +76,7 @@ int nand_register(int devnum, struct mtd_info *mtd)
 	return 0;
 }
 
-#ifndef CONFIG_SYS_NAND_SELF_INIT
+#if !CONFIG_IS_ENABLED(SYS_NAND_SELF_INIT)
 static void nand_init_chip(int i)
 {
 	struct nand_chip *nand = &nand_chip[i];
@@ -155,7 +155,7 @@ void nand_init(void)
 		return;
 	initialized = 1;
 
-#ifdef CONFIG_SYS_NAND_SELF_INIT
+#if CONFIG_IS_ENABLED(SYS_NAND_SELF_INIT)
 	board_nand_init();
 #else
 	int i;
diff --git a/include/configs/broadcom_bcm963158.h b/include/configs/broadcom_bcm963158.h
index de45f74923a2..5aa784d88cac 100644
--- a/include/configs/broadcom_bcm963158.h
+++ b/include/configs/broadcom_bcm963158.h
@@ -28,7 +28,6 @@
 
 #ifdef CONFIG_MTD_RAW_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_SELF_INIT
 #endif /* CONFIG_MTD_RAW_NAND */
 
 /*
diff --git a/include/configs/broadcom_bcm968360bg.h b/include/configs/broadcom_bcm968360bg.h
index 0391f0621819..01bab046ddb0 100644
--- a/include/configs/broadcom_bcm968360bg.h
+++ b/include/configs/broadcom_bcm968360bg.h
@@ -27,7 +27,6 @@
 
 #ifdef CONFIG_MTD_RAW_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_SELF_INIT
 #endif /* CONFIG_MTD_RAW_NAND */
 
 /*
diff --git a/include/configs/broadcom_bcm968380gerg.h b/include/configs/broadcom_bcm968380gerg.h
index 866de2527d0b..c1c1b37fabd9 100644
--- a/include/configs/broadcom_bcm968380gerg.h
+++ b/include/configs/broadcom_bcm968380gerg.h
@@ -8,5 +8,4 @@
 
 #ifdef CONFIG_MTD_RAW_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_SELF_INIT
 #endif /* CONFIG_MTD_RAW_NAND */
diff --git a/include/configs/broadcom_bcm968580xref.h b/include/configs/broadcom_bcm968580xref.h
index 179aa9d608c8..ebfc2ecc0be1 100644
--- a/include/configs/broadcom_bcm968580xref.h
+++ b/include/configs/broadcom_bcm968580xref.h
@@ -27,7 +27,6 @@
 
 #ifdef CONFIG_MTD_RAW_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_SELF_INIT
 #endif /* CONFIG_MTD_RAW_NAND */
 
 /*
diff --git a/include/configs/comtrend_vr3032u.h b/include/configs/comtrend_vr3032u.h
index fc890af915a7..ee29f702f8f3 100644
--- a/include/configs/comtrend_vr3032u.h
+++ b/include/configs/comtrend_vr3032u.h
@@ -10,5 +10,4 @@
 
 #ifdef CONFIG_MTD_RAW_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_SELF_INIT
 #endif /* CONFIG_MTD_RAW_NAND */
diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h
index bd788662947a..9d27e502298e 100644
--- a/include/configs/da850evm.h
+++ b/include/configs/da850evm.h
@@ -136,10 +136,6 @@
 				59, 60, 61, 62, 63 }
 #define CONFIG_SYS_NAND_ECCSIZE		512
 #define CONFIG_SYS_NAND_ECCBYTES	10
-
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_SYS_NAND_SELF_INIT
-#endif
 #endif
 
 /*
diff --git a/include/configs/tegra20-common.h b/include/configs/tegra20-common.h
index 063213cbfeb7..fac869272857 100644
--- a/include/configs/tegra20-common.h
+++ b/include/configs/tegra20-common.h
@@ -79,6 +79,4 @@
  */
 #define CONFIG_USB_EHCI_TXFIFO_THRESH	0x10
 
-#define CONFIG_SYS_NAND_SELF_INIT
-
 #endif /* _TEGRA20_COMMON_H_ */
diff --git a/include/configs/work_92105.h b/include/configs/work_92105.h
index 9223aee5c16b..a43fd81e45db 100644
--- a/include/configs/work_92105.h
+++ b/include/configs/work_92105.h
@@ -55,7 +55,6 @@
  */
 
 /* driver configuration */
-#define CONFIG_SYS_NAND_SELF_INIT
 #define CONFIG_SYS_MAX_NAND_DEVICE 1
 #define CONFIG_SYS_MAX_NAND_CHIPS 1
 #define CONFIG_SYS_NAND_BASE MLC_NAND_BASE
diff --git a/include/nand.h b/include/nand.h
index 09dbda4e81b2..70c1286ccb40 100644
--- a/include/nand.h
+++ b/include/nand.h
@@ -10,22 +10,6 @@
 
 #include <config.h>
 
-/*
- * All boards using a given driver must convert to self-init
- * at the same time, so do it here.  When all drivers are
- * converted, this will go away.
- */
-#ifdef CONFIG_SPL_BUILD
-#if defined(CONFIG_NAND_FSL_ELBC) || defined(CONFIG_NAND_FSL_IFC)
-#define CONFIG_SYS_NAND_SELF_INIT
-#endif
-#else
-#if defined(CONFIG_NAND_FSL_ELBC) || defined(CONFIG_NAND_ATMEL)\
-	|| defined(CONFIG_NAND_FSL_IFC)
-#define CONFIG_SYS_NAND_SELF_INIT
-#endif
-#endif
-
 extern void nand_init(void);
 unsigned long nand_size(void);
 
@@ -34,7 +18,7 @@ unsigned long nand_size(void);
 
 int nand_mtd_to_devnum(struct mtd_info *mtd);
 
-#ifdef CONFIG_SYS_NAND_SELF_INIT
+#if CONFIG_IS_ENABLED(SYS_NAND_SELF_INIT)
 void board_nand_init(void);
 int nand_register(int devnum, struct mtd_info *mtd);
 #else
-- 
2.25.1



More information about the U-Boot mailing list