mtd: vf610_nfc: add Freescale NFC controller configs to Kconfig
authorStefan Agner <stefan@agner.ch>
Fri, 8 May 2015 17:07:11 +0000 (19:07 +0200)
committerScott Wood <scottwood@freescale.com>
Sun, 24 May 2015 19:27:28 +0000 (14:27 -0500)
This commit allows users to enable/disable the Freescale NFC
controller found in systems like Vybrid (VF610), MPC5125, MCF54418
or Kinetis K70 via Kconfig with more detailed help docs.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Stefano Babic <sbabic@denx.de>
[scottwood: updated vf610twr_nand_defconfig]
Signed-off-by: Scott Wood <scottwood@freescale.com>
configs/colibri_vf_defconfig
configs/vf610twr_defconfig
configs/vf610twr_nand_defconfig
doc/README.nand
drivers/mtd/nand/Kconfig
include/configs/colibri_vf.h
include/configs/vf610twr.h

index 0df337c7a45bbb75378ad3b9d7dbb51ee460f519..3b1f66aa76c9a0ac7fd0aecae61d9d5bdd41c160 100644 (file)
@@ -1,3 +1,5 @@
 CONFIG_ARM=y
 CONFIG_TARGET_COLIBRI_VF=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND"
+CONFIG_NAND_VF610_NFC=y
+CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y
index 3a71740559a18c049bded79b59b5cc25d3f87806..85c7c3d10111c37ae06ad366504441fa888e3d41 100644 (file)
@@ -1,3 +1,5 @@
 CONFIG_ARM=y
 CONFIG_TARGET_VF610TWR=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_MMC"
+CONFIG_NAND_VF610_NFC=y
+CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
index e22704ac99057fdf7c237c9ab000387bae51d51e..ebc915c48b77ceb384508a3d3cee591c578b27ba 100644 (file)
@@ -1,3 +1,5 @@
 CONFIG_ARM=y
 CONFIG_TARGET_VF610TWR=y
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_NAND"
+CONFIG_NAND_VF610_NFC=y
+CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
index 46d7edd179f139bb9688bfe1557bd5cbbcc53daf..0ff56331d5f92ec1ba0dbea186e40d36b4a06cb2 100644 (file)
@@ -188,24 +188,6 @@ Configuration Options:
        This is used by SoC platforms which do not have built-in ELM
        hardware engine required for BCH ECC correction.
 
-   CONFIG_SYS_NAND_BUSWIDTH_16BIT
-       Indicates that NAND device has 16-bit wide data-bus. In absence of this
-       config, bus-width of NAND device is assumed to be either 8-bit and later
-       determined by reading ONFI params.
-       Above config is useful when NAND device's bus-width information cannot
-       be determined from on-chip ONFI params, like in following scenarios:
-       - SPL boot does not support reading of ONFI parameters. This is done to
-         keep SPL code foot-print small.
-       - In current U-Boot flow using nand_init(), driver initialization
-         happens in board_nand_init() which is called before any device probe
-         (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are
-         not available while configuring controller. So a static CONFIG_NAND_xx
-         is needed to know the device's bus-width in advance.
-       Some drivers using above config are:
-       drivers/mtd/nand/mxc_nand.c
-       drivers/mtd/nand/ndfc.c
-       drivers/mtd/nand/omap_gpmc.c
-
 
 Platform specific options
 =========================
index 72825c3e2edf1fa689c04ec474b3057b9e5a6f99..0a9e96f60a231eb9bc7bd33a32e80edba8ab1491 100644 (file)
@@ -32,6 +32,36 @@ config NAND_DENALI_SPARE_AREA_SKIP_BYTES
          of OOB area before last ECC sector data starts.  This is potentially
          used to preserve the bad block marker in the OOB area.
 
+config NAND_VF610_NFC
+       bool "Support for Freescale NFC for VF610/MPC5125"
+       select SYS_NAND_SELF_INIT
+       help
+         Enables support for NAND Flash Controller on some Freescale
+         processors like the VF610, MPC5125, MCF54418 or Kinetis K70.
+         The driver supports a maximum 2k page size. The driver
+         currently does not support hardware ECC.
+
+comment "Generic NAND options"
+
+# Enhance depends when converting drivers to Kconfig which use this config
+# option (mxc_nand, ndfc, omap_gpmc).
+config SYS_NAND_BUSWIDTH_16BIT
+       bool "Use 16-bit NAND interface"
+       depends on NAND_VF610_NFC
+       help
+         Indicates that NAND device has 16-bit wide data-bus. In absence of this
+         config, bus-width of NAND device is assumed to be either 8-bit and later
+         determined by reading ONFI params.
+         Above config is useful when NAND device's bus-width information cannot
+         be determined from on-chip ONFI params, like in following scenarios:
+         - SPL boot does not support reading of ONFI parameters. This is done to
+           keep SPL code foot-print small.
+         - In current U-Boot flow using nand_init(), driver initialization
+           happens in board_nand_init() which is called before any device probe
+           (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are
+           not available while configuring controller. So a static CONFIG_NAND_xx
+           is needed to know the device's bus-width in advance.
+
 if SPL
 
 config SPL_NAND_DENALI
index 414600ac4317d41205911eb339ec3f1912dd508a..b3c73bbb96801aaa8a1b55bd15609420675d4338 100644 (file)
@@ -50,8 +50,6 @@
 
 /* NAND support */
 #define CONFIG_CMD_NAND
-#define CONFIG_NAND_VF610_NFC
-#define CONFIG_SYS_NAND_SELF_INIT
 #define CONFIG_SYS_MAX_NAND_DEVICE     1
 #define CONFIG_SYS_NAND_BASE           NFC_BASE_ADDR
 
index 05bc7d0d9e5d0b1bc4b8253eba126ac91830119a..621aa134844d715bef2a0e3752b2c46806652a37 100644 (file)
 #define CONFIG_CMD_NAND_TRIMFFS
 
 #ifdef CONFIG_CMD_NAND
-#define CONFIG_NAND_VF610_NFC
-#define CONFIG_SYS_NAND_SELF_INIT
 #define CONFIG_USE_ARCH_MEMCPY
-#define CONFIG_SYS_NAND_BUSWIDTH_16BIT
 #define CONFIG_SYS_MAX_NAND_DEVICE     1
 #define CONFIG_SYS_NAND_BASE           NFC_BASE_ADDR