Some NAND controllers need SDR timing mode value, instead of timings.
i.e the NAND controller will change its operating mode by
just configuring the sdr timing mode number. So add a mode field to
struct nand_sdr_timings

Signed-off-by: Naga Sureshkumar Relli <naga.sureshkumar.re...@xilinx.com>
Reviewed-by: Boris Brezillon <boris.brezil...@bootlin.com>
---
Changes in v12:
 - Typo corrections as suggested by Boris
Changes in v11:
 - None
Changes in v10:
 - None
Changes in v9:
 - None
Changes in v8:
 - None
Changes in v7:
 - None
Changes in v6:
 - None
Changes in v5:
 - None
Changes in v4:
 - None
Changes in v3:
 - None
Changes in v2:
 - None
---
 drivers/mtd/nand/raw/nand_timings.c | 6 ++++++
 include/linux/mtd/rawnand.h         | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/drivers/mtd/nand/raw/nand_timings.c 
b/drivers/mtd/nand/raw/nand_timings.c
index bea3062..500c16b 100644
--- a/drivers/mtd/nand/raw/nand_timings.c
+++ b/drivers/mtd/nand/raw/nand_timings.c
@@ -57,6 +57,7 @@ static const struct nand_data_interface onfi_sdr_timings[] = {
                        .tWHR_min = 120000,
                        .tWP_min = 50000,
                        .tWW_min = 100000,
+                       .mode = 0,
                },
        },
        /* Mode 1 */
@@ -99,6 +100,7 @@ static const struct nand_data_interface onfi_sdr_timings[] = 
{
                        .tWHR_min = 80000,
                        .tWP_min = 25000,
                        .tWW_min = 100000,
+                       .mode = 1,
                },
        },
        /* Mode 2 */
@@ -141,6 +143,7 @@ static const struct nand_data_interface onfi_sdr_timings[] 
= {
                        .tWHR_min = 80000,
                        .tWP_min = 17000,
                        .tWW_min = 100000,
+                       .mode = 2,
                },
        },
        /* Mode 3 */
@@ -183,6 +186,7 @@ static const struct nand_data_interface onfi_sdr_timings[] 
= {
                        .tWHR_min = 80000,
                        .tWP_min = 15000,
                        .tWW_min = 100000,
+                       .mode = 3,
                },
        },
        /* Mode 4 */
@@ -225,6 +229,7 @@ static const struct nand_data_interface onfi_sdr_timings[] 
= {
                        .tWHR_min = 80000,
                        .tWP_min = 12000,
                        .tWW_min = 100000,
+                       .mode = 4,
                },
        },
        /* Mode 5 */
@@ -267,6 +272,7 @@ static const struct nand_data_interface onfi_sdr_timings[] 
= {
                        .tWHR_min = 80000,
                        .tWP_min = 10000,
                        .tWW_min = 100000,
+                       .mode = 5,
                },
        },
 };
diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h
index e10b126..223b656 100644
--- a/include/linux/mtd/rawnand.h
+++ b/include/linux/mtd/rawnand.h
@@ -466,6 +466,7 @@ struct nand_ecc_ctrl {
  * @tWHR_min: WE# high to RE# low
  * @tWP_min: WE# pulse width
  * @tWW_min: WP# transition to WE# low
+ * @mode: sdr timing mode value
  */
 struct nand_sdr_timings {
        u64 tBERS_max;
@@ -506,6 +507,7 @@ struct nand_sdr_timings {
        u32 tWHR_min;
        u32 tWP_min;
        u32 tWW_min;
+       u32 mode;
 };
 
 /**
-- 
2.7.4

Reply via email to