From: Johannes Zink <[email protected]>

imx28_fcb_create() reads back some parameters from the BCH and GPMI
unlike imx6_fcb_create() which has same parameters hardcoded.

For i.MX7, we will need a mixture of both: Some values are hardcoded
(albeit differently than i.MX6), while some others need be read from the
BCH. In preparation for adding i.MX7 support, move common defines out of
the #ifdef CONFIG_ARCH_IMX28 and prefix constants that are not
applicable to i.MX6 and later with an IMX28_ prefix. No such constants
are currently in use.

Signed-off-by: Johannes Zink <[email protected]>
---
 common/imx-bbu-nand-fcb.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/common/imx-bbu-nand-fcb.c b/common/imx-bbu-nand-fcb.c
index bde0b227f8..f268503f38 100644
--- a/common/imx-bbu-nand-fcb.c
+++ b/common/imx-bbu-nand-fcb.c
@@ -1393,9 +1393,6 @@ int imx6_bbu_nand_register_handler(const char *name, 
unsigned long flags)
        return ret;
 }
 
-#ifdef CONFIG_ARCH_IMX28
-#include <mach/imx28-regs.h>
-
 #define GPMI_TIMING0                           0x00000070
 #define        GPMI_TIMING0_ADDRESS_SETUP_MASK                 (0xff << 16)
 #define        GPMI_TIMING0_ADDRESS_SETUP_OFFSET               16
@@ -1413,19 +1410,28 @@ int imx6_bbu_nand_register_handler(const char *name, 
unsigned long flags)
 #define        BCH_FLASHLAYOUT0_NBLOCKS_OFFSET                 24
 #define        BCH_FLASHLAYOUT0_META_SIZE_MASK                 (0xff << 16)
 #define        BCH_FLASHLAYOUT0_META_SIZE_OFFSET               16
-#define        BCH_FLASHLAYOUT0_ECC0_MASK                      (0xf << 12)
-#define        BCH_FLASHLAYOUT0_ECC0_OFFSET                    12
-#define        BCH_FLASHLAYOUT0_DATA0_SIZE_MASK                0xfff
+#define        MX28_BCH_FLASHLAYOUT0_ECC0_MASK                 (0xf << 12)
+#define        MX28_BCH_FLASHLAYOUT0_ECC0_OFFSET               12
+#define        BCH_FLASHLAYOUT0_ECC0_MASK                      (0x1f << 11)
+#define        BCH_FLASHLAYOUT0_ECC0_OFFSET                    11
+#define        BCH_FLASHLAYOUT0_DATA0_SIZE_MASK                0x3ff
+#define        MX28_BCH_FLASHLAYOUT0_DATA0_SIZE_MASK           0xfff
 #define        BCH_FLASHLAYOUT0_DATA0_SIZE_OFFSET              0
 
 #define BCH_FLASH0LAYOUT1                      0x00000090
 #define        BCH_FLASHLAYOUT1_PAGE_SIZE_MASK                 (0xffff << 16)
 #define        BCH_FLASHLAYOUT1_PAGE_SIZE_OFFSET               16
-#define        BCH_FLASHLAYOUT1_ECCN_MASK                      (0xf << 12)
-#define        BCH_FLASHLAYOUT1_ECCN_OFFSET                    12
-#define        BCH_FLASHLAYOUT1_DATAN_SIZE_MASK                0xfff
+#define        BCH_FLASHLAYOUT1_ECCN_MASK                      (0x1f << 11)
+#define        BCH_FLASHLAYOUT1_ECCN_OFFSET                    11
+#define        MX28_BCH_FLASHLAYOUT1_ECCN_MASK                 (0xf << 12)
+#define        MX28_BCH_FLASHLAYOUT1_ECCN_OFFSET               12
+#define        BCH_FLASHLAYOUT1_DATAN_SIZE_MASK                0x3ff
+#define        MX28_BCH_FLASHLAYOUT1_DATAN_SIZE_MASK           0xfff
 #define        BCH_FLASHLAYOUT1_DATAN_SIZE_OFFSET              0
 
+#ifdef CONFIG_ARCH_IMX28
+#include <mach/imx28-regs.h>
+
 static void imx28_fcb_create(struct imx_nand_fcb_bbu_handler *imx_handler,
                struct fcb_block *fcb, struct mtd_info *mtd)
 {
-- 
2.30.2


Reply via email to